mirror of
https://github.com/cemu-project/Cemu.git
synced 2025-07-10 00:41:19 +12:00
Latte: Add support for LOOP_START_NO_AL shader instruction
This instruction is used by Injustice: Gods Among Us and Project Zero Also improved robustness of rendering to be less prone to crashing when a game tries to draw with broken shaders
This commit is contained in:
parent
60adc38205
commit
fa8bab2f39
6 changed files with 16 additions and 10 deletions
|
@ -3662,7 +3662,8 @@ void LatteDecompiler_emitClauseCode(LatteDecompilerShaderContext* shaderContext,
|
|||
{
|
||||
src->addFmt("{} = {} == true && {} == true;" _CRLF, _getActiveMaskCVarName(shaderContext, cfInstruction->activeStackDepth + 1 - cfInstruction->popCount), _getActiveMaskVarName(shaderContext, cfInstruction->activeStackDepth - cfInstruction->popCount), _getActiveMaskCVarName(shaderContext, cfInstruction->activeStackDepth - cfInstruction->popCount));
|
||||
}
|
||||
else if( cfInstruction->type == GPU7_CF_INST_LOOP_START_DX10 )
|
||||
else if( cfInstruction->type == GPU7_CF_INST_LOOP_START_DX10 ||
|
||||
cfInstruction->type == GPU7_CF_INST_LOOP_START_NO_AL)
|
||||
{
|
||||
// start of loop
|
||||
// if pixel is disabled, then skip loop
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue