Repository navigation
Remaining problems with breaking changes WGPU 24 -> WGPU 30. #10178
Replies: 4 comments 1 reply
You must use the methods of For
All |
|
Thanks. Now I'm down to two compile errors, both revolving around "encase" vs. write only buffers. That's trying to get a raw slice of u32 into which it can write, with that slice in a write-only buffer. As you pointed out, that's now a prohibited operation. It's also playing games with accessing a buffer as u32, and I'm not sure how that plays with the new interface. Similarly, The previous message:
covers the general idea, but I'd like to get this right the first time, because it's so low-level that it will be a huge pain to debug if there's anything wrong. Detailed advice appreciated. Thanks. Should there be more WGPU API support for this kind of data moving? Everybody needs to put data in buffers. |
|
Still plugging away on this. There's wgpu template and trait cleverness, encase template and trait cleverness, bytemuck template and trait cleverness, and rend3 template and trait cleverness. They don't play well together. Wgpu and encase don't know about each other. Wgpu uses bytemuck for its conversions. WriteOnly probably should have been a lower level concept in some standard library, used by all relevant crates. But that's a messy retrofit. I need more sleep before attacking this again. |
|
Everything compiles, now working through validation errors of the Rend3 unit tests. Many tests fail with: I've tried setting, in Limits,
The device allocates and opens, but fails at bind group creation. In the error message, that limit is shown as 0. What seems to be going on is that, at WGPU 30, you only get the features you explicitly ask for when opening the adapter. Previously, you could ask for no features, and the adapter gave you everything it offered, which you could then check. There may be some additional feature I need to turn on for this to work. I tried requesting some more features: but it didn't help. What am I missing here? |
Uh oh!
There was an error while loading. Please reload this page.
At start, I had 150 compile errors from breaking changes in WGPU. I've fixed most of them, and now I'm down to 5. Some of these are a bit tricky. A bit of help would be appreciated.
This is all related to updating my fork of Rend3, which I have to keep alive for my main projects. This is on branch "wgpu30test", and you can build this from Github if you like.
This is related to the new guards added to buffer access, documented in the WGPU change log. I'm not quite sure how to work around this change.
This is just a consequence of error scope being made thread-local. I'll work that out.
Per the changelog, "present()" was made a function of Queue rather than Surface. The problem is that the caller doesn't have access to Queue at that point, and that function is exported beyond Rend3 into applications. So this breaking change can cascade through levels. Is there some easy way to get Queue from the available info?
Those last two are related to the new buffer access guards, as mentioned above.
I'm trying to do this with minimal changes, cautiously. So I'm asking for advice. Especially around the buffer access area, which involves such touchy things as write-only slices. I don't want to break things that are close to raw memory access.
All reactions