summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar bunnei2016-05-02 20:44:53 -0400
committerGravatar bunnei2016-05-02 20:44:53 -0400
commit6d02fe39f50436e0d1751b81e097b412645e4418 (patch)
treebcd93e5f02da2be392feb20987066d4cf35ce221 /src
parentMerge pull request #1732 from wwylele/config00170000 (diff)
parentPica: Replace logic in shader.cpp with loop (diff)
downloadyuzu-6d02fe39f50436e0d1751b81e097b412645e4418.tar.gz
yuzu-6d02fe39f50436e0d1751b81e097b412645e4418.tar.xz
yuzu-6d02fe39f50436e0d1751b81e097b412645e4418.zip
Merge pull request #1750 from JayFoxRox/cleanup-shader-input
Pica: Replace logic in shader.cpp with loop
Diffstat (limited to 'src')
-rw-r--r--src/video_core/shader/shader.cpp38
1 files changed, 4 insertions, 34 deletions
diff --git a/src/video_core/shader/shader.cpp b/src/video_core/shader/shader.cpp
index 356d87f13..65dcc9156 100644
--- a/src/video_core/shader/shader.cpp
+++ b/src/video_core/shader/shader.cpp
@@ -74,24 +74,8 @@ OutputVertex Run(UnitState<false>& state, const InputVertex& input, int num_attr
74 // Setup input register table 74 // Setup input register table
75 const auto& attribute_register_map = config.input_register_map; 75 const auto& attribute_register_map = config.input_register_map;
76 76
77 // TODO: Instead of this cumbersome logic, just load the input data directly like 77 for (unsigned i = 0; i < num_attributes; i++)
78 // for (int attr = 0; attr < num_attributes; ++attr) { input_attr[0] = state.registers.input[attribute_register_map.attribute0_register]; } 78 state.registers.input[attribute_register_map.GetRegisterForAttribute(i)] = input.attr[i];
79 if (num_attributes > 0) state.registers.input[attribute_register_map.attribute0_register] = input.attr[0];
80 if (num_attributes > 1) state.registers.input[attribute_register_map.attribute1_register] = input.attr[1];
81 if (num_attributes > 2) state.registers.input[attribute_register_map.attribute2_register] = input.attr[2];
82 if (num_attributes > 3) state.registers.input[attribute_register_map.attribute3_register] = input.attr[3];
83 if (num_attributes > 4) state.registers.input[attribute_register_map.attribute4_register] = input.attr[4];
84 if (num_attributes > 5) state.registers.input[attribute_register_map.attribute5_register] = input.attr[5];
85 if (num_attributes > 6) state.registers.input[attribute_register_map.attribute6_register] = input.attr[6];
86 if (num_attributes > 7) state.registers.input[attribute_register_map.attribute7_register] = input.attr[7];
87 if (num_attributes > 8) state.registers.input[attribute_register_map.attribute8_register] = input.attr[8];
88 if (num_attributes > 9) state.registers.input[attribute_register_map.attribute9_register] = input.attr[9];
89 if (num_attributes > 10) state.registers.input[attribute_register_map.attribute10_register] = input.attr[10];
90 if (num_attributes > 11) state.registers.input[attribute_register_map.attribute11_register] = input.attr[11];
91 if (num_attributes > 12) state.registers.input[attribute_register_map.attribute12_register] = input.attr[12];
92 if (num_attributes > 13) state.registers.input[attribute_register_map.attribute13_register] = input.attr[13];
93 if (num_attributes > 14) state.registers.input[attribute_register_map.attribute14_register] = input.attr[14];
94 if (num_attributes > 15) state.registers.input[attribute_register_map.attribute15_register] = input.attr[15];
95 79
96 state.conditional_code[0] = false; 80 state.conditional_code[0] = false;
97 state.conditional_code[1] = false; 81 state.conditional_code[1] = false;
@@ -168,22 +152,8 @@ DebugData<true> ProduceDebugInfo(const InputVertex& input, int num_attributes, c
168 float24 dummy_register; 152 float24 dummy_register;
169 boost::fill(state.registers.input, &dummy_register); 153 boost::fill(state.registers.input, &dummy_register);
170 154
171 if (num_attributes > 0) state.registers.input[attribute_register_map.attribute0_register] = &input.attr[0].x; 155 for (unsigned i = 0; i < num_attributes; i++)
172 if (num_attributes > 1) state.registers.input[attribute_register_map.attribute1_register] = &input.attr[1].x; 156 state.registers.input[attribute_register_map.GetRegisterForAttribute(i)] = input.attr[i];
173 if (num_attributes > 2) state.registers.input[attribute_register_map.attribute2_register] = &input.attr[2].x;
174 if (num_attributes > 3) state.registers.input[attribute_register_map.attribute3_register] = &input.attr[3].x;
175 if (num_attributes > 4) state.registers.input[attribute_register_map.attribute4_register] = &input.attr[4].x;
176 if (num_attributes > 5) state.registers.input[attribute_register_map.attribute5_register] = &input.attr[5].x;
177 if (num_attributes > 6) state.registers.input[attribute_register_map.attribute6_register] = &input.attr[6].x;
178 if (num_attributes > 7) state.registers.input[attribute_register_map.attribute7_register] = &input.attr[7].x;
179 if (num_attributes > 8) state.registers.input[attribute_register_map.attribute8_register] = &input.attr[8].x;
180 if (num_attributes > 9) state.registers.input[attribute_register_map.attribute9_register] = &input.attr[9].x;
181 if (num_attributes > 10) state.registers.input[attribute_register_map.attribute10_register] = &input.attr[10].x;
182 if (num_attributes > 11) state.registers.input[attribute_register_map.attribute11_register] = &input.attr[11].x;
183 if (num_attributes > 12) state.registers.input[attribute_register_map.attribute12_register] = &input.attr[12].x;
184 if (num_attributes > 13) state.registers.input[attribute_register_map.attribute13_register] = &input.attr[13].x;
185 if (num_attributes > 14) state.registers.input[attribute_register_map.attribute14_register] = &input.attr[14].x;
186 if (num_attributes > 15) state.registers.input[attribute_register_map.attribute15_register] = &input.attr[15].x;
187 157
188 state.conditional_code[0] = false; 158 state.conditional_code[0] = false;
189 state.conditional_code[1] = false; 159 state.conditional_code[1] = false;