diff options
| author | 2015-08-25 02:36:57 -0300 | |
|---|---|---|
| committer | 2015-09-07 16:46:29 -0300 | |
| commit | f77dfb3966f9f0aad09e54e77fff6ea2256e114d (patch) | |
| tree | 25e17a80201a6adf2c6c36471bd92e6034421bcd /src | |
| parent | Shader Debugger: Fix freeze when double-clicking shader disassembly (diff) | |
| download | yuzu-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.cpp | 14 |
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); |