Module: Mesa Branch: master Commit: 3342a432fa1452459ac4b6a0b20e634437791cee URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3342a432fa1452459ac4b6a0b20e634437791cee
Author: Bas Nieuwenhuizen <[email protected]> Date: Sun Dec 10 23:31:45 2017 +0100 ac/nir: Support vulkan_resource_reindex. Fixes: 93b4cb61eb2 "spirv: Allow OpPtrAccessChain for block indices" Reviewed-by: Dave Airlie <[email protected]> --- src/amd/common/ac_nir_to_llvm.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c index 2016a5d067..3d26dd3752 100644 --- a/src/amd/common/ac_nir_to_llvm.c +++ b/src/amd/common/ac_nir_to_llvm.c @@ -2230,6 +2230,17 @@ static LLVMValueRef visit_vulkan_resource_index(struct nir_to_llvm_context *ctx, return desc_ptr; } +static LLVMValueRef visit_vulkan_resource_reindex(struct nir_to_llvm_context *ctx, + nir_intrinsic_instr *instr) +{ + LLVMValueRef ptr = get_src(ctx->nir, instr->src[0]); + LLVMValueRef index = get_src(ctx->nir, instr->src[1]); + + LLVMValueRef result = LLVMBuildGEP(ctx->builder, ptr, &index, 1, ""); + LLVMSetMetadata(result, ctx->ac.uniform_md_kind, ctx->ac.empty_md); + return result; +} + static LLVMValueRef visit_load_push_constant(struct nir_to_llvm_context *ctx, nir_intrinsic_instr *instr) { @@ -4123,6 +4134,9 @@ static void visit_intrinsic(struct ac_nir_context *ctx, case nir_intrinsic_vulkan_resource_index: result = visit_vulkan_resource_index(ctx->nctx, instr); break; + case nir_intrinsic_vulkan_resource_reindex: + result = visit_vulkan_resource_reindex(ctx->nctx, instr); + break; case nir_intrinsic_store_ssbo: visit_store_ssbo(ctx, instr); break; _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
