@@ -4296,7 +4296,7 @@ __generic<T : __BuiltinType>
4296
4296
case glsl:
4297
4297
{
4298
4298
if (__type_equals< T, float > ())
4299
- __requireGLSLExtension (" GL_EXT_shader_atomic_float" );
4299
+ __requireTargetExtension (" GL_EXT_shader_atomic_float" );
4300
4300
}
4301
4301
case spirv:
4302
4302
if (__type_equals< T, float > ())
@@ -4318,7 +4318,7 @@ __generic<T : __BuiltinType>
4318
4318
case glsl:
4319
4319
{
4320
4320
if (__type_equals< T, float > ())
4321
- __requireGLSLExtension (" GL_EXT_shader_atomic_float2" );
4321
+ __requireTargetExtension (" GL_EXT_shader_atomic_float2" );
4322
4322
}
4323
4323
case spirv:
4324
4324
if (__type_equals< T, float > ())
@@ -4758,7 +4758,7 @@ void requireGLSLExtForRayTracingBuiltin()
4758
4758
__target_switch
4759
4759
{
4760
4760
case glsl:
4761
- __requireGLSLExtension (" GL_EXT_ray_tracing" );
4761
+ __requireTargetExtension (" GL_EXT_ray_tracing" );
4762
4762
__intrinsic_asm " " ;
4763
4763
default :
4764
4764
return ;
@@ -6304,30 +6304,30 @@ public void traceRayMotionNV(
6304
6304
__generic < T : __BuiltinType>
6305
6305
[ForceInline]
6306
6306
void typeRequireChecks_shader_subgroup_GLSL() {
6307
- // the following is a seperate function call, since else the `__requireGLSLExtension ` and associated __intrinsic_asm is ignored if the calling function also calls an __intrinsic_asm
6307
+ // the following is a seperate function call, since else the `__requireTargetExtension ` and associated __intrinsic_asm is ignored if the calling function also calls an __intrinsic_asm
6308
6308
__target_switch
6309
6309
{
6310
6310
case glsl:
6311
6311
if (__type_equals< T, half > ()
6312
6312
|| __type_equals< T, float16_t> ()
6313
- ) __requireGLSLExtension (" GL_EXT_shader_subgroup_extended_types_float16" );
6313
+ ) __requireTargetExtension (" GL_EXT_shader_subgroup_extended_types_float16" );
6314
6314
else if (__type_equals< T, uint8_t > ()
6315
6315
|| __type_equals< T, int8_t > ()
6316
- ) __requireGLSLExtension (" GL_EXT_shader_subgroup_extended_types_int8" );
6316
+ ) __requireTargetExtension (" GL_EXT_shader_subgroup_extended_types_int8" );
6317
6317
else if (__type_equals< T, uint16_t > ()
6318
6318
|| __type_equals< T, int16_t > ()
6319
- ) __requireGLSLExtension (" GL_EXT_shader_subgroup_extended_types_int16" );
6319
+ ) __requireTargetExtension (" GL_EXT_shader_subgroup_extended_types_int16" );
6320
6320
else if (__type_equals< T, uint64_t > ()
6321
6321
|| __type_equals< T, int64_t > ()
6322
- ) __requireGLSLExtension (" GL_EXT_shader_subgroup_extended_types_int64" );
6322
+ ) __requireTargetExtension (" GL_EXT_shader_subgroup_extended_types_int64" );
6323
6323
6324
6324
__intrinsic_asm " " ;
6325
6325
}
6326
6326
}
6327
6327
6328
6328
__generic < T : __BuiltinType>
6329
6329
void shader_subgroup_preamble() {
6330
- // checks needed for shader_subgroup functions; __requireGLSLExtension does not work
6330
+ // checks needed for shader_subgroup functions; __requireTargetExtension does not work
6331
6331
// (does not add the ext specified correctly to the compile output; using extended type
6332
6332
// will result in error for using the type)
6333
6333
__target_switch
@@ -6347,14 +6347,14 @@ void requireGLSLExtForSubgroupBasicBuiltin() {
6347
6347
__target_switch
6348
6348
{
6349
6349
case glsl:
6350
- __requireGLSLExtension (" GL_KHR_shader_subgroup_basic" );
6350
+ __requireTargetExtension (" GL_KHR_shader_subgroup_basic" );
6351
6351
__intrinsic_asm " " ;
6352
6352
default :
6353
6353
return ;
6354
6354
}
6355
6355
}
6356
6356
6357
- [require(cpp_cuda_glsl_hlsl_spirv_wgsl , subgroup_basic)]
6357
+ [require(cpp_cuda_glsl_hlsl_metal_spirv_wgsl , subgroup_basic)]
6358
6358
void setupExtForSubgroupBasicBuiltIn() {
6359
6359
__target_switch
6360
6360
{
@@ -6371,7 +6371,7 @@ void requireGLSLExtForSubgroupBallotBuiltin() {
6371
6371
__target_switch
6372
6372
{
6373
6373
case glsl:
6374
- __requireGLSLExtension (" GL_KHR_shader_subgroup_ballot" );
6374
+ __requireTargetExtension (" GL_KHR_shader_subgroup_ballot" );
6375
6375
__intrinsic_asm " " ;
6376
6376
default :
6377
6377
return ;
@@ -6429,7 +6429,8 @@ public property uint gl_SubgroupID
6429
6429
6430
6430
public property uint gl_SubgroupSize
6431
6431
{
6432
- [require(cpp_cuda_glsl_hlsl_spirv_wgsl, subgroup_basic)]
6432
+ [ForceInline]
6433
+ [require(cpp_cuda_glsl_hlsl_metal_spirv_wgsl, subgroup_basic)]
6433
6434
get {
6434
6435
setupExtForSubgroupBasicBuiltIn();
6435
6436
return WaveGetLaneCount();
@@ -6438,7 +6439,8 @@ public property uint gl_SubgroupSize
6438
6439
6439
6440
public property uint gl_SubgroupInvocationID
6440
6441
{
6441
- [require(cpp_cuda_glsl_hlsl_spirv_wgsl, subgroup_basic)]
6442
+ [ForceInline]
6443
+ [require(cpp_cuda_glsl_hlsl_metal_spirv_wgsl, subgroup_basic)]
6442
6444
get {
6443
6445
setupExtForSubgroupBasicBuiltIn();
6444
6446
return WaveGetLaneIndex();
@@ -8388,8 +8390,8 @@ void typeRequireChecks_atomic_using_float0_tier()
8388
8390
{
8389
8391
case glsl:
8390
8392
{
8391
- if (__type_equals< T, uint64_t > () || __type_equals< T, int64_t > ())
8392
- __requireGLSLExtension (" GL_EXT_shader_atomic_int64" );
8393
+ if (__type_equals< T, uint64_t > () || __type_equals< T, int64_t > ())
8394
+ __requireTargetExtension (" GL_EXT_shader_atomic_int64" );
8393
8395
}
8394
8396
case spirv:
8395
8397
return ;
@@ -8405,16 +8407,16 @@ void typeRequireChecks_atomic_using_float1_tier()
8405
8407
case glsl:
8406
8408
{
8407
8409
if (__type_equals< T, float > ())
8408
- __requireGLSLExtension (" GL_EXT_shader_atomic_float" );
8410
+ __requireTargetExtension (" GL_EXT_shader_atomic_float" );
8409
8411
else if (__type_equals< T, half > () || __type_equals< T, float16_t> ())
8410
8412
{
8411
- __requireGLSLExtension (" GL_EXT_shader_atomic_float2" );
8412
- __requireGLSLExtension (" GL_EXT_shader_explicit_arithmetic_types" );
8413
+ __requireTargetExtension (" GL_EXT_shader_atomic_float2" );
8414
+ __requireTargetExtension (" GL_EXT_shader_explicit_arithmetic_types" );
8413
8415
}
8414
8416
else if (__type_equals< T, double > ())
8415
- __requireGLSLExtension (" GL_EXT_shader_atomic_float" );
8417
+ __requireTargetExtension (" GL_EXT_shader_atomic_float" );
8416
8418
else if (__type_equals< T, uint64_t > () || __type_equals< T, int64_t > ())
8417
- __requireGLSLExtension (" GL_EXT_shader_atomic_int64" );
8419
+ __requireTargetExtension (" GL_EXT_shader_atomic_int64" );
8418
8420
}
8419
8421
case spirv:
8420
8422
return ;
@@ -8430,16 +8432,16 @@ void typeRequireChecks_atomic_using_float2_tier()
8430
8432
case glsl:
8431
8433
{
8432
8434
if (__type_equals< T, float > ())
8433
- __requireGLSLExtension (" GL_EXT_shader_atomic_float2" );
8435
+ __requireTargetExtension (" GL_EXT_shader_atomic_float2" );
8434
8436
else if (__type_equals< T, half > () || __type_equals< T, float16_t> ())
8435
8437
{
8436
- __requireGLSLExtension (" GL_EXT_shader_atomic_float2" );
8437
- __requireGLSLExtension (" GL_EXT_shader_explicit_arithmetic_types" );
8438
+ __requireTargetExtension (" GL_EXT_shader_atomic_float2" );
8439
+ __requireTargetExtension (" GL_EXT_shader_explicit_arithmetic_types" );
8438
8440
}
8439
8441
else if (__type_equals< T, double > ())
8440
- __requireGLSLExtension (" GL_EXT_shader_atomic_float2" );
8441
- else if (__type_equals< T, uint64_t > () || __type_equals< T, int64_t > ())
8442
- __requireGLSLExtension (" GL_EXT_shader_atomic_int64" );
8442
+ __requireTargetExtension (" GL_EXT_shader_atomic_float2" );
8443
+ else if (__type_equals< T, uint64_t > () || __type_equals< T, int64_t > ())
8444
+ __requireTargetExtension (" GL_EXT_shader_atomic_int64" );
8443
8445
}
8444
8446
case spirv:
8445
8447
return ;
0 commit comments