Commit bf1537f4 by steve-lunarg

WIP: HLSL: force uncombined flag off for Buffer<>

parent f36542f4
...@@ -95,7 +95,7 @@ gl_FragCoord origin is upper left ...@@ -95,7 +95,7 @@ gl_FragCoord origin is upper left
0:20 0 (const int) 0:20 0 (const int)
0:? Linker Objects 0:? Linker Objects
0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos})
0:? 'g_tTexbfs' (layout( r32f) uniform samplerBuffer) 0:? 'g_tTexbfs' (layout( r32f) uniform textureBuffer)
0:? 'g_tTex1df4' ( uniform texture1D) 0:? 'g_tTex1df4' ( uniform texture1D)
0:? 'color' (layout( location=0) out 4-component vector of float) 0:? 'color' (layout( location=0) out 4-component vector of float)
...@@ -199,13 +199,13 @@ gl_FragCoord origin is upper left ...@@ -199,13 +199,13 @@ gl_FragCoord origin is upper left
0:20 0 (const int) 0:20 0 (const int)
0:? Linker Objects 0:? Linker Objects
0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos}) 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2, uniform uint upos, uniform float fpos})
0:? 'g_tTexbfs' (layout( r32f) uniform samplerBuffer) 0:? 'g_tTexbfs' (layout( r32f) uniform textureBuffer)
0:? 'g_tTex1df4' ( uniform texture1D) 0:? 'g_tTex1df4' ( uniform texture1D)
0:? 'color' (layout( location=0) out 4-component vector of float) 0:? 'color' (layout( location=0) out 4-component vector of float)
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 81 // Id's are bound by 80
Capability Shader Capability Shader
Capability Sampled1D Capability Sampled1D
...@@ -242,7 +242,7 @@ gl_FragCoord origin is upper left ...@@ -242,7 +242,7 @@ gl_FragCoord origin is upper left
Name 57 "sizeQueryTemp" Name 57 "sizeQueryTemp"
Name 66 "ps_output" Name 66 "ps_output"
Name 74 "color" Name 74 "color"
Name 80 "g_tTexbfs" Name 79 "g_tTexbfs"
MemberDecorate 17($Global) 0 Offset 0 MemberDecorate 17($Global) 0 Offset 0
MemberDecorate 17($Global) 1 Offset 4 MemberDecorate 17($Global) 1 Offset 4
MemberDecorate 17($Global) 2 Offset 8 MemberDecorate 17($Global) 2 Offset 8
...@@ -257,7 +257,7 @@ gl_FragCoord origin is upper left ...@@ -257,7 +257,7 @@ gl_FragCoord origin is upper left
Decorate 19 DescriptorSet 0 Decorate 19 DescriptorSet 0
Decorate 31(g_tTex1df4) DescriptorSet 0 Decorate 31(g_tTex1df4) DescriptorSet 0
Decorate 74(color) Location 0 Decorate 74(color) Location 0
Decorate 80(g_tTexbfs) DescriptorSet 0 Decorate 79(g_tTexbfs) DescriptorSet 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
...@@ -289,9 +289,8 @@ gl_FragCoord origin is upper left ...@@ -289,9 +289,8 @@ gl_FragCoord origin is upper left
73: TypePointer Output 7(fvec4) 73: TypePointer Output 7(fvec4)
74(color): 73(ptr) Variable Output 74(color): 73(ptr) Variable Output
77: TypeImage 6(float) Buffer sampled format:R32f 77: TypeImage 6(float) Buffer sampled format:R32f
78: TypeSampledImage 77 78: TypePointer UniformConstant 77
79: TypePointer UniformConstant 78 79(g_tTexbfs): 78(ptr) Variable UniformConstant
80(g_tTexbfs): 79(ptr) Variable UniformConstant
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
75:8(PS_OUTPUT) FunctionCall 10(@main() 75:8(PS_OUTPUT) FunctionCall 10(@main()
......
...@@ -7,7 +7,7 @@ Shader version: 450 ...@@ -7,7 +7,7 @@ Shader version: 450
0:? Sequence 0:? Sequence
0:5 Branch: Return with expression 0:5 Branch: Return with expression
0:5 textureFetch ( temp 4-component vector of float) 0:5 textureFetch ( temp 4-component vector of float)
0:5 'Position' (layout( rgba32f) uniform samplerBuffer) 0:5 'Position' (layout( rgba32f) uniform textureBuffer)
0:5 Convert uint to int ( temp int) 0:5 Convert uint to int ( temp int)
0:5 'Index' ( in uint) 0:5 'Index' ( in uint)
0:9 Function Definition: @RealEntrypoint(u1; ( temp 4-component vector of float) 0:9 Function Definition: @RealEntrypoint(u1; ( temp 4-component vector of float)
...@@ -28,7 +28,7 @@ Shader version: 450 ...@@ -28,7 +28,7 @@ Shader version: 450
0:9 Function Call: @RealEntrypoint(u1; ( temp 4-component vector of float) 0:9 Function Call: @RealEntrypoint(u1; ( temp 4-component vector of float)
0:? 'Index' ( temp uint) 0:? 'Index' ( temp uint)
0:? Linker Objects 0:? Linker Objects
0:? 'Position' (layout( rgba32f) uniform samplerBuffer) 0:? 'Position' (layout( rgba32f) uniform textureBuffer)
0:? '@entryPointOutput' ( out 4-component vector of float Position) 0:? '@entryPointOutput' ( out 4-component vector of float Position)
0:? 'Index' ( in uint VertexIndex) 0:? 'Index' ( in uint VertexIndex)
...@@ -44,7 +44,7 @@ Shader version: 450 ...@@ -44,7 +44,7 @@ Shader version: 450
0:? Sequence 0:? Sequence
0:5 Branch: Return with expression 0:5 Branch: Return with expression
0:5 textureFetch ( temp 4-component vector of float) 0:5 textureFetch ( temp 4-component vector of float)
0:5 'Position' (layout( rgba32f) uniform samplerBuffer) 0:5 'Position' (layout( rgba32f) uniform textureBuffer)
0:5 Convert uint to int ( temp int) 0:5 Convert uint to int ( temp int)
0:5 'Index' ( in uint) 0:5 'Index' ( in uint)
0:9 Function Definition: @RealEntrypoint(u1; ( temp 4-component vector of float) 0:9 Function Definition: @RealEntrypoint(u1; ( temp 4-component vector of float)
...@@ -65,33 +65,33 @@ Shader version: 450 ...@@ -65,33 +65,33 @@ Shader version: 450
0:9 Function Call: @RealEntrypoint(u1; ( temp 4-component vector of float) 0:9 Function Call: @RealEntrypoint(u1; ( temp 4-component vector of float)
0:? 'Index' ( temp uint) 0:? 'Index' ( temp uint)
0:? Linker Objects 0:? Linker Objects
0:? 'Position' (layout( rgba32f) uniform samplerBuffer) 0:? 'Position' (layout( rgba32f) uniform textureBuffer)
0:? '@entryPointOutput' ( out 4-component vector of float Position) 0:? '@entryPointOutput' ( out 4-component vector of float Position)
0:? 'Index' ( in uint VertexIndex) 0:? 'Index' ( in uint VertexIndex)
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 43 // Id's are bound by 41
Capability Shader Capability Shader
Capability SampledBuffer Capability SampledBuffer
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "RealEntrypoint" 36 39 EntryPoint Vertex 4 "RealEntrypoint" 34 37
Name 4 "RealEntrypoint" Name 4 "RealEntrypoint"
Name 12 "FakeEntrypoint(u1;" Name 12 "FakeEntrypoint(u1;"
Name 11 "Index" Name 11 "Index"
Name 15 "@RealEntrypoint(u1;" Name 15 "@RealEntrypoint(u1;"
Name 14 "Index" Name 14 "Index"
Name 20 "Position" Name 19 "Position"
Name 29 "param" Name 27 "param"
Name 32 "Index"
Name 34 "Index" Name 34 "Index"
Name 36 "Index" Name 37 "@entryPointOutput"
Name 39 "@entryPointOutput" Name 38 "param"
Name 40 "param" Decorate 19(Position) DescriptorSet 0
Decorate 20(Position) DescriptorSet 0 Decorate 34(Index) BuiltIn VertexIndex
Decorate 36(Index) BuiltIn VertexIndex Decorate 37(@entryPointOutput) BuiltIn Position
Decorate 39(@entryPointOutput) BuiltIn Position
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 0 6: TypeInt 32 0
...@@ -100,42 +100,40 @@ Shader version: 450 ...@@ -100,42 +100,40 @@ Shader version: 450
9: TypeVector 8(float) 4 9: TypeVector 8(float) 4
10: TypeFunction 9(fvec4) 7(ptr) 10: TypeFunction 9(fvec4) 7(ptr)
17: TypeImage 8(float) Buffer sampled format:Rgba32f 17: TypeImage 8(float) Buffer sampled format:Rgba32f
18: TypeSampledImage 17 18: TypePointer UniformConstant 17
19: TypePointer UniformConstant 18 19(Position): 18(ptr) Variable UniformConstant
20(Position): 19(ptr) Variable UniformConstant 22: TypeInt 32 1
23: TypeInt 32 1 33: TypePointer Input 6(int)
35: TypePointer Input 6(int) 34(Index): 33(ptr) Variable Input
36(Index): 35(ptr) Variable Input 36: TypePointer Output 9(fvec4)
38: TypePointer Output 9(fvec4) 37(@entryPointOutput): 36(ptr) Variable Output
39(@entryPointOutput): 38(ptr) Variable Output
4(RealEntrypoint): 2 Function None 3 4(RealEntrypoint): 2 Function None 3
5: Label 5: Label
34(Index): 7(ptr) Variable Function 32(Index): 7(ptr) Variable Function
40(param): 7(ptr) Variable Function 38(param): 7(ptr) Variable Function
37: 6(int) Load 36(Index) 35: 6(int) Load 34(Index)
Store 34(Index) 37 Store 32(Index) 35
41: 6(int) Load 34(Index) 39: 6(int) Load 32(Index)
Store 40(param) 41 Store 38(param) 39
42: 9(fvec4) FunctionCall 15(@RealEntrypoint(u1;) 40(param) 40: 9(fvec4) FunctionCall 15(@RealEntrypoint(u1;) 38(param)
Store 39(@entryPointOutput) 42 Store 37(@entryPointOutput) 40
Return Return
FunctionEnd FunctionEnd
12(FakeEntrypoint(u1;): 9(fvec4) Function None 10 12(FakeEntrypoint(u1;): 9(fvec4) Function None 10
11(Index): 7(ptr) FunctionParameter 11(Index): 7(ptr) FunctionParameter
13: Label 13: Label
21: 18 Load 20(Position) 20: 17 Load 19(Position)
22: 6(int) Load 11(Index) 21: 6(int) Load 11(Index)
24: 23(int) Bitcast 22 23: 22(int) Bitcast 21
25: 17 Image 21 24: 9(fvec4) ImageFetch 20 23
26: 9(fvec4) ImageFetch 25 24 ReturnValue 24
ReturnValue 26
FunctionEnd FunctionEnd
15(@RealEntrypoint(u1;): 9(fvec4) Function None 10 15(@RealEntrypoint(u1;): 9(fvec4) Function None 10
14(Index): 7(ptr) FunctionParameter 14(Index): 7(ptr) FunctionParameter
16: Label 16: Label
29(param): 7(ptr) Variable Function 27(param): 7(ptr) Variable Function
30: 6(int) Load 14(Index) 28: 6(int) Load 14(Index)
Store 29(param) 30 Store 27(param) 28
31: 9(fvec4) FunctionCall 12(FakeEntrypoint(u1;) 29(param) 29: 9(fvec4) FunctionCall 12(FakeEntrypoint(u1;) 27(param)
ReturnValue 31 ReturnValue 29
FunctionEnd FunctionEnd
...@@ -1145,9 +1145,10 @@ bool HlslGrammar::acceptTextureType(TType& type) ...@@ -1145,9 +1145,10 @@ bool HlslGrammar::acceptTextureType(TType& type)
bool array = false; bool array = false;
bool ms = false; bool ms = false;
bool image = false; bool image = false;
bool combined = true;
switch (textureType) { switch (textureType) {
case EHTokBuffer: dim = EsdBuffer; break; case EHTokBuffer: dim = EsdBuffer; combined = false; break;
case EHTokTexture1d: dim = Esd1D; break; case EHTokTexture1d: dim = Esd1D; break;
case EHTokTexture1darray: dim = Esd1D; array = true; break; case EHTokTexture1darray: dim = Esd1D; array = true; break;
case EHTokTexture2d: dim = Esd2D; break; case EHTokTexture2d: dim = Esd2D; break;
...@@ -1252,6 +1253,10 @@ bool HlslGrammar::acceptTextureType(TType& type) ...@@ -1252,6 +1253,10 @@ bool HlslGrammar::acceptTextureType(TType& type)
// Remember the declared vector size. // Remember the declared vector size.
sampler.vectorSize = txType.getVectorSize(); sampler.vectorSize = txType.getVectorSize();
// Force uncombined, if necessary
if (!combined)
sampler.combined = false;
type.shallowCopy(TType(sampler, EvqUniform, arraySizes)); type.shallowCopy(TType(sampler, EvqUniform, arraySizes));
type.getQualifier().layoutFormat = format; type.getQualifier().layoutFormat = format;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment