aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/renderer_opengl/gl_rasterizer.cpp
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2019-09-15 14:25:07 -0400
committerFernandoS27 <fsahmkow27@gmail.com>2019-09-19 11:41:29 -0400
commit7606da5611b5626790e99b4387e033eaea20c2cb (patch)
tree1ce0273ad940c847b6fb4d1832de579f069d3615 /src/video_core/renderer_opengl/gl_rasterizer.cpp
parentba02d564f8a0b0167b96f247b6ad9d2bde05b6c8 (diff)
VideoCore: Corrections to the MME Inliner and removal of hacky instance management.
Diffstat (limited to 'src/video_core/renderer_opengl/gl_rasterizer.cpp')
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.cpp38
1 files changed, 18 insertions, 20 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp
index 5df7f3f56..f71a22738 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.cpp
+++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp
@@ -788,13 +788,13 @@ void RasterizerOpenGL::DrawArrays() {
DrawPrelude();
auto& maxwell3d = system.GPU().Maxwell3D();
- auto& regs = maxwell3d.regs;
- auto current_instance = maxwell3d.state.current_instance;
- auto primitive_mode = MaxwellToGL::PrimitiveTopology(regs.draw.topology);
+ const auto& regs = maxwell3d.regs;
+ const auto current_instance = maxwell3d.state.current_instance;
+ const auto primitive_mode = MaxwellToGL::PrimitiveTopology(regs.draw.topology);
if (accelerate_draw == AccelDraw::Indexed) {
- auto index_format = MaxwellToGL::IndexFormat(regs.index_array.format);
- auto count = regs.index_array.count;
- auto base_vertex = static_cast<GLint>(regs.vb_element_base);
+ const auto index_format = MaxwellToGL::IndexFormat(regs.index_array.format);
+ const auto count = regs.index_array.count;
+ const auto base_vertex = static_cast<GLint>(regs.vb_element_base);
const auto index_buffer_ptr = reinterpret_cast<const void*>(index_buffer_offset);
if (current_instance > 0) {
glDrawElementsInstancedBaseVertexBaseInstance(primitive_mode, count, index_format,
@@ -805,8 +805,8 @@ void RasterizerOpenGL::DrawArrays() {
base_vertex);
}
} else {
- auto count = regs.vertex_buffer.count;
- auto vertex_first = regs.vertex_buffer.first;
+ const auto count = regs.vertex_buffer.count;
+ const auto vertex_first = regs.vertex_buffer.first;
if (current_instance > 0) {
glDrawArraysInstancedBaseInstance(primitive_mode, vertex_first, count, 1,
current_instance);
@@ -819,21 +819,19 @@ void RasterizerOpenGL::DrawArrays() {
maxwell3d.dirty.memory_general = false;
}
-#pragma optimize("", off)
-
void RasterizerOpenGL::DrawMultiArrays() {
DrawPrelude();
auto& maxwell3d = system.GPU().Maxwell3D();
- auto& regs = maxwell3d.regs;
- auto& draw_setup = maxwell3d.mme_draw;
- auto num_instances = draw_setup.instance_count;
- auto base_instance = static_cast<GLint>(regs.vb_base_instance);
- auto primitive_mode = MaxwellToGL::PrimitiveTopology(regs.draw.topology);
+ const auto& regs = maxwell3d.regs;
+ const auto& draw_setup = maxwell3d.mme_draw;
+ const auto num_instances = draw_setup.instance_count;
+ const auto base_instance = static_cast<GLint>(regs.vb_base_instance);
+ const auto primitive_mode = MaxwellToGL::PrimitiveTopology(regs.draw.topology);
if (draw_setup.current_mode == Tegra::Engines::Maxwell3D::MMMEDrawMode::Indexed) {
- auto index_format = MaxwellToGL::IndexFormat(regs.index_array.format);
- auto count = regs.index_array.count;
- auto base_vertex = static_cast<GLint>(regs.vb_element_base);
+ const auto index_format = MaxwellToGL::IndexFormat(regs.index_array.format);
+ const auto count = regs.index_array.count;
+ const auto base_vertex = static_cast<GLint>(regs.vb_element_base);
const auto index_buffer_ptr = reinterpret_cast<const void*>(index_buffer_offset);
if (num_instances > 1) {
glDrawElementsInstancedBaseVertexBaseInstance(primitive_mode, count, index_format,
@@ -844,8 +842,8 @@ void RasterizerOpenGL::DrawMultiArrays() {
base_vertex);
}
} else {
- auto count = regs.vertex_buffer.count;
- auto vertex_first = regs.vertex_buffer.first;
+ const auto count = regs.vertex_buffer.count;
+ const auto vertex_first = regs.vertex_buffer.first;
if (num_instances > 1) {
glDrawArraysInstancedBaseInstance(primitive_mode, vertex_first, count, num_instances,
base_instance);