mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-11-03 16:39:01 -06: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:
		@@ -75,14 +75,11 @@ RasterizerOpenGL::RasterizerOpenGL() {
 | 
			
		||||
    // Clipping plane 0 is always enabled for PICA fixed clip plane z <= 0
 | 
			
		||||
    state.clip_distance[0] = true;
 | 
			
		||||
 | 
			
		||||
    // Generate VBO, 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);
 | 
			
		||||
    // Generate VAO and UBO
 | 
			
		||||
    sw_vao.Create();
 | 
			
		||||
    uniform_buffer.Create();
 | 
			
		||||
 | 
			
		||||
    state.draw.vertex_array = sw_vao.handle;
 | 
			
		||||
    state.draw.vertex_buffer = vertex_buffer->GetHandle();
 | 
			
		||||
    state.draw.uniform_buffer = uniform_buffer.handle;
 | 
			
		||||
    state.Apply();
 | 
			
		||||
 | 
			
		||||
@@ -90,7 +87,6 @@ RasterizerOpenGL::RasterizerOpenGL() {
 | 
			
		||||
    framebuffer.Create();
 | 
			
		||||
 | 
			
		||||
    hw_vao.Create();
 | 
			
		||||
    hw_vao_enabled_attributes.fill(false);
 | 
			
		||||
 | 
			
		||||
    stream_buffer = OGLStreamBuffer::MakeBuffer(has_ARB_buffer_storage, GL_ARRAY_BUFFER);
 | 
			
		||||
    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),
 | 
			
		||||
                             attrib.IsNormalized() ? GL_TRUE : GL_FALSE, attrib.offset);
 | 
			
		||||
        glVertexAttribBinding(index, attrib.buffer);
 | 
			
		||||
 | 
			
		||||
        hw_vao_enabled_attributes[index] = true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return {array_ptr, buffer_offset};
 | 
			
		||||
 
 | 
			
		||||
@@ -134,21 +134,17 @@ private:
 | 
			
		||||
    std::unique_ptr<GLShader::ProgramManager> shader_program_manager;
 | 
			
		||||
    OGLVertexArray sw_vao;
 | 
			
		||||
    OGLVertexArray hw_vao;
 | 
			
		||||
    std::array<bool, 16> hw_vao_enabled_attributes;
 | 
			
		||||
 | 
			
		||||
    std::array<SamplerInfo, GLShader::NumTextureSamplers> texture_samplers;
 | 
			
		||||
    std::array<std::array<OGLBuffer, Tegra::Engines::Maxwell3D::Regs::MaxConstBuffers>,
 | 
			
		||||
               Tegra::Engines::Maxwell3D::Regs::MaxShaderStage>
 | 
			
		||||
        ssbos;
 | 
			
		||||
 | 
			
		||||
    static constexpr size_t VERTEX_BUFFER_SIZE = 128 * 1024 * 1024;
 | 
			
		||||
    std::unique_ptr<OGLStreamBuffer> vertex_buffer;
 | 
			
		||||
    static constexpr size_t STREAM_BUFFER_SIZE = 128 * 1024 * 1024;
 | 
			
		||||
    std::unique_ptr<OGLStreamBuffer> stream_buffer;
 | 
			
		||||
    OGLBuffer uniform_buffer;
 | 
			
		||||
    OGLFramebuffer framebuffer;
 | 
			
		||||
 | 
			
		||||
    static constexpr size_t STREAM_BUFFER_SIZE = 4 * 1024 * 1024;
 | 
			
		||||
    std::unique_ptr<OGLStreamBuffer> stream_buffer;
 | 
			
		||||
 | 
			
		||||
    size_t CalculateVertexArraysSize() const;
 | 
			
		||||
 | 
			
		||||
    std::pair<u8*, GLintptr> SetupVertexArrays(u8* array_ptr, GLintptr buffer_offset);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user