summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
authorJay Kwak <82421531+jkwak-work@users.noreply.github.com>2024-12-11 13:28:40 -0800
committerGitHub <noreply@github.com>2024-12-11 13:28:40 -0800
commite50aac13e2c161d672b137a62f6d66820d0f9ff1 (patch)
tree89d30f6c2a63db452a6fe15619a6f148de4bbf39 /source
parentf573c15868234ab6013faf0fc2b93a72fa89f21d (diff)
Update SPIRV submodules (#5815)
* Update SPIRV submodules With the latest SPIR-V submodules, one of tests started failing: tests/gpu-feature/texture/query/footprint/nv-shader-texture-footprint.slang [ForceInline] is added to GLSL texture functions in order to inline %true and %false. Without it, the value was indirectly passed down via a function parameter, which broke the existing test. Also the test is modified to use -DAG, because the order unpredictably changed for Grad variants due to additional [ForceInline] marks for Gradient functions. A new validation check in SPIRV-Tools was causing a validation error: ``` error: line 324: [VUID-StandaloneSpirv-OpTypeImage-06924] Cannot store to OpTypeImage, OpTypeSampler, OpTypeSampledImage, or OpTypeAccelerationStructureKHR objects OpStore %17 %242 ``` It appears that this is a bug on SPIRV-Tools. A proper fix is proposed to Khronos/SPIRV-Tools: https://github.com/KhronosGroup/SPIRV-Tools/pull/5914 But this commit uses `shader-slang/SPIRV-Tools/fix_for_OpImageSampleFootprintNV` with a custom fix as a temporary solution: https://github.com/shader-slang/SPIRV-Tools/tree/fix_for_OpImageSampleFootprintNV
Diffstat (limited to 'source')
-rw-r--r--source/slang/hlsl.meta.slang28
1 files changed, 21 insertions, 7 deletions
diff --git a/source/slang/hlsl.meta.slang b/source/slang/hlsl.meta.slang
index 31500f028..35b88f9dc 100644
--- a/source/slang/hlsl.meta.slang
+++ b/source/slang/hlsl.meta.slang
@@ -19785,6 +19785,7 @@ ${
}
[__NoSideEffect]
+ [ForceInline]
__glsl_version(450)
__glsl_extension(GL_NV_shader_texture_footprint)
[require(glsl_spirv, texturefootprint)]
@@ -19803,7 +19804,8 @@ ${
return spirv_asm {
OpCapability ImageFootprintNV;
OpExtension "SPV_NV_shader_image_footprint";
- %resultVal:$$__FootprintData = OpImageSampleFootprintNV &this $coords $granularity $useCoarseLevel;
+ %sampledImage : __sampledImageType(this) = OpSampledImage $this $sampler;
+ %resultVal:$$__FootprintData = OpImageSampleFootprintNV %sampledImage $coords $granularity $useCoarseLevel;
OpStore &footprint %resultVal;
result:$$bool = OpCompositeExtract %resultVal 0;
};
@@ -19811,6 +19813,7 @@ ${
}
[__NoSideEffect]
+ [ForceInline]
__glsl_version(450)
__glsl_extension(GL_NV_shader_texture_footprint)
[require(glsl_spirv, texturefootprint)]
@@ -19830,7 +19833,8 @@ ${
return spirv_asm {
OpCapability ImageFootprintNV;
OpExtension "SPV_NV_shader_image_footprint";
- %resultVal:$$__FootprintData = OpImageSampleFootprintNV &this $coords $granularity $useCoarseLevel Bias $bias;
+ %sampledImage : __sampledImageType(this) = OpSampledImage $this $sampler;
+ %resultVal:$$__FootprintData = OpImageSampleFootprintNV %sampledImage $coords $granularity $useCoarseLevel Bias $bias;
OpStore &footprint %resultVal;
result:$$bool = OpCompositeExtract %resultVal 0;
};
@@ -19838,6 +19842,7 @@ ${
}
[__NoSideEffect]
+ [ForceInline]
__glsl_version(450)
__glsl_extension(GL_NV_shader_texture_footprint)
__glsl_extension(GL_ARB_sparse_texture_clamp)
@@ -19859,7 +19864,8 @@ ${
OpCapability ImageFootprintNV;
OpCapability MinLod;
OpExtension "SPV_NV_shader_image_footprint";
- %resultVal:$$__FootprintData = OpImageSampleFootprintNV &this $coords $granularity $useCoarseLevel MinLod $lodClamp;
+ %sampledImage : __sampledImageType(this) = OpSampledImage $this $sampler;
+ %resultVal:$$__FootprintData = OpImageSampleFootprintNV %sampledImage $coords $granularity $useCoarseLevel MinLod $lodClamp;
OpStore &footprint %resultVal;
result:$$bool = OpCompositeExtract %resultVal 0;
};
@@ -19867,6 +19873,7 @@ ${
}
[__NoSideEffect]
+ [ForceInline]
__glsl_version(450)
__glsl_extension(GL_NV_shader_texture_footprint)
__glsl_extension(GL_ARB_sparse_texture_clamp)
@@ -19889,7 +19896,8 @@ ${
OpCapability ImageFootprintNV;
OpCapability MinLod;
OpExtension "SPV_NV_shader_image_footprint";
- %resultVal:$$__FootprintData = OpImageSampleFootprintNV &this $coords $granularity $useCoarseLevel Bias|MinLod $bias $lodClamp;
+ %sampledImage : __sampledImageType(this) = OpSampledImage $this $sampler;
+ %resultVal:$$__FootprintData = OpImageSampleFootprintNV %sampledImage $coords $granularity $useCoarseLevel Bias|MinLod $bias $lodClamp;
OpStore &footprint %resultVal;
result:$$bool = OpCompositeExtract %resultVal 0;
};
@@ -19897,6 +19905,7 @@ ${
}
[__NoSideEffect]
+ [ForceInline]
__glsl_version(450)
__glsl_extension(GL_NV_shader_texture_footprint)
[__requiresNVAPI]
@@ -19917,7 +19926,8 @@ ${
return spirv_asm {
OpCapability ImageFootprintNV;
OpExtension "SPV_NV_shader_image_footprint";
- %resultVal:$$__FootprintData = OpImageSampleFootprintNV &this $coords $granularity $useCoarseLevel Lod $lod;
+ %sampledImage : __sampledImageType(this) = OpSampledImage $this $sampler;
+ %resultVal:$$__FootprintData = OpImageSampleFootprintNV %sampledImage $coords $granularity $useCoarseLevel Lod $lod;
OpStore &footprint %resultVal;
result:$$bool = OpCompositeExtract %resultVal 0;
};
@@ -19929,6 +19939,7 @@ ${{{
// Texture sampling with gradient is only available for 2D textures.
}}}
[__NoSideEffect]
+ [ForceInline]
__glsl_version(450)
__glsl_extension(GL_NV_shader_texture_footprint)
[__requiresNVAPI]
@@ -19950,7 +19961,8 @@ ${{{
return spirv_asm {
OpCapability ImageFootprintNV;
OpExtension "SPV_NV_shader_image_footprint";
- %resultVal:$$__FootprintData = OpImageSampleFootprintNV &this $coords $granularity $useCoarseLevel Grad $dx $dy;
+ %sampledImage : __sampledImageType(this) = OpSampledImage $this $sampler;
+ %resultVal:$$__FootprintData = OpImageSampleFootprintNV %sampledImage $coords $granularity $useCoarseLevel Grad $dx $dy;
OpStore &footprint %resultVal;
result:$$bool = OpCompositeExtract %resultVal 0;
};
@@ -19958,6 +19970,7 @@ ${{{
}
[__NoSideEffect]
+ [ForceInline]
__glsl_version(450)
__glsl_extension(GL_NV_shader_texture_footprint)
__glsl_extension(GL_ARB_sparse_texture_clamp)
@@ -19981,7 +19994,8 @@ ${{{
OpCapability ImageFootprintNV;
OpCapability MinLod;
OpExtension "SPV_NV_shader_image_footprint";
- %resultVal:$$__FootprintData = OpImageSampleFootprintNV &this $coords $granularity $useCoarseLevel Grad|MinLod $dx $dy $lodClamp;
+ %sampledImage : __sampledImageType(this) = OpSampledImage $this $sampler;
+ %resultVal:$$__FootprintData = OpImageSampleFootprintNV %sampledImage $coords $granularity $useCoarseLevel Grad|MinLod $dx $dy $lodClamp;
OpStore &footprint %resultVal;
result:$$bool = OpCompositeExtract %resultVal 0;
};