Skip to content

Commit ea11331

Browse files
authored
Default implicit SPIR-V SER to EXT (#11343)
Fixes #11082 ## Summary of the problem from the end user perspective Compiling `HitObject::TraceRay` for direct SPIR-V with a `spirv_1_6` profile implicitly upgraded SER to the NV capability while the generated hit-object trace operation used EXT. Restrictive explicit EXT requests were also rejected as if NV was required. ### Minimal repro shader; if applicable ```hlsl [shader("raygeneration")] void main() { Payload payload; HitObject hitObj = HitObject::TraceRay(tlas, 0, 0xFF, 0, 0, 0, ray, payload); if (hitObj.IsHit()) { outImage[DispatchRaysIndex().xy] = 1.0f; } } ``` ## Root cause The generic `ser` capability still included the NV GL/SPIR-V path, while fallback SPIR-V hit-object emission defaulted to NV when no explicit SER capability was present. Because NV implies EXT, generic requirements could resolve through NV and then mismatch EXT opcode emission. ## Solution in this PR Make the generic SPIR-V/GLSL SER path default to EXT while preserving explicit NV aliases for NV intrinsics, and make ambiguous SPIR-V hit-object fallback emission use EXT. Add regression coverage for implicit profile upgrade and restrictive explicit EXT. NV-only LSS/cluster `HitObject` accessors now require `spvShaderInvocationReorderNV` for SPIR-V. User shaders that call those accessors without the explicit NV capability now get a Slang diagnostic instead of malformed mixed EXT/NV SPIR-V. ### Notes to the reviewers; where to focus on Review `slang-capabilities.capdef` and `slang-emit-spirv.cpp` for the EXT default, and the `ser_nv*` requirement changes that keep NV-named GLSL/HLSL intrinsics on the NV path. The new `gh-11082.slang` test checks that implicit and restrictive EXT emit only EXT hit-object declarations, attribute storage classes, and opcodes. `rt-lss-intrinsics-chit.slang` keeps positive NV coverage and adds a no-NV diagnostic regression for LSS `HitObject` methods.
1 parent ec8f06e commit ea11331

12 files changed

Lines changed: 265 additions & 74 deletions

docs/command-line-slangc-reference.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1455,6 +1455,7 @@ A capability describes an optional feature that a target may or may not support.
14551455
* `cpp_glsl_hlsl_metal_spirv_wgsl`
14561456
* `cpp_hlsl`
14571457
* `cuda_glsl_hlsl`
1458+
* `cuda_glsl_nvapi`
14581459
* `cuda_hlsl_metal_spirv`
14591460
* `cuda_glsl_hlsl_spirv`
14601461
* `cuda_glsl_hlsl_spirv_llvm`

docs/target-compatibility.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,13 @@ There is preliminary [Mesh Shader support](https://github.com/shader-slang/slang
292292

293293
More information about [Shader Execution Reordering](shader-execution-reordering.md).
294294

295-
Currently support is available in D3D12 via NVAPI, and for Vulkan via the [GL_NV_shader_invocation_reorder](https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_shader_invocation_reorder.txt) extension.
295+
Currently support is available in D3D12 via NVAPI. For Vulkan, Slang uses the
296+
[GL_EXT_shader_invocation_reorder](https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_shader_invocation_reorder.txt)
297+
extension by default for implicit SPIR-V SER capability upgrades. The
298+
[GL_NV_shader_invocation_reorder](https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_shader_invocation_reorder.txt)
299+
path remains available when the NV capability or extension is requested explicitly;
300+
NV-named GLSL entry points such as `hitObjectIsHitNV` continue to require that NV
301+
path.
296302

297303
<a id="debug-break"></a>
298304

docs/user-guide/a3-02-reference-capability-atoms.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1168,6 +1168,9 @@ Compound Capabilities
11681168
`cuda_glsl_metal_spirv_wgsl_llvm`
11691169
> CUDA, GLSL, Metal, SPIRV, WGSL and LLVM code-gen targets
11701170
1171+
`cuda_glsl_nvapi`
1172+
> CUDA, GLSL, and NVAPI code-gen targets
1173+
11711174
`cuda_glsl_spirv`
11721175
> CUDA, GLSL, and SPIRV code-gen targets
11731176
@@ -1370,7 +1373,8 @@ Compound Capabilities
13701373
13711374
`ser`
13721375
> Capabilities needed for shader-execution-reordering (all paths)
1373-
> Includes NVIDIA-specific (NV), cross-vendor standard (EXT), DXR 1.3 native, and CUDA paths
1376+
> Defaults SPIR-V/GLSL to the cross-vendor standard EXT path; explicit NV still satisfies this
1377+
> through the NV-to-EXT capability hierarchy. Use ser_nv for APIs that require NV opcodes.
13741378
13751379
`ser_any_closesthit_intersection_miss`
13761380
> Collection of capabilities for raytracing + shader execution reordering and the shader stages of anyhit, closesthit, intersection, and miss.

source/slang/glsl.meta.slang

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -5676,7 +5676,7 @@ __glsl_extension(GL_EXT_ray_tracing)
56765676
__glsl_extension(GL_NV_shader_invocation_reorder)
56775677
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
56785678
[ForceInline]
5679-
[require(glsl_spirv, ser_raygen_closesthit_miss)]
5679+
[require(glsl_spirv, ser_nv_raygen_closesthit_miss)]
56805680
public void hitObjectTraceRayNV(
56815681
inout hitObjectNV hitObject,
56825682
accelerationStructureEXT topLevel,
@@ -5708,7 +5708,7 @@ __glsl_extension(GL_NV_shader_invocation_reorder)
57085708
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
57095709
__glsl_extension(GL_NV_ray_tracing_motion_blur)
57105710
[ForceInline]
5711-
[require(glsl_spirv, ser_motion_raygen_closesthit_miss)]
5711+
[require(glsl_spirv, ser_nv_motion_raygen_closesthit_miss)]
57125712
public void hitObjectTraceRayMotionNV(
57135713
inout hitObjectNV hitObject,
57145714
accelerationStructureEXT topLevel,
@@ -5774,7 +5774,7 @@ __glsl_extension(GL_EXT_ray_tracing)
57745774
__glsl_extension(GL_NV_shader_invocation_reorder)
57755775
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
57765776
[ForceInline]
5777-
[require(glsl_spirv, ser_raygen_closesthit_miss)]
5777+
[require(glsl_spirv, ser_nv_raygen_closesthit_miss)]
57785778
public void hitObjectRecordHitNV(
57795779
inout hitObjectNV hitObject,
57805780
accelerationStructureEXT topLevel,
@@ -5839,7 +5839,7 @@ __glsl_extension(GL_NV_shader_invocation_reorder)
58395839
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
58405840
__glsl_extension(GL_NV_ray_tracing_motion_blur)
58415841
[ForceInline]
5842-
[require(glsl_spirv, ser_motion_raygen_closesthit_miss)]
5842+
[require(glsl_spirv, ser_nv_motion_raygen_closesthit_miss)]
58435843
public void hitObjectRecordHitMotionNV(
58445844
inout hitObjectNV hitObject,
58455845
accelerationStructureEXT topLevel,
@@ -5860,7 +5860,7 @@ public void hitObjectRecordHitMotionNV(
58605860
{
58615861
case _GL_NV_shader_invocation_reorder_motion:
58625862
{
5863-
HitObject::__glslMakeMotionHit(
5863+
HitObject::__glslMakeMotionHitNV(
58645864
hitObject,
58655865
topLevel,
58665866
instanceid,
@@ -5908,7 +5908,7 @@ __glsl_extension(GL_EXT_ray_tracing)
59085908
__glsl_extension(GL_NV_shader_invocation_reorder)
59095909
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
59105910
[ForceInline]
5911-
[require(glsl_spirv, ser_raygen_closesthit_miss)]
5911+
[require(glsl_spirv, ser_nv_raygen_closesthit_miss)]
59125912
public void hitObjectRecordHitWithIndexNV(
59135913
inout hitObjectNV hitObject,
59145914
accelerationStructureEXT topLevel,
@@ -5970,7 +5970,7 @@ __glsl_extension(GL_NV_shader_invocation_reorder)
59705970
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
59715971
__glsl_extension(GL_NV_ray_tracing_motion_blur)
59725972
[ForceInline]
5973-
[require(glsl_spirv, ser_motion_raygen_closesthit_miss)]
5973+
[require(glsl_spirv, ser_nv_motion_raygen_closesthit_miss)]
59745974
public void hitObjectRecordHitWithIndexMotionNV(
59755975
inout hitObjectNV hitObject,
59765976
accelerationStructureEXT topLevel,
@@ -5990,7 +5990,7 @@ public void hitObjectRecordHitWithIndexMotionNV(
59905990
{
59915991
case _GL_NV_shader_invocation_reorder_motion:
59925992
{
5993-
HitObject::__glslMakeMotionHitWithIndex(
5993+
HitObject::__glslMakeMotionHitWithIndexNV(
59945994
hitObject,
59955995
topLevel,
59965996
instanceid,
@@ -6036,7 +6036,7 @@ __glsl_extension(GL_EXT_ray_tracing)
60366036
__glsl_extension(GL_NV_shader_invocation_reorder)
60376037
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
60386038
[ForceInline]
6039-
[require(glsl_spirv, ser_raygen_closesthit_miss)]
6039+
[require(glsl_spirv, ser_nv_raygen_closesthit_miss)]
60406040
public void hitObjectRecordMissNV(
60416041
inout hitObjectNV hitObject,
60426042
uint sbtRecordIndex,
@@ -6056,7 +6056,7 @@ __glsl_extension(GL_NV_shader_invocation_reorder)
60566056
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
60576057
__glsl_extension(GL_NV_ray_tracing_motion_blur)
60586058
[ForceInline]
6059-
[require(glsl_spirv, ser_motion_raygen_closesthit_miss)]
6059+
[require(glsl_spirv, ser_nv_motion_raygen_closesthit_miss)]
60606060
public void hitObjectRecordMissMotionNV(
60616061
inout hitObjectNV hitObject,
60626062
uint sbtRecordIndex,
@@ -6077,7 +6077,7 @@ __glsl_extension(GL_EXT_ray_tracing)
60776077
__glsl_extension(GL_NV_shader_invocation_reorder)
60786078
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
60796079
[ForceInline]
6080-
[require(glsl_spirv, ser_raygen_closesthit_miss)]
6080+
[require(glsl_spirv, ser_nv_raygen_closesthit_miss)]
60816081
public void hitObjectRecordEmptyNV(hitObjectNV hitObject)
60826082
{
60836083
hitObject = HitObject::MakeNop();
@@ -6087,7 +6087,7 @@ __glsl_extension(GL_EXT_ray_tracing)
60876087
__glsl_extension(GL_NV_shader_invocation_reorder)
60886088
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
60896089
[ForceInline]
6090-
[require(glsl_spirv, ser_raygen_closesthit_miss)]
6090+
[require(glsl_spirv, ser_nv_raygen_closesthit_miss)]
60916091
public void hitObjectExecuteShaderNV(
60926092
inout hitObjectNV hitObject,
60936093
constexpr int payload)
@@ -6114,7 +6114,7 @@ __glsl_extension(GL_EXT_ray_tracing)
61146114
__glsl_extension(GL_NV_shader_invocation_reorder)
61156115
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
61166116
[ForceInline]
6117-
[require(glsl_spirv, ser_raygen_closesthit_miss)]
6117+
[require(glsl_spirv, ser_nv_raygen_closesthit_miss)]
61186118
public bool hitObjectIsEmptyNV(hitObjectNV hitObject)
61196119
{
61206120
return hitObject.IsNop();
@@ -6124,7 +6124,7 @@ __glsl_extension(GL_EXT_ray_tracing)
61246124
__glsl_extension(GL_NV_shader_invocation_reorder)
61256125
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
61266126
[ForceInline]
6127-
[require(glsl_spirv, ser_raygen_closesthit_miss)]
6127+
[require(glsl_spirv, ser_nv_raygen_closesthit_miss)]
61286128
public bool hitObjectIsMissNV(hitObjectNV hitObject)
61296129
{
61306130
return hitObject.IsMiss();
@@ -6134,7 +6134,7 @@ __glsl_extension(GL_EXT_ray_tracing)
61346134
__glsl_extension(GL_NV_shader_invocation_reorder)
61356135
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
61366136
[ForceInline]
6137-
[require(glsl_spirv, ser_raygen_closesthit_miss)]
6137+
[require(glsl_spirv, ser_nv_raygen_closesthit_miss)]
61386138
public bool hitObjectIsHitNV(hitObjectNV hitObject)
61396139
{
61406140
return hitObject.IsHit();
@@ -6144,7 +6144,7 @@ __glsl_extension(GL_EXT_ray_tracing)
61446144
__glsl_extension(GL_NV_shader_invocation_reorder)
61456145
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
61466146
[ForceInline]
6147-
[require(glsl_spirv, ser_raygen_closesthit_miss)]
6147+
[require(glsl_spirv, ser_nv_raygen_closesthit_miss)]
61486148
public float hitObjectGetRayTMinNV(hitObjectNV hitObject)
61496149
{
61506150
return hitObject.GetRayDesc().TMin;
@@ -6154,7 +6154,7 @@ __glsl_extension(GL_EXT_ray_tracing)
61546154
__glsl_extension(GL_NV_shader_invocation_reorder)
61556155
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
61566156
[ForceInline]
6157-
[require(glsl_spirv, ser_raygen_closesthit_miss)]
6157+
[require(glsl_spirv, ser_nv_raygen_closesthit_miss)]
61586158
public float hitObjectGetRayTMaxNV(hitObjectNV hitObject)
61596159
{
61606160
return hitObject.GetRayDesc().TMax;
@@ -6164,7 +6164,7 @@ __glsl_extension(GL_EXT_ray_tracing)
61646164
__glsl_extension(GL_NV_shader_invocation_reorder)
61656165
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
61666166
[ForceInline]
6167-
[require(glsl_spirv, ser_raygen_closesthit_miss)]
6167+
[require(glsl_spirv, ser_nv_raygen_closesthit_miss)]
61686168
public vec3 hitObjectGetWorldRayOriginNV(hitObjectNV hitObject)
61696169
{
61706170
return hitObject.GetRayDesc().Origin;
@@ -6174,7 +6174,7 @@ __glsl_extension(GL_EXT_ray_tracing)
61746174
__glsl_extension(GL_NV_shader_invocation_reorder)
61756175
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
61766176
[ForceInline]
6177-
[require(glsl_spirv, ser_raygen_closesthit_miss)]
6177+
[require(glsl_spirv, ser_nv_raygen_closesthit_miss)]
61786178
public vec3 hitObjectGetWorldRayDirectionNV(hitObjectNV hitObject)
61796179
{
61806180
return hitObject.GetRayDesc().Direction;
@@ -6184,7 +6184,7 @@ __glsl_extension(GL_EXT_ray_tracing)
61846184
__glsl_extension(GL_NV_shader_invocation_reorder)
61856185
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
61866186
[ForceInline]
6187-
[require(glsl_spirv, ser_raygen_closesthit_miss)]
6187+
[require(glsl_spirv, ser_nv_raygen_closesthit_miss)]
61886188
public vec3 hitObjectGetObjectRayOriginNV(hitObjectNV hitObject)
61896189
{
61906190
return hitObject.GetObjectRayOrigin();
@@ -6194,7 +6194,7 @@ __glsl_extension(GL_EXT_ray_tracing)
61946194
__glsl_extension(GL_NV_shader_invocation_reorder)
61956195
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
61966196
[ForceInline]
6197-
[require(glsl_spirv, ser_raygen_closesthit_miss)]
6197+
[require(glsl_spirv, ser_nv_raygen_closesthit_miss)]
61986198
public vec3 hitObjectGetObjectRayDirectionNV(hitObjectNV hitObject)
61996199
{
62006200
return hitObject.GetObjectRayDirection();
@@ -6204,7 +6204,7 @@ __glsl_extension(GL_EXT_ray_tracing)
62046204
__glsl_extension(GL_NV_shader_invocation_reorder)
62056205
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
62066206
[ForceInline]
6207-
[require(glsl_spirv, ser_raygen_closesthit_miss)]
6207+
[require(glsl_spirv, ser_nv_raygen_closesthit_miss)]
62086208
public mat4x3 hitObjectGetObjectToWorldNV(hitObjectNV hitObject)
62096209
{
62106210
return hitObject.GetObjectToWorld();
@@ -6214,7 +6214,7 @@ __glsl_extension(GL_EXT_ray_tracing)
62146214
__glsl_extension(GL_NV_shader_invocation_reorder)
62156215
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
62166216
[ForceInline]
6217-
[require(glsl_spirv, ser_raygen_closesthit_miss)]
6217+
[require(glsl_spirv, ser_nv_raygen_closesthit_miss)]
62186218
public mat4x3 hitObjectGetWorldToObjectNV(hitObjectNV hitObject)
62196219
{
62206220
return hitObject.GetWorldToObject();
@@ -6224,7 +6224,7 @@ __glsl_extension(GL_EXT_ray_tracing)
62246224
__glsl_extension(GL_NV_shader_invocation_reorder)
62256225
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
62266226
[ForceInline]
6227-
[require(glsl_spirv, ser_raygen_closesthit_miss)]
6227+
[require(glsl_spirv, ser_nv_raygen_closesthit_miss)]
62286228
public int hitObjectGetInstanceCustomIndexNV(hitObjectNV hitObject)
62296229
{
62306230
return hitObject.GetInstanceID();
@@ -6234,7 +6234,7 @@ __glsl_extension(GL_EXT_ray_tracing)
62346234
__glsl_extension(GL_NV_shader_invocation_reorder)
62356235
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
62366236
[ForceInline]
6237-
[require(glsl_spirv, ser_raygen_closesthit_miss)]
6237+
[require(glsl_spirv, ser_nv_raygen_closesthit_miss)]
62386238
public int hitObjectGetInstanceIdNV(hitObjectNV hitObject)
62396239
{
62406240
return hitObject.GetInstanceIndex();
@@ -6244,7 +6244,7 @@ __glsl_extension(GL_EXT_ray_tracing)
62446244
__glsl_extension(GL_NV_shader_invocation_reorder)
62456245
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
62466246
[ForceInline]
6247-
[require(glsl_spirv, ser_raygen_closesthit_miss)]
6247+
[require(glsl_spirv, ser_nv_raygen_closesthit_miss)]
62486248
public int hitObjectGetGeometryIndexNV(hitObjectNV hitObject)
62496249
{
62506250
return hitObject.GetGeometryIndex();
@@ -6254,7 +6254,7 @@ __glsl_extension(GL_EXT_ray_tracing)
62546254
__glsl_extension(GL_NV_shader_invocation_reorder)
62556255
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
62566256
[ForceInline]
6257-
[require(glsl_spirv, ser_raygen_closesthit_miss)]
6257+
[require(glsl_spirv, ser_nv_raygen_closesthit_miss)]
62586258
public int hitObjectGetPrimitiveIndexNV(hitObjectNV hitObject)
62596259
{
62606260
return hitObject.GetPrimitiveIndex();
@@ -6264,7 +6264,7 @@ __glsl_extension(GL_EXT_ray_tracing)
62646264
__glsl_extension(GL_NV_shader_invocation_reorder)
62656265
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
62666266
[ForceInline]
6267-
[require(glsl_spirv, ser_raygen_closesthit_miss)]
6267+
[require(glsl_spirv, ser_nv_raygen_closesthit_miss)]
62686268
public uint hitObjectGetHitKindNV(hitObjectNV hitObject)
62696269
{
62706270
return hitObject.GetHitKind();
@@ -6274,7 +6274,7 @@ __glsl_extension(GL_EXT_ray_tracing)
62746274
__glsl_extension(GL_NV_shader_invocation_reorder)
62756275
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
62766276
[ForceInline]
6277-
[require(glsl_spirv, ser_raygen_closesthit_miss)]
6277+
[require(glsl_spirv, ser_nv_raygen_closesthit_miss)]
62786278
public void hitObjectGetAttributesNV(
62796279
inout hitObjectNV hitObject,
62806280
constexpr int attributeLocation)
@@ -6300,7 +6300,7 @@ __glsl_extension(GL_EXT_ray_tracing)
63006300
__glsl_extension(GL_NV_shader_invocation_reorder)
63016301
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
63026302
[ForceInline]
6303-
[require(glsl_spirv, ser_raygen_closesthit_miss)]
6303+
[require(glsl_spirv, ser_nv_raygen_closesthit_miss)]
63046304
public uvec2 hitObjectGetShaderRecordBufferHandleNV(hitObjectNV hitObject)
63056305
{
63066306
return hitObject.GetShaderRecordBufferHandle();
@@ -6310,7 +6310,7 @@ __glsl_extension(GL_EXT_ray_tracing)
63106310
__glsl_extension(GL_NV_shader_invocation_reorder)
63116311
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
63126312
[ForceInline]
6313-
[require(glsl_spirv, ser_raygen_closesthit_miss)]
6313+
[require(glsl_spirv, ser_nv_raygen_closesthit_miss)]
63146314
public uint hitObjectGetShaderBindingTableRecordIndexNV(hitObjectNV hitObject)
63156315
{
63166316
return hitObject.GetShaderTableIndex();
@@ -6320,7 +6320,7 @@ __glsl_extension(GL_EXT_ray_tracing)
63206320
__glsl_extension(GL_NV_shader_invocation_reorder)
63216321
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
63226322
[ForceInline]
6323-
[require(glsl_spirv, ser_raygen_closesthit_miss)]
6323+
[require(glsl_spirv, ser_nv_raygen_closesthit_miss)]
63246324
public float hitObjectGetCurrentTimeNV(hitObjectNV hitObject)
63256325
{
63266326
return hitObject.GetCurrentTime();
@@ -6330,7 +6330,7 @@ __glsl_extension(GL_EXT_ray_tracing)
63306330
__glsl_extension(GL_NV_shader_invocation_reorder)
63316331
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
63326332
[ForceInline]
6333-
[require(glsl_spirv, ser_raygen)]
6333+
[require(glsl_spirv, ser_nv_raygen)]
63346334
public void reorderThreadNV(uint hint, uint bits)
63356335
{
63366336
ReorderThread(hint, bits);
@@ -6340,7 +6340,7 @@ __glsl_extension(GL_EXT_ray_tracing)
63406340
__glsl_extension(GL_NV_shader_invocation_reorder)
63416341
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
63426342
[ForceInline]
6343-
[require(glsl_spirv, ser_raygen)]
6343+
[require(glsl_spirv, ser_nv_raygen)]
63446344
public void reorderThreadNV(hitObjectNV hitObject)
63456345
{
63466346
ReorderThread(hitObject);
@@ -6350,7 +6350,7 @@ __glsl_extension(GL_EXT_ray_tracing)
63506350
__glsl_extension(GL_NV_shader_invocation_reorder)
63516351
__glsl_extension(GLSL_EXT_buffer_reference_uvec2)
63526352
[ForceInline]
6353-
[require(glsl_spirv, ser_raygen)]
6353+
[require(glsl_spirv, ser_nv_raygen)]
63546354
public void reorderThreadNV(hitObjectNV hitObject, uint hint, uint bits)
63556355
{
63566356
ReorderThread(hitObject, hint, bits);

0 commit comments

Comments
 (0)