mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 04:48:08 +02:00
tgsi_exec: handle execmask when doing indirect lookups
Reviewed-by: Brian Paul <brianp@vmware.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
1ff4cc0535
commit
ca180c09bb
1 changed files with 9 additions and 3 deletions
|
|
@ -1995,11 +1995,11 @@ fetch_sampler_unit(struct tgsi_exec_machine *mach,
|
|||
uint sampler)
|
||||
{
|
||||
uint unit;
|
||||
|
||||
int i;
|
||||
if (inst->Src[sampler].Register.Indirect) {
|
||||
const struct tgsi_full_src_register *reg = &inst->Src[sampler];
|
||||
union tgsi_exec_channel indir_index, index2;
|
||||
|
||||
const uint execmask = mach->ExecMask;
|
||||
index2.i[0] =
|
||||
index2.i[1] =
|
||||
index2.i[2] =
|
||||
|
|
@ -2012,7 +2012,13 @@ fetch_sampler_unit(struct tgsi_exec_machine *mach,
|
|||
&index2,
|
||||
&ZeroVec,
|
||||
&indir_index);
|
||||
unit = inst->Src[sampler].Register.Index + indir_index.i[0];
|
||||
for (i = 0; i < TGSI_QUAD_SIZE; i++) {
|
||||
if (execmask & (1 << i)) {
|
||||
unit = inst->Src[sampler].Register.Index + indir_index.i[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
unit = inst->Src[sampler].Register.Index;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue