gfx-rs/wgpu

beginRenderPass device mismatched crashes

sagudev opened this issue · 3 comments

Description
As in #5582 beginRenderPass should do validation (so wgpu-core). Currently this can cause crash on webgpu:api,validation,encoding,beginRenderPass:depth_stencil_attachment,device_mismatch:* (crash is also visible on firefox).

If using sagudev@3c28720 this is also reproducible on wgpu using cts runner.

Given that this isn't first time of device mismatch error I believe all assertDeviceMatch should probably be removed (they are simply wrong as they trigger dom exception instead of validation error, hence CTS test failures) and add device validation checks to wgpu_core.

here we actually need to invalidate pass per step 5 in device timeline https://gpuweb.github.io/gpuweb/#dom-gpucommandencoder-beginrenderpass so validation error will need to happen in end pass.

I believe all assertDeviceMatch should probably be removed.

That sounds right to me, all the validation should be in wgpu-core.

@crowlKats thoughts on this?

I think this will be harder as I though because, even though we can detect error in beginRenderPass we only need to return invalid (is this even possible in wgpu?) pass and then when doing encoder finish raising validation error.