sscreen->b.info.pfp_fw_version >= 121 &&
sscreen->b.info.me_fw_version >= 87);
+ sscreen->has_ds_bpermute = HAVE_LLVM >= 0x0309 &&
+ sscreen->b.chip_class >= VI;
+
sscreen->b.has_cp_dma = true;
sscreen->b.has_streamout = true;
pipe_mutex_init(sscreen->shader_parts_mutex);
unsigned tess_offchip_block_dw_size;
bool has_distributed_tess;
bool has_draw_indirect_multi;
+ bool has_ds_bpermute;
/* Whether shaders are monolithic (1-part) or separate (3-part). */
bool use_monolithic_shaders;
LLVMValueRef thread_id, tl, trbl, tl_tid, trbl_tid, val, args[2];
int idx;
unsigned mask;
- bool has_ds_bpermute = HAVE_LLVM >= 0x0309 &&
- ctx->screen->b.chip_class >= VI;
thread_id = get_thread_id(ctx);
val = LLVMBuildBitCast(gallivm->builder, emit_data->args[0], ctx->i32, "");
- if (has_ds_bpermute) {
+ if (ctx->screen->has_ds_bpermute) {
args[0] = LLVMBuildMul(gallivm->builder, tl_tid,
lp_build_const_int32(gallivm, 4), "");
args[1] = val;
for (; i < num_params; ++i)
shader->info.num_input_vgprs += llvm_get_type_size(params[i]) / 4;
- if (bld_base->info &&
+ if (!ctx->screen->has_ds_bpermute &&
+ bld_base->info &&
(bld_base->info->opcode_count[TGSI_OPCODE_DDX] > 0 ||
bld_base->info->opcode_count[TGSI_OPCODE_DDY] > 0 ||
bld_base->info->opcode_count[TGSI_OPCODE_DDX_FINE] > 0 ||