st/glsl_to_tgsi: readd the double_reg2 for input index mapping
Otherwise we end up emitting the wrong index for the second double. This fixes dmat-vs-gs-tcs-tes.shader_test and dvec3-vs-gs-tcs-tes.shader_test Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
@@ -4640,7 +4640,7 @@ src_register(struct st_translate *t, const st_src_reg *reg)
|
|||||||
if (!reg->array_id) {
|
if (!reg->array_id) {
|
||||||
assert(t->inputMapping[index] < ARRAY_SIZE(t->inputs));
|
assert(t->inputMapping[index] < ARRAY_SIZE(t->inputs));
|
||||||
assert(t->inputs[t->inputMapping[index]].File != TGSI_FILE_NULL);
|
assert(t->inputs[t->inputMapping[index]].File != TGSI_FILE_NULL);
|
||||||
return t->inputs[t->inputMapping[index]];
|
return t->inputs[t->inputMapping[index] + double_reg2];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
struct array_decl *decl = &t->input_arrays[reg->array_id-1];
|
struct array_decl *decl = &t->input_arrays[reg->array_id-1];
|
||||||
@@ -4649,7 +4649,7 @@ src_register(struct st_translate *t, const st_src_reg *reg)
|
|||||||
|
|
||||||
assert(slot != -1 && t->inputs[slot].File == TGSI_FILE_INPUT);
|
assert(slot != -1 && t->inputs[slot].File == TGSI_FILE_INPUT);
|
||||||
assert(t->inputs[slot].ArrayID == reg->array_id);
|
assert(t->inputs[slot].ArrayID == reg->array_id);
|
||||||
return ureg_src_array_offset(t->inputs[slot], index - mesa_index);
|
return ureg_src_array_offset(t->inputs[slot], index + double_reg2 - mesa_index);
|
||||||
}
|
}
|
||||||
|
|
||||||
case PROGRAM_ADDRESS:
|
case PROGRAM_ADDRESS:
|
||||||
|
Reference in New Issue
Block a user