diff options
author | Markus Wick <markus@selfnet.de> | 2018-09-19 09:22:30 +0200 |
---|---|---|
committer | Markus Wick <markus@selfnet.de> | 2018-09-19 09:22:30 +0200 |
commit | f465e4aaf2d3987355ac560ead37527dc381287a (patch) | |
tree | 24f2de748d940c3c54b74d1852ad554a55475daa /src | |
parent | Merge pull request #1348 from ogniK5377/GetImageSize (diff) | |
download | yuzu-f465e4aaf2d3987355ac560ead37527dc381287a.tar yuzu-f465e4aaf2d3987355ac560ead37527dc381287a.tar.gz yuzu-f465e4aaf2d3987355ac560ead37527dc381287a.tar.bz2 yuzu-f465e4aaf2d3987355ac560ead37527dc381287a.tar.lz yuzu-f465e4aaf2d3987355ac560ead37527dc381287a.tar.xz yuzu-f465e4aaf2d3987355ac560ead37527dc381287a.tar.zst yuzu-f465e4aaf2d3987355ac560ead37527dc381287a.zip |
Diffstat (limited to 'src')
-rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index 274c2dbcf..e37acbfac 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp @@ -484,8 +484,13 @@ void RasterizerOpenGL::DrawArrays() { GLintptr index_buffer_offset = 0; if (is_indexed) { MICROPROFILE_SCOPE(OpenGL_Index); - index_buffer_offset = - buffer_cache.UploadMemory(regs.index_array.StartAddress(), index_buffer_size); + + // Adjust the index buffer offset so it points to the first desired index. + auto index_start = regs.index_array.StartAddress(); + index_start += static_cast<size_t>(regs.index_array.first) * + static_cast<size_t>(regs.index_array.FormatSizeInBytes()); + + index_buffer_offset = buffer_cache.UploadMemory(index_start, index_buffer_size); } SetupShaders(); @@ -499,10 +504,6 @@ void RasterizerOpenGL::DrawArrays() { if (is_indexed) { const GLint base_vertex{static_cast<GLint>(regs.vb_element_base)}; - // Adjust the index buffer offset so it points to the first desired index. - index_buffer_offset += static_cast<GLintptr>(regs.index_array.first) * - static_cast<GLintptr>(regs.index_array.FormatSizeInBytes()); - if (gpu.state.current_instance > 0) { glDrawElementsInstancedBaseVertexBaseInstance( primitive_mode, regs.index_array.count, |