Skip all predicated swaps - this may be too aggressive.

This commit is contained in:
Ben Vanik 2015-03-06 22:40:42 -08:00
parent 05239daecf
commit 2bce5ba0d9
1 changed files with 2 additions and 1 deletions

View File

@ -784,9 +784,10 @@ bool CommandProcessor::ExecutePacketType3(RingbufferReader* reader,
// & 1 == predicate - when set, we do bin check to see if we should execute // & 1 == predicate - when set, we do bin check to see if we should execute
// the packet. Only type 3 packets are affected. // the packet. Only type 3 packets are affected.
// We also skip predicated swaps, as they are never valid (probably?).
if (packet & 1) { if (packet & 1) {
bool any_pass = (bin_select_ & bin_mask_) != 0; bool any_pass = (bin_select_ & bin_mask_) != 0;
if (!any_pass) { if (!any_pass || opcode == PM4_XE_SWAP) {
reader->Skip(count); reader->Skip(count);
trace_writer_.WritePacketEnd(); trace_writer_.WritePacketEnd();
return true; return true;