nir: add _amd suffix to fragment_mask_fetch and fragment_fetch texops

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12214>
This commit is contained in:
Rhys Perry 2021-08-05 16:19:51 +01:00 committed by Marge Bot
parent 3a18963b08
commit 225fe37c14
6 changed files with 27 additions and 27 deletions

View file

@ -9154,7 +9154,7 @@ tex_fetch_ptrs(isel_context* ctx, nir_tex_instr* instr, Temp* res_ptr, Temp* sam
(aco_descriptor_type)(ACO_DESC_PLANE_0 + plane), instr, false);
} else if (instr->sampler_dim == GLSL_SAMPLER_DIM_BUF) {
*res_ptr = get_sampler_desc(ctx, texture_deref_instr, ACO_DESC_BUFFER, instr, false);
} else if (instr->op == nir_texop_fragment_mask_fetch) {
} else if (instr->op == nir_texop_fragment_mask_fetch_amd) {
*res_ptr = get_sampler_desc(ctx, texture_deref_instr, ACO_DESC_FMASK, instr, false);
} else {
*res_ptr = get_sampler_desc(ctx, texture_deref_instr, ACO_DESC_IMAGE, instr, false);
@ -9498,7 +9498,7 @@ visit_tex(isel_context* ctx, nir_tex_instr* instr)
instr->sampler_dim == GLSL_SAMPLER_DIM_SUBPASS ||
instr->sampler_dim == GLSL_SAMPLER_DIM_SUBPASS_MS) &&
instr->is_array && instr->op != nir_texop_txf && instr->op != nir_texop_txf_ms &&
instr->op != nir_texop_fragment_fetch && instr->op != nir_texop_fragment_mask_fetch)
instr->op != nir_texop_fragment_fetch_amd && instr->op != nir_texop_fragment_mask_fetch_amd)
coords[2] = bld.vop1(aco_opcode::v_rndne_f32, bld.def(v1), coords[2]);
if (ctx->options->chip_class == GFX9 && instr->sampler_dim == GLSL_SAMPLER_DIM_1D &&
@ -9517,8 +9517,8 @@ visit_tex(isel_context* ctx, nir_tex_instr* instr)
else if ((instr->sampler_dim == GLSL_SAMPLER_DIM_MS ||
instr->sampler_dim == GLSL_SAMPLER_DIM_SUBPASS_MS) &&
instr->op != nir_texop_txs && instr->op != nir_texop_fragment_fetch &&
instr->op != nir_texop_fragment_mask_fetch) {
instr->op != nir_texop_txs && instr->op != nir_texop_fragment_fetch_amd &&
instr->op != nir_texop_fragment_mask_fetch_amd) {
assert(has_sample_index);
Operand op(sample_index);
if (sample_index_cv)
@ -9736,8 +9736,8 @@ visit_tex(isel_context* ctx, nir_tex_instr* instr)
args.emplace_back(clamped_lod);
if (instr->op == nir_texop_txf || instr->op == nir_texop_txf_ms ||
instr->op == nir_texop_samples_identical || instr->op == nir_texop_fragment_fetch ||
instr->op == nir_texop_fragment_mask_fetch) {
instr->op == nir_texop_samples_identical || instr->op == nir_texop_fragment_fetch_amd ||
instr->op == nir_texop_fragment_mask_fetch_amd) {
aco_opcode op = level_zero || instr->sampler_dim == GLSL_SAMPLER_DIM_MS ||
instr->sampler_dim == GLSL_SAMPLER_DIM_SUBPASS_MS
? aco_opcode::image_load

View file

@ -1573,8 +1573,8 @@ static LLVMValueRef build_tex_intrinsic(struct ac_nir_context *ctx, const nir_te
case nir_texop_lod:
args->opcode = ac_image_get_lod;
break;
case nir_texop_fragment_fetch:
case nir_texop_fragment_mask_fetch:
case nir_texop_fragment_fetch_amd:
case nir_texop_fragment_mask_fetch_amd:
args->opcode = ac_image_load;
args->level_zero = false;
break;
@ -4493,7 +4493,7 @@ static void tex_fetch_ptrs(struct ac_nir_context *ctx, nir_tex_instr *instr,
main_descriptor = AC_DESC_PLANE_0 + plane;
}
if (instr->op == nir_texop_fragment_mask_fetch) {
if (instr->op == nir_texop_fragment_mask_fetch_amd) {
/* The fragment mask is fetched from the compressed
* multisampled surface.
*/
@ -4730,7 +4730,7 @@ static void visit_tex(struct ac_nir_context *ctx, nir_tex_instr *instr)
instr->sampler_dim == GLSL_SAMPLER_DIM_SUBPASS ||
instr->sampler_dim == GLSL_SAMPLER_DIM_SUBPASS_MS) &&
instr->is_array && instr->op != nir_texop_txf && instr->op != nir_texop_txf_ms &&
instr->op != nir_texop_fragment_fetch && instr->op != nir_texop_fragment_mask_fetch) {
instr->op != nir_texop_fragment_fetch_amd && instr->op != nir_texop_fragment_mask_fetch_amd) {
args.coords[2] = apply_round_slice(&ctx->ac, args.coords[2]);
}
@ -4748,7 +4748,7 @@ static void visit_tex(struct ac_nir_context *ctx, nir_tex_instr *instr)
}
/* Pack sample index */
if (sample_index && (instr->op == nir_texop_txf_ms || instr->op == nir_texop_fragment_fetch))
if (sample_index && (instr->op == nir_texop_txf_ms || instr->op == nir_texop_fragment_fetch_amd))
args.coords[instr->coord_components] = sample_index;
if (instr->op == nir_texop_samples_identical) {
@ -4767,8 +4767,8 @@ static void visit_tex(struct ac_nir_context *ctx, nir_tex_instr *instr)
if ((instr->sampler_dim == GLSL_SAMPLER_DIM_SUBPASS_MS ||
instr->sampler_dim == GLSL_SAMPLER_DIM_MS) &&
instr->op != nir_texop_txs && instr->op != nir_texop_fragment_fetch &&
instr->op != nir_texop_fragment_mask_fetch) {
instr->op != nir_texop_txs && instr->op != nir_texop_fragment_fetch_amd &&
instr->op != nir_texop_fragment_mask_fetch_amd) {
unsigned sample_chan = instr->is_array ? 3 : 2;
args.coords[sample_chan] = adjust_sample_index_using_fmask(
&ctx->ac, args.coords[0], args.coords[1], instr->is_array ? args.coords[2] : NULL,
@ -4811,7 +4811,7 @@ static void visit_tex(struct ac_nir_context *ctx, nir_tex_instr *instr)
* multisampled images and (x,y,layer) for 2D multisampled layered
* images or for multisampled input attachments.
*/
if (instr->op == nir_texop_fragment_mask_fetch) {
if (instr->op == nir_texop_fragment_mask_fetch_amd) {
if (args.dim == ac_image_2dmsaa) {
args.dim = ac_image_2d;
} else {

View file

@ -2181,8 +2181,8 @@ typedef enum {
* identical.
*/
nir_texop_tex_prefetch, /**< Regular texture look-up, eligible for pre-dispatch */
nir_texop_fragment_fetch, /**< Multisample fragment color texture fetch */
nir_texop_fragment_mask_fetch,/**< Multisample fragment mask texture fetch */
nir_texop_fragment_fetch_amd, /**< Multisample fragment color texture fetch */
nir_texop_fragment_mask_fetch_amd, /**< Multisample fragment mask texture fetch */
} nir_texop;
/** Represents a texture instruction */
@ -2359,7 +2359,7 @@ nir_tex_instr_result_size(const nir_tex_instr *instr)
case nir_texop_texture_samples:
case nir_texop_query_levels:
case nir_texop_samples_identical:
case nir_texop_fragment_mask_fetch:
case nir_texop_fragment_mask_fetch_amd:
return 1;
default:

View file

@ -197,8 +197,8 @@ nir_lower_input_attachments(nir_shader *shader,
case nir_instr_type_tex: {
nir_tex_instr *tex = nir_instr_as_tex(instr);
if (tex->op == nir_texop_fragment_mask_fetch ||
tex->op == nir_texop_fragment_fetch) {
if (tex->op == nir_texop_fragment_mask_fetch_amd ||
tex->op == nir_texop_fragment_fetch_amd) {
progress |= try_lower_input_texop(function->impl, tex,
options);
}

View file

@ -1103,11 +1103,11 @@ print_tex_instr(nir_tex_instr *instr, print_state *state)
case nir_texop_tex_prefetch:
fprintf(fp, "tex (pre-dispatchable) ");
break;
case nir_texop_fragment_fetch:
fprintf(fp, "fragment_fetch ");
case nir_texop_fragment_fetch_amd:
fprintf(fp, "fragment_fetch_amd ");
break;
case nir_texop_fragment_mask_fetch:
fprintf(fp, "fragment_mask_fetch ");
case nir_texop_fragment_mask_fetch_amd:
fprintf(fp, "fragment_mask_fetch_amd ");
break;
default:
unreachable("Invalid texture operation");

View file

@ -2720,11 +2720,11 @@ vtn_handle_texture(struct vtn_builder *b, SpvOp opcode,
break;
case SpvOpFragmentFetchAMD:
texop = nir_texop_fragment_fetch;
texop = nir_texop_fragment_fetch_amd;
break;
case SpvOpFragmentMaskFetchAMD:
texop = nir_texop_fragment_mask_fetch;
texop = nir_texop_fragment_mask_fetch_amd;
dest_type = nir_type_uint32;
break;
@ -2759,8 +2759,8 @@ vtn_handle_texture(struct vtn_builder *b, SpvOp opcode,
case nir_texop_query_levels:
case nir_texop_texture_samples:
case nir_texop_samples_identical:
case nir_texop_fragment_fetch:
case nir_texop_fragment_mask_fetch:
case nir_texop_fragment_fetch_amd:
case nir_texop_fragment_mask_fetch_amd:
/* These don't */
break;
case nir_texop_txf_ms_fb: