Open kwillemsen opened 2 years ago
Oh interesting! We've seen (driver) issues with WARP before. I wonder if it's something to do with the way our mapping flush/invalidation works.
Just verified that this issue is no longer present in Windows 11, but still present in Windows 10.
Thanks for testing! Win11 has an upgraded WARP, so this is unsurprising, the water example also works with Win11 but not with Win10
Description
When using the
Microsoft Basic Render Driver
Adapter
, it seemsQueue::write_buffer()
does not work correctly. All other backends (on my machineVulkan
andDX12
, both onNVIDIA
andIntel
hardware) do function as expected.I guess this could be an issue in my code, in
wgpu-rs
or in theMicrosoft Basic Render Driver
.Repro steps
This repo contains a sample app and explains the issue. Basically, the following code
does not work as expected when using
Microsoft Basic Render Driver
(so onDX12
).Expected vs observed behavior
All entities have their constant buffer updated in phase
(1)
and bound to aRenderPass
in phase(2)
. But they all are rendered with the same constant data - as far as I can tell, always the last one written in(1)
.Extra materials
The sample app draws a bunch of quads. Each of them uses a color from its own constant buffer.
The expected result which is what I get on all
Adapter
s, except forMicrosoft Basic Render Driver
:The incorrect result when using
Microsoft Basic Render Driver
:API trace (also available in the sample repo): api_trace.zip
Platform
I'm running this on
Windows 10
, usingwgpu 0.11.0