diff options
author | bunnei <bunneidev@gmail.com> | 2018-07-04 01:34:34 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-04 01:34:34 +0200 |
commit | c996787d8433f8bd3603957594ac15b0f075fd86 (patch) | |
tree | daf350f31f619f5321f73a262f1936c92b01d7dd /src/video_core/engines/maxwell_3d.h | |
parent | Merge pull request #616 from bunnei/s8z24 (diff) | |
parent | GPU: Factor out the framebuffer configuration code for both Clear and Draw commands. (diff) | |
download | yuzu-c996787d8433f8bd3603957594ac15b0f075fd86.tar yuzu-c996787d8433f8bd3603957594ac15b0f075fd86.tar.gz yuzu-c996787d8433f8bd3603957594ac15b0f075fd86.tar.bz2 yuzu-c996787d8433f8bd3603957594ac15b0f075fd86.tar.lz yuzu-c996787d8433f8bd3603957594ac15b0f075fd86.tar.xz yuzu-c996787d8433f8bd3603957594ac15b0f075fd86.tar.zst yuzu-c996787d8433f8bd3603957594ac15b0f075fd86.zip |
Diffstat (limited to 'src/video_core/engines/maxwell_3d.h')
-rw-r--r-- | src/video_core/engines/maxwell_3d.h | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/src/video_core/engines/maxwell_3d.h b/src/video_core/engines/maxwell_3d.h index 12aec3549..988a6433e 100644 --- a/src/video_core/engines/maxwell_3d.h +++ b/src/video_core/engines/maxwell_3d.h @@ -436,7 +436,12 @@ public: u32 count; } vertex_buffer; - INSERT_PADDING_WORDS(0x99); + INSERT_PADDING_WORDS(1); + + float clear_color[4]; + float clear_depth; + + INSERT_PADDING_WORDS(0x93); struct { u32 address_high; @@ -584,7 +589,21 @@ public: Cull cull; - INSERT_PADDING_WORDS(0x77); + INSERT_PADDING_WORDS(0x2B); + + union { + u32 raw; + BitField<0, 1, u32> Z; + BitField<1, 1, u32> S; + BitField<2, 1, u32> R; + BitField<3, 1, u32> G; + BitField<4, 1, u32> B; + BitField<5, 1, u32> A; + BitField<6, 4, u32> RT; + BitField<10, 11, u32> layer; + } clear_buffers; + + INSERT_PADDING_WORDS(0x4B); struct { u32 query_address_high; @@ -766,6 +785,9 @@ private: /// Handles writes to the macro uploading registers. void ProcessMacroUpload(u32 data); + /// Handles a write to the CLEAR_BUFFERS register. + void ProcessClearBuffers(); + /// Handles a write to the QUERY_GET register. void ProcessQueryGet(); @@ -788,6 +810,8 @@ ASSERT_REG_POSITION(rt, 0x200); ASSERT_REG_POSITION(viewport_transform[0], 0x280); ASSERT_REG_POSITION(viewport, 0x300); ASSERT_REG_POSITION(vertex_buffer, 0x35D); +ASSERT_REG_POSITION(clear_color[0], 0x360); +ASSERT_REG_POSITION(clear_depth, 0x364); ASSERT_REG_POSITION(zeta, 0x3F8); ASSERT_REG_POSITION(vertex_attrib_format[0], 0x458); ASSERT_REG_POSITION(rt_control, 0x487); @@ -803,6 +827,7 @@ ASSERT_REG_POSITION(code_address, 0x582); ASSERT_REG_POSITION(draw, 0x585); ASSERT_REG_POSITION(index_array, 0x5F2); ASSERT_REG_POSITION(cull, 0x646); +ASSERT_REG_POSITION(clear_buffers, 0x674); ASSERT_REG_POSITION(query, 0x6C0); ASSERT_REG_POSITION(vertex_array[0], 0x700); ASSERT_REG_POSITION(independent_blend, 0x780); |