mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2025-08-06 18:28:29 +02:00
Extend bindless elimination to catch a few more specific cases (#6921)
* Catch more cases on bindless elimination * Match blocks with the same comparison condition * Shader cache version bump
This commit is contained in:
@@ -126,7 +126,9 @@ namespace Ryujinx.Graphics.Shader.Translation.Optimizations
|
||||
continue;
|
||||
}
|
||||
|
||||
if (texOp.GetSource(0).AsgOp is not Operation handleAsgOp)
|
||||
Operand bindlessHandle = Utils.FindLastOperation(texOp.GetSource(0), block);
|
||||
|
||||
if (bindlessHandle.AsgOp is not Operation handleAsgOp)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -137,8 +139,8 @@ namespace Ryujinx.Graphics.Shader.Translation.Optimizations
|
||||
|
||||
if (handleAsgOp.Inst == Instruction.BitwiseOr)
|
||||
{
|
||||
Operand src0 = handleAsgOp.GetSource(0);
|
||||
Operand src1 = handleAsgOp.GetSource(1);
|
||||
Operand src0 = Utils.FindLastOperation(handleAsgOp.GetSource(0), block);
|
||||
Operand src1 = Utils.FindLastOperation(handleAsgOp.GetSource(1), block);
|
||||
|
||||
if (src0.Type == OperandType.ConstantBuffer && src1.AsgOp is Operation)
|
||||
{
|
||||
|
Reference in New Issue
Block a user