Script Preparation code:
x
 
var img = new Image();
var imageBitmap;
var doneLoading = false;
let canvas = document.createElement('canvas');
canvas.width = 640;
canvas.height = 480;
let canvas2 = document.createElement('canvas');
let offscreen = canvas2.transferControlToOffscreen();
offscreen.width = 640;
offscreen.height = 480;
var ctx = canvas.getContext('2d');
var ctx2 = offscreen.getContext('2d');
img.addEventListener('load', function() {
  Promise.all([
    createImageBitmap(img)
  ]).then(function(images) {
  imageBitmap = images[0];
  doneLoading = true;
}, false);
});
img.src = 'https://media.discordapp.net/attachments/447410261289205781/574359442913492992/unknown.png';
Tests:
  • Canvas

     
    if (doneLoading)
    {
    ctx.clearRect(0,0,640,480);
    ctx.drawImage(imageBitmap,0,0);
    }
  • OffscreenCanvas

     
    if (doneLoading)
    {
    ctx2.clearRect(0,0,640,480);
    ctx2.drawImage(imageBitmap,0,0);
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Canvas
    OffscreenCanvas

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 2 days ago)
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Mobile Safari/537.36
Chrome Mobile 135 on Android
View result in a separate tab
Test name Executions per second
Canvas 134459424.0 Ops/sec
OffscreenCanvas 129154992.0 Ops/sec