-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Queue write_buffer
issue with Vulkan backend on NVidia
#1323
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
write_buffer
issue with Vulcan backendwrite_buffer
issue with Vulkan backend
Thank you for filing! |
Attached! In the trace above the "Scene Underline Instance Buffer" is missing one item just as described in the original issue. |
I ❤️ that menu :) |
Replaying this trace, I'm seeing 40 bytes updated, all the 5 instances are there: |
Yep, I am seeing the same issue in the wgpu player: https://i.imgur.com/c8YAJqH.png Note the missing underline and another issue with missing blue cell in the logo. So I wonder, could this be a driver issue if you can't reproduce? I am on Windows 10 with latest NVIDIA Geforce drivers on a GTX 1070 hardware. |
I'll check a few more machines. Looks like a driver issue, unless we are missing a validation error there. |
I do not see anything suspicious with Vulkan validation layers enabled. Will try later today to revert NVIDIA drivers to previous version and see if that helps. |
RenderDoc 1.3 refuses to run this for some reason :/. |
Investigated this further and found a 100% workaround, but it's really really strange. The issue was related to the number of instances I was allocating the buffer for (my single instance buffer is I am not sure where the requirement comes from and maybe this should be handled internally by wgpu? As mentioned it happens only with Vulkan backend.
I use latest RenderDoc 1.13. But I am slightly confused - since you posted RenderDoc screenshot before. Would it help if I provided a new trace? |
It didn't work on a different machine for me. Your discovery is very interesting! I wonder if it's a driver bug. I think it would be no problem for us to round up all the buffer sizes in wgpu to 16 bytes. Just wondering if it's because we are missing something in the spec, or this is a genuine driver issue. |
|
Just FYI my driver version is reported as: 27.21.14.6589 (NVIDIA 465.89) / Win10 64. This should be the latest driver available as of this comment. |
I see it now on my GTX 1050, looking! |
The data is uploaded correctly, but |
write_buffer
issue with Vulkan backendwrite_buffer
issue with Vulkan backend on NVidia
Reported to NVidia level 2 support team, ticket 210412-000661 |
Closing as out of date |
After upgrading wgpu from 0.7 to latest master I am seeing really strange issue with
Queue::write_buffer()
calls. This issue happens only when Vulkan backend is used - cannot reproduce with DX12 and Metal backends.Some background how I render a scene.
Device::create_buffer()
. I do this to not allocate memory during subsequent render calls.Queue::write_buffer()
calls.RenderPass::draw_indexed()
.The strange issue is that when I write, for example, 5 items with
write_buffer()
- only 4 are actually written to the buffer. So one item is lost somehow.. Here are some screenshots:Debugger active just before
write_buffer()
call showing 5 items:And afterwards RenderDoc view for the same buffer showing only 4 items.
Since this started only after upgrading wgpu and only while Vulkan backend is used - I don't think the bug is in my code. There must be some issue in wgpu or any dependencies?
The text was updated successfully, but these errors were encountered: