Merge remote-tracking branch 'GliniakRepo/experimentals' into canary_experimental

This commit is contained in:
Gliniak
2022-05-19 10:51:44 +02:00
12 changed files with 64 additions and 20 deletions

View File

@@ -309,6 +309,9 @@ void CommandProcessor::InitializeRingBuffer(uint32_t ptr, uint32_t size_log2) {
read_ptr_index_ = 0;
primary_buffer_ptr_ = ptr;
primary_buffer_size_ = uint32_t(1) << (size_log2 + 3);
std::memset(kernel_state_->memory()->TranslatePhysical(primary_buffer_ptr_),
0, primary_buffer_size_);
}
void CommandProcessor::EnableReadPointerWriteBack(uint32_t ptr,
@@ -567,7 +570,7 @@ void CommandProcessor::ExecuteIndirectBuffer(uint32_t ptr, uint32_t count) {
// Return up a level if we encounter a bad packet.
XELOGE("**** INDIRECT RINGBUFFER: Failed to execute packet.");
assert_always();
break;
//break;
}
} while (reader.read_count());
@@ -590,7 +593,7 @@ void CommandProcessor::ExecutePacket(uint32_t ptr, uint32_t count) {
bool CommandProcessor::ExecutePacket(RingBuffer* reader) {
const uint32_t packet = reader->ReadAndSwap<uint32_t>();
const uint32_t packet_type = packet >> 30;
if (packet == 0) {
if (packet == 0 || packet == 0x0BADF00D) {
trace_writer_.WritePacketStart(uint32_t(reader->read_ptr() - 4), 1);
trace_writer_.WritePacketEnd();
return true;