amd/common: add support for AMD_shader_ballot functions
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
This commit is contained in:
parent
7a858f274c
commit
deedc0b31d
|
@ -3458,6 +3458,26 @@ static void visit_intrinsic(struct ac_nir_context *ctx,
|
|||
case nir_intrinsic_quad_swap_diagonal:
|
||||
result = ac_build_quad_swizzle(&ctx->ac, get_src(ctx, instr->src[0]), 3, 2, 1 ,0);
|
||||
break;
|
||||
case nir_intrinsic_quad_swizzle_amd: {
|
||||
uint32_t mask = nir_intrinsic_swizzle_mask(instr);
|
||||
result = ac_build_quad_swizzle(&ctx->ac, get_src(ctx, instr->src[0]),
|
||||
mask & 0x3, (mask >> 2) & 0x3,
|
||||
(mask >> 4) & 0x3, (mask >> 6) & 0x3);
|
||||
break;
|
||||
}
|
||||
case nir_intrinsic_masked_swizzle_amd: {
|
||||
uint32_t mask = nir_intrinsic_swizzle_mask(instr);
|
||||
result = ac_build_ds_swizzle(&ctx->ac, get_src(ctx, instr->src[0]), mask);
|
||||
break;
|
||||
}
|
||||
case nir_intrinsic_write_invocation_amd:
|
||||
result = ac_build_writelane(&ctx->ac, get_src(ctx, instr->src[0]),
|
||||
get_src(ctx, instr->src[1]),
|
||||
get_src(ctx, instr->src[2]));
|
||||
break;
|
||||
case nir_intrinsic_mbcnt_amd:
|
||||
result = ac_build_mbcnt(&ctx->ac, get_src(ctx, instr->src[0]));
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "Unknown intrinsic: ");
|
||||
nir_print_instr(&instr->instr, stderr);
|
||||
|
|
Loading…
Reference in New Issue