diff options
| author | Tim Foley <tfoleyNV@users.noreply.github.com> | 2018-07-26 14:48:48 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-07-26 14:48:48 -0700 |
| commit | 171f524d7ca2922084a33f50c77a1e8797e80949 (patch) | |
| tree | 849b11a72a43aceccfbea5a88d8cc00c8d5b0492 /examples | |
| parent | 66f5f18037602751ebce3c5e12d0466a9ee97462 (diff) | |
Fix translation of RWTexture subscript operations for Vulkan (#618)
Partially fixes #615
There's kind of a mess going on here, and it is difficult to be sure which of the changes here are strictly necessary.
Also, our testing isn't setup to run tests that use `RWTexture2D`, so the only testing I can really run is manual tests using Falcor.
The most basic issue here is that in an earlier change I added `ref` accessors for the subscript operation on various `RW*` types in the standard library, and that included `RWTexture2D` (and the other `RWTexture*` types). The compiler ended up favoring a `ref` accessor over a `set` accessor even when the `set` would suffice, but only the `set` accessor could be lowerd to GLSL/SPIR-V.
This change ends up implementing two different fixes for the same problem:
* Logic has been added to try and favor a `set` accessor over a `ref` accessor in the cases where either could be used (but still require a `ref` accessor to be used when it is really needed)
* The `ref` accessor for `RWTexture*` has been removed, since it turns out that the operations that might have benefited from it (atomics, and component-granularity stores) aren't actually allowed on typed UAVs anyway.
There is a deeper issue here that somebody needs to go through and rationalize our representation and handling of accessors like this, but I'm not going to be able to do that in the time I can put into this PR.
Diffstat (limited to 'examples')
0 files changed, 0 insertions, 0 deletions
