- if (target == TGSI_TEXTURE_BUFFER) {
- LLVMBuilderRef builder = ctx->gallivm.builder;
-
- rsrc_ptr = LLVMBuildPointerCast(builder, rsrc_ptr,
- const_array(ctx->v4i32, 0), "");
- index = LLVMBuildMul(builder, index,
- LLVMConstInt(ctx->i32, 2, 0), "");
- index = LLVMBuildAdd(builder, index,
- LLVMConstInt(ctx->i32, 1, 0), "");
- *rsrc = ac_build_indexed_load_const(&ctx->ac, rsrc_ptr, index);
- return;
- }
-
- tmp = ac_build_indexed_load_const(&ctx->ac, rsrc_ptr, index);
- if (dcc_off)
- tmp = force_dcc_off(ctx, tmp);
- *rsrc = tmp;
+ *rsrc = load_image_desc(ctx, rsrc_ptr, index, target);
+ if (dcc_off && target != TGSI_TEXTURE_BUFFER)
+ *rsrc = force_dcc_off(ctx, *rsrc);