diff options
| author | Jay Kwak <82421531+jkwak-work@users.noreply.github.com> | 2024-12-11 13:28:40 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-11 13:28:40 -0800 |
| commit | e50aac13e2c161d672b137a62f6d66820d0f9ff1 (patch) | |
| tree | 89d30f6c2a63db452a6fe15619a6f148de4bbf39 /source | |
| parent | f573c15868234ab6013faf0fc2b93a72fa89f21d (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.slang | 28 |
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; }; |
