Closed natevm closed 3 weeks ago
@ArielG-NV Looking at our capdef file, it seems that we have
alias raytracingstages_fragment = raytracing_stages | fragment;
alias raytracingstages_compute = raytracing_stages | compute;
alias raytracingstages_compute_amplification_mesh = raytracingstages_compute | amplification_mesh;
alias raytracingstages_compute_fragment = raytracing_stages | compute_fragment;
alias raytracingstages_compute_fragment_geometry_vertex = raytracing_stages | compute_fragment_geometry_vertex;
And many UAV functions are defined for these stages only. This is wrong. I don't think there are any reasons vertex/mesh/amplification and tessellation shaders should be excluded from things like RWStructuredBuffer or Texture sampling intrinsics. Let's remove all of these stage capability aliases and make sure those intrinsics are supported for ALL stages.
For example,
alias appendstructuredbuffer = sm_5_0 + raytracingstages_compute_fragment;
...
alias byteaddressbuffer = sm_4_0;
alias byteaddressbuffer_rw = sm_4_0 + raytracingstages_compute_fragment;
alias consumestructuredbuffer = sm_5_0 + raytracingstages_compute_fragment;
I don't think this is true. Vertex/Mesh/Amplification/Domain/Hull shader can use rw/append/consume structured buffer.
I will remove these
most language concepts are not clear on what works, I believe there may have to be some trial and error here at some point
example of docs being not updated
@natevm to temporarily work around this issue, please use the following compile option: -ignore-capabilities
Updating to the most recent version of slang, I seem to now get odd compatibility errors for exclusively "vertex" entrypoint types.
Here's some example code, meant to help rasterize an ImGui window to a framebuffer:
All entrypoints with
[shader("vertex")]
now throw an error similar to the following:It seems a bit like "vertex" is missing from the list of entrypoint names. I see "fragment" in the above error message, but not vertex.