mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-05-24 12:25:00 +00:00
recompiler: added support for discard on export with masked EXEC
This commit is contained in:
parent
1b94f07a6a
commit
f041276b04
12 changed files with 47 additions and 5 deletions
|
@ -149,6 +149,8 @@ public:
|
|||
std::array<Value, NumScalarRegs> ssa_sreg_values;
|
||||
std::array<Value, NumVectorRegs> ssa_vreg_values;
|
||||
|
||||
bool has_multiple_predecessors{false};
|
||||
|
||||
private:
|
||||
/// Memory pool for instruction list
|
||||
ObjectPool<Inst>* inst_pool;
|
||||
|
|
|
@ -115,6 +115,10 @@ void IREmitter::Discard() {
|
|||
Inst(Opcode::Discard);
|
||||
}
|
||||
|
||||
void IREmitter::Discard(const U1& cond) {
|
||||
Inst(Opcode::DiscardCond, cond);
|
||||
}
|
||||
|
||||
void IREmitter::Barrier() {
|
||||
Inst(Opcode::Barrier);
|
||||
}
|
||||
|
|
|
@ -42,6 +42,7 @@ public:
|
|||
void Prologue();
|
||||
void Epilogue();
|
||||
void Discard();
|
||||
void Discard(const U1& cond);
|
||||
|
||||
void Barrier();
|
||||
void WorkgroupMemoryBarrier();
|
||||
|
|
|
@ -49,6 +49,7 @@ bool Inst::MayHaveSideEffects() const noexcept {
|
|||
case Opcode::Prologue:
|
||||
case Opcode::Epilogue:
|
||||
case Opcode::Discard:
|
||||
case Opcode::DiscardCond:
|
||||
case Opcode::SetAttribute:
|
||||
case Opcode::StoreBufferF32:
|
||||
case Opcode::StoreBufferF32x2:
|
||||
|
|
|
@ -13,6 +13,7 @@ OPCODE(PhiMove, Void, Opaq
|
|||
OPCODE(Prologue, Void, )
|
||||
OPCODE(Epilogue, Void, )
|
||||
OPCODE(Discard, Void, )
|
||||
OPCODE(DiscardCond, Void, U1, )
|
||||
|
||||
// Constant memory operations
|
||||
OPCODE(ReadConst, U32, U32x2, U32, )
|
||||
|
|
|
@ -37,6 +37,7 @@ void Visit(Info& info, IR::Inst& inst) {
|
|||
info.uses_group_quad = true;
|
||||
break;
|
||||
case IR::Opcode::Discard:
|
||||
case IR::Opcode::DiscardCond:
|
||||
info.has_discard = true;
|
||||
break;
|
||||
case IR::Opcode::ImageGather:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue