diff options
| author | 2018-05-20 20:00:40 -0500 | |
|---|---|---|
| committer | 2018-05-20 20:00:40 -0500 | |
| commit | 2dbfcd32d721feec3e133752a01f8550223c960d (patch) | |
| tree | 7bff4b6ce0fa096d28ad499773379dfea64d2aa1 /src | |
| parent | Merge pull request #450 from Subv/shader_link_error (diff) | |
| parent | GLRenderer: Remove unused hw_vao_enabled_attributes variable. (diff) | |
| download | yuzu-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.cpp | 8 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.h | 8 |
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); |