diff options
| -rw-r--r-- | src/video_core/engines/maxwell_3d.cpp | 17 | ||||
| -rw-r--r-- | src/video_core/engines/maxwell_3d.h | 6 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 2 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_state.cpp | 3 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_state.h | 2 |
5 files changed, 13 insertions, 17 deletions
diff --git a/src/video_core/engines/maxwell_3d.cpp b/src/video_core/engines/maxwell_3d.cpp index 97422e700..87777e265 100644 --- a/src/video_core/engines/maxwell_3d.cpp +++ b/src/video_core/engines/maxwell_3d.cpp | |||
| @@ -91,14 +91,11 @@ void Maxwell3D::InitializeRegisterDefaults() { | |||
| 91 | 91 | ||
| 92 | void Maxwell3D::InitDirtySettings() { | 92 | void Maxwell3D::InitDirtySettings() { |
| 93 | const auto set_block = [this](const u32 start, const u32 range, const u8 position) { | 93 | const auto set_block = [this](const u32 start, const u32 range, const u8 position) { |
| 94 | const u32 end = start + range; | 94 | const auto start_itr = dirty_pointers.begin() + start; |
| 95 | for (std::size_t i = start; i < end; i++) { | 95 | const auto end_itr = start_itr + range; |
| 96 | dirty_pointers[i] = position; | 96 | std::fill(start_itr, end_itr, position); |
| 97 | } | ||
| 98 | }; | 97 | }; |
| 99 | for (std::size_t i = 0; i < DirtyRegs::NUM_REGS; i++) { | 98 | dirty.regs.fill(true); |
| 100 | dirty.regs[i] = true; | ||
| 101 | } | ||
| 102 | 99 | ||
| 103 | // Init Render Targets | 100 | // Init Render Targets |
| 104 | constexpr u32 registers_per_rt = sizeof(regs.rt[0]) / sizeof(u32); | 101 | constexpr u32 registers_per_rt = sizeof(regs.rt[0]) / sizeof(u32); |
| @@ -308,7 +305,7 @@ void Maxwell3D::CallMethod(const GPU::MethodCall& method_call) { | |||
| 308 | 305 | ||
| 309 | if (regs.reg_array[method] != method_call.argument) { | 306 | if (regs.reg_array[method] != method_call.argument) { |
| 310 | regs.reg_array[method] = method_call.argument; | 307 | regs.reg_array[method] = method_call.argument; |
| 311 | std::size_t dirty_reg = dirty_pointers[method]; | 308 | const std::size_t dirty_reg = dirty_pointers[method]; |
| 312 | if (dirty_reg) { | 309 | if (dirty_reg) { |
| 313 | dirty.regs[dirty_reg] = true; | 310 | dirty.regs[dirty_reg] = true; |
| 314 | if (dirty_reg >= DIRTY_REGS_POS(vertex_array) && | 311 | if (dirty_reg >= DIRTY_REGS_POS(vertex_array) && |
| @@ -540,7 +537,7 @@ void Maxwell3D::ProcessCBBind(Regs::ShaderStage stage) { | |||
| 540 | 537 | ||
| 541 | void Maxwell3D::ProcessCBData(u32 value) { | 538 | void Maxwell3D::ProcessCBData(u32 value) { |
| 542 | const u32 id = cb_data_state.id; | 539 | const u32 id = cb_data_state.id; |
| 543 | cb_data_state.buff[id][cb_data_state.counter] = value; | 540 | cb_data_state.buffer[id][cb_data_state.counter] = value; |
| 544 | // Increment the current buffer position. | 541 | // Increment the current buffer position. |
| 545 | regs.const_buffer.cb_pos = regs.const_buffer.cb_pos + 4; | 542 | regs.const_buffer.cb_pos = regs.const_buffer.cb_pos + 4; |
| 546 | cb_data_state.counter++; | 543 | cb_data_state.counter++; |
| @@ -567,7 +564,7 @@ void Maxwell3D::FinishCBData() { | |||
| 567 | const std::size_t size = regs.const_buffer.cb_pos - cb_data_state.start_pos; | 564 | const std::size_t size = regs.const_buffer.cb_pos - cb_data_state.start_pos; |
| 568 | 565 | ||
| 569 | const u32 id = cb_data_state.id; | 566 | const u32 id = cb_data_state.id; |
| 570 | memory_manager.WriteBlock(address, cb_data_state.buff[id].data(), size); | 567 | memory_manager.WriteBlock(address, cb_data_state.buffer[id].data(), size); |
| 571 | dirty.OnMemoryWrite(); | 568 | dirty.OnMemoryWrite(); |
| 572 | 569 | ||
| 573 | cb_data_state.id = null_cb_data; | 570 | cb_data_state.id = null_cb_data; |
diff --git a/src/video_core/engines/maxwell_3d.h b/src/video_core/engines/maxwell_3d.h index abc69cc65..6bf8d0603 100644 --- a/src/video_core/engines/maxwell_3d.h +++ b/src/video_core/engines/maxwell_3d.h | |||
| @@ -1169,13 +1169,13 @@ public: | |||
| 1169 | }; | 1169 | }; |
| 1170 | 1170 | ||
| 1171 | void ResetVertexArrays() { | 1171 | void ResetVertexArrays() { |
| 1172 | std::fill(vertex_array.begin(), vertex_array.end(), true); | 1172 | vertex_array.fill(true); |
| 1173 | vertex_array_buffers = true; | 1173 | vertex_array_buffers = true; |
| 1174 | } | 1174 | } |
| 1175 | 1175 | ||
| 1176 | void ResetRenderTargets() { | 1176 | void ResetRenderTargets() { |
| 1177 | depth_buffer = true; | 1177 | depth_buffer = true; |
| 1178 | std::fill(render_target.begin(), render_target.end(), true); | 1178 | render_target.fill(true); |
| 1179 | render_settings = true; | 1179 | render_settings = true; |
| 1180 | } | 1180 | } |
| 1181 | 1181 | ||
| @@ -1244,7 +1244,7 @@ private: | |||
| 1244 | 1244 | ||
| 1245 | static constexpr u32 null_cb_data = 0xFFFFFFFF; | 1245 | static constexpr u32 null_cb_data = 0xFFFFFFFF; |
| 1246 | struct { | 1246 | struct { |
| 1247 | std::array<std::array<u32, 0x4000>, 16> buff; | 1247 | std::array<std::array<u32, 0x4000>, 16> buffer; |
| 1248 | u32 current{null_cb_data}; | 1248 | u32 current{null_cb_data}; |
| 1249 | u32 id{null_cb_data}; | 1249 | u32 id{null_cb_data}; |
| 1250 | u32 start_pos{}; | 1250 | u32 start_pos{}; |
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index 77195ad93..2e974c98a 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp | |||
| @@ -605,7 +605,7 @@ void RasterizerOpenGL::Clear() { | |||
| 605 | }); | 605 | }); |
| 606 | 606 | ||
| 607 | OpenGLState clear_state{OpenGLState::GetCurState()}; | 607 | OpenGLState clear_state{OpenGLState::GetCurState()}; |
| 608 | clear_state.DefaultViewports(); | 608 | clear_state.SetDefaultViewports(); |
| 609 | if (regs.clear_buffers.R || regs.clear_buffers.G || regs.clear_buffers.B || | 609 | if (regs.clear_buffers.R || regs.clear_buffers.G || regs.clear_buffers.B || |
| 610 | regs.clear_buffers.A) { | 610 | regs.clear_buffers.A) { |
| 611 | use_color = true; | 611 | use_color = true; |
diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index 8d62045b0..f4777d0b0 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp | |||
| @@ -165,7 +165,7 @@ OpenGLState::OpenGLState() { | |||
| 165 | alpha_test.ref = 0.0f; | 165 | alpha_test.ref = 0.0f; |
| 166 | } | 166 | } |
| 167 | 167 | ||
| 168 | void OpenGLState::DefaultViewports() { | 168 | void OpenGLState::SetDefaultViewports() { |
| 169 | for (auto& item : viewports) { | 169 | for (auto& item : viewports) { |
| 170 | item.x = 0; | 170 | item.x = 0; |
| 171 | item.y = 0; | 171 | item.y = 0; |
| @@ -182,7 +182,6 @@ void OpenGLState::DefaultViewports() { | |||
| 182 | 182 | ||
| 183 | depth_clamp.far_plane = false; | 183 | depth_clamp.far_plane = false; |
| 184 | depth_clamp.near_plane = false; | 184 | depth_clamp.near_plane = false; |
| 185 | |||
| 186 | } | 185 | } |
| 187 | 186 | ||
| 188 | void OpenGLState::ApplyDefaultState() { | 187 | void OpenGLState::ApplyDefaultState() { |
diff --git a/src/video_core/renderer_opengl/gl_state.h b/src/video_core/renderer_opengl/gl_state.h index 2860a2c82..6a85d15b1 100644 --- a/src/video_core/renderer_opengl/gl_state.h +++ b/src/video_core/renderer_opengl/gl_state.h | |||
| @@ -195,7 +195,7 @@ public: | |||
| 195 | s_rgb_used = false; | 195 | s_rgb_used = false; |
| 196 | } | 196 | } |
| 197 | 197 | ||
| 198 | void DefaultViewports(); | 198 | void SetDefaultViewports(); |
| 199 | /// Apply this state as the current OpenGL state | 199 | /// Apply this state as the current OpenGL state |
| 200 | void Apply(); | 200 | void Apply(); |
| 201 | 201 | ||