Procházet zdrojové kódy

r600g: mask unused source components for SAMPLE

This results in more clean shader code and may improve the quality of
optimized code produced by r600-sb due to eliminated false dependencies
in some cases.

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
undefined
Vadim Girlin před 12 roky
rodič
revize
7d555f2f4c
1 změnil soubory, kde provedl 20 přidání a 0 odebrání
  1. 20
    0
      src/gallium/drivers/r600/r600_shader.c

+ 20
- 0
src/gallium/drivers/r600/r600_shader.c Zobrazit soubor

@@ -4743,6 +4743,26 @@ static int tgsi_tex(struct r600_shader_ctx *ctx)
/* the array index is read from Z */
tex.coord_type_z = 0;

/* mask unused source components */
if (opcode == FETCH_OP_SAMPLE) {
switch (inst->Texture.Texture) {
case TGSI_TEXTURE_2D:
case TGSI_TEXTURE_RECT:
tex.src_sel_z = 7;
tex.src_sel_w = 7;
break;
case TGSI_TEXTURE_1D_ARRAY:
tex.src_sel_y = 7;
tex.src_sel_w = 7;
break;
case TGSI_TEXTURE_1D:
tex.src_sel_y = 7;
tex.src_sel_z = 7;
tex.src_sel_w = 7;
break;
}
}

r = r600_bytecode_add_tex(ctx->bc, &tex);
if (r)
return r;

Načítá se…
Zrušit
Uložit