summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Yuri Kunde Schlesner2015-08-25 02:36:57 -0300
committerGravatar Yuri Kunde Schlesner2015-09-07 16:46:29 -0300
commitf77dfb3966f9f0aad09e54e77fff6ea2256e114d (patch)
tree25e17a80201a6adf2c6c36471bd92e6034421bcd /src
parentShader Debugger: Fix freeze when double-clicking shader disassembly (diff)
downloadyuzu-f77dfb3966f9f0aad09e54e77fff6ea2256e114d.tar.gz
yuzu-f77dfb3966f9f0aad09e54e77fff6ea2256e114d.tar.xz
yuzu-f77dfb3966f9f0aad09e54e77fff6ea2256e114d.zip
Shader Debugger: Fix only first vertex attribute being loaded
Diffstat (limited to 'src')
-rw-r--r--src/citra_qt/debugger/graphics_vertex_shader.cpp14
1 files 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 a94538874..831ead51a 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
475 auto& shader_config = Pica::g_state.regs.vs; 475 auto& shader_config = Pica::g_state.regs.vs;
476 for (auto instr : shader_setup.program_code) 476 for (auto instr : shader_setup.program_code)
477 info.code.push_back({instr}); 477 info.code.push_back({instr});
478 int num_attributes = Pica::g_state.regs.vertex_attributes.GetNumTotalAttributes();
478 479
479 for (auto pattern : shader_setup.swizzle_data) 480 for (auto pattern : shader_setup.swizzle_data)
480 info.swizzle_info.push_back({pattern}); 481 info.swizzle_info.push_back({pattern});
@@ -483,19 +484,18 @@ void GraphicsVertexShaderWidget::Reload(bool replace_vertex_data, void* vertex_d
483 info.labels.insert({ entry_point, "main" }); 484 info.labels.insert({ entry_point, "main" });
484 485
485 // Generate debug information 486 // Generate debug information
486 debug_data = Pica::Shader::ProduceDebugInfo(input_vertex, 1, shader_config, shader_setup); 487 debug_data = Pica::Shader::ProduceDebugInfo(input_vertex, num_attributes, shader_config, shader_setup);
487 488
488 // Reload widget state 489 // Reload widget state
489 490 for (unsigned int attr = 0; attr < num_attributes; ++attr) {
490 // Only show input attributes which are used as input to the shader
491 for (unsigned int attr = 0; attr < 16; ++attr) {
492 input_data_container[attr]->setVisible(false);
493 }
494 for (unsigned int attr = 0; attr < Pica::g_state.regs.vertex_attributes.GetNumTotalAttributes(); ++attr) {
495 unsigned source_attr = shader_config.input_register_map.GetRegisterForAttribute(attr); 491 unsigned source_attr = shader_config.input_register_map.GetRegisterForAttribute(attr);
496 input_data_mapping[source_attr]->setText(QString("-> v%1").arg(attr)); 492 input_data_mapping[source_attr]->setText(QString("-> v%1").arg(attr));
497 input_data_container[source_attr]->setVisible(true); 493 input_data_container[source_attr]->setVisible(true);
498 } 494 }
495 // Only show input attributes which are used as input to the shader
496 for (unsigned int attr = num_attributes; attr < 16; ++attr) {
497 input_data_container[attr]->setVisible(false);
498 }
499 499
500 // Initialize debug info text for current cycle count 500 // Initialize debug info text for current cycle count
501 cycle_index->setMaximum(debug_data.records.size() - 1); 501 cycle_index->setMaximum(debug_data.records.size() - 1);