mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 20:28:04 +02:00
ac/nir: Support vulkan_resource_reindex.
Fixes: 93b4cb61eb "spirv: Allow OpPtrAccessChain for block indices"
Reviewed-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
368f49b284
commit
3342a432fa
1 changed files with 14 additions and 0 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue