1525: Add Naga bypass to allow feeding raw SPIR-V shader data to the backend. r=kvark a=ElectronicRU **Connections** Fixes #1520 . **Description** While Naga checking is undoubtedly very useful, it currently lags behind what is possible in SPIR-V and even what is promised by WGPU (ie binding arrays). This adds an unsafe method to wgpu::Device to allow feeding raw SPIR-V data into the backend, and adds a feature flag to request a backend supporting this operation. **Testing** `texture_arrays` example is runnable now, which uncovers an additional bug in Vulkan backend - binding arrays are instead treated like sole bindings, and indices shift, too. Lots of errors from validation layer ensue. Co-authored-by: Alex S <alex0player@gmail.com>
wgpu player
This is an application that allows replaying the wgpu workloads recorded elsewhere. It requires the player to be built from
the same revision as an application was linking to, or otherwise the data may fail to load.
Launch as:
play <trace-dir>
When built with "winit" feature, it's able to replay the workloads that operate on a swapchain. It renders each frame sequentially, then waits for the user to close the window. When built without "winit", it launches in console mode and can replay any trace that doesn't use swapchains.
Note: replaying is currently restricted to the same backend, as one used for recording a trace. It is straightforward, however, to just replace the backend in RON, since it's serialized as plain text. Valid values are: Vulkan, Metal, Dx12, and Dx11.