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
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 v1: direct index for structure (layout(column_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 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 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1})
0:17 Constant:
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 '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 v5: direct index for structure (layout(row_major std430 offset=0 ) buffer 4-component vector of float)
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 0 (const uint)
0:17 v1PostLayout: direct index for structure (layout(column_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 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 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout})
0:17 Constant:
0:17 0 (const uint)
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@1' (layout(column_major std430 push_constant ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float v5})
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(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:? 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:
......@@ -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 '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 '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 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 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1})
0:17 Constant:
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 '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 v5: direct index for structure (layout(row_major std430 offset=0 ) buffer 4-component vector of float)
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 0 (const uint)
0:17 v1PostLayout: direct index for structure (layout(column_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 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 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout})
0:17 Constant:
0:17 0 (const uint)
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@1' (layout(column_major std430 push_constant ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float v5})
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(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:? 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
// Generated by (magic number): 80001
......
......@@ -4,16 +4,16 @@ Linked vertex stage:
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
scalar: offset 12, type 1404, 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_scalarAfterm23: offset 64, type 1404, size 1, index 0
scalarBeforeArray: offset 112, type 1404, size 1, index 0
floatArray: offset 128, type 1406, size 5, index 0
scalarAfterArray: offset 208, type 1404, size 1, index 0
c_scalarAfterm23: offset 48, type 1404, size 1, index 0
scalarBeforeArray: offset 96, type 1404, size 1, index 0
floatArray: offset 112, type 1406, size 5, index 0
scalarAfterArray: offset 192, type 1404, size 1, index 0
memfloat2: offset 48, type 8b50, size 1, index 0
memf1: offset 56, type 1406, 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
uf1: offset -1, type 1406, size 1, index -1
Uniform block reflection:
: offset -1, type ffffffff, size 512, index -1
: offset -1, type ffffffff, size 496, index -1
Vertex attribute reflection:
attributeFloat: offset 0, type 1406, size 0, index 0
......
......@@ -20,6 +20,10 @@ tbuffer tbufName : register(b8) {
float f5 : packoffset(c4.z);
float f6 : packoffset(c);
float f7;
float3x4 m1;
row_major float3x4 m2;
column_major float3x4 m3;
float3x4 m4;
};
float4 PixelShaderFunction(float4 input) : COLOR0
......
......@@ -2,5 +2,5 @@
// 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).
#define GLSLANG_REVISION "Overload400-PrecQual.1506"
#define GLSLANG_DATE "21-Sep-2016"
#define GLSLANG_REVISION "Overload400-PrecQual.1507"
#define GLSLANG_DATE "25-Sep-2016"
......@@ -491,10 +491,10 @@ bool HlslGrammar::acceptQualifier(TQualifier& qualifier)
qualifier.sample = true;
break;
case EHTokRowMajor:
qualifier.layoutMatrix = ElmRowMajor;
qualifier.layoutMatrix = ElmColumnMajor;
break;
case EHTokColumnMajor:
qualifier.layoutMatrix = ElmColumnMajor;
qualifier.layoutMatrix = ElmRowMajor;
break;
case EHTokPrecise:
qualifier.noContraction = true;
......
......@@ -63,11 +63,11 @@ HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& int
linkage = new TIntermAggregate;
globalUniformDefaults.clear();
globalUniformDefaults.layoutMatrix = ElmColumnMajor;
globalUniformDefaults.layoutMatrix = ElmRowMajor;
globalUniformDefaults.layoutPacking = ElpStd140;
globalBufferDefaults.clear();
globalBufferDefaults.layoutMatrix = ElmColumnMajor;
globalBufferDefaults.layoutMatrix = ElmRowMajor;
globalBufferDefaults.layoutPacking = ElpStd430;
globalInputDefaults.clear();
......@@ -3624,11 +3624,11 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TQualifier& qua
std::transform(id.begin(), id.end(), id.begin(), ::tolower);
if (id == TQualifier::getLayoutMatrixString(ElmColumnMajor)) {
qualifier.layoutMatrix = ElmColumnMajor;
qualifier.layoutMatrix = ElmRowMajor;
return;
}
if (id == TQualifier::getLayoutMatrixString(ElmRowMajor)) {
qualifier.layoutMatrix = ElmRowMajor;
qualifier.layoutMatrix = ElmColumnMajor;
return;
}
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