mirror of
https://git.h3cjp.net/H3cJP/yuzu.git
synced 2024-11-14 12:03:00 +00:00
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.
This commit is contained in:
commit
2dbfcd32d7
|
@ -75,14 +75,11 @@ RasterizerOpenGL::RasterizerOpenGL() {
|
||||||
// Clipping plane 0 is always enabled for PICA fixed clip plane z <= 0
|
// Clipping plane 0 is always enabled for PICA fixed clip plane z <= 0
|
||||||
state.clip_distance[0] = true;
|
state.clip_distance[0] = true;
|
||||||
|
|
||||||
// Generate VBO, VAO and UBO
|
// Generate VAO and UBO
|
||||||
vertex_buffer = OGLStreamBuffer::MakeBuffer(GLAD_GL_ARB_buffer_storage, GL_ARRAY_BUFFER);
|
|
||||||
vertex_buffer->Create(VERTEX_BUFFER_SIZE, VERTEX_BUFFER_SIZE / 2);
|
|
||||||
sw_vao.Create();
|
sw_vao.Create();
|
||||||
uniform_buffer.Create();
|
uniform_buffer.Create();
|
||||||
|
|
||||||
state.draw.vertex_array = sw_vao.handle;
|
state.draw.vertex_array = sw_vao.handle;
|
||||||
state.draw.vertex_buffer = vertex_buffer->GetHandle();
|
|
||||||
state.draw.uniform_buffer = uniform_buffer.handle;
|
state.draw.uniform_buffer = uniform_buffer.handle;
|
||||||
state.Apply();
|
state.Apply();
|
||||||
|
|
||||||
|
@ -90,7 +87,6 @@ RasterizerOpenGL::RasterizerOpenGL() {
|
||||||
framebuffer.Create();
|
framebuffer.Create();
|
||||||
|
|
||||||
hw_vao.Create();
|
hw_vao.Create();
|
||||||
hw_vao_enabled_attributes.fill(false);
|
|
||||||
|
|
||||||
stream_buffer = OGLStreamBuffer::MakeBuffer(has_ARB_buffer_storage, GL_ARRAY_BUFFER);
|
stream_buffer = OGLStreamBuffer::MakeBuffer(has_ARB_buffer_storage, GL_ARRAY_BUFFER);
|
||||||
stream_buffer->Create(STREAM_BUFFER_SIZE, STREAM_BUFFER_SIZE / 2);
|
stream_buffer->Create(STREAM_BUFFER_SIZE, STREAM_BUFFER_SIZE / 2);
|
||||||
|
@ -181,8 +177,6 @@ std::pair<u8*, GLintptr> RasterizerOpenGL::SetupVertexArrays(u8* array_ptr,
|
||||||
glVertexAttribFormat(index, attrib.ComponentCount(), MaxwellToGL::VertexType(attrib),
|
glVertexAttribFormat(index, attrib.ComponentCount(), MaxwellToGL::VertexType(attrib),
|
||||||
attrib.IsNormalized() ? GL_TRUE : GL_FALSE, attrib.offset);
|
attrib.IsNormalized() ? GL_TRUE : GL_FALSE, attrib.offset);
|
||||||
glVertexAttribBinding(index, attrib.buffer);
|
glVertexAttribBinding(index, attrib.buffer);
|
||||||
|
|
||||||
hw_vao_enabled_attributes[index] = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return {array_ptr, buffer_offset};
|
return {array_ptr, buffer_offset};
|
||||||
|
|
|
@ -134,21 +134,17 @@ private:
|
||||||
std::unique_ptr<GLShader::ProgramManager> shader_program_manager;
|
std::unique_ptr<GLShader::ProgramManager> shader_program_manager;
|
||||||
OGLVertexArray sw_vao;
|
OGLVertexArray sw_vao;
|
||||||
OGLVertexArray hw_vao;
|
OGLVertexArray hw_vao;
|
||||||
std::array<bool, 16> hw_vao_enabled_attributes;
|
|
||||||
|
|
||||||
std::array<SamplerInfo, GLShader::NumTextureSamplers> texture_samplers;
|
std::array<SamplerInfo, GLShader::NumTextureSamplers> texture_samplers;
|
||||||
std::array<std::array<OGLBuffer, Tegra::Engines::Maxwell3D::Regs::MaxConstBuffers>,
|
std::array<std::array<OGLBuffer, Tegra::Engines::Maxwell3D::Regs::MaxConstBuffers>,
|
||||||
Tegra::Engines::Maxwell3D::Regs::MaxShaderStage>
|
Tegra::Engines::Maxwell3D::Regs::MaxShaderStage>
|
||||||
ssbos;
|
ssbos;
|
||||||
|
|
||||||
static constexpr size_t VERTEX_BUFFER_SIZE = 128 * 1024 * 1024;
|
static constexpr size_t STREAM_BUFFER_SIZE = 128 * 1024 * 1024;
|
||||||
std::unique_ptr<OGLStreamBuffer> vertex_buffer;
|
std::unique_ptr<OGLStreamBuffer> stream_buffer;
|
||||||
OGLBuffer uniform_buffer;
|
OGLBuffer uniform_buffer;
|
||||||
OGLFramebuffer framebuffer;
|
OGLFramebuffer framebuffer;
|
||||||
|
|
||||||
static constexpr size_t STREAM_BUFFER_SIZE = 4 * 1024 * 1024;
|
|
||||||
std::unique_ptr<OGLStreamBuffer> stream_buffer;
|
|
||||||
|
|
||||||
size_t CalculateVertexArraysSize() const;
|
size_t CalculateVertexArraysSize() const;
|
||||||
|
|
||||||
std::pair<u8*, GLintptr> SetupVertexArrays(u8* array_ptr, GLintptr buffer_offset);
|
std::pair<u8*, GLintptr> SetupVertexArrays(u8* array_ptr, GLintptr buffer_offset);
|
||||||
|
|
Loading…
Reference in a new issue