nir: Rename nir_intrinsic_load_local_group_size to nir_intrinsic_load_workgroup_size
Acked-by: Emma Anholt <emma@anholt.net> Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Acked-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11190>
This commit is contained in:

committed by
Marge Bot

parent
43a6a2151b
commit
a71a780598
@@ -3417,7 +3417,7 @@ static void visit_intrinsic(struct ac_nir_context *ctx, nir_intrinsic_instr *ins
|
|||||||
result = ctx->abi->load_base_vertex(ctx->abi,
|
result = ctx->abi->load_base_vertex(ctx->abi,
|
||||||
instr->intrinsic == nir_intrinsic_load_base_vertex);
|
instr->intrinsic == nir_intrinsic_load_base_vertex);
|
||||||
break;
|
break;
|
||||||
case nir_intrinsic_load_local_group_size:
|
case nir_intrinsic_load_workgroup_size:
|
||||||
result = ctx->abi->load_local_group_size(ctx->abi);
|
result = ctx->abi->load_local_group_size(ctx->abi);
|
||||||
break;
|
break;
|
||||||
case nir_intrinsic_load_vertex_id:
|
case nir_intrinsic_load_vertex_id:
|
||||||
|
@@ -2020,7 +2020,7 @@ nir_intrinsic_from_system_value(gl_system_value val)
|
|||||||
case SYSTEM_VALUE_SUBGROUP_ID:
|
case SYSTEM_VALUE_SUBGROUP_ID:
|
||||||
return nir_intrinsic_load_subgroup_id;
|
return nir_intrinsic_load_subgroup_id;
|
||||||
case SYSTEM_VALUE_WORKGROUP_SIZE:
|
case SYSTEM_VALUE_WORKGROUP_SIZE:
|
||||||
return nir_intrinsic_load_local_group_size;
|
return nir_intrinsic_load_workgroup_size;
|
||||||
case SYSTEM_VALUE_GLOBAL_INVOCATION_ID:
|
case SYSTEM_VALUE_GLOBAL_INVOCATION_ID:
|
||||||
return nir_intrinsic_load_global_invocation_id;
|
return nir_intrinsic_load_global_invocation_id;
|
||||||
case SYSTEM_VALUE_BASE_GLOBAL_INVOCATION_ID:
|
case SYSTEM_VALUE_BASE_GLOBAL_INVOCATION_ID:
|
||||||
@@ -2150,7 +2150,7 @@ nir_system_value_from_intrinsic(nir_intrinsic_op intrin)
|
|||||||
return SYSTEM_VALUE_NUM_SUBGROUPS;
|
return SYSTEM_VALUE_NUM_SUBGROUPS;
|
||||||
case nir_intrinsic_load_subgroup_id:
|
case nir_intrinsic_load_subgroup_id:
|
||||||
return SYSTEM_VALUE_SUBGROUP_ID;
|
return SYSTEM_VALUE_SUBGROUP_ID;
|
||||||
case nir_intrinsic_load_local_group_size:
|
case nir_intrinsic_load_workgroup_size:
|
||||||
return SYSTEM_VALUE_WORKGROUP_SIZE;
|
return SYSTEM_VALUE_WORKGROUP_SIZE;
|
||||||
case nir_intrinsic_load_global_invocation_id:
|
case nir_intrinsic_load_global_invocation_id:
|
||||||
return SYSTEM_VALUE_GLOBAL_INVOCATION_ID;
|
return SYSTEM_VALUE_GLOBAL_INVOCATION_ID;
|
||||||
|
@@ -102,7 +102,7 @@ visit_intrinsic(nir_shader *shader, nir_intrinsic_instr *instr)
|
|||||||
case nir_intrinsic_load_push_constant:
|
case nir_intrinsic_load_push_constant:
|
||||||
case nir_intrinsic_load_work_dim:
|
case nir_intrinsic_load_work_dim:
|
||||||
case nir_intrinsic_load_num_work_groups:
|
case nir_intrinsic_load_num_work_groups:
|
||||||
case nir_intrinsic_load_local_group_size:
|
case nir_intrinsic_load_workgroup_size:
|
||||||
case nir_intrinsic_load_subgroup_id:
|
case nir_intrinsic_load_subgroup_id:
|
||||||
case nir_intrinsic_load_num_subgroups:
|
case nir_intrinsic_load_num_subgroups:
|
||||||
case nir_intrinsic_load_subgroup_size:
|
case nir_intrinsic_load_subgroup_size:
|
||||||
|
@@ -625,7 +625,7 @@ gather_intrinsic_info(nir_intrinsic_instr *instr, nir_shader *shader,
|
|||||||
case nir_intrinsic_load_global_invocation_index:
|
case nir_intrinsic_load_global_invocation_index:
|
||||||
case nir_intrinsic_load_work_group_id:
|
case nir_intrinsic_load_work_group_id:
|
||||||
case nir_intrinsic_load_num_work_groups:
|
case nir_intrinsic_load_num_work_groups:
|
||||||
case nir_intrinsic_load_local_group_size:
|
case nir_intrinsic_load_workgroup_size:
|
||||||
case nir_intrinsic_load_work_dim:
|
case nir_intrinsic_load_work_dim:
|
||||||
case nir_intrinsic_load_user_data_amd:
|
case nir_intrinsic_load_user_data_amd:
|
||||||
case nir_intrinsic_load_view_index:
|
case nir_intrinsic_load_view_index:
|
||||||
|
@@ -702,9 +702,9 @@ system_value("subgroup_le_mask", 0, bit_sizes=[32, 64])
|
|||||||
system_value("subgroup_lt_mask", 0, bit_sizes=[32, 64])
|
system_value("subgroup_lt_mask", 0, bit_sizes=[32, 64])
|
||||||
system_value("num_subgroups", 1)
|
system_value("num_subgroups", 1)
|
||||||
system_value("subgroup_id", 1)
|
system_value("subgroup_id", 1)
|
||||||
system_value("local_group_size", 3)
|
system_value("workgroup_size", 3)
|
||||||
# note: the definition of global_invocation_id_zero_base is based on
|
# note: the definition of global_invocation_id_zero_base is based on
|
||||||
# (work_group_id * local_group_size) + local_invocation_id.
|
# (work_group_id * workgroup_size) + local_invocation_id.
|
||||||
# it is *not* based on work_group_id_zero_base, meaning the work group
|
# it is *not* based on work_group_id_zero_base, meaning the work group
|
||||||
# base is already accounted for, and the global base is additive on top of that
|
# base is already accounted for, and the global base is additive on top of that
|
||||||
system_value("global_invocation_id", 3, bit_sizes=[32, 64])
|
system_value("global_invocation_id", 3, bit_sizes=[32, 64])
|
||||||
|
@@ -54,7 +54,7 @@ sanitize_32bit_sysval(nir_builder *b, nir_intrinsic_instr *intrin)
|
|||||||
static nir_ssa_def*
|
static nir_ssa_def*
|
||||||
build_global_group_size(nir_builder *b, unsigned bit_size)
|
build_global_group_size(nir_builder *b, unsigned bit_size)
|
||||||
{
|
{
|
||||||
nir_ssa_def *group_size = nir_load_local_group_size(b);
|
nir_ssa_def *group_size = nir_load_workgroup_size(b);
|
||||||
nir_ssa_def *num_work_groups = nir_load_num_work_groups(b, bit_size);
|
nir_ssa_def *num_work_groups = nir_load_num_work_groups(b, bit_size);
|
||||||
return nir_imul(b, nir_u2u(b, group_size, bit_size),
|
return nir_imul(b, nir_u2u(b, group_size, bit_size),
|
||||||
num_work_groups);
|
num_work_groups);
|
||||||
@@ -116,7 +116,7 @@ lower_system_value_instr(nir_builder *b, nir_instr *instr, void *_state)
|
|||||||
|
|
||||||
case nir_intrinsic_load_local_invocation_id:
|
case nir_intrinsic_load_local_invocation_id:
|
||||||
case nir_intrinsic_load_local_invocation_index:
|
case nir_intrinsic_load_local_invocation_index:
|
||||||
case nir_intrinsic_load_local_group_size:
|
case nir_intrinsic_load_workgroup_size:
|
||||||
return sanitize_32bit_sysval(b, intrin);
|
return sanitize_32bit_sysval(b, intrin);
|
||||||
|
|
||||||
case nir_intrinsic_load_deref: {
|
case nir_intrinsic_load_deref: {
|
||||||
@@ -294,7 +294,7 @@ lower_compute_system_value_instr(nir_builder *b,
|
|||||||
* large so it can safely be omitted.
|
* large so it can safely be omitted.
|
||||||
*/
|
*/
|
||||||
nir_ssa_def *local_index = nir_load_local_invocation_index(b);
|
nir_ssa_def *local_index = nir_load_local_invocation_index(b);
|
||||||
nir_ssa_def *local_size = nir_load_local_group_size(b);
|
nir_ssa_def *local_size = nir_load_workgroup_size(b);
|
||||||
|
|
||||||
/* Because no hardware supports a local workgroup size greater than
|
/* Because no hardware supports a local workgroup size greater than
|
||||||
* about 1K, this calculation can be done in 32-bit and can save some
|
* about 1K, this calculation can be done in 32-bit and can save some
|
||||||
@@ -324,7 +324,7 @@ lower_compute_system_value_instr(nir_builder *b,
|
|||||||
nir_ssa_def *size_x_imm;
|
nir_ssa_def *size_x_imm;
|
||||||
|
|
||||||
if (b->shader->info.cs.workgroup_size_variable)
|
if (b->shader->info.cs.workgroup_size_variable)
|
||||||
size_x_imm = nir_channel(b, nir_load_local_group_size(b), 0);
|
size_x_imm = nir_channel(b, nir_load_workgroup_size(b), 0);
|
||||||
else
|
else
|
||||||
size_x_imm = nir_imm_int(b, size_x);
|
size_x_imm = nir_imm_int(b, size_x);
|
||||||
|
|
||||||
@@ -424,7 +424,7 @@ lower_compute_system_value_instr(nir_builder *b,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
case nir_intrinsic_load_local_group_size:
|
case nir_intrinsic_load_workgroup_size:
|
||||||
if (b->shader->info.cs.workgroup_size_variable) {
|
if (b->shader->info.cs.workgroup_size_variable) {
|
||||||
/* If the local work group size is variable it can't be lowered at
|
/* If the local work group size is variable it can't be lowered at
|
||||||
* this point. We do, however, have to make sure that the intrinsic
|
* this point. We do, however, have to make sure that the intrinsic
|
||||||
@@ -445,7 +445,7 @@ lower_compute_system_value_instr(nir_builder *b,
|
|||||||
case nir_intrinsic_load_global_invocation_id_zero_base: {
|
case nir_intrinsic_load_global_invocation_id_zero_base: {
|
||||||
if ((options && options->has_base_work_group_id) ||
|
if ((options && options->has_base_work_group_id) ||
|
||||||
!b->shader->options->has_cs_global_id) {
|
!b->shader->options->has_cs_global_id) {
|
||||||
nir_ssa_def *group_size = nir_load_local_group_size(b);
|
nir_ssa_def *group_size = nir_load_workgroup_size(b);
|
||||||
nir_ssa_def *group_id = nir_load_work_group_id(b, bit_size);
|
nir_ssa_def *group_id = nir_load_work_group_id(b, bit_size);
|
||||||
nir_ssa_def *local_id = nir_load_local_invocation_id(b);
|
nir_ssa_def *local_id = nir_load_local_invocation_id(b);
|
||||||
|
|
||||||
|
@@ -2042,7 +2042,7 @@ emit_intrinsic(struct ir3_context *ctx, nir_intrinsic_instr *intr)
|
|||||||
dst[i] = create_driver_param(ctx, IR3_DP_NUM_WORK_GROUPS_X + i);
|
dst[i] = create_driver_param(ctx, IR3_DP_NUM_WORK_GROUPS_X + i);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case nir_intrinsic_load_local_group_size:
|
case nir_intrinsic_load_workgroup_size:
|
||||||
for (int i = 0; i < dest_components; i++) {
|
for (int i = 0; i < dest_components; i++) {
|
||||||
dst[i] = create_driver_param(ctx, IR3_DP_LOCAL_GROUP_SIZE_X + i);
|
dst[i] = create_driver_param(ctx, IR3_DP_LOCAL_GROUP_SIZE_X + i);
|
||||||
}
|
}
|
||||||
|
@@ -680,7 +680,7 @@ ir3_nir_scan_driver_consts(nir_shader *shader,
|
|||||||
layout->num_driver_params =
|
layout->num_driver_params =
|
||||||
MAX2(layout->num_driver_params, IR3_DP_NUM_WORK_GROUPS_Z + 1);
|
MAX2(layout->num_driver_params, IR3_DP_NUM_WORK_GROUPS_Z + 1);
|
||||||
break;
|
break;
|
||||||
case nir_intrinsic_load_local_group_size:
|
case nir_intrinsic_load_workgroup_size:
|
||||||
layout->num_driver_params =
|
layout->num_driver_params =
|
||||||
MAX2(layout->num_driver_params, IR3_DP_LOCAL_GROUP_SIZE_Z + 1);
|
MAX2(layout->num_driver_params, IR3_DP_LOCAL_GROUP_SIZE_Z + 1);
|
||||||
break;
|
break;
|
||||||
|
@@ -1696,7 +1696,7 @@ static void visit_intrinsic(struct lp_build_nir_context *bld_base,
|
|||||||
case nir_intrinsic_load_invocation_id:
|
case nir_intrinsic_load_invocation_id:
|
||||||
case nir_intrinsic_load_front_face:
|
case nir_intrinsic_load_front_face:
|
||||||
case nir_intrinsic_load_draw_id:
|
case nir_intrinsic_load_draw_id:
|
||||||
case nir_intrinsic_load_local_group_size:
|
case nir_intrinsic_load_workgroup_size:
|
||||||
case nir_intrinsic_load_work_dim:
|
case nir_intrinsic_load_work_dim:
|
||||||
case nir_intrinsic_load_tess_coord:
|
case nir_intrinsic_load_tess_coord:
|
||||||
case nir_intrinsic_load_tess_level_outer:
|
case nir_intrinsic_load_tess_level_outer:
|
||||||
|
@@ -1552,7 +1552,7 @@ static void emit_sysval_intrin(struct lp_build_nir_context *bld_base,
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
case nir_intrinsic_load_local_group_size:
|
case nir_intrinsic_load_workgroup_size:
|
||||||
for (unsigned i = 0; i < 3; i++)
|
for (unsigned i = 0; i < 3; i++)
|
||||||
result[i] = lp_build_broadcast_scalar(&bld_base->uint_bld, LLVMBuildExtractElement(gallivm->builder, bld->system_values.block_size, lp_build_const_int32(gallivm, i), ""));
|
result[i] = lp_build_broadcast_scalar(&bld_base->uint_bld, LLVMBuildExtractElement(gallivm->builder, bld->system_values.block_size, lp_build_const_int32(gallivm, i), ""));
|
||||||
break;
|
break;
|
||||||
|
@@ -1652,7 +1652,7 @@ ntt_emit_intrinsic(struct ntt_compile *c, nir_intrinsic_instr *instr)
|
|||||||
case nir_intrinsic_load_local_invocation_id:
|
case nir_intrinsic_load_local_invocation_id:
|
||||||
case nir_intrinsic_load_work_group_id:
|
case nir_intrinsic_load_work_group_id:
|
||||||
case nir_intrinsic_load_num_work_groups:
|
case nir_intrinsic_load_num_work_groups:
|
||||||
case nir_intrinsic_load_local_group_size:
|
case nir_intrinsic_load_workgroup_size:
|
||||||
case nir_intrinsic_load_subgroup_size:
|
case nir_intrinsic_load_subgroup_size:
|
||||||
case nir_intrinsic_load_subgroup_invocation:
|
case nir_intrinsic_load_subgroup_invocation:
|
||||||
case nir_intrinsic_load_subgroup_eq_mask:
|
case nir_intrinsic_load_subgroup_eq_mask:
|
||||||
|
@@ -223,7 +223,7 @@ static void scan_instruction(const struct nir_shader *nir,
|
|||||||
case nir_intrinsic_load_num_work_groups:
|
case nir_intrinsic_load_num_work_groups:
|
||||||
info->uses_grid_size = true;
|
info->uses_grid_size = true;
|
||||||
break;
|
break;
|
||||||
case nir_intrinsic_load_local_group_size:
|
case nir_intrinsic_load_workgroup_size:
|
||||||
/* The block size is translated to IMM with a fixed block size. */
|
/* The block size is translated to IMM with a fixed block size. */
|
||||||
if (info->properties[TGSI_PROPERTY_CS_FIXED_BLOCK_WIDTH] == 0)
|
if (info->properties[TGSI_PROPERTY_CS_FIXED_BLOCK_WIDTH] == 0)
|
||||||
info->uses_block_size = true;
|
info->uses_block_size = true;
|
||||||
|
@@ -623,7 +623,7 @@ ttn_src_for_file_and_index(struct ttn_compile *c, unsigned file, unsigned index,
|
|||||||
load = nir_load_work_group_id(b, 32);
|
load = nir_load_work_group_id(b, 32);
|
||||||
break;
|
break;
|
||||||
case TGSI_SEMANTIC_BLOCK_SIZE:
|
case TGSI_SEMANTIC_BLOCK_SIZE:
|
||||||
load = nir_load_local_group_size(b);
|
load = nir_load_workgroup_size(b);
|
||||||
break;
|
break;
|
||||||
case TGSI_SEMANTIC_CS_USER_DATA_AMD:
|
case TGSI_SEMANTIC_CS_USER_DATA_AMD:
|
||||||
load = nir_load_user_data_amd(b);
|
load = nir_load_user_data_amd(b);
|
||||||
|
@@ -527,7 +527,7 @@ iris_setup_uniforms(const struct brw_compiler *compiler,
|
|||||||
nir_intrinsic_base(intrin) * 16));
|
nir_intrinsic_base(intrin) * 16));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case nir_intrinsic_load_local_group_size: {
|
case nir_intrinsic_load_workgroup_size: {
|
||||||
assert(nir->info.cs.workgroup_size_variable);
|
assert(nir->info.cs.workgroup_size_variable);
|
||||||
if (variable_group_size_idx == -1) {
|
if (variable_group_size_idx == -1) {
|
||||||
variable_group_size_idx = num_system_values;
|
variable_group_size_idx = num_system_values;
|
||||||
|
@@ -1566,7 +1566,7 @@ Converter::convert(nir_intrinsic_op intr)
|
|||||||
return SV_INSTANCE_ID;
|
return SV_INSTANCE_ID;
|
||||||
case nir_intrinsic_load_invocation_id:
|
case nir_intrinsic_load_invocation_id:
|
||||||
return SV_INVOCATION_ID;
|
return SV_INVOCATION_ID;
|
||||||
case nir_intrinsic_load_local_group_size:
|
case nir_intrinsic_load_workgroup_size:
|
||||||
return SV_NTID;
|
return SV_NTID;
|
||||||
case nir_intrinsic_load_local_invocation_id:
|
case nir_intrinsic_load_local_invocation_id:
|
||||||
return SV_TID;
|
return SV_TID;
|
||||||
@@ -1843,7 +1843,7 @@ Converter::visit(nir_intrinsic_instr *insn)
|
|||||||
case nir_intrinsic_load_helper_invocation:
|
case nir_intrinsic_load_helper_invocation:
|
||||||
case nir_intrinsic_load_instance_id:
|
case nir_intrinsic_load_instance_id:
|
||||||
case nir_intrinsic_load_invocation_id:
|
case nir_intrinsic_load_invocation_id:
|
||||||
case nir_intrinsic_load_local_group_size:
|
case nir_intrinsic_load_workgroup_size:
|
||||||
case nir_intrinsic_load_local_invocation_id:
|
case nir_intrinsic_load_local_invocation_id:
|
||||||
case nir_intrinsic_load_num_work_groups:
|
case nir_intrinsic_load_num_work_groups:
|
||||||
case nir_intrinsic_load_patch_vertices_in:
|
case nir_intrinsic_load_patch_vertices_in:
|
||||||
|
@@ -43,7 +43,7 @@ static nir_ssa_def *get_global_ids(nir_builder *b, unsigned num_components)
|
|||||||
|
|
||||||
nir_ssa_def *local_ids = nir_channels(b, nir_load_local_invocation_id(b), mask);
|
nir_ssa_def *local_ids = nir_channels(b, nir_load_local_invocation_id(b), mask);
|
||||||
nir_ssa_def *block_ids = nir_channels(b, nir_load_work_group_id(b, 32), mask);
|
nir_ssa_def *block_ids = nir_channels(b, nir_load_work_group_id(b, 32), mask);
|
||||||
nir_ssa_def *block_size = nir_channels(b, nir_load_local_group_size(b), mask);
|
nir_ssa_def *block_size = nir_channels(b, nir_load_workgroup_size(b), mask);
|
||||||
return nir_iadd(b, nir_imul(b, block_ids, block_size), local_ids);
|
return nir_iadd(b, nir_imul(b, block_ids, block_size), local_ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -2785,7 +2785,7 @@ emit_intrinsic(struct ntv_context *ctx, nir_intrinsic_instr *intr)
|
|||||||
emit_load_uint_input(ctx, intr, &ctx->local_invocation_index_var, "gl_LocalInvocationIndex", SpvBuiltInLocalInvocationIndex);
|
emit_load_uint_input(ctx, intr, &ctx->local_invocation_index_var, "gl_LocalInvocationIndex", SpvBuiltInLocalInvocationIndex);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case nir_intrinsic_load_local_group_size: {
|
case nir_intrinsic_load_workgroup_size: {
|
||||||
assert(ctx->local_group_size_var);
|
assert(ctx->local_group_size_var);
|
||||||
store_dest(ctx, &intr->dest, ctx->local_group_size_var, nir_type_uint);
|
store_dest(ctx, &intr->dest, ctx->local_group_size_var, nir_type_uint);
|
||||||
break;
|
break;
|
||||||
|
@@ -3814,7 +3814,7 @@ fs_visitor::nir_emit_cs_intrinsic(const fs_builder &bld,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case nir_intrinsic_load_local_group_size: {
|
case nir_intrinsic_load_workgroup_size: {
|
||||||
assert(compiler->lower_variable_group_size);
|
assert(compiler->lower_variable_group_size);
|
||||||
assert(nir->info.cs.workgroup_size_variable);
|
assert(nir->info.cs.workgroup_size_variable);
|
||||||
for (unsigned i = 0; i < 3; i++) {
|
for (unsigned i = 0; i < 3; i++) {
|
||||||
|
@@ -53,7 +53,7 @@ lower_cs_intrinsics_convert_block(struct lower_intrinsics_state *state,
|
|||||||
|
|
||||||
nir_ssa_def *sysval;
|
nir_ssa_def *sysval;
|
||||||
switch (intrinsic->intrinsic) {
|
switch (intrinsic->intrinsic) {
|
||||||
case nir_intrinsic_load_local_group_size:
|
case nir_intrinsic_load_workgroup_size:
|
||||||
case nir_intrinsic_load_work_group_id:
|
case nir_intrinsic_load_work_group_id:
|
||||||
case nir_intrinsic_load_num_work_groups:
|
case nir_intrinsic_load_num_work_groups:
|
||||||
/* Convert this to 32-bit if it's not */
|
/* Convert this to 32-bit if it's not */
|
||||||
@@ -82,7 +82,7 @@ lower_cs_intrinsics_convert_block(struct lower_intrinsics_state *state,
|
|||||||
nir_ssa_def *size_x;
|
nir_ssa_def *size_x;
|
||||||
nir_ssa_def *size_y;
|
nir_ssa_def *size_y;
|
||||||
if (state->nir->info.cs.workgroup_size_variable) {
|
if (state->nir->info.cs.workgroup_size_variable) {
|
||||||
nir_ssa_def *size_xyz = nir_load_local_group_size(b);
|
nir_ssa_def *size_xyz = nir_load_workgroup_size(b);
|
||||||
size_x = nir_channel(b, size_xyz, 0);
|
size_x = nir_channel(b, size_xyz, 0);
|
||||||
size_y = nir_channel(b, size_xyz, 1);
|
size_y = nir_channel(b, size_xyz, 1);
|
||||||
} else {
|
} else {
|
||||||
@@ -214,7 +214,7 @@ lower_cs_intrinsics_convert_block(struct lower_intrinsics_state *state,
|
|||||||
case nir_intrinsic_load_num_subgroups: {
|
case nir_intrinsic_load_num_subgroups: {
|
||||||
nir_ssa_def *size;
|
nir_ssa_def *size;
|
||||||
if (state->nir->info.cs.workgroup_size_variable) {
|
if (state->nir->info.cs.workgroup_size_variable) {
|
||||||
nir_ssa_def *size_xyz = nir_load_local_group_size(b);
|
nir_ssa_def *size_xyz = nir_load_workgroup_size(b);
|
||||||
nir_ssa_def *size_x = nir_channel(b, size_xyz, 0);
|
nir_ssa_def *size_x = nir_channel(b, size_xyz, 0);
|
||||||
nir_ssa_def *size_y = nir_channel(b, size_xyz, 1);
|
nir_ssa_def *size_y = nir_channel(b, size_xyz, 1);
|
||||||
nir_ssa_def *size_z = nir_channel(b, size_xyz, 2);
|
nir_ssa_def *size_z = nir_channel(b, size_xyz, 2);
|
||||||
|
@@ -146,7 +146,7 @@ clc_nir_lower_system_values(nir_shader *nir, nir_variable *var)
|
|||||||
case nir_intrinsic_load_work_dim:
|
case nir_intrinsic_load_work_dim:
|
||||||
progress |= lower_load_work_dim(&b, intr, var);
|
progress |= lower_load_work_dim(&b, intr, var);
|
||||||
break;
|
break;
|
||||||
case nir_intrinsic_load_local_group_size:
|
case nir_intrinsic_load_workgroup_size:
|
||||||
lower_load_local_group_size(&b, intr);
|
lower_load_local_group_size(&b, intr);
|
||||||
break;
|
break;
|
||||||
case nir_intrinsic_load_num_work_groups:
|
case nir_intrinsic_load_num_work_groups:
|
||||||
|
@@ -3456,7 +3456,7 @@ emit_intrinsic(struct ntd_context *ctx, nir_intrinsic_instr *intr)
|
|||||||
return emit_load_vulkan_descriptor(ctx, intr);
|
return emit_load_vulkan_descriptor(ctx, intr);
|
||||||
|
|
||||||
case nir_intrinsic_load_num_work_groups:
|
case nir_intrinsic_load_num_work_groups:
|
||||||
case nir_intrinsic_load_local_group_size:
|
case nir_intrinsic_load_workgroup_size:
|
||||||
default:
|
default:
|
||||||
NIR_INSTR_UNSUPPORTED(&intr->instr);
|
NIR_INSTR_UNSUPPORTED(&intr->instr);
|
||||||
assert("Unimplemented intrinsic instruction");
|
assert("Unimplemented intrinsic instruction");
|
||||||
|
@@ -1177,7 +1177,7 @@ bi_emit_intrinsic(bi_builder *b, nir_intrinsic_instr *instr)
|
|||||||
case nir_intrinsic_load_viewport_scale:
|
case nir_intrinsic_load_viewport_scale:
|
||||||
case nir_intrinsic_load_viewport_offset:
|
case nir_intrinsic_load_viewport_offset:
|
||||||
case nir_intrinsic_load_num_work_groups:
|
case nir_intrinsic_load_num_work_groups:
|
||||||
case nir_intrinsic_load_local_group_size:
|
case nir_intrinsic_load_workgroup_size:
|
||||||
bi_load_sysval_nir(b, instr, 3, 0);
|
bi_load_sysval_nir(b, instr, 3, 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@@ -2025,7 +2025,7 @@ emit_intrinsic(compiler_context *ctx, nir_intrinsic_instr *instr)
|
|||||||
case nir_intrinsic_load_viewport_offset:
|
case nir_intrinsic_load_viewport_offset:
|
||||||
case nir_intrinsic_load_num_work_groups:
|
case nir_intrinsic_load_num_work_groups:
|
||||||
case nir_intrinsic_load_sampler_lod_parameters_pan:
|
case nir_intrinsic_load_sampler_lod_parameters_pan:
|
||||||
case nir_intrinsic_load_local_group_size:
|
case nir_intrinsic_load_workgroup_size:
|
||||||
emit_sysval_read(ctx, &instr->instr, 3, 0);
|
emit_sysval_read(ctx, &instr->instr, 3, 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@@ -72,7 +72,7 @@ panfrost_nir_sysval_for_intrinsic(nir_intrinsic_instr *instr)
|
|||||||
return PAN_SYSVAL_VIEWPORT_OFFSET;
|
return PAN_SYSVAL_VIEWPORT_OFFSET;
|
||||||
case nir_intrinsic_load_num_work_groups:
|
case nir_intrinsic_load_num_work_groups:
|
||||||
return PAN_SYSVAL_NUM_WORK_GROUPS;
|
return PAN_SYSVAL_NUM_WORK_GROUPS;
|
||||||
case nir_intrinsic_load_local_group_size:
|
case nir_intrinsic_load_workgroup_size:
|
||||||
return PAN_SYSVAL_LOCAL_GROUP_SIZE;
|
return PAN_SYSVAL_LOCAL_GROUP_SIZE;
|
||||||
case nir_intrinsic_load_work_dim:
|
case nir_intrinsic_load_work_dim:
|
||||||
return PAN_SYSVAL_WORK_DIM;
|
return PAN_SYSVAL_WORK_DIM;
|
||||||
|
Reference in New Issue
Block a user