Fix GL handling of matrix parameters to specify :col instead of :row

* In GL matrices are also split column-wise
This commit is contained in:
baldurk
2020-04-24 20:51:11 +01:00
parent 70256217fe
commit 105f0e4e9f
3 changed files with 11 additions and 11 deletions
+6 -6
View File
@@ -1513,7 +1513,7 @@ void main()
CHECK(sig.channelUsedMask == 0x7);
}
CHECK(refl.outputSignature[4].varName == "outmat:row0");
CHECK(refl.outputSignature[4].varName == "outmat:col0");
{
const SigParameter &sig = refl.outputSignature[4];
INFO("signature element: " << sig.varName.c_str());
@@ -1526,7 +1526,7 @@ void main()
CHECK(sig.channelUsedMask == 0x3);
}
CHECK(refl.outputSignature[5].varName == "outmat:row1");
CHECK(refl.outputSignature[5].varName == "outmat:col1");
{
const SigParameter &sig = refl.outputSignature[5];
INFO("signature element: " << sig.varName.c_str());
@@ -1539,7 +1539,7 @@ void main()
CHECK(sig.channelUsedMask == 0x3);
}
CHECK(refl.outputSignature[6].varName == "outmatarr[0]:row0");
CHECK(refl.outputSignature[6].varName == "outmatarr[0]:col0");
{
const SigParameter &sig = refl.outputSignature[6];
INFO("signature element: " << sig.varName.c_str());
@@ -1552,7 +1552,7 @@ void main()
CHECK(sig.channelUsedMask == 0x3);
}
CHECK(refl.outputSignature[7].varName == "outmatarr[0]:row1");
CHECK(refl.outputSignature[7].varName == "outmatarr[0]:col1");
{
const SigParameter &sig = refl.outputSignature[7];
INFO("signature element: " << sig.varName.c_str());
@@ -1565,7 +1565,7 @@ void main()
CHECK(sig.channelUsedMask == 0x3);
}
CHECK(refl.outputSignature[8].varName == "outmatarr[1]:row0");
CHECK(refl.outputSignature[8].varName == "outmatarr[1]:col0");
{
const SigParameter &sig = refl.outputSignature[8];
INFO("signature element: " << sig.varName.c_str());
@@ -1578,7 +1578,7 @@ void main()
CHECK(sig.channelUsedMask == 0x3);
}
CHECK(refl.outputSignature[9].varName == "outmatarr[1]:row1");
CHECK(refl.outputSignature[9].varName == "outmatarr[1]:col1");
{
const SigParameter &sig = refl.outputSignature[9];
INFO("signature element: " << sig.varName.c_str());
+2 -2
View File
@@ -1181,8 +1181,8 @@ bool GLResourceManager::Serialise_InitialState(SerialiserType &ser, ResourceId i
{
rdcstr name = sig.varName;
// look for :row added to split up matrix variables
int32_t colon = name.find(":row");
// look for :row or :col added to split up matrix variables
int32_t colon = name.find(":");
// remove it, if present
if(colon >= 0)
+3 -3
View File
@@ -1104,9 +1104,9 @@ static void AddSigParameter(rdcarray<SigParameter> &sigs, uint32_t &regIndex,
s.regIndex += r;
if(arrayIdx >= 0)
s.varName = StringFormat::Fmt("%s[%d]:row%d", nm, arrayIdx, r);
s.varName = StringFormat::Fmt("%s[%d]:col%d", nm, arrayIdx, r);
else
s.varName = StringFormat::Fmt("%s:row%d", nm, r);
s.varName = StringFormat::Fmt("%s:col%d", nm, r);
sigs.push_back(s);
}
@@ -2553,7 +2553,7 @@ void GetBindpointMapping(GLuint curProg, int shadIdx, const ShaderReflection *re
int32_t matrixRow = 0;
rdcstr varName = refl->inputSignature[i].varName;
int32_t offs = varName.find(":row");
int32_t offs = varName.find(":col");
if(offs >= 0)
{
matrixRow = varName[offs + 4] - '0';