WebGPU: Crash when getBindGroupLayout is used
Categories
(Core :: Graphics: WebGPU, defect)
Tracking
()
Tracking | Status | |
---|---|---|
firefox90 | --- | fixed |
People
(Reporter: matus.talcik, Assigned: kvark)
References
Details
Attachments
(2 files)
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36 Edg/90.0.818.51
Steps to reproduce:
- Created basic skeleton for WebGPU project
- Used getBindGroupLayou when I added UBOs to the shader
- Ran my program
In attached file:
- src has the original code that is compiled using webpack
- dist_good contains code using manual layout - this doesn't crash
- dist_bad contains code using getBinGroupLayout
Actual results:
Firefox crashed after some amount frames. The amount ranges from 200 to 470 roughly.
Expected results:
Firefox shouldn't have crashed
Comment 1•3 years ago
|
||
The Bugbug bot thinks this bug should belong to the 'Core::Graphics: WebGPU' component, and is moving the bug to that component. Please revert this change in case you think the bot is wrong.
Assignee | ||
Comment 2•3 years ago
|
||
Thanks for the test case!
Assignee | ||
Comment 3•3 years ago
|
||
When the pipeline layout is implicit at pipeline creation,
we collect the IDs of BGLs, to be able to produce GPUBindGroupLayout
object upon user request. However, the produced object didn't know if
it owns the ID or borrows it, so it would issue a "drop" when going out of scope.
This change establishes this distinction. In addition, it gets the Pipeline Layout ID,
and together with the BGL ids, they are sent to GPU process upon pipeline destruction.
When the GPU process is done with these IDs used, it will kick back a message to the
Content process, allowing the IDs to be reclaimed.
Pushed by dmalyshau@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/dfd34fb1aade Fix freeing of WebGPU bind group layouts r=jimb
Comment 5•3 years ago
|
||
bugherder |
Updated•3 years ago
|
Description
•