diff options
author | Subv <subv2112@gmail.com> | 2018-03-18 21:22:06 +0100 |
---|---|---|
committer | Subv <subv2112@gmail.com> | 2018-03-18 22:50:42 +0100 |
commit | 7b6868e908319b91785712410b481e9112621175 (patch) | |
tree | d86384f4fed07fc791541e49b8ef0f7834461c35 /src/video_core/engines/maxwell_3d.h | |
parent | GPU: Handle writes to the CB_DATA method. (diff) | |
download | yuzu-7b6868e908319b91785712410b481e9112621175.tar yuzu-7b6868e908319b91785712410b481e9112621175.tar.gz yuzu-7b6868e908319b91785712410b481e9112621175.tar.bz2 yuzu-7b6868e908319b91785712410b481e9112621175.tar.lz yuzu-7b6868e908319b91785712410b481e9112621175.tar.xz yuzu-7b6868e908319b91785712410b481e9112621175.tar.zst yuzu-7b6868e908319b91785712410b481e9112621175.zip |
Diffstat (limited to 'src/video_core/engines/maxwell_3d.h')
-rw-r--r-- | src/video_core/engines/maxwell_3d.h | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/video_core/engines/maxwell_3d.h b/src/video_core/engines/maxwell_3d.h index 93b42b53c..3e97d9045 100644 --- a/src/video_core/engines/maxwell_3d.h +++ b/src/video_core/engines/maxwell_3d.h @@ -166,7 +166,19 @@ public: u32 tex_cb_index; - INSERT_PADDING_WORDS(0x4B3); + INSERT_PADDING_WORDS(0x395); + + struct { + /// Compressed address of a buffer that holds information about bound SSBOs. + /// This address is usually bound to c0 in the shaders. + u32 buffer_address; + + GPUVAddr BufferAddress() const { + return static_cast<GPUVAddr>(buffer_address) << 8; + } + } ssbo_info; + + INSERT_PADDING_WORDS(0x11D); }; std::array<u32, NUM_REGS> reg_array; }; @@ -229,6 +241,7 @@ private: /// Method call handlers void SetShader(const std::vector<u32>& parameters); + void BindStorageBuffer(const std::vector<u32>& parameters); struct MethodInfo { const char* name; @@ -252,6 +265,7 @@ ASSERT_REG_POSITION(shader_config[0], 0x800); ASSERT_REG_POSITION(const_buffer, 0x8E0); ASSERT_REG_POSITION(cb_bind[0], 0x904); ASSERT_REG_POSITION(tex_cb_index, 0x982); +ASSERT_REG_POSITION(ssbo_info, 0xD18); #undef ASSERT_REG_POSITION |