summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorMichel Dänzer <[email protected]>2012-12-03 12:46:30 +0100
committerMichel Dänzer <[email protected]>2012-12-06 20:35:18 +0100
commite0f2ffc3d9dfa1c0492370d4d86a310c56a99e90 (patch)
treeaf89e1aa1018d9d71e12e0c74b9b58f7a9099180 /src/gallium
parentaac21547292cf0540e14679fc9bef260eb5092a3 (diff)
radeonsi: Fix cube texture coordinates.
8 more piglits. Reviewed-by: Tom Stellard <[email protected]> Signed-off-by: Michel Dänzer <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/radeonsi/radeonsi_shader.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeonsi/radeonsi_shader.c b/src/gallium/drivers/radeonsi/radeonsi_shader.c
index d5d56c46a84..a452d4bbe9b 100644
--- a/src/gallium/drivers/radeonsi/radeonsi_shader.c
+++ b/src/gallium/drivers/radeonsi/radeonsi_shader.c
@@ -813,6 +813,13 @@ static void tex_fetch_args(
emit_data->args[1] = lp_build_emit_fetch(bld_base, emit_data->inst,
0, LP_CHAN_ALL);
+ if ((inst->Texture.Texture == TGSI_TEXTURE_CUBE ||
+ inst->Texture.Texture == TGSI_TEXTURE_SHADOWCUBE) &&
+ inst->Instruction.Opcode != TGSI_OPCODE_TXQ) {
+ radeon_llvm_emit_prepare_cube_coords(bld_base, &emit_data->args[1],
+ inst->Texture.Texture);
+ }
+
/* Resource */
ptr = use_sgpr(bld_base->base.gallivm, SGPR_CONST_PTR_V8I32, SI_SGPR_RESOURCE);
offset = lp_build_const_int32(bld_base->base.gallivm,