forked from KhronosGroup/glslang
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request KhronosGroup#2105 from jeffbolznv/nonunif
Allow nonuniformEXT() on sampler types
- Loading branch information
Showing
14 changed files
with
245 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
spv.nonuniform3.frag | ||
// Module Version 10000 | ||
// Generated by (magic number): 80008 | ||
// Id's are bound by 32 | ||
|
||
Capability Shader | ||
Capability ShaderNonUniformEXT | ||
Capability RuntimeDescriptorArrayEXT | ||
Extension "SPV_EXT_descriptor_indexing" | ||
1: ExtInstImport "GLSL.std.450" | ||
MemoryModel Logical GLSL450 | ||
EntryPoint Fragment 4 "main" 9 16 | ||
ExecutionMode 4 OriginUpperLeft | ||
Source GLSL 450 | ||
SourceExtension "GL_EXT_nonuniform_qualifier" | ||
Name 4 "main" | ||
Name 9 "FragColor" | ||
Name 13 "uTex" | ||
Name 16 "Index" | ||
Name 23 "uSamp" | ||
Decorate 9(FragColor) Location 0 | ||
Decorate 13(uTex) DescriptorSet 0 | ||
Decorate 13(uTex) Binding 0 | ||
Decorate 16(Index) Flat | ||
Decorate 16(Index) Location 0 | ||
Decorate 23(uSamp) DescriptorSet 1 | ||
Decorate 23(uSamp) Binding 0 | ||
Decorate 27 DecorationNonUniformEXT | ||
2: TypeVoid | ||
3: TypeFunction 2 | ||
6: TypeFloat 32 | ||
7: TypeVector 6(float) 4 | ||
8: TypePointer Output 7(fvec4) | ||
9(FragColor): 8(ptr) Variable Output | ||
10: TypeImage 6(float) 2D sampled format:Unknown | ||
11: TypeRuntimeArray 10 | ||
12: TypePointer UniformConstant 11 | ||
13(uTex): 12(ptr) Variable UniformConstant | ||
14: TypeInt 32 1 | ||
15: TypePointer Input 14(int) | ||
16(Index): 15(ptr) Variable Input | ||
18: TypePointer UniformConstant 10 | ||
21: TypeSampler | ||
22: TypePointer UniformConstant 21 | ||
23(uSamp): 22(ptr) Variable UniformConstant | ||
25: TypeSampledImage 10 | ||
28: TypeVector 6(float) 2 | ||
29: 6(float) Constant 1056964608 | ||
30: 28(fvec2) ConstantComposite 29 29 | ||
4(main): 2 Function None 3 | ||
5: Label | ||
17: 14(int) Load 16(Index) | ||
19: 18(ptr) AccessChain 13(uTex) 17 | ||
20: 10 Load 19 | ||
24: 21 Load 23(uSamp) | ||
26: 25 SampledImage 20 24 | ||
27: 25 CopyObject 26 | ||
31: 7(fvec4) ImageSampleImplicitLod 27 30 | ||
Store 9(FragColor) 31 | ||
Return | ||
FunctionEnd |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
spv.nonuniform4.frag | ||
// Module Version 10000 | ||
// Generated by (magic number): 80008 | ||
// Id's are bound by 24 | ||
|
||
Capability Shader | ||
Capability ImageBuffer | ||
Capability ShaderNonUniformEXT | ||
Capability RuntimeDescriptorArrayEXT | ||
Capability StorageTexelBufferArrayNonUniformIndexingEXT | ||
Extension "SPV_EXT_descriptor_indexing" | ||
1: ExtInstImport "GLSL.std.450" | ||
MemoryModel Logical GLSL450 | ||
EntryPoint Fragment 4 "main" 13 | ||
ExecutionMode 4 OriginUpperLeft | ||
Source GLSL 450 | ||
SourceExtension "GL_EXT_nonuniform_qualifier" | ||
Name 4 "main" | ||
Name 10 "data" | ||
Name 13 "rIndex" | ||
Decorate 10(data) DescriptorSet 0 | ||
Decorate 10(data) Binding 4 | ||
Decorate 13(rIndex) Flat | ||
Decorate 13(rIndex) Location 3 | ||
Decorate 15 DecorationNonUniformEXT | ||
Decorate 21 DecorationNonUniformEXT | ||
2: TypeVoid | ||
3: TypeFunction 2 | ||
6: TypeInt 32 0 | ||
7: TypeImage 6(int) Buffer nonsampled format:R32ui | ||
8: TypeRuntimeArray 7 | ||
9: TypePointer UniformConstant 8 | ||
10(data): 9(ptr) Variable UniformConstant | ||
11: TypeInt 32 1 | ||
12: TypePointer Input 11(int) | ||
13(rIndex): 12(ptr) Variable Input | ||
16: TypePointer UniformConstant 7 | ||
18: 11(int) Constant 0 | ||
19: 6(int) Constant 0 | ||
20: TypePointer Image 6(int) | ||
22: 6(int) Constant 1 | ||
4(main): 2 Function None 3 | ||
5: Label | ||
14: 11(int) Load 13(rIndex) | ||
15: 11(int) CopyObject 14 | ||
17: 16(ptr) AccessChain 10(data) 15 | ||
21: 20(ptr) ImageTexelPointer 17 18 19 | ||
23: 6(int) AtomicIAdd 21 22 19 19 | ||
Return | ||
FunctionEnd |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
spv.nonuniform5.frag | ||
// Module Version 10000 | ||
// Generated by (magic number): 80008 | ||
// Id's are bound by 23 | ||
|
||
Capability Shader | ||
Capability ShaderNonUniformEXT | ||
Capability RuntimeDescriptorArrayEXT | ||
Capability UniformBufferArrayNonUniformIndexingEXT | ||
Extension "SPV_EXT_descriptor_indexing" | ||
1: ExtInstImport "GLSL.std.450" | ||
MemoryModel Logical GLSL450 | ||
EntryPoint Fragment 4 "main" 9 16 | ||
ExecutionMode 4 OriginUpperLeft | ||
Source GLSL 450 | ||
SourceExtension "GL_EXT_nonuniform_qualifier" | ||
Name 4 "main" | ||
Name 9 "FragColor" | ||
Name 10 "UBO" | ||
MemberName 10(UBO) 0 "v" | ||
Name 13 "ubos" | ||
Name 16 "Index" | ||
Decorate 9(FragColor) Location 0 | ||
MemberDecorate 10(UBO) 0 Offset 0 | ||
Decorate 10(UBO) Block | ||
Decorate 13(ubos) DescriptorSet 0 | ||
Decorate 13(ubos) Binding 0 | ||
Decorate 16(Index) Flat | ||
Decorate 16(Index) Location 0 | ||
Decorate 18 DecorationNonUniformEXT | ||
Decorate 21 DecorationNonUniformEXT | ||
Decorate 22 DecorationNonUniformEXT | ||
2: TypeVoid | ||
3: TypeFunction 2 | ||
6: TypeFloat 32 | ||
7: TypeVector 6(float) 4 | ||
8: TypePointer Output 7(fvec4) | ||
9(FragColor): 8(ptr) Variable Output | ||
10(UBO): TypeStruct 7(fvec4) | ||
11: TypeRuntimeArray 10(UBO) | ||
12: TypePointer Uniform 11 | ||
13(ubos): 12(ptr) Variable Uniform | ||
14: TypeInt 32 1 | ||
15: TypePointer Input 14(int) | ||
16(Index): 15(ptr) Variable Input | ||
19: 14(int) Constant 0 | ||
20: TypePointer Uniform 7(fvec4) | ||
4(main): 2 Function None 3 | ||
5: Label | ||
17: 14(int) Load 16(Index) | ||
18: 14(int) CopyObject 17 | ||
21: 20(ptr) AccessChain 13(ubos) 18 19 | ||
22: 7(fvec4) Load 21 | ||
Store 9(FragColor) 22 | ||
Return | ||
FunctionEnd |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
#version 450 | ||
#extension GL_EXT_nonuniform_qualifier : require | ||
layout(set = 0, binding = 0) uniform texture2D uTex[]; | ||
layout(set = 1, binding = 0) uniform sampler uSamp; | ||
layout(location = 0) flat in int Index; | ||
layout(location = 0) out vec4 FragColor; | ||
void main() | ||
{ | ||
FragColor = texture(nonuniformEXT(sampler2D(uTex[Index], uSamp)), vec2(0.5)); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#version 450 | ||
#extension GL_EXT_nonuniform_qualifier : require | ||
layout(set=0,binding=4,r32ui) uniform uimageBuffer data[]; | ||
layout(location = 3) in flat int rIndex; | ||
void main() | ||
{ | ||
imageAtomicAdd(data[nonuniformEXT(rIndex)], 0, 0); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
#version 450 | ||
#extension GL_EXT_nonuniform_qualifier : require | ||
|
||
layout(location = 0) flat in int Index; | ||
layout(location = 0) out vec4 FragColor; | ||
|
||
layout(set = 0, binding = 0) uniform UBO | ||
{ | ||
vec4 v; | ||
} ubos[]; | ||
|
||
void main() | ||
{ | ||
FragColor = ubos[nonuniformEXT(Index)].v; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters