From f77dfb3966f9f0aad09e54e77fff6ea2256e114d Mon Sep 17 00:00:00 2001
From: Yuri Kunde Schlesner <yuriks@yuriks.net>
Date: Tue, 25 Aug 2015 02:36:57 -0300
Subject: [PATCH] Shader Debugger: Fix only first vertex attribute being loaded

---
 src/citra_qt/debugger/graphics_vertex_shader.cpp | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/citra_qt/debugger/graphics_vertex_shader.cpp b/src/citra_qt/debugger/graphics_vertex_shader.cpp
index a945388744..831ead51ab 100644
--- a/src/citra_qt/debugger/graphics_vertex_shader.cpp
+++ b/src/citra_qt/debugger/graphics_vertex_shader.cpp
@@ -475,6 +475,7 @@ void GraphicsVertexShaderWidget::Reload(bool replace_vertex_data, void* vertex_d
     auto& shader_config = Pica::g_state.regs.vs;
     for (auto instr : shader_setup.program_code)
         info.code.push_back({instr});
+    int num_attributes = Pica::g_state.regs.vertex_attributes.GetNumTotalAttributes();
 
     for (auto pattern : shader_setup.swizzle_data)
         info.swizzle_info.push_back({pattern});
@@ -483,19 +484,18 @@ void GraphicsVertexShaderWidget::Reload(bool replace_vertex_data, void* vertex_d
     info.labels.insert({ entry_point, "main" });
 
     // Generate debug information
-    debug_data = Pica::Shader::ProduceDebugInfo(input_vertex, 1, shader_config, shader_setup);
+    debug_data = Pica::Shader::ProduceDebugInfo(input_vertex, num_attributes, shader_config, shader_setup);
 
     // Reload widget state
-
-    // Only show input attributes which are used as input to the shader
-    for (unsigned int attr = 0; attr < 16; ++attr) {
-        input_data_container[attr]->setVisible(false);
-    }
-    for (unsigned int attr = 0; attr < Pica::g_state.regs.vertex_attributes.GetNumTotalAttributes(); ++attr) {
+    for (unsigned int attr = 0; attr < num_attributes; ++attr) {
         unsigned source_attr = shader_config.input_register_map.GetRegisterForAttribute(attr);
         input_data_mapping[source_attr]->setText(QString("-> v%1").arg(attr));
         input_data_container[source_attr]->setVisible(true);
     }
+    // Only show input attributes which are used as input to the shader
+    for (unsigned int attr = num_attributes; attr < 16; ++attr) {
+        input_data_container[attr]->setVisible(false);
+    }
 
     // Initialize debug info text for current cycle count
     cycle_index->setMaximum(debug_data.records.size() - 1);