diff options
-rw-r--r-- | src/gallium/drivers/radeonsi/radeonsi_shader.c | 7 |
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, |