1
0
Fork 1
forked from suyu/suyu

gl_rasterizer: Re-enable stream buffer memory due to global memory

Global memory is still using the stream buffer when it shouldn't. As a
temporary fix re-enable the stream buffer on compute.
This commit is contained in:
ReinUsesLisp 2019-11-02 13:19:07 -03:00
parent 76ca2a5f82
commit 442a1cc021
No known key found for this signature in database
GPG key ID: 2DFC508897B39CFE

View file

@ -575,11 +575,9 @@ void RasterizerOpenGL::DrawPrelude() {
(sizeof(GLShader::MaxwellUniformData) + device.GetUniformBufferAlignment()) * (sizeof(GLShader::MaxwellUniformData) + device.GetUniformBufferAlignment()) *
Maxwell::MaxShaderStage; Maxwell::MaxShaderStage;
if (!device.HasFastBufferSubData()) { // Add space for at least 18 constant buffers
// Add space for at least 18 constant buffers buffer_size += Maxwell::MaxConstBuffers *
buffer_size += Maxwell::MaxConstBuffers * (Maxwell::MaxConstBufferSize + device.GetUniformBufferAlignment());
(Maxwell::MaxConstBufferSize + device.GetUniformBufferAlignment());
}
// Prepare the vertex array. // Prepare the vertex array.
buffer_cache.Map(buffer_size); buffer_cache.Map(buffer_size);
@ -743,12 +741,10 @@ void RasterizerOpenGL::DispatchCompute(GPUVAddr code_addr) {
state.draw.shader_program = program; state.draw.shader_program = program;
state.draw.program_pipeline = 0; state.draw.program_pipeline = 0;
if (!device.HasFastBufferSubData()) { const std::size_t buffer_size =
const std::size_t buffer_size = Tegra::Engines::KeplerCompute::NumConstBuffers *
Tegra::Engines::KeplerCompute::NumConstBuffers * (Maxwell::MaxConstBufferSize + device.GetUniformBufferAlignment());
(Maxwell::MaxConstBufferSize + device.GetUniformBufferAlignment()); buffer_cache.Map(buffer_size);
buffer_cache.Map(buffer_size);
}
bind_ubo_pushbuffer.Setup(0); bind_ubo_pushbuffer.Setup(0);
bind_ssbo_pushbuffer.Setup(0); bind_ssbo_pushbuffer.Setup(0);
@ -756,9 +752,7 @@ void RasterizerOpenGL::DispatchCompute(GPUVAddr code_addr) {
SetupComputeConstBuffers(kernel); SetupComputeConstBuffers(kernel);
SetupComputeGlobalMemory(kernel); SetupComputeGlobalMemory(kernel);
if (!device.HasFastBufferSubData()) { buffer_cache.Unmap();
buffer_cache.Unmap();
}
bind_ubo_pushbuffer.Bind(); bind_ubo_pushbuffer.Bind();
bind_ssbo_pushbuffer.Bind(); bind_ssbo_pushbuffer.Bind();