Commit 10f7fc73 by John Kessenich

HLSL: Reverse what the driver is told about row/column majorness, matching the row-column reversal.

parent 88712f1a
...@@ -11,24 +11,24 @@ gl_FragCoord origin is upper left ...@@ -11,24 +11,24 @@ gl_FragCoord origin is upper left
0:17 add (temp 4-component vector of float) 0:17 add (temp 4-component vector of float)
0:17 add (temp 4-component vector of float) 0:17 add (temp 4-component vector of float)
0:17 'input' (in 4-component vector of float) 0:17 'input' (in 4-component vector of float)
0:17 v1: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) 0:17 v1: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float)
0:17 'anon@0' (layout(set=3 binding=5 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1}) 0:17 'anon@0' (layout(set=3 binding=5 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1})
0:17 Constant: 0:17 Constant:
0:17 0 (const uint) 0:17 0 (const uint)
0:17 v5: direct index for structure (layout(column_major std430 offset=0 ) buffer 4-component vector of float) 0:17 v5: direct index for structure (layout(row_major std430 offset=0 ) buffer 4-component vector of float)
0:17 'anon@1' (layout(column_major std430 push_constant ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float v5}) 0:17 'anon@1' (layout(row_major std430 push_constant ) buffer block{layout(row_major std430 offset=0 ) buffer 4-component vector of float v5})
0:17 Constant: 0:17 Constant:
0:17 0 (const uint) 0:17 0 (const uint)
0:17 v1PostLayout: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) 0:17 v1PostLayout: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float)
0:17 'anon@2' (layout(set=4 binding=7 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) 0:17 'anon@2' (layout(set=4 binding=7 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout})
0:17 Constant: 0:17 Constant:
0:17 0 (const uint) 0:17 0 (const uint)
0:? Linker Objects 0:? Linker Objects
0:? 'anon@0' (layout(set=3 binding=5 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1}) 0:? 'anon@0' (layout(set=3 binding=5 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1})
0:? 'anon@1' (layout(column_major std430 push_constant ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float v5}) 0:? 'anon@1' (layout(row_major std430 push_constant ) buffer block{layout(row_major std430 offset=0 ) buffer 4-component vector of float v5})
0:? 'specConst' (specialization-constant const int) 0:? 'specConst' (specialization-constant const int)
0:? 10 (const int) 0:? 10 (const int)
0:? 'anon@2' (layout(set=4 binding=7 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) 0:? 'anon@2' (layout(set=4 binding=7 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout})
Linked fragment stage: Linked fragment stage:
...@@ -46,24 +46,24 @@ gl_FragCoord origin is upper left ...@@ -46,24 +46,24 @@ gl_FragCoord origin is upper left
0:17 add (temp 4-component vector of float) 0:17 add (temp 4-component vector of float)
0:17 add (temp 4-component vector of float) 0:17 add (temp 4-component vector of float)
0:17 'input' (in 4-component vector of float) 0:17 'input' (in 4-component vector of float)
0:17 v1: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) 0:17 v1: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float)
0:17 'anon@0' (layout(set=3 binding=5 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1}) 0:17 'anon@0' (layout(set=3 binding=5 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1})
0:17 Constant: 0:17 Constant:
0:17 0 (const uint) 0:17 0 (const uint)
0:17 v5: direct index for structure (layout(column_major std430 offset=0 ) buffer 4-component vector of float) 0:17 v5: direct index for structure (layout(row_major std430 offset=0 ) buffer 4-component vector of float)
0:17 'anon@1' (layout(column_major std430 push_constant ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float v5}) 0:17 'anon@1' (layout(row_major std430 push_constant ) buffer block{layout(row_major std430 offset=0 ) buffer 4-component vector of float v5})
0:17 Constant: 0:17 Constant:
0:17 0 (const uint) 0:17 0 (const uint)
0:17 v1PostLayout: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) 0:17 v1PostLayout: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float)
0:17 'anon@2' (layout(set=4 binding=7 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) 0:17 'anon@2' (layout(set=4 binding=7 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout})
0:17 Constant: 0:17 Constant:
0:17 0 (const uint) 0:17 0 (const uint)
0:? Linker Objects 0:? Linker Objects
0:? 'anon@0' (layout(set=3 binding=5 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1}) 0:? 'anon@0' (layout(set=3 binding=5 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1})
0:? 'anon@1' (layout(column_major std430 push_constant ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float v5}) 0:? 'anon@1' (layout(row_major std430 push_constant ) buffer block{layout(row_major std430 offset=0 ) buffer 4-component vector of float v5})
0:? 'specConst' (specialization-constant const int) 0:? 'specConst' (specialization-constant const int)
0:? 10 (const int) 0:? 10 (const int)
0:? 'anon@2' (layout(set=4 binding=7 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) 0:? 'anon@2' (layout(set=4 binding=7 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout})
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
......
...@@ -4,16 +4,16 @@ Linked vertex stage: ...@@ -4,16 +4,16 @@ Linked vertex stage:
Uniform reflection: Uniform reflection:
anonMember3: offset 96, type 8b52, size 1, index 0 anonMember3: offset 80, type 8b52, size 1, index 0
s.a: offset -1, type 1404, size 1, index -1 s.a: offset -1, type 1404, size 1, index -1
scalar: offset 12, type 1404, size 1, index 0 scalar: offset 12, type 1404, size 1, index 0
m23: offset 16, type 8b67, size 1, index 0 m23: offset 16, type 8b67, size 1, index 0
scalarAfterm23: offset 64, type 1404, size 1, index 0 scalarAfterm23: offset 48, type 1404, size 1, index 0
c_m23: offset 16, type 8b67, size 1, index 0 c_m23: offset 16, type 8b67, size 1, index 0
c_scalarAfterm23: offset 64, type 1404, size 1, index 0 c_scalarAfterm23: offset 48, type 1404, size 1, index 0
scalarBeforeArray: offset 112, type 1404, size 1, index 0 scalarBeforeArray: offset 96, type 1404, size 1, index 0
floatArray: offset 128, type 1406, size 5, index 0 floatArray: offset 112, type 1406, size 5, index 0
scalarAfterArray: offset 208, type 1404, size 1, index 0 scalarAfterArray: offset 192, type 1404, size 1, index 0
memfloat2: offset 48, type 8b50, size 1, index 0 memfloat2: offset 48, type 8b50, size 1, index 0
memf1: offset 56, type 1406, size 1, index 0 memf1: offset 56, type 1406, size 1, index 0
memf2: offset 60, type 8b56, size 1, index 0 memf2: offset 60, type 8b56, size 1, index 0
...@@ -73,7 +73,7 @@ anonMember1: offset 0, type 8b51, size 1, index 0 ...@@ -73,7 +73,7 @@ anonMember1: offset 0, type 8b51, size 1, index 0
uf1: offset -1, type 1406, size 1, index -1 uf1: offset -1, type 1406, size 1, index -1
Uniform block reflection: Uniform block reflection:
: offset -1, type ffffffff, size 512, index -1 : offset -1, type ffffffff, size 496, index -1
Vertex attribute reflection: Vertex attribute reflection:
attributeFloat: offset 0, type 1406, size 0, index 0 attributeFloat: offset 0, type 1406, size 0, index 0
......
...@@ -20,6 +20,10 @@ tbuffer tbufName : register(b8) { ...@@ -20,6 +20,10 @@ tbuffer tbufName : register(b8) {
float f5 : packoffset(c4.z); float f5 : packoffset(c4.z);
float f6 : packoffset(c); float f6 : packoffset(c);
float f7; float f7;
float3x4 m1;
row_major float3x4 m2;
column_major float3x4 m3;
float3x4 m4;
}; };
float4 PixelShaderFunction(float4 input) : COLOR0 float4 PixelShaderFunction(float4 input) : COLOR0
......
...@@ -2,5 +2,5 @@ ...@@ -2,5 +2,5 @@
// For the version, it uses the latest git tag followed by the number of commits. // For the version, it uses the latest git tag followed by the number of commits.
// For the date, it uses the current date (when then script is run). // For the date, it uses the current date (when then script is run).
#define GLSLANG_REVISION "Overload400-PrecQual.1506" #define GLSLANG_REVISION "Overload400-PrecQual.1507"
#define GLSLANG_DATE "21-Sep-2016" #define GLSLANG_DATE "25-Sep-2016"
...@@ -491,10 +491,10 @@ bool HlslGrammar::acceptQualifier(TQualifier& qualifier) ...@@ -491,10 +491,10 @@ bool HlslGrammar::acceptQualifier(TQualifier& qualifier)
qualifier.sample = true; qualifier.sample = true;
break; break;
case EHTokRowMajor: case EHTokRowMajor:
qualifier.layoutMatrix = ElmRowMajor; qualifier.layoutMatrix = ElmColumnMajor;
break; break;
case EHTokColumnMajor: case EHTokColumnMajor:
qualifier.layoutMatrix = ElmColumnMajor; qualifier.layoutMatrix = ElmRowMajor;
break; break;
case EHTokPrecise: case EHTokPrecise:
qualifier.noContraction = true; qualifier.noContraction = true;
......
...@@ -63,11 +63,11 @@ HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& int ...@@ -63,11 +63,11 @@ HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& int
linkage = new TIntermAggregate; linkage = new TIntermAggregate;
globalUniformDefaults.clear(); globalUniformDefaults.clear();
globalUniformDefaults.layoutMatrix = ElmColumnMajor; globalUniformDefaults.layoutMatrix = ElmRowMajor;
globalUniformDefaults.layoutPacking = ElpStd140; globalUniformDefaults.layoutPacking = ElpStd140;
globalBufferDefaults.clear(); globalBufferDefaults.clear();
globalBufferDefaults.layoutMatrix = ElmColumnMajor; globalBufferDefaults.layoutMatrix = ElmRowMajor;
globalBufferDefaults.layoutPacking = ElpStd430; globalBufferDefaults.layoutPacking = ElpStd430;
globalInputDefaults.clear(); globalInputDefaults.clear();
...@@ -3624,11 +3624,11 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TQualifier& qua ...@@ -3624,11 +3624,11 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TQualifier& qua
std::transform(id.begin(), id.end(), id.begin(), ::tolower); std::transform(id.begin(), id.end(), id.begin(), ::tolower);
if (id == TQualifier::getLayoutMatrixString(ElmColumnMajor)) { if (id == TQualifier::getLayoutMatrixString(ElmColumnMajor)) {
qualifier.layoutMatrix = ElmColumnMajor; qualifier.layoutMatrix = ElmRowMajor;
return; return;
} }
if (id == TQualifier::getLayoutMatrixString(ElmRowMajor)) { if (id == TQualifier::getLayoutMatrixString(ElmRowMajor)) {
qualifier.layoutMatrix = ElmRowMajor; qualifier.layoutMatrix = ElmColumnMajor;
return; return;
} }
if (id == "push_constant") { if (id == "push_constant") {
......
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