summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_rasterizer.cpp
diff options
context:
space:
mode:
authorMarkus Wick <markus@selfnet.de>2018-09-19 09:22:30 +0200
committerMarkus Wick <markus@selfnet.de>2018-09-19 09:22:30 +0200
commitf465e4aaf2d3987355ac560ead37527dc381287a (patch)
tree24f2de748d940c3c54b74d1852ad554a55475daa /src/video_core/renderer_opengl/gl_rasterizer.cpp
parentMerge pull request #1348 from ogniK5377/GetImageSize (diff)
downloadyuzu-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 '')
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.cpp13
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,