diff options
| -rw-r--r-- | src/video_core/const_buffer_accessor.cpp | 12 | ||||
| -rw-r--r-- | src/video_core/const_buffer_accessor.h | 5 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 3 |
3 files changed, 10 insertions, 10 deletions
diff --git a/src/video_core/const_buffer_accessor.cpp b/src/video_core/const_buffer_accessor.cpp index c89ab91c7..0e613e1f9 100644 --- a/src/video_core/const_buffer_accessor.cpp +++ b/src/video_core/const_buffer_accessor.cpp | |||
| @@ -14,21 +14,25 @@ namespace Tegra { | |||
| 14 | 14 | ||
| 15 | u32 ConstBufferAccessor::access32(Tegra::Engines::Maxwell3D::Regs::ShaderStage stage, | 15 | u32 ConstBufferAccessor::access32(Tegra::Engines::Maxwell3D::Regs::ShaderStage stage, |
| 16 | u64 const_buffer, u64 offset) { | 16 | u64 const_buffer, u64 offset) { |
| 17 | auto& memory_manager = Core::System::GetInstance().GPU().MemoryManager(); | 17 | auto& gpu = Core::System::GetInstance().GPU(); |
| 18 | auto& memory_manager = gpu.MemoryManager(); | ||
| 19 | auto& maxwell3d = gpu.Maxwell3D(); | ||
| 18 | const auto& shader_stage = maxwell3d.state.shader_stages[static_cast<std::size_t>(stage)]; | 20 | const auto& shader_stage = maxwell3d.state.shader_stages[static_cast<std::size_t>(stage)]; |
| 19 | const auto& buffer = shader_stage.const_buffers[const_buffer]; | 21 | const auto& buffer = shader_stage.const_buffers[const_buffer]; |
| 20 | u32 result; | 22 | u32 result; |
| 21 | std::memcpy(&result, memory_manager.GetPointer(buffer.address + offset * 4), sizeof(u32)); | 23 | std::memcpy(&result, memory_manager.GetPointer(buffer.address + offset), sizeof(u32)); |
| 22 | return result; | 24 | return result; |
| 23 | } | 25 | } |
| 24 | 26 | ||
| 25 | u64 ConstBufferAccessor::access64(Tegra::Engines::Maxwell3D::Regs::ShaderStage stage, | 27 | u64 ConstBufferAccessor::access64(Tegra::Engines::Maxwell3D::Regs::ShaderStage stage, |
| 26 | u64 const_buffer, u64 offset) { | 28 | u64 const_buffer, u64 offset) { |
| 27 | auto& memory_manager = Core::System::GetInstance().GPU().MemoryManager(); | 29 | auto& gpu = Core::System::GetInstance().GPU(); |
| 30 | auto& memory_manager = gpu.MemoryManager(); | ||
| 31 | auto& maxwell3d = gpu.Maxwell3D(); | ||
| 28 | const auto& shader_stage = maxwell3d.state.shader_stages[static_cast<std::size_t>(stage)]; | 32 | const auto& shader_stage = maxwell3d.state.shader_stages[static_cast<std::size_t>(stage)]; |
| 29 | const auto& buffer = shader_stage.const_buffers[const_buffer]; | 33 | const auto& buffer = shader_stage.const_buffers[const_buffer]; |
| 30 | u64 result; | 34 | u64 result; |
| 31 | std::memcpy(&result, memory_manager.GetPointer(buffer.address + offset * 4), sizeof(u64)); | 35 | std::memcpy(&result, memory_manager.GetPointer(buffer.address + offset), sizeof(u64)); |
| 32 | return result; | 36 | return result; |
| 33 | } | 37 | } |
| 34 | 38 | ||
diff --git a/src/video_core/const_buffer_accessor.h b/src/video_core/const_buffer_accessor.h index 2410f1483..37d1ca767 100644 --- a/src/video_core/const_buffer_accessor.h +++ b/src/video_core/const_buffer_accessor.h | |||
| @@ -7,15 +7,12 @@ namespace Tegra { | |||
| 7 | 7 | ||
| 8 | class ConstBufferAccessor { | 8 | class ConstBufferAccessor { |
| 9 | public: | 9 | public: |
| 10 | ConstBufferAccessor(Tegra::Engines::Maxwell3D& maxwell3d) : maxwell3d(maxwell3d) {} | 10 | ConstBufferAccessor() {} |
| 11 | ~ConstBufferAccessor() = default; | 11 | ~ConstBufferAccessor() = default; |
| 12 | 12 | ||
| 13 | u32 access32(Tegra::Engines::Maxwell3D::Regs::ShaderStage stage, u64 const_buffer, u64 offset); | 13 | u32 access32(Tegra::Engines::Maxwell3D::Regs::ShaderStage stage, u64 const_buffer, u64 offset); |
| 14 | 14 | ||
| 15 | u64 access64(Tegra::Engines::Maxwell3D::Regs::ShaderStage stage, u64 const_buffer, u64 offset); | 15 | u64 access64(Tegra::Engines::Maxwell3D::Regs::ShaderStage stage, u64 const_buffer, u64 offset); |
| 16 | |||
| 17 | private: | ||
| 18 | Tegra::Engines::Maxwell3D& maxwell3d; | ||
| 19 | }; | 16 | }; |
| 20 | 17 | ||
| 21 | } // namespace Tegra | 18 | } // namespace Tegra |
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index a20acfe8e..e847b75fb 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp | |||
| @@ -101,8 +101,7 @@ struct FramebufferCacheKey { | |||
| 101 | RasterizerOpenGL::RasterizerOpenGL(Core::Frontend::EmuWindow& window, Core::System& system, | 101 | RasterizerOpenGL::RasterizerOpenGL(Core::Frontend::EmuWindow& window, Core::System& system, |
| 102 | ScreenInfo& info) | 102 | ScreenInfo& info) |
| 103 | : res_cache{*this}, shader_cache{*this, system}, global_cache{*this}, system{system}, | 103 | : res_cache{*this}, shader_cache{*this, system}, global_cache{*this}, system{system}, |
| 104 | screen_info{info}, buffer_cache(*this, STREAM_BUFFER_SIZE), | 104 | screen_info{info}, buffer_cache(*this, STREAM_BUFFER_SIZE), const_buffer_accessor() { |
| 105 | const_buffer_accessor(system.GPU().Maxwell3D()) { | ||
| 106 | // Create sampler objects | 105 | // Create sampler objects |
| 107 | for (std::size_t i = 0; i < texture_samplers.size(); ++i) { | 106 | for (std::size_t i = 0; i < texture_samplers.size(); ++i) { |
| 108 | texture_samplers[i].Create(); | 107 | texture_samplers[i].Create(); |