Quellcode durchsuchen

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 vor 12 Jahren
Ursprung
Commit
7d555f2f4c
1 geänderte Dateien mit 20 neuen und 0 gelöschten Zeilen
  1. 20
    0
      src/gallium/drivers/r600/r600_shader.c

+ 20
- 0
src/gallium/drivers/r600/r600_shader.c Datei anzeigen

@@ -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;

Laden…
Abbrechen
Speichern