summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2017-01-31 05:19:56 +1000
committerEmil Velikov <emil.l.velikov@gmail.com>2017-03-14 00:13:14 +0000
commitce748ec4eb48452c0c983000f2b7988abaa6a9c1 (patch)
tree7c0b81d63c82891d41cd1f5a3f081ddf9840ebb7 /src
parent32ff92552985ba4243a36578b0a3b60629d22f0a (diff)
radv/ac: implement txs for buffer textures.
This fixes a bunch of buffer related: dEQP-VK.memory.pipeline_barrier.* tests, that were crashing in LLVM due to this being missing. Reviewed-by: Andres Rodriguez<andresx7@gmail.com> Cc: "17.0" <mesa-stable@lists.freedesktop.org> Signed-off-by: Dave Airlie <airlied@redhat.com> (cherry picked from commit 0ecd426490b043aac6a5db0a6e0feaa39f6d9c54)
Diffstat (limited to 'src')
-rw-r--r--src/amd/common/ac_nir_to_llvm.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index 4a7a0eba7ac..6ae1a69f055 100644
--- a/src/amd/common/ac_nir_to_llvm.c
+++ b/src/amd/common/ac_nir_to_llvm.c
@@ -3301,6 +3301,11 @@ static void visit_tex(struct nir_to_llvm_context *ctx, nir_tex_instr *instr)
}
}
+ if (instr->op == nir_texop_txs && instr->sampler_dim == GLSL_SAMPLER_DIM_BUF) {
+ result = get_buffer_size(ctx, res_ptr, false);
+ goto write_result;
+ }
+
if (instr->op == nir_texop_texture_samples) {
LLVMValueRef res, samples, is_msaa;
res = LLVMBuildBitCast(ctx->builder, res_ptr, ctx->v8i32, "");