Sfoglia il codice sorgente

Maxwell3D: Address Feedback

Fernando Sahmkow 7 anni fa
parent
commit
5ad889f6fd

+ 7 - 10
src/video_core/engines/maxwell_3d.cpp

@@ -91,14 +91,11 @@ void Maxwell3D::InitializeRegisterDefaults() {
 
 void Maxwell3D::InitDirtySettings() {
     const auto set_block = [this](const u32 start, const u32 range, const u8 position) {
-        const u32 end = start + range;
-        for (std::size_t i = start; i < end; i++) {
-            dirty_pointers[i] = position;
-        }
+        const auto start_itr = dirty_pointers.begin() + start;
+        const auto end_itr = start_itr + range;
+        std::fill(start_itr, end_itr, position);
     };
-    for (std::size_t i = 0; i < DirtyRegs::NUM_REGS; i++) {
-        dirty.regs[i] = true;
-    }
+    dirty.regs.fill(true);
 
     // Init Render Targets
     constexpr u32 registers_per_rt = sizeof(regs.rt[0]) / sizeof(u32);
@@ -308,7 +305,7 @@ void Maxwell3D::CallMethod(const GPU::MethodCall& method_call) {
 
     if (regs.reg_array[method] != method_call.argument) {
         regs.reg_array[method] = method_call.argument;
-        std::size_t dirty_reg = dirty_pointers[method];
+        const std::size_t dirty_reg = dirty_pointers[method];
         if (dirty_reg) {
             dirty.regs[dirty_reg] = true;
             if (dirty_reg >= DIRTY_REGS_POS(vertex_array) &&
@@ -540,7 +537,7 @@ void Maxwell3D::ProcessCBBind(Regs::ShaderStage stage) {
 
 void Maxwell3D::ProcessCBData(u32 value) {
     const u32 id = cb_data_state.id;
-    cb_data_state.buff[id][cb_data_state.counter] = value;
+    cb_data_state.buffer[id][cb_data_state.counter] = value;
     // Increment the current buffer position.
     regs.const_buffer.cb_pos = regs.const_buffer.cb_pos + 4;
     cb_data_state.counter++;
@@ -567,7 +564,7 @@ void Maxwell3D::FinishCBData() {
     const std::size_t size = regs.const_buffer.cb_pos - cb_data_state.start_pos;
 
     const u32 id = cb_data_state.id;
-    memory_manager.WriteBlock(address, cb_data_state.buff[id].data(), size);
+    memory_manager.WriteBlock(address, cb_data_state.buffer[id].data(), size);
     dirty.OnMemoryWrite();
 
     cb_data_state.id = null_cb_data;

+ 3 - 3
src/video_core/engines/maxwell_3d.h

@@ -1169,13 +1169,13 @@ public:
         };
 
         void ResetVertexArrays() {
-            std::fill(vertex_array.begin(), vertex_array.end(), true);
+            vertex_array.fill(true);
             vertex_array_buffers = true;
         }
 
         void ResetRenderTargets() {
             depth_buffer = true;
-            std::fill(render_target.begin(), render_target.end(), true);
+            render_target.fill(true);
             render_settings = true;
         }
 
@@ -1244,7 +1244,7 @@ private:
 
     static constexpr u32 null_cb_data = 0xFFFFFFFF;
     struct {
-        std::array<std::array<u32, 0x4000>, 16> buff;
+        std::array<std::array<u32, 0x4000>, 16> buffer;
         u32 current{null_cb_data};
         u32 id{null_cb_data};
         u32 start_pos{};

+ 1 - 1
src/video_core/renderer_opengl/gl_rasterizer.cpp

@@ -605,7 +605,7 @@ void RasterizerOpenGL::Clear() {
     });
 
     OpenGLState clear_state{OpenGLState::GetCurState()};
-    clear_state.DefaultViewports();
+    clear_state.SetDefaultViewports();
     if (regs.clear_buffers.R || regs.clear_buffers.G || regs.clear_buffers.B ||
         regs.clear_buffers.A) {
         use_color = true;

+ 1 - 2
src/video_core/renderer_opengl/gl_state.cpp

@@ -165,7 +165,7 @@ OpenGLState::OpenGLState() {
     alpha_test.ref = 0.0f;
 }
 
-void OpenGLState::DefaultViewports() {
+void OpenGLState::SetDefaultViewports() {
     for (auto& item : viewports) {
         item.x = 0;
         item.y = 0;
@@ -182,7 +182,6 @@ void OpenGLState::DefaultViewports() {
 
     depth_clamp.far_plane = false;
     depth_clamp.near_plane = false;
-
 }
 
 void OpenGLState::ApplyDefaultState() {

+ 1 - 1
src/video_core/renderer_opengl/gl_state.h

@@ -195,7 +195,7 @@ public:
         s_rgb_used = false;
     }
 
-    void DefaultViewports();
+    void SetDefaultViewports();
     /// Apply this state as the current OpenGL state
     void Apply();