Open Bug 2019111 Opened 12 days ago Updated 12 days ago

Several WebGPU CTS tests run much slower on debug builds and time out

Categories

(Core :: Graphics: WebGPU, defect, P3)

defect

Tracking

()

People

(Reporter: aleiserson, Unassigned)

Details

The following CTS tests run in <6m in opt builds, but time out after 30m in debug builds.

(They hit the Marionnette timeout, the only error in the logs in all cases is IOError on command, setting status to CRASH, but there is probably other test output that is lost when Marionnette timed out.)

webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:*
https://treeherder.mozilla.org/logviewer?job_id=550138635&repo=try&task=Uk0hdFSrQ0-1C7RDjqWRPA.0&lineNumber=969

webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:*
https://treeherder.mozilla.org/logviewer?job_id=550138497&repo=try&task=N9AHzsH-SMaqb8MspFeUig.0&lineNumber=1167

webgpu:web_platform,copyToTexture,ImageBitmap:from_canvas:*
https://treeherder.mozilla.org/logviewer?job_id=550138497&repo=try&task=N9AHzsH-SMaqb8MspFeUig.0&lineNumber=1259

(Those ImageBitmap failure links are for the dedicated variant, because it's what I could find readily, but I believe the non-worker version behaves the same.)

It's probably not this, but it does come to mind:

https://searchfox.org/firefox-main/rev/1f43fe5ffadde0b6898daf607cabb3335dd75d6f/dom/webgpu/CanvasContext.cpp#429-444

// Clear alpha channel to 0xFF / 1.0 for opaque contexts.
// https://www.w3.org/TR/webgpu/#abstract-opdef-get-a-copy-of-the-image-contents-of-a-context
if (isOpaque) {
  gfx::DataSourceSurface::ScopedMap map(snapshot,
                                        gfx::DataSourceSurface::WRITE);
  if (!map.IsMapped()) {
    return nullptr;
  }

  for (int32_t y = 0; y < snapshot->GetSize().height; y++) {
    for (int32_t x = 0; x < snapshot->GetSize().width; x++) {
      uint8_t* const pixel = map.GetData() + y * map.GetStride() + x * 4;
      pixel[3] = 0xFF;
    }
  }
}

blurgh

You need to log in before you can comment on or make changes to this bug.