|
|
@ -62,7 +62,21 @@ public: |
|
|
|
|
|
|
|
|
union { |
|
|
union { |
|
|
struct { |
|
|
struct { |
|
|
INSERT_PADDING_WORDS(0x582); |
|
|
|
|
|
|
|
|
INSERT_PADDING_WORDS(0x55D); |
|
|
|
|
|
|
|
|
|
|
|
struct { |
|
|
|
|
|
u32 tic_address_high; |
|
|
|
|
|
u32 tic_address_low; |
|
|
|
|
|
u32 tic_limit; |
|
|
|
|
|
|
|
|
|
|
|
GPUVAddr TICAddress() const { |
|
|
|
|
|
return static_cast<GPUVAddr>( |
|
|
|
|
|
(static_cast<GPUVAddr>(tic_address_high) << 32) | tic_address_low); |
|
|
|
|
|
} |
|
|
|
|
|
} tic; |
|
|
|
|
|
|
|
|
|
|
|
INSERT_PADDING_WORDS(0x22); |
|
|
|
|
|
|
|
|
struct { |
|
|
struct { |
|
|
u32 code_address_high; |
|
|
u32 code_address_high; |
|
|
u32 code_address_low; |
|
|
u32 code_address_low; |
|
|
@ -264,6 +278,7 @@ private: |
|
|
static_assert(offsetof(Maxwell3D::Regs, field_name) == position * 4, \ |
|
|
static_assert(offsetof(Maxwell3D::Regs, field_name) == position * 4, \ |
|
|
"Field " #field_name " has invalid position") |
|
|
"Field " #field_name " has invalid position") |
|
|
|
|
|
|
|
|
|
|
|
ASSERT_REG_POSITION(tic, 0x55D); |
|
|
ASSERT_REG_POSITION(code_address, 0x582); |
|
|
ASSERT_REG_POSITION(code_address, 0x582); |
|
|
ASSERT_REG_POSITION(draw, 0x585); |
|
|
ASSERT_REG_POSITION(draw, 0x585); |
|
|
ASSERT_REG_POSITION(query, 0x6C0); |
|
|
ASSERT_REG_POSITION(query, 0x6C0); |
|
|
|