gallium/tgsi: pass TGSI tex target to tgsi_transform_tex_inst()
Instead of hard-coded 2D tex target in tgsi_transform_tex_2d_inst() Reviewed-by: Marek Olšák <marek.olsak@amd.com> Reviewed-by: Charmaine Lee <charmainel@vmware.com>
This commit is contained in:
parent
a8b315b827
commit
63e020d734
|
@ -264,11 +264,11 @@ aa_transform_epilog(struct tgsi_transform_context *ctx)
|
|||
if (aactx->colorOutput != -1) {
|
||||
/* insert texture sampling code for antialiasing. */
|
||||
|
||||
/* TEX texTemp, input_coord, sampler */
|
||||
tgsi_transform_tex_2d_inst(ctx,
|
||||
TGSI_FILE_TEMPORARY, aactx->texTemp,
|
||||
TGSI_FILE_INPUT, aactx->maxInput + 1,
|
||||
aactx->freeSampler);
|
||||
/* TEX texTemp, input_coord, sampler, 2D */
|
||||
tgsi_transform_tex_inst(ctx,
|
||||
TGSI_FILE_TEMPORARY, aactx->texTemp,
|
||||
TGSI_FILE_INPUT, aactx->maxInput + 1,
|
||||
TGSI_TEXTURE_2D, aactx->freeSampler);
|
||||
|
||||
/* MOV rgb */
|
||||
tgsi_transform_op1_inst(ctx, TGSI_OPCODE_MOV,
|
||||
|
|
|
@ -516,15 +516,18 @@ tgsi_transform_kill_inst(struct tgsi_transform_context *ctx,
|
|||
|
||||
|
||||
static inline void
|
||||
tgsi_transform_tex_2d_inst(struct tgsi_transform_context *ctx,
|
||||
unsigned dst_file,
|
||||
unsigned dst_index,
|
||||
unsigned src_file,
|
||||
unsigned src_index,
|
||||
unsigned sampler_index)
|
||||
tgsi_transform_tex_inst(struct tgsi_transform_context *ctx,
|
||||
unsigned dst_file,
|
||||
unsigned dst_index,
|
||||
unsigned src_file,
|
||||
unsigned src_index,
|
||||
unsigned tex_target,
|
||||
unsigned sampler_index)
|
||||
{
|
||||
struct tgsi_full_instruction inst;
|
||||
|
||||
assert(tex_target < TGSI_TEXTURE_COUNT);
|
||||
|
||||
inst = tgsi_default_full_instruction();
|
||||
inst.Instruction.Opcode = TGSI_OPCODE_TEX;
|
||||
inst.Instruction.NumDstRegs = 1;
|
||||
|
@ -532,7 +535,7 @@ tgsi_transform_tex_2d_inst(struct tgsi_transform_context *ctx,
|
|||
inst.Dst[0].Register.Index = dst_index;
|
||||
inst.Instruction.NumSrcRegs = 2;
|
||||
inst.Instruction.Texture = TRUE;
|
||||
inst.Texture.Texture = TGSI_TEXTURE_2D;
|
||||
inst.Texture.Texture = tex_target;
|
||||
inst.Src[0].Register.File = src_file;
|
||||
inst.Src[0].Register.Index = src_index;
|
||||
inst.Src[1].Register.File = TGSI_FILE_SAMPLER;
|
||||
|
|
|
@ -344,11 +344,11 @@ pstip_transform_prolog(struct tgsi_transform_context *ctx)
|
|||
pctx->wincoordFile, wincoordInput,
|
||||
TGSI_FILE_IMMEDIATE, pctx->numImmed);
|
||||
|
||||
/* TEX texTemp, texTemp, sampler; */
|
||||
tgsi_transform_tex_2d_inst(ctx,
|
||||
TGSI_FILE_TEMPORARY, texTemp,
|
||||
TGSI_FILE_TEMPORARY, texTemp,
|
||||
sampIdx);
|
||||
/* TEX texTemp, texTemp, sampler, 2D; */
|
||||
tgsi_transform_tex_inst(ctx,
|
||||
TGSI_FILE_TEMPORARY, texTemp,
|
||||
TGSI_FILE_TEMPORARY, texTemp,
|
||||
TGSI_TEXTURE_2D, sampIdx);
|
||||
|
||||
/* KILL_IF -texTemp; # if -texTemp < 0, kill fragment */
|
||||
tgsi_transform_kill_inst(ctx,
|
||||
|
|
|
@ -89,10 +89,10 @@ transform_instr(struct tgsi_transform_context *tctx,
|
|||
tgsi_transform_sampler_decl(tctx, ctx->sampler_index);
|
||||
|
||||
/* TEX tmp0, fragment.texcoord[0], texture[0], 2D; */
|
||||
tgsi_transform_tex_2d_inst(tctx,
|
||||
TGSI_FILE_TEMPORARY, 0,
|
||||
TGSI_FILE_INPUT, texcoord_index,
|
||||
ctx->sampler_index);
|
||||
tgsi_transform_tex_inst(tctx,
|
||||
TGSI_FILE_TEMPORARY, 0,
|
||||
TGSI_FILE_INPUT, texcoord_index,
|
||||
TGSI_TEXTURE_2D, ctx->sampler_index);
|
||||
|
||||
/* KIL if -tmp0 < 0 # texel=0 -> keep / texel=0 -> discard */
|
||||
inst = tgsi_default_full_instruction();
|
||||
|
|
|
@ -129,9 +129,9 @@ transform_instr(struct tgsi_transform_context *tctx,
|
|||
/* Get initial pixel color from the texture.
|
||||
* TEX temp, fragment.texcoord[0], texture[0], 2D;
|
||||
*/
|
||||
tgsi_transform_tex_2d_inst(tctx, TGSI_FILE_TEMPORARY, ctx->color_temp,
|
||||
TGSI_FILE_INPUT, texcoord_index,
|
||||
ctx->drawpix_sampler);
|
||||
tgsi_transform_tex_inst(tctx, TGSI_FILE_TEMPORARY, ctx->color_temp,
|
||||
TGSI_FILE_INPUT, texcoord_index,
|
||||
TGSI_TEXTURE_2D, ctx->drawpix_sampler);
|
||||
|
||||
/* Apply the scale and bias. */
|
||||
if (ctx->scale_and_bias) {
|
||||
|
|
Loading…
Reference in New Issue