Added logger flags, for selectively disabling categories of logging (cpu, apu, kernel). Need to make more log messages make use of these flags.
The "close window" keyboard hotkey (Guide-B) now toggles between loglevel -1 and the loglevel set in your config. Added LoggerBatch class, which accumulates strings into the threads scratch buffer. This is only intended to be used for very high frequency debug logging. if it exhausts the thread buffer, it just silently stops. Cleaned nearly 8 years of dust off of the pm4 packet disassembler code, now supports all packets that the command processor supports. Added extremely verbose logging for gpu register writes. This is not compiled in outside of debug builds, requires LogLevel::Debug and log_guest_driven_gpu_register_written_values = true. Added full logging of all PM4 packets in the cp. This is not compiled in outside of debug builds, requires LogLevel::Debug and disassemble_pm4. Piggybacked an implementation of guest callstack backtraces using the stackpoints from enable_host_guest_stack_synchronization. If enable_host_guest_stack_synchronization = false, no backtraces can be obtained. Added log_ringbuffer_kickoff_initiator_bts. when a thread updates the cp's read pointer, it dumps the backtrace of that thread Changed the names of the gpu registers CALLBACK_ADDRESS and CALLBACK_CONTEXT to the correct names. Added a note about CP_PROG_COUNTER Added CP_RB_WPTR to the gpu register table Added notes about CP_RB_CNTL and CP_RB_RPTR_ADDR. Both aren't necessary for HLE Changed name of UNKNOWN_0E00 gpu register to TC_CNTL_STATUS. Games only seem to write 1 to it (L2 invalidate)
This commit is contained in:
@@ -206,7 +206,39 @@ const char* GetDepthRenderTargetFormatName(DepthRenderTargetFormat format) {
|
||||
return "kUnknown";
|
||||
}
|
||||
}
|
||||
static const char* const g_endian_names[] = {"none", "8 in 16", "8 in 32",
|
||||
"16 in 32"};
|
||||
|
||||
const char* GetEndianEnglishDescription(xenos::Endian endian) {
|
||||
return g_endian_names[static_cast<uint32_t>(endian)];
|
||||
}
|
||||
static const char* const g_primtype_human_names[] = {"none",
|
||||
"point list",
|
||||
"line list",
|
||||
"line strip",
|
||||
"triangle list",
|
||||
"triangle fan",
|
||||
"triangle strip",
|
||||
"triangle with flags",
|
||||
"rectangle list",
|
||||
"unused1",
|
||||
"unused2",
|
||||
"unused3",
|
||||
"line loop",
|
||||
"quad list",
|
||||
"quad strip",
|
||||
"polygon",
|
||||
"2D copy rect list v0",
|
||||
"2D copy rect list v1",
|
||||
"2D copy rect list v2",
|
||||
"2D copy rect list v3",
|
||||
"2D fillrect list",
|
||||
"2D line strip",
|
||||
"2D triangle strip"};
|
||||
|
||||
const char* GetPrimitiveTypeEnglishDescription(xenos::PrimitiveType prim_type) {
|
||||
return g_primtype_human_names[static_cast<uint32_t>(prim_type)];
|
||||
}
|
||||
} // namespace xenos
|
||||
} // namespace gpu
|
||||
} // namespace xe
|
||||
|
||||
Reference in New Issue
Block a user