diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp
index c4abbb2cd..487d37a26 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.cpp
+++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp
@@ -326,17 +326,7 @@ void RasterizerOpenGL::DrawArrays() {
     state.Apply();
 
     // Draw the vertex batch
-    GLenum primitive_mode;
-    switch (regs.draw.topology) {
-    case Maxwell::PrimitiveTopology::TriangleStrip:
-        primitive_mode = GL_TRIANGLE_STRIP;
-        break;
-    default:
-        UNREACHABLE();
-    }
-
     const bool is_indexed = accelerate_draw == AccelDraw::Indexed;
-
     AnalyzeVertexArray(is_indexed);
     state.draw.vertex_buffer = stream_buffer->GetHandle();
     state.Apply();
@@ -384,7 +374,8 @@ void RasterizerOpenGL::DrawArrays() {
     if (is_indexed) {
         UNREACHABLE();
     } else {
-        glDrawArrays(primitive_mode, 0, regs.vertex_buffer.count);
+        glDrawArrays(MaxwellToGL::PrimitiveTopology(regs.draw.topology), 0,
+                     regs.vertex_buffer.count);
     }
 
     // Disable scissor test
diff --git a/src/video_core/renderer_opengl/maxwell_to_gl.h b/src/video_core/renderer_opengl/maxwell_to_gl.h
index 003ee2fd9..d847317ac 100644
--- a/src/video_core/renderer_opengl/maxwell_to_gl.h
+++ b/src/video_core/renderer_opengl/maxwell_to_gl.h
@@ -37,4 +37,14 @@ inline GLenum VertexType(Maxwell::VertexAttribute attrib) {
     return {};
 }
 
+inline GLenum PrimitiveTopology(Maxwell::PrimitiveTopology topology) {
+    switch (topology) {
+    case Maxwell::PrimitiveTopology::TriangleStrip:
+        return GL_TRIANGLE_STRIP;
+    }
+    LOG_CRITICAL(Render_OpenGL, "Unimplemented primitive topology=%d", topology);
+    UNREACHABLE();
+    return {};
+}
+
 } // namespace MaxwellToGL