diff options
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index 28fa8a8be..e9abd901e 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp | |||
| @@ -575,11 +575,9 @@ void RasterizerOpenGL::DrawPrelude() { | |||
| 575 | (sizeof(GLShader::MaxwellUniformData) + device.GetUniformBufferAlignment()) * | 575 | (sizeof(GLShader::MaxwellUniformData) + device.GetUniformBufferAlignment()) * |
| 576 | Maxwell::MaxShaderStage; | 576 | Maxwell::MaxShaderStage; |
| 577 | 577 | ||
| 578 | if (!device.HasFastBufferSubData()) { | 578 | // Add space for at least 18 constant buffers |
| 579 | // Add space for at least 18 constant buffers | 579 | buffer_size += Maxwell::MaxConstBuffers * |
| 580 | buffer_size += Maxwell::MaxConstBuffers * | 580 | (Maxwell::MaxConstBufferSize + device.GetUniformBufferAlignment()); |
| 581 | (Maxwell::MaxConstBufferSize + device.GetUniformBufferAlignment()); | ||
| 582 | } | ||
| 583 | 581 | ||
| 584 | // Prepare the vertex array. | 582 | // Prepare the vertex array. |
| 585 | buffer_cache.Map(buffer_size); | 583 | buffer_cache.Map(buffer_size); |
| @@ -743,12 +741,10 @@ void RasterizerOpenGL::DispatchCompute(GPUVAddr code_addr) { | |||
| 743 | state.draw.shader_program = program; | 741 | state.draw.shader_program = program; |
| 744 | state.draw.program_pipeline = 0; | 742 | state.draw.program_pipeline = 0; |
| 745 | 743 | ||
| 746 | if (!device.HasFastBufferSubData()) { | 744 | const std::size_t buffer_size = |
| 747 | const std::size_t buffer_size = | 745 | Tegra::Engines::KeplerCompute::NumConstBuffers * |
| 748 | Tegra::Engines::KeplerCompute::NumConstBuffers * | 746 | (Maxwell::MaxConstBufferSize + device.GetUniformBufferAlignment()); |
| 749 | (Maxwell::MaxConstBufferSize + device.GetUniformBufferAlignment()); | 747 | buffer_cache.Map(buffer_size); |
| 750 | buffer_cache.Map(buffer_size); | ||
| 751 | } | ||
| 752 | 748 | ||
| 753 | bind_ubo_pushbuffer.Setup(0); | 749 | bind_ubo_pushbuffer.Setup(0); |
| 754 | bind_ssbo_pushbuffer.Setup(0); | 750 | bind_ssbo_pushbuffer.Setup(0); |
| @@ -756,9 +752,7 @@ void RasterizerOpenGL::DispatchCompute(GPUVAddr code_addr) { | |||
| 756 | SetupComputeConstBuffers(kernel); | 752 | SetupComputeConstBuffers(kernel); |
| 757 | SetupComputeGlobalMemory(kernel); | 753 | SetupComputeGlobalMemory(kernel); |
| 758 | 754 | ||
| 759 | if (!device.HasFastBufferSubData()) { | 755 | buffer_cache.Unmap(); |
| 760 | buffer_cache.Unmap(); | ||
| 761 | } | ||
| 762 | 756 | ||
| 763 | bind_ubo_pushbuffer.Bind(); | 757 | bind_ubo_pushbuffer.Bind(); |
| 764 | bind_ssbo_pushbuffer.Bind(); | 758 | bind_ssbo_pushbuffer.Bind(); |