liverpool: Log more information on SetQueueReg. (#2912)

This commit is contained in:
squidbus 2025-05-11 20:27:43 -07:00 committed by GitHub
parent 6206986914
commit 02d3ed4973
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 20 additions and 0 deletions

View file

@ -864,6 +864,11 @@ Liverpool::Task Liverpool::ProcessCompute(const u32* acb, u32 acb_dwords, u32 vq
}
break;
}
case PM4ItOpcode::SetQueueReg: {
const auto* set_data = reinterpret_cast<const PM4CmdSetQueueReg*>(header);
UNREACHABLE_MSG("Encountered compute SetQueueReg: vqid = {}, reg_offset = {:#x}",
set_data->vqid.Value(), set_data->reg_offset.Value());
}
case PM4ItOpcode::DispatchDirect: {
const auto* dispatch_direct = reinterpret_cast<const PM4CmdDispatchDirect*>(header);
auto& cs_program = GetCsRegs();

View file

@ -211,6 +211,21 @@ struct PM4CmdSetData {
}
};
struct PM4CmdSetQueueReg {
PM4Type3Header header;
union {
u32 raw;
BitField<0, 8, u32> reg_offset; ///< Offset in DWords from the register base address
BitField<15, 1, u32> defer_exec; ///< Defer execution
BitField<16, 10, u32> vqid; ///< Queue ID
};
u32 data[0];
[[nodiscard]] u32 Size() const {
return header.count << 2u;
}
};
struct PM4CmdNop {
PM4Type3Header header;
u32 data_block[0];