Add GL_EXT_texture_shadow_lod support

Closes #3302.
This commit is contained in:
Nathaniel Cesario 2023-08-11 15:19:35 -06:00 committed by arcady-lunarg
parent 3787b6947f
commit ffefbcd9f3
10 changed files with 213 additions and 0 deletions

View file

@ -0,0 +1,6 @@
spv.ext.texture_shadow_lod.error.frag
ERROR: 0:11: 'textureLod' : required extension not requested: GL_EXT_texture_shadow_lod
ERROR: 1 compilation errors. No code generated.
SPIR-V is not generated for failed compile or link

View file

@ -0,0 +1,94 @@
spv.ext.texture_shadow_lod.frag
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 59
Capability Shader
Capability SampledCubeArray
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 8 16
ExecutionMode 4 OriginUpperLeft
Source GLSL 450
SourceExtension "GL_EXT_texture_shadow_lod"
Name 4 "main"
Name 8 "c"
Name 12 "s2da"
Name 16 "tc"
Name 24 "sca"
Name 47 "sc"
Decorate 8(c) Location 0
Decorate 12(s2da) DescriptorSet 0
Decorate 12(s2da) Binding 0
Decorate 16(tc) Location 0
Decorate 24(sca) DescriptorSet 0
Decorate 24(sca) Binding 1
Decorate 47(sc) DescriptorSet 0
Decorate 47(sc) Binding 2
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypePointer Output 6(float)
8(c): 7(ptr) Variable Output
9: TypeImage 6(float) 2D depth array sampled format:Unknown
10: TypeSampledImage 9
11: TypePointer UniformConstant 10
12(s2da): 11(ptr) Variable UniformConstant
14: TypeVector 6(float) 4
15: TypePointer Input 14(fvec4)
16(tc): 15(ptr) Variable Input
18: 6(float) Constant 0
21: TypeImage 6(float) Cube depth array sampled format:Unknown
22: TypeSampledImage 21
23: TypePointer UniformConstant 22
24(sca): 23(ptr) Variable UniformConstant
30: TypeInt 32 1
31: TypeVector 30(int) 2
32: 30(int) Constant 0
33: 31(ivec2) ConstantComposite 32 32
44: TypeImage 6(float) Cube depth sampled format:Unknown
45: TypeSampledImage 44
46: TypePointer UniformConstant 45
47(sc): 46(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
13: 10 Load 12(s2da)
17: 14(fvec4) Load 16(tc)
19: 6(float) CompositeExtract 17 3
20: 6(float) ImageSampleDrefImplicitLod 13 17 19 Bias 18
Store 8(c) 20
25: 22 Load 24(sca)
26: 14(fvec4) Load 16(tc)
27: 6(float) ImageSampleDrefImplicitLod 25 26 18
Store 8(c) 27
28: 10 Load 12(s2da)
29: 14(fvec4) Load 16(tc)
34: 6(float) CompositeExtract 29 3
35: 6(float) ImageSampleDrefImplicitLod 28 29 34 ConstOffset 33
Store 8(c) 35
36: 10 Load 12(s2da)
37: 14(fvec4) Load 16(tc)
38: 6(float) CompositeExtract 37 3
39: 6(float) ImageSampleDrefImplicitLod 36 37 38 Bias ConstOffset 18 33
Store 8(c) 39
40: 10 Load 12(s2da)
41: 14(fvec4) Load 16(tc)
42: 6(float) CompositeExtract 41 3
43: 6(float) ImageSampleDrefExplicitLod 40 41 42 Lod 18
Store 8(c) 43
48: 45 Load 47(sc)
49: 14(fvec4) Load 16(tc)
50: 6(float) CompositeExtract 49 3
51: 6(float) ImageSampleDrefExplicitLod 48 49 50 Lod 18
Store 8(c) 51
52: 22 Load 24(sca)
53: 14(fvec4) Load 16(tc)
54: 6(float) ImageSampleDrefExplicitLod 52 53 18 Lod 18
Store 8(c) 54
55: 10 Load 12(s2da)
56: 14(fvec4) Load 16(tc)
57: 6(float) CompositeExtract 56 3
58: 6(float) ImageSampleDrefExplicitLod 55 56 57 Lod ConstOffset 18 33
Store 8(c) 58
Return
FunctionEnd

View file

@ -0,0 +1,13 @@
#version 450
layout(binding = 0) uniform sampler2DArrayShadow s2da;
layout(location = 0) out vec4 c_out;
layout(location = 0) in vec4 tc;
void main()
{
float c = textureLod(s2da, tc, 0);
c_out = vec4(c);
}

View file

@ -0,0 +1,21 @@
#version 450
#extension GL_EXT_texture_shadow_lod : enable
layout(binding = 0) uniform sampler2DArrayShadow s2da;
layout(binding = 1) uniform samplerCubeArrayShadow sca;
layout(binding = 2) uniform samplerCubeShadow sc;
layout(location = 0) out float c;
layout(location = 0) in vec4 tc;
void main() {
c = texture(s2da, tc, 0.0);
c = texture(sca, tc, 0.0, 0.0);
c = textureOffset(s2da, tc, ivec2(0.0));
c = textureOffset(s2da, tc, ivec2(0.0), 0.0);
c = textureLod(s2da, tc, 0.0);
c = textureLod(sc, tc, 0.0);
c = textureLod(sca, tc, 0.0, 0.0);
c = textureLodOffset(s2da, tc, 0.0, ivec2(0.0));
}