|
|
|
@ -1093,9 +1093,6 @@ private: |
|
|
|
default: { |
|
|
|
switch (opcode->GetId()) { |
|
|
|
case OpCode::Id::EXIT: { |
|
|
|
ASSERT_MSG(instr.pred.pred_index == static_cast<u64>(Pred::UnusedIndex), |
|
|
|
"Predicated exits not implemented"); |
|
|
|
|
|
|
|
// Final color output is currently hardcoded to GPR0-3 for fragment shaders
|
|
|
|
if (stage == Maxwell3D::Regs::ShaderStage::Fragment) { |
|
|
|
shader.AddLine("color.r = " + regs.GetRegisterAsFloat(0) + ';'); |
|
|
|
@ -1105,7 +1102,12 @@ private: |
|
|
|
} |
|
|
|
|
|
|
|
shader.AddLine("return true;"); |
|
|
|
offset = PROGRAM_END - 1; |
|
|
|
if (instr.pred.pred_index == static_cast<u64>(Pred::UnusedIndex)) { |
|
|
|
// If this is an unconditional exit then just end processing here, otherwise we
|
|
|
|
// have to account for the possibility of the condition not being met, so
|
|
|
|
// continue processing the next instruction.
|
|
|
|
offset = PROGRAM_END - 1; |
|
|
|
} |
|
|
|
break; |
|
|
|
} |
|
|
|
case OpCode::Id::KIL: { |
|
|
|
|