1
0
mirror of https://github.com/RPCS3/rpcs3.git synced 2024-11-25 20:22:30 +01:00

d3d12: Texcoord9 is actually stored in register 6.

Fix shadow mapping in SH3 HD.
This commit is contained in:
Vincent Lejeune 2015-11-13 17:41:41 +01:00
parent 432bca26ae
commit bb4b12f253
2 changed files with 6 additions and 7 deletions

View File

@ -52,7 +52,7 @@ void D3D12FragmentDecompiler::insertIntputs(std::stringstream & OS)
OS << " float4 dst_reg3 : COLOR2;" << std::endl;
OS << " float4 dst_reg4 : COLOR3;" << std::endl;
OS << " float fogc : FOG;" << std::endl;
OS << " float4 dummy : COLOR4;" << std::endl;
OS << " float4 tc9 : TEXCOORD9;" << std::endl;
OS << " float4 tc0 : TEXCOORD0;" << std::endl;
OS << " float4 tc1 : TEXCOORD1;" << std::endl;
OS << " float4 tc2 : TEXCOORD2;" << std::endl;
@ -62,7 +62,6 @@ void D3D12FragmentDecompiler::insertIntputs(std::stringstream & OS)
OS << " float4 tc6 : TEXCOORD6;" << std::endl;
OS << " float4 tc7 : TEXCOORD7;" << std::endl;
OS << " float4 tc8 : TEXCOORD8;" << std::endl;
OS << " float4 tc9 : TEXCOORD9;" << std::endl;
OS << "};" << std::endl;
}

View File

@ -74,7 +74,7 @@ void D3D12VertexProgramDecompiler::insertOutputs(std::stringstream & OS, const s
OS << " float4 dst_reg3 : COLOR2;" << std::endl;
OS << " float4 dst_reg4 : COLOR3;" << std::endl;
OS << " float dst_reg5 : FOG;" << std::endl;
OS << " float4 dst_reg6 : COLOR4;" << std::endl;
OS << " float4 dst_reg6 : TEXCOORD9;" << std::endl;
OS << " float4 dst_reg7 : TEXCOORD0;" << std::endl;
OS << " float4 dst_reg8 : TEXCOORD1;" << std::endl;
OS << " float4 dst_reg9 : TEXCOORD2;" << std::endl;
@ -84,7 +84,6 @@ void D3D12VertexProgramDecompiler::insertOutputs(std::stringstream & OS, const s
OS << " float4 dst_reg13 : TEXCOORD6;" << std::endl;
OS << " float4 dst_reg14 : TEXCOORD7;" << std::endl;
OS << " float4 dst_reg15 : TEXCOORD8;" << std::endl;
OS << " float4 dst_reg16 : TEXCOORD9;" << std::endl;
OS << "};" << std::endl;
}
@ -108,10 +107,12 @@ static const reg_info reg_table[] =
{ "gl_ClipDistance[0]", false, "dst_reg5", ".y", false },
{ "gl_ClipDistance[1]", false, "dst_reg5", ".z", false },
{ "gl_ClipDistance[2]", false, "dst_reg5", ".w", false },
{ "gl_PointSize", false, "dst_reg6", ".x", false },
// TODO: Handle user clip distance properly
/* { "gl_PointSize", false, "dst_reg6", ".x", false },
{ "gl_ClipDistance[3]", false, "dst_reg6", ".y", false },
{ "gl_ClipDistance[4]", false, "dst_reg6", ".z", false },
{ "gl_ClipDistance[5]", false, "dst_reg6", ".w", false },
{ "gl_ClipDistance[5]", false, "dst_reg6", ".w", false },*/
{ "tc9", false, "dst_reg6", "", false },
{ "tc0", true, "dst_reg7", "", false },
{ "tc1", true, "dst_reg8", "", false },
{ "tc2", true, "dst_reg9", "", false },
@ -121,7 +122,6 @@ static const reg_info reg_table[] =
{ "tc6", true, "dst_reg13", "", false },
{ "tc7", true, "dst_reg14", "", false },
{ "tc8", true, "dst_reg15", "", false },
{ "tc9", true, "dst_reg6", "", false } // In this line, dst_reg6 is correct since dst_reg goes from 0 to 15.
};
void D3D12VertexProgramDecompiler::insertMainStart(std::stringstream & OS)