softpipe: fix texture sampling from 1D texture array
This is the first part of a fix to piglit glsl-fs-shadow1DArray also fix the passing of unused r[2] in the normal 1D case. Signed-off-by: Dave Airlie <airlied@redhat.com> Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
@@ -1794,9 +1794,22 @@ exec_tex(struct tgsi_exec_machine *mach,
|
||||
break;
|
||||
|
||||
case TGSI_TEXTURE_1D_ARRAY:
|
||||
FETCH(&r[0], 0, CHAN_X);
|
||||
FETCH(&r[1], 0, CHAN_Y);
|
||||
|
||||
if (modifier == TEX_MODIFIER_PROJECTED) {
|
||||
micro_div(&r[0], &r[0], &r[3]);
|
||||
}
|
||||
|
||||
fetch_texel(mach->Samplers[unit],
|
||||
&r[0], &r[1], &ZeroVec, lod, /* S, T, P, LOD */
|
||||
control,
|
||||
&r[0], &r[1], &r[2], &r[3]); /* outputs */
|
||||
break;
|
||||
case TGSI_TEXTURE_SHADOW1D_ARRAY:
|
||||
FETCH(&r[0], 0, CHAN_X);
|
||||
FETCH(&r[1], 0, CHAN_Y);
|
||||
FETCH(&r[2], 0, CHAN_Z);
|
||||
|
||||
if (modifier == TEX_MODIFIER_PROJECTED) {
|
||||
micro_div(&r[0], &r[0], &r[3]);
|
||||
|
||||
Reference in New Issue
Block a user