summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_rasterizer.cpp
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2020-04-19 06:25:52 +0200
committerReinUsesLisp <reinuseslisp@airmail.cc>2020-04-22 00:55:44 +0200
commit0bbae63300fc83505d34f5ca3f9a5be10e42d7c7 (patch)
treea7a1b11034b64ca73adea93260efe0d98bc30707 /src/video_core/renderer_opengl/gl_rasterizer.cpp
parentMerge pull request #3718 from ReinUsesLisp/better-pipeline-state (diff)
downloadyuzu-0bbae63300fc83505d34f5ca3f9a5be10e42d7c7.tar
yuzu-0bbae63300fc83505d34f5ca3f9a5be10e42d7c7.tar.gz
yuzu-0bbae63300fc83505d34f5ca3f9a5be10e42d7c7.tar.bz2
yuzu-0bbae63300fc83505d34f5ca3f9a5be10e42d7c7.tar.lz
yuzu-0bbae63300fc83505d34f5ca3f9a5be10e42d7c7.tar.xz
yuzu-0bbae63300fc83505d34f5ca3f9a5be10e42d7c7.tar.zst
yuzu-0bbae63300fc83505d34f5ca3f9a5be10e42d7c7.zip
Diffstat (limited to 'src/video_core/renderer_opengl/gl_rasterizer.cpp')
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp
index 175374f0d..1c3b3b644 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.cpp
+++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp
@@ -185,8 +185,12 @@ void RasterizerOpenGL::SetupVertexBuffer() {
const GPUVAddr start = vertex_array.StartAddress();
const GPUVAddr end = regs.vertex_array_limit[index].LimitAddress();
- ASSERT(end > start);
- const u64 size = end - start + 1;
+ ASSERT(end >= start);
+ const u64 size = end - start;
+ if (size == 0) {
+ glBindVertexBuffer(static_cast<GLuint>(index), 0, 0, vertex_array.stride);
+ continue;
+ }
const auto [vertex_buffer, vertex_buffer_offset] = buffer_cache.UploadMemory(start, size);
glBindVertexBuffer(static_cast<GLuint>(index), vertex_buffer, vertex_buffer_offset,
vertex_array.stride);
@@ -310,8 +314,8 @@ std::size_t RasterizerOpenGL::CalculateVertexArraysSize() const {
const GPUVAddr start = regs.vertex_array[index].StartAddress();
const GPUVAddr end = regs.vertex_array_limit[index].LimitAddress();
- ASSERT(end > start);
- size += end - start + 1;
+ size += end - start;
+ ASSERT(end >= start);
}
return size;