From 2bce5ba0d907299108255bec844adbfdc9fb7995 Mon Sep 17 00:00:00 2001 From: Ben Vanik Date: Fri, 6 Mar 2015 22:40:42 -0800 Subject: [PATCH] Skip all predicated swaps - this may be too aggressive. --- src/xenia/gpu/gl4/command_processor.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/xenia/gpu/gl4/command_processor.cc b/src/xenia/gpu/gl4/command_processor.cc index 5734732ad..9720c819a 100644 --- a/src/xenia/gpu/gl4/command_processor.cc +++ b/src/xenia/gpu/gl4/command_processor.cc @@ -784,9 +784,10 @@ bool CommandProcessor::ExecutePacketType3(RingbufferReader* reader, // & 1 == predicate - when set, we do bin check to see if we should execute // the packet. Only type 3 packets are affected. + // We also skip predicated swaps, as they are never valid (probably?). if (packet & 1) { bool any_pass = (bin_select_ & bin_mask_) != 0; - if (!any_pass) { + if (!any_pass || opcode == PM4_XE_SWAP) { reader->Skip(count); trace_writer_.WritePacketEnd(); return true;