Hack for weird pixel shader export.

This commit is contained in:
Ben Vanik 2015-01-01 18:18:47 -08:00
parent 009f4c4863
commit ba0745abe2
1 changed files with 19 additions and 6 deletions

View File

@ -212,6 +212,7 @@ void GL4ShaderTranslator::AppendDestRegName(uint32_t num, uint32_t dst_exp) {
case ShaderType::kPixel: case ShaderType::kPixel:
switch (num) { switch (num) {
case 0: case 0:
case 63: // ? masked?
Append("oC[0]"); Append("oC[0]");
break; break;
case 61: case 61:
@ -241,12 +242,24 @@ void GL4ShaderTranslator::AppendDestReg(uint32_t num, uint32_t mask,
void GL4ShaderTranslator::AppendDestRegPost(uint32_t num, uint32_t mask, void GL4ShaderTranslator::AppendDestRegPost(uint32_t num, uint32_t mask,
uint32_t dst_exp) { uint32_t dst_exp) {
if (num == 61) { switch (shader_type_) {
// gl_FragDepth handling to just get x from the temp result. case ShaderType::kVertex:
Append(" gl_FragDepth = t.x;\n"); switch (num) {
} else if (num == 63) { case 63:
Append(" gl_PointSize = t.x;\n"); Append(" gl_PointSize = t.x;\n");
} else if (mask != 0xF) { return;
}
break;
case ShaderType::kPixel:
switch (num) {
case 61:
// gl_FragDepth handling to just get x from the temp result.
Append(" gl_FragDepth = t.x;\n");
return;
}
break;
}
if (mask != 0xF) {
// Masking. // Masking.
Append(" "); Append(" ");
AppendDestRegName(num, dst_exp); AppendDestRegName(num, dst_exp);