summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Sebastian Valle2018-05-20 20:00:40 -0500
committerGravatar GitHub2018-05-20 20:00:40 -0500
commit2dbfcd32d721feec3e133752a01f8550223c960d (patch)
tree7bff4b6ce0fa096d28ad499773379dfea64d2aa1 /src
parentMerge pull request #450 from Subv/shader_link_error (diff)
parentGLRenderer: Remove unused hw_vao_enabled_attributes variable. (diff)
downloadyuzu-2dbfcd32d721feec3e133752a01f8550223c960d.tar.gz
yuzu-2dbfcd32d721feec3e133752a01f8550223c960d.tar.xz
yuzu-2dbfcd32d721feec3e133752a01f8550223c960d.zip
Merge pull request #451 from Subv/gl_array_size
GLRenderer: Remove unused vertex buffer and increase the size of the stream buffer to 128 MB.
Diffstat (limited to 'src')
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.cpp8
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.h8
2 files changed, 3 insertions, 13 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp
index 907236136..35c1b1890 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.cpp
+++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp
@@ -75,14 +75,11 @@ RasterizerOpenGL::RasterizerOpenGL() {
75 // Clipping plane 0 is always enabled for PICA fixed clip plane z <= 0 75 // Clipping plane 0 is always enabled for PICA fixed clip plane z <= 0
76 state.clip_distance[0] = true; 76 state.clip_distance[0] = true;
77 77
78 // Generate VBO, VAO and UBO 78 // Generate VAO and UBO
79 vertex_buffer = OGLStreamBuffer::MakeBuffer(GLAD_GL_ARB_buffer_storage, GL_ARRAY_BUFFER);
80 vertex_buffer->Create(VERTEX_BUFFER_SIZE, VERTEX_BUFFER_SIZE / 2);
81 sw_vao.Create(); 79 sw_vao.Create();
82 uniform_buffer.Create(); 80 uniform_buffer.Create();
83 81
84 state.draw.vertex_array = sw_vao.handle; 82 state.draw.vertex_array = sw_vao.handle;
85 state.draw.vertex_buffer = vertex_buffer->GetHandle();
86 state.draw.uniform_buffer = uniform_buffer.handle; 83 state.draw.uniform_buffer = uniform_buffer.handle;
87 state.Apply(); 84 state.Apply();
88 85
@@ -90,7 +87,6 @@ RasterizerOpenGL::RasterizerOpenGL() {
90 framebuffer.Create(); 87 framebuffer.Create();
91 88
92 hw_vao.Create(); 89 hw_vao.Create();
93 hw_vao_enabled_attributes.fill(false);
94 90
95 stream_buffer = OGLStreamBuffer::MakeBuffer(has_ARB_buffer_storage, GL_ARRAY_BUFFER); 91 stream_buffer = OGLStreamBuffer::MakeBuffer(has_ARB_buffer_storage, GL_ARRAY_BUFFER);
96 stream_buffer->Create(STREAM_BUFFER_SIZE, STREAM_BUFFER_SIZE / 2); 92 stream_buffer->Create(STREAM_BUFFER_SIZE, STREAM_BUFFER_SIZE / 2);
@@ -181,8 +177,6 @@ std::pair<u8*, GLintptr> RasterizerOpenGL::SetupVertexArrays(u8* array_ptr,
181 glVertexAttribFormat(index, attrib.ComponentCount(), MaxwellToGL::VertexType(attrib), 177 glVertexAttribFormat(index, attrib.ComponentCount(), MaxwellToGL::VertexType(attrib),
182 attrib.IsNormalized() ? GL_TRUE : GL_FALSE, attrib.offset); 178 attrib.IsNormalized() ? GL_TRUE : GL_FALSE, attrib.offset);
183 glVertexAttribBinding(index, attrib.buffer); 179 glVertexAttribBinding(index, attrib.buffer);
184
185 hw_vao_enabled_attributes[index] = true;
186 } 180 }
187 181
188 return {array_ptr, buffer_offset}; 182 return {array_ptr, buffer_offset};
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.h b/src/video_core/renderer_opengl/gl_rasterizer.h
index 9709e595e..4b915c76a 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.h
+++ b/src/video_core/renderer_opengl/gl_rasterizer.h
@@ -134,21 +134,17 @@ private:
134 std::unique_ptr<GLShader::ProgramManager> shader_program_manager; 134 std::unique_ptr<GLShader::ProgramManager> shader_program_manager;
135 OGLVertexArray sw_vao; 135 OGLVertexArray sw_vao;
136 OGLVertexArray hw_vao; 136 OGLVertexArray hw_vao;
137 std::array<bool, 16> hw_vao_enabled_attributes;
138 137
139 std::array<SamplerInfo, GLShader::NumTextureSamplers> texture_samplers; 138 std::array<SamplerInfo, GLShader::NumTextureSamplers> texture_samplers;
140 std::array<std::array<OGLBuffer, Tegra::Engines::Maxwell3D::Regs::MaxConstBuffers>, 139 std::array<std::array<OGLBuffer, Tegra::Engines::Maxwell3D::Regs::MaxConstBuffers>,
141 Tegra::Engines::Maxwell3D::Regs::MaxShaderStage> 140 Tegra::Engines::Maxwell3D::Regs::MaxShaderStage>
142 ssbos; 141 ssbos;
143 142
144 static constexpr size_t VERTEX_BUFFER_SIZE = 128 * 1024 * 1024; 143 static constexpr size_t STREAM_BUFFER_SIZE = 128 * 1024 * 1024;
145 std::unique_ptr<OGLStreamBuffer> vertex_buffer; 144 std::unique_ptr<OGLStreamBuffer> stream_buffer;
146 OGLBuffer uniform_buffer; 145 OGLBuffer uniform_buffer;
147 OGLFramebuffer framebuffer; 146 OGLFramebuffer framebuffer;
148 147
149 static constexpr size_t STREAM_BUFFER_SIZE = 4 * 1024 * 1024;
150 std::unique_ptr<OGLStreamBuffer> stream_buffer;
151
152 size_t CalculateVertexArraysSize() const; 148 size_t CalculateVertexArraysSize() const;
153 149
154 std::pair<u8*, GLintptr> SetupVertexArrays(u8* array_ptr, GLintptr buffer_offset); 150 std::pair<u8*, GLintptr> SetupVertexArrays(u8* array_ptr, GLintptr buffer_offset);