It's intel-specific, used to get at MSAA compression information.
Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11775>
if (op == nir_texop_txf ||
op == nir_texop_txf_ms ||
- op == nir_texop_txf_ms_mcs)
+ op == nir_texop_txf_ms_mcs_intel)
BITSET_SET_RANGE(info->textures_used_by_txf, var->data.binding, var->data.binding + (MAX2(size, 1) - 1));
}
nir_tex_src_lod,
nir_tex_src_min_lod,
nir_tex_src_ms_index, /* MSAA sample index */
- nir_tex_src_ms_mcs, /* MSAA compression value */
+ nir_tex_src_ms_mcs_intel, /* MSAA compression value */
nir_tex_src_ddx,
nir_tex_src_ddy,
nir_tex_src_texture_deref, /* < deref pointing to the texture */
nir_texop_txf, /**< Texel fetch with explicit LOD */
nir_texop_txf_ms, /**< Multisample texture fetch */
nir_texop_txf_ms_fb, /**< Multisample texture fetch from framebuffer */
- nir_texop_txf_ms_mcs, /**< Multisample compression value fetch */
+ nir_texop_txf_ms_mcs_intel, /**< Multisample compression value fetch */
nir_texop_txs, /**< Texture size */
nir_texop_lod, /**< Texture lod query */
nir_texop_tg4, /**< Texture gather */
case nir_texop_txf:
case nir_texop_txf_ms:
case nir_texop_txf_ms_fb:
- case nir_texop_txf_ms_mcs:
+ case nir_texop_txf_ms_mcs_intel:
case nir_texop_tg4:
return false;
default:
case nir_texop_txf:
case nir_texop_txf_ms:
case nir_texop_txf_ms_fb:
- case nir_texop_txf_ms_mcs:
+ case nir_texop_txf_ms_mcs_intel:
case nir_texop_samples_identical:
return nir_type_int;
case nir_tex_src_plane:
return nir_type_int;
- case nir_tex_src_ms_mcs:
+ case nir_tex_src_ms_mcs_intel:
case nir_tex_src_texture_deref:
case nir_tex_src_sampler_deref:
case nir_tex_src_texture_offset:
if (instr->src[src].src_type == nir_tex_src_coord)
return instr->coord_components;
- /* The MCS value is expected to be a vec4 returned by a txf_ms_mcs */
- if (instr->src[src].src_type == nir_tex_src_ms_mcs)
+ /* The MCS value is expected to be a vec4 returned by a txf_ms_mcs_intel */
+ if (instr->src[src].src_type == nir_tex_src_ms_mcs_intel)
return 4;
if (instr->src[src].src_type == nir_tex_src_ddx ||
case nir_texop_txf_ms_fb:
fprintf(fp, "txf_ms_fb ");
break;
- case nir_texop_txf_ms_mcs:
- fprintf(fp, "txf_ms_mcs ");
+ case nir_texop_txf_ms_mcs_intel:
+ fprintf(fp, "txf_ms_mcs_intel ");
break;
case nir_texop_txs:
fprintf(fp, "txs ");
case nir_tex_src_ms_index:
fprintf(fp, "(ms_index)");
break;
- case nir_tex_src_ms_mcs:
- fprintf(fp, "(ms_mcs)");
+ case nir_tex_src_ms_mcs_intel:
+ fprintf(fp, "(ms_mcs_intel)");
break;
case nir_tex_src_ddx:
fprintf(fp, "(ddx)");
case nir_texop_txf_ms_fb:
vtn_fail("unexpected nir_texop_txf_ms_fb");
break;
- case nir_texop_txf_ms_mcs:
+ case nir_texop_txf_ms_mcs_intel:
vtn_fail("unexpected nir_texop_txf_ms_mcs");
case nir_texop_tex_prefetch:
vtn_fail("unexpected nir_texop_tex_prefetch");
* more explicit in the future.
*/
assert(pos->num_components >= 2);
- if (op == nir_texop_txf || op == nir_texop_txf_ms || op == nir_texop_txf_ms_mcs) {
+ if (op == nir_texop_txf || op == nir_texop_txf_ms ||
+ op == nir_texop_txf_ms_mcs_intel) {
pos = nir_vec3(b, nir_channel(b, pos, 0), nir_channel(b, pos, 1),
nir_f2i32(b, nir_load_var(b, v->v_src_z)));
} else {
}
if (mcs) {
- tex->src[2].src_type = nir_tex_src_ms_mcs;
+ tex->src[2].src_type = nir_tex_src_ms_mcs_intel;
tex->src[2].src = nir_src_for_ssa(mcs);
}
nir_ssa_def *pos)
{
nir_tex_instr *tex =
- blorp_create_nir_tex_instr(b, v, nir_texop_txf_ms_mcs,
+ blorp_create_nir_tex_instr(b, v, nir_texop_txf_ms_mcs_intel,
pos, 1, nir_type_int);
tex->sampler_dim = GLSL_SAMPLER_DIM_MS;
blorp_nir_txf_ms_mcs(nir_builder *b, nir_ssa_def *xy_pos, nir_ssa_def *layer)
{
nir_tex_instr *tex = nir_tex_instr_create(b->shader, 1);
- tex->op = nir_texop_txf_ms_mcs;
+ tex->op = nir_texop_txf_ms_mcs_intel;
tex->sampler_dim = GLSL_SAMPLER_DIM_MS;
tex->dest_type = nir_type_int32;
switch (instr->op) {
case nir_texop_txf:
case nir_texop_txf_ms:
- case nir_texop_txf_ms_mcs:
+ case nir_texop_txf_ms_mcs_intel:
case nir_texop_samples_identical:
srcs[TEX_LOGICAL_SRC_COORDINATE] = retype(src, BRW_REGISTER_TYPE_D);
break;
srcs[TEX_LOGICAL_SRC_SAMPLER_HANDLE] = bld.emit_uniformize(src);
break;
- case nir_tex_src_ms_mcs:
+ case nir_tex_src_ms_mcs_intel:
assert(instr->op == nir_texop_txf_ms);
srcs[TEX_LOGICAL_SRC_MCS] = retype(src, BRW_REGISTER_TYPE_D);
break;
else
opcode = SHADER_OPCODE_TXF_CMS_LOGICAL;
break;
- case nir_texop_txf_ms_mcs:
+ case nir_texop_txf_ms_mcs_intel:
opcode = SHADER_OPCODE_TXF_MCS_LOGICAL;
break;
case nir_texop_query_levels: