| | |
| | |
| | |
| |
|
| | #pragma once |
| |
|
| | #include "common/common_types.h" |
| |
|
| | namespace CiTrace { |
| |
|
| | |
| |
|
| | #pragma pack(1) |
| |
|
| | struct CTHeader { |
| | static const char* ExpectedMagicWord() { |
| | return "CiTr"; |
| | } |
| |
|
| | static u32 ExpectedVersion() { |
| | return 1; |
| | } |
| |
|
| | char magic[4]; |
| | u32 version; |
| | u32 header_size; |
| |
|
| | struct { |
| | |
| | |
| | |
| | u32 gpu_registers; |
| | u32 gpu_registers_size; |
| | u32 lcd_registers; |
| | u32 lcd_registers_size; |
| | u32 pica_registers; |
| | u32 pica_registers_size; |
| | u32 default_attributes; |
| | u32 default_attributes_size; |
| | u32 vs_program_binary; |
| | u32 vs_program_binary_size; |
| | u32 vs_swizzle_data; |
| | u32 vs_swizzle_data_size; |
| | u32 vs_float_uniforms; |
| | u32 vs_float_uniforms_size; |
| | u32 gs_program_binary; |
| | u32 gs_program_binary_size; |
| | u32 gs_swizzle_data; |
| | u32 gs_swizzle_data_size; |
| | u32 gs_float_uniforms; |
| | u32 gs_float_uniforms_size; |
| |
|
| | |
| | |
| | |
| | |
| | } initial_state_offsets; |
| |
|
| | u32 stream_offset; |
| | u32 stream_size; |
| | }; |
| |
|
| | enum CTStreamElementType : u32 { |
| | FrameMarker = 0xE1, |
| | MemoryLoad = 0xE2, |
| | RegisterWrite = 0xE3, |
| | }; |
| |
|
| | struct CTMemoryLoad { |
| | u32 file_offset; |
| | u32 size; |
| | u32 physical_address; |
| | u32 pad; |
| | }; |
| |
|
| | struct CTRegisterWrite { |
| | u32 physical_address; |
| | u32 value; |
| | }; |
| |
|
| | struct CTStreamElement { |
| | CTStreamElementType type; |
| |
|
| | union { |
| | CTMemoryLoad memory_load; |
| | CTRegisterWrite register_write; |
| | }; |
| | }; |
| |
|
| | #pragma pack() |
| | } |
| |
|