sagudev
sagudev
As a temporary solution for wgpu's deadlocks I added mutex fence before queue_submit and poll_all_devices.
When applying some expectations I get: https://github.com/sagudev/servo/actions/runs/9271180193/job/25507347414 `_webgpu/webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:createComputePipelineAsync:*` and `_webgpu/webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:createRenderPipelineAsync:*` is due to https://github.com/servo/servo/issues/31591 `_webgpu/webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:queue,writeTexture,2d,uncompressed_format:*` has flaky timeout that I have yet to investigate.
> > `_webgpu/webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:queue,writeTexture,2d,uncompressed_format:*` has flaky timeout that I have yet to investigate. This is another deadlock in wgpu: https://github.com/gfx-rs/wgpu/issues/5737#issuecomment-2163556055 EDIT: but it's still happening so there must be more, likely...
I've been blocking this long enough on `webgpu:api,validation,state,device_lost,destroy:queue,writeTexture,2d,*` flaky timeouts, that are clearly wgpu problems.
Lifetime of `GPUDevice` still bugs me, global scope has hashmap of `Dom` that keeps `GPUDevice` alive unless GPUDevice is manually destroyed, so we should probably use weakref in hashmap: https://doc.servo.org/script/dom/bindings/weakref/index.html,...
> > we should probably use weakref in hashmap > > Add a note before merging? I opened https://github.com/servo/servo/issues/32519 and assigned myself as I already have WIP.
I have no idea, but I think we do not.
This is indeed servo's problem that is tracked in servo/servo#31812.
This might be related to https://github.com/servo/servo/issues/32569.
relevant test: https://github.com/sagudev/servo/actions/runs/6214485159/job/16867203599