Add FenceD3D11 handling to WebGL on Windows
Categories
(Core :: Graphics, enhancement)
Tracking
()
Tracking | Status | |
---|---|---|
firefox139 | --- | fixed |
People
(Reporter: sotaro, Assigned: sotaro)
References
(Blocks 2 open bugs)
Details
(Keywords: perf-alert)
Attachments
(1 file)
It seems better to use ID3D11Fence with WebGL if it is supported. Since WebGPU needs to use ID3D11Fence.
Assignee | ||
Updated•2 years ago
|
Assignee | ||
Comment 1•2 years ago
|
||
Assignee | ||
Updated•2 years ago
|
Comment 2•2 years ago
|
||
What advantage does using ID3D11Fence provide?
Assignee | ||
Comment 3•2 years ago
|
||
If we want to implement GPUQueue:copyExternalImageToTexture(), HTMLCanvasElement and OffscreenCanvas could also be used as source.
In this case, ID3D11Texture2D of SharedSurface_ANGLEShareHandle is going to be imported to WebGPU(wgpu).
If we want to interact with WebGPU with D3D12 backend, SharedSurface_ANGLEShareHandle needs to provide ID3D11Fence for performance.
From it, all canvas that use ID3D11Texture2D will need to implement ID3D11Fence for performance.
And if WebGL support ID3D11Fence, we could check if ID3D11Fence implementation works as expected soon.
chromium implementation does like the following. The BeginAccessDawn() send wait fences to dawn(WebGPU)
GPUQueue::CopyFromCanvasSourceImage()
->WebGPUMailboxTexture::FromStaticBitmapImage()
->WebGPUMailboxTexture::FromCanvasResource()
->WebGPUMailboxTexture::WebGPUMailboxTexture()
->/// ipc
->WebGPUImplementation::AssociateMailbox()
->WebGPUDecoderImpl::HandleAssociateMailboxImmediate()
->WebGPUDecoderImpl::AssociateMailboxDawn()
->DawnImageRepresentation::BeginScopedAccess()
->DawnImageRepresentation::BeginAccess()
->DawnD3DImageRepresentation::BeginAccess()
->D3DImageBacking::BeginAccessDawn()
Assignee | ||
Updated•5 months ago
|
Assignee | ||
Updated•5 months ago
|
Assignee | ||
Updated•5 months ago
|
Assignee | ||
Updated•5 months ago
|
Updated•5 months ago
|
Assignee | ||
Updated•5 months ago
|
Updated•5 months ago
|
Comment 6•5 months ago
|
||
bugherder |
Comment 7•5 months ago
|
||
(In reply to Pulsebot from comment #5)
Pushed by sikeda.birchill@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/4c9c6fcfe2f6
Add FenceD3D11 handling to WebGL on Windows r=gfx-reviewers,lsalzman,aosmond
Perfherder has detected a talos performance change from push 4c9c6fcfe2f60516f9db5f65fa0ec558b2dc88cc.
If you have any questions, please reach out to a performance sheriff. Alternatively, you can find help on Slack by joining #perf-help, and on Matrix you can find help by joining #perftest.
Improvements:
Ratio | Test | Platform | Options | Absolute values (old vs new) |
---|---|---|---|---|
42% | glterrain | windows11-64-shippable-qr | e10s fission stylo webrender-sw | 2.79 -> 1.62 |
Details of the alert can be found in the alert summary, including links to graphs and comparisons for each of the affected tests.
If you need the profiling jobs you can trigger them yourself from treeherder job view or ask a performance sheriff to do that for you.
You can run all of these tests on try with ./mach try perf --alert 44724
The following documentation link provides more information about this command.
Updated•5 months ago
|
Description
•