freedreno/registers: Rename A6XX_TEX_MEMOBJ

The gen8 descriptors already used the name "memobj" which better matches
docs.  This just cleans up a6xx/a7xx to match.

Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39573>
This commit is contained in:
Rob Clark 2026-01-27 06:00:55 -08:00 committed by Marge Bot
parent 74ecf3d0d0
commit 55c8aa8cbd
12 changed files with 105 additions and 105 deletions

View file

@ -1628,7 +1628,7 @@ dump_tex_const(uint32_t *texconst, int num_unit, int level)
dump_hex(texconst, 12, level + 1);
texconst += 12;
} else if ((6 <= options->info->chip) && (options->info->chip < 8)) {
dump_domain(texconst, 16, level + 2, "A6XX_TEX_CONST");
dump_domain(texconst, 16, level + 2, "A6XX_TEX_MEMOBJ");
if (options->dump_textures) {
uint64_t addr =
(((uint64_t)texconst[5] & 0x1ffff) << 32) | texconst[4];
@ -1863,7 +1863,7 @@ cp_load_state(uint32_t *dwords, uint32_t sizedwords, int level)
dump_domain(ssboconst, 4, level + 2, "A5XX_SSBO_0");
} else if ((6 <= options->info->chip) && (options->info->chip < 8)) {
sz = 16;
dump_domain(ssboconst, 16, level + 2, "A6XX_TEX_CONST");
dump_domain(ssboconst, 16, level + 2, "A6XX_TEX_MEMOBJ");
}
dump_hex(ssboconst, sz, level + 1);
ssboconst += sz;

View file

@ -44,7 +44,7 @@ function CP_SET_MARKER(pkt, size)
end
local last_tex_const = {}
function A6XX_TEX_CONST(pkt, size)
function A6XX_TEX_MEMOBJ(pkt, size)
last_tex_const.format = pkt[0].FMT
last_tex_const.tile_mode = pkt[0].TILE_MODE
last_tex_const.swap = pkt[0].SWAP

View file

@ -253,7 +253,7 @@ function CP_EVENT_WRITE(pkt, size)
end
end
function A6XX_TEX_CONST(pkt, size)
function A6XX_TEX_MEMOBJ(pkt, size)
push_source(pkt[0].FMT,
pkt[1].WIDTH, pkt[1].HEIGHT,
pkt[0].SAMPLES,

View file

@ -17,7 +17,7 @@ function draw(primtype, nindx)
io.write("0x2280: written=" .. regs.written(0x2280) .. ", lastval=" .. regs.lastval(0x2280) .. ", val=" .. regs.val(0x2280) .. "\n")
end
function A6XX_TEX_CONST(pkt, size)
function A6XX_TEX_MEMOBJ(pkt, size)
io.write("\n-------- " .. size .. "\n")
io.write("-------- w=" .. pkt[1].WIDTH .. ", h=" .. pkt[1].HEIGHT .. "\n")
io.write("\n");

View file

@ -61,7 +61,7 @@ function draw(primtype, nindx)
nallblits = nallblits + 1
end
function A6XX_TEX_CONST(pkt, size)
function A6XX_TEX_MEMOBJ(pkt, size)
-- ignore any texture state w/ DEPTH=1, these aren't the 3d tex state we
-- are looking for
if pkt[5].DEPTH <= 1 then

View file

@ -94,7 +94,7 @@ function draw(primtype, nindx)
nallblits = nallblits + 1
end
function A6XX_TEX_CONST(pkt, size)
function A6XX_TEX_MEMOBJ(pkt, size)
-- ignore any texture state w/ DEPTH=1, these aren't the 3d tex state we
-- are looking for

View file

@ -138,10 +138,10 @@ fdl6_texswiz(const struct fdl_view_args *args, bool has_z24uint_s8uint)
return 0;
if (CHIP <= A7XX) {
return A6XX_TEX_CONST_0_SWIZ_X(fdl6_swiz(swiz[0])) |
A6XX_TEX_CONST_0_SWIZ_Y(fdl6_swiz(swiz[1])) |
A6XX_TEX_CONST_0_SWIZ_Z(fdl6_swiz(swiz[2])) |
A6XX_TEX_CONST_0_SWIZ_W(fdl6_swiz(swiz[3]));
return A6XX_TEX_MEMOBJ_0_SWIZ_X(fdl6_swiz(swiz[0])) |
A6XX_TEX_MEMOBJ_0_SWIZ_Y(fdl6_swiz(swiz[1])) |
A6XX_TEX_MEMOBJ_0_SWIZ_Z(fdl6_swiz(swiz[2])) |
A6XX_TEX_MEMOBJ_0_SWIZ_W(fdl6_swiz(swiz[3]));
} else if (CHIP >= A8XX) {
return A8XX_TEX_MEMOBJ_3_SWIZ_X(fdl8_swiz(swiz[0])) |
A8XX_TEX_MEMOBJ_3_SWIZ_Y(fdl8_swiz(swiz[1])) |
@ -245,33 +245,33 @@ fdl6_view_init(struct fdl6_view *view, const struct fdl_layout **layouts,
if (CHIP <= A7XX) {
view->descriptor[0] =
A6XX_TEX_CONST_0_TILE_MODE(tile_mode) |
COND(util_format_is_srgb(args->format), A6XX_TEX_CONST_0_SRGB) |
A6XX_TEX_CONST_0_FMT(texture_format) |
A6XX_TEX_CONST_0_SAMPLES((enum a3xx_msaa_samples)util_logbase2(layout->nr_samples)) |
A6XX_TEX_CONST_0_SWAP(swap) |
A6XX_TEX_MEMOBJ_0_TILE_MODE(tile_mode) |
COND(util_format_is_srgb(args->format), A6XX_TEX_MEMOBJ_0_SRGB) |
A6XX_TEX_MEMOBJ_0_FMT(texture_format) |
A6XX_TEX_MEMOBJ_0_SAMPLES((enum a3xx_msaa_samples)util_logbase2(layout->nr_samples)) |
A6XX_TEX_MEMOBJ_0_SWAP(swap) |
fdl6_texswiz<CHIP>(args, has_z24uint_s8uint) |
A6XX_TEX_CONST_0_MIPLVLS(args->level_count - 1);
A6XX_TEX_MEMOBJ_0_MIPLVLS(args->level_count - 1);
view->descriptor[1] =
A6XX_TEX_CONST_1_WIDTH(width) | A6XX_TEX_CONST_1_HEIGHT(height) |
COND(is_mutable, A6XX_TEX_CONST_1_MUTABLEEN);
A6XX_TEX_MEMOBJ_1_WIDTH(width) | A6XX_TEX_MEMOBJ_1_HEIGHT(height) |
COND(is_mutable, A6XX_TEX_MEMOBJ_1_MUTABLEEN);
view->descriptor[2] =
A6XX_TEX_CONST_2_PITCHALIGN(layout->pitchalign - 6) |
A6XX_TEX_CONST_2_PITCH(pitch) |
A6XX_TEX_CONST_2_TYPE(fdl6_tex_type(args->type, false));
view->descriptor[3] = A6XX_TEX_CONST_3_ARRAY_PITCH(layer_size);
A6XX_TEX_MEMOBJ_2_PITCHALIGN(layout->pitchalign - 6) |
A6XX_TEX_MEMOBJ_2_PITCH(pitch) |
A6XX_TEX_MEMOBJ_2_TYPE(fdl6_tex_type(args->type, false));
view->descriptor[3] = A6XX_TEX_MEMOBJ_3_ARRAY_PITCH(layer_size);
view->descriptor[4] = base_addr;
view->descriptor[5] = (base_addr >> 32) | A6XX_TEX_CONST_5_DEPTH(depth);
view->descriptor[5] = (base_addr >> 32) | A6XX_TEX_MEMOBJ_5_DEPTH(depth);
if (args->filter_width) {
view->descriptor[6] = A6XX_TEX_CONST_6_LOG2_PHASES(
view->descriptor[6] = A6XX_TEX_MEMOBJ_6_LOG2_PHASES(
util_logbase2_ceil(args->filter_num_phases) / 2) |
A6XX_TEX_CONST_6_DILATION(1);
A6XX_TEX_MEMOBJ_6_DILATION(1);
} else {
view->descriptor[6] = A6XX_TEX_CONST_6_MIN_LOD_CLAMP(args->min_lod_clamp - args->base_miplevel);
view->descriptor[6] = A6XX_TEX_MEMOBJ_6_MIN_LOD_CLAMP(args->min_lod_clamp - args->base_miplevel);
}
if (layout->tile_all)
view->descriptor[3] |= A6XX_TEX_CONST_3_TILE_ALL;
view->descriptor[3] |= A6XX_TEX_MEMOBJ_3_TILE_ALL;
if (args->format == PIPE_FORMAT_R8_G8B8_420_UNORM ||
args->format == PIPE_FORMAT_G8_B8R8_420_UNORM ||
@ -279,14 +279,14 @@ fdl6_view_init(struct fdl6_view *view, const struct fdl_layout **layouts,
/* chroma offset re-uses MIPLVLS bits */
assert(args->level_count == 1);
if (args->chroma_offsets[0] == FDL_CHROMA_LOCATION_MIDPOINT)
view->descriptor[0] |= A6XX_TEX_CONST_0_CHROMA_MIDPOINT_X;
view->descriptor[0] |= A6XX_TEX_MEMOBJ_0_CHROMA_MIDPOINT_X;
if (args->chroma_offsets[1] == FDL_CHROMA_LOCATION_MIDPOINT)
view->descriptor[0] |= A6XX_TEX_CONST_0_CHROMA_MIDPOINT_Y;
view->descriptor[0] |= A6XX_TEX_MEMOBJ_0_CHROMA_MIDPOINT_Y;
uint64_t base_addr[3];
if (ubwc_enabled) {
view->descriptor[3] |= A6XX_TEX_CONST_3_FLAG;
view->descriptor[3] |= A6XX_TEX_MEMOBJ_3_FLAG;
/* no separate ubwc base, image must have the expected layout */
for (uint32_t i = 0; i < 3; i++) {
base_addr[i] = args->iova +
@ -302,7 +302,7 @@ fdl6_view_init(struct fdl6_view *view, const struct fdl_layout **layouts,
view->descriptor[4] = base_addr[0];
view->descriptor[5] |= base_addr[0] >> 32;
view->descriptor[6] =
A6XX_TEX_CONST_6_PLANE_PITCH(fdl_pitch(layouts[1], args->base_miplevel));
A6XX_TEX_MEMOBJ_6_PLANE_PITCH(fdl_pitch(layouts[1], args->base_miplevel));
view->descriptor[7] = base_addr[1];
view->descriptor[8] = base_addr[1] >> 32;
view->descriptor[9] = base_addr[2];
@ -312,30 +312,30 @@ fdl6_view_init(struct fdl6_view *view, const struct fdl_layout **layouts,
return;
} else if (args->filter_width) {
view->descriptor[8] =
(A6XX_TEX_CONST_8_FILTER_SIZE_X(args->filter_width) |
A6XX_TEX_CONST_8_FILTER_SIZE_Y(args->filter_height));
(A6XX_TEX_MEMOBJ_8_FILTER_SIZE_X(args->filter_width) |
A6XX_TEX_MEMOBJ_8_FILTER_SIZE_Y(args->filter_height));
view->descriptor[10] =
(A6XX_TEX_CONST_10_FILTER_OFFSET_X(args->filter_center_x) |
A6XX_TEX_CONST_10_FILTER_OFFSET_Y(args->filter_center_y));
(A6XX_TEX_MEMOBJ_10_FILTER_OFFSET_X(args->filter_center_x) |
A6XX_TEX_MEMOBJ_10_FILTER_OFFSET_Y(args->filter_center_y));
}
if (ubwc_enabled) {
uint32_t block_width, block_height;
fdl6_get_ubwc_blockwidth(layout, &block_width, &block_height);
view->descriptor[3] |= A6XX_TEX_CONST_3_FLAG;
view->descriptor[3] |= A6XX_TEX_MEMOBJ_3_FLAG;
view->descriptor[7] = ubwc_addr;
view->descriptor[8] = ubwc_addr >> 32;
view->descriptor[9] |= A6XX_TEX_CONST_9_FLAG_BUFFER_ARRAY_PITCH(layout->ubwc_layer_size >> 2);
view->descriptor[9] |= A6XX_TEX_MEMOBJ_9_FLAG_BUFFER_ARRAY_PITCH(layout->ubwc_layer_size >> 2);
view->descriptor[10] |=
A6XX_TEX_CONST_10_FLAG_BUFFER_PITCH(ubwc_pitch) |
A6XX_TEX_CONST_10_FLAG_BUFFER_LOGW(util_logbase2_ceil(DIV_ROUND_UP(width, block_width))) |
A6XX_TEX_CONST_10_FLAG_BUFFER_LOGH(util_logbase2_ceil(DIV_ROUND_UP(height, block_height)));
A6XX_TEX_MEMOBJ_10_FLAG_BUFFER_PITCH(ubwc_pitch) |
A6XX_TEX_MEMOBJ_10_FLAG_BUFFER_LOGW(util_logbase2_ceil(DIV_ROUND_UP(width, block_width))) |
A6XX_TEX_MEMOBJ_10_FLAG_BUFFER_LOGH(util_logbase2_ceil(DIV_ROUND_UP(height, block_height)));
}
if (args->type == FDL_VIEW_TYPE_3D) {
view->descriptor[3] |=
A6XX_TEX_CONST_3_MIN_LAYERSZ(layout->slices[layout->mip_levels - 1].size0);
A6XX_TEX_MEMOBJ_3_MIN_LAYERSZ(layout->slices[layout->mip_levels - 1].size0);
}
} else if (CHIP >= A8XX) {
uint32_t *descriptor = view->descriptor;
@ -498,18 +498,18 @@ fdl6_view_init(struct fdl6_view *view, const struct fdl_layout **layouts,
if (CHIP <= A7XX) {
view->storage_descriptor[0] =
A6XX_TEX_CONST_0_FMT(storage_format) |
COND(util_format_is_srgb(args->format), A6XX_TEX_CONST_0_SRGB) |
A6XX_TEX_MEMOBJ_0_FMT(storage_format) |
COND(util_format_is_srgb(args->format), A6XX_TEX_MEMOBJ_0_SRGB) |
fdl6_texswiz<CHIP>(args, has_z24uint_s8uint) |
A6XX_TEX_CONST_0_TILE_MODE(tile_mode) |
A6XX_TEX_CONST_0_SWAP(color_swap);
A6XX_TEX_MEMOBJ_0_TILE_MODE(tile_mode) |
A6XX_TEX_MEMOBJ_0_SWAP(color_swap);
view->storage_descriptor[1] = view->descriptor[1];
view->storage_descriptor[2] =
A6XX_TEX_CONST_2_PITCH(pitch) |
A6XX_TEX_CONST_2_TYPE(fdl6_tex_type(args->type, true));
A6XX_TEX_MEMOBJ_2_PITCH(pitch) |
A6XX_TEX_MEMOBJ_2_TYPE(fdl6_tex_type(args->type, true));
view->storage_descriptor[3] = view->descriptor[3];
view->storage_descriptor[4] = base_addr;
view->storage_descriptor[5] = (base_addr >> 32) | A6XX_TEX_CONST_5_DEPTH(storage_depth);
view->storage_descriptor[5] = (base_addr >> 32) | A6XX_TEX_MEMOBJ_5_DEPTH(storage_depth);
for (unsigned i = 6; i <= 10; i++)
view->storage_descriptor[i] = view->descriptor[i];
} else if (CHIP >= A8XX) {
@ -585,16 +585,16 @@ fdl6_buffer_view_init(uint32_t *descriptor, enum pipe_format format,
unsigned texel_offset = (iova & 0x3f) / elem_size;
descriptor[0] =
A6XX_TEX_CONST_0_TILE_MODE(TILE6_LINEAR) |
A6XX_TEX_CONST_0_SWAP(fd6_texture_swap(format, TILE6_LINEAR, false)) |
A6XX_TEX_CONST_0_FMT(fd6_texture_format(format, TILE6_LINEAR, false)) |
A6XX_TEX_CONST_0_MIPLVLS(0) | fdl6_texswiz<CHIP>(&args, false) |
COND(util_format_is_srgb(format), A6XX_TEX_CONST_0_SRGB);
descriptor[1] = A6XX_TEX_CONST_1_WIDTH(elements & ((1 << 15) - 1)) |
A6XX_TEX_CONST_1_HEIGHT(elements >> 15);
descriptor[2] = A6XX_TEX_CONST_2_STRUCTSIZETEXELS(struct_size_texels) |
A6XX_TEX_CONST_2_STARTOFFSETTEXELS(texel_offset) |
A6XX_TEX_CONST_2_TYPE(A6XX_TEX_BUFFER);
A6XX_TEX_MEMOBJ_0_TILE_MODE(TILE6_LINEAR) |
A6XX_TEX_MEMOBJ_0_SWAP(fd6_texture_swap(format, TILE6_LINEAR, false)) |
A6XX_TEX_MEMOBJ_0_FMT(fd6_texture_format(format, TILE6_LINEAR, false)) |
A6XX_TEX_MEMOBJ_0_MIPLVLS(0) | fdl6_texswiz<CHIP>(&args, false) |
COND(util_format_is_srgb(format), A6XX_TEX_MEMOBJ_0_SRGB);
descriptor[1] = A6XX_TEX_MEMOBJ_1_WIDTH(elements & ((1 << 15) - 1)) |
A6XX_TEX_MEMOBJ_1_HEIGHT(elements >> 15);
descriptor[2] = A6XX_TEX_MEMOBJ_2_STRUCTSIZETEXELS(struct_size_texels) |
A6XX_TEX_MEMOBJ_2_STARTOFFSETTEXELS(texel_offset) |
A6XX_TEX_MEMOBJ_2_TYPE(A6XX_TEX_BUFFER);
descriptor[4] = base_iova;
descriptor[5] = base_iova >> 32;
} else if (CHIP >= A8XX) {

View file

@ -45,7 +45,7 @@ xsi:schemaLocation="https://gitlab.freedesktop.org/freedreno/ rules-fd.xsd">
<reg32 offset="3" name="3"/>
</domain>
<domain name="A6XX_TEX_CONST" width="32" varset="chip">
<domain name="A6XX_TEX_MEMOBJ" width="32" varset="chip">
<doc>Texture constant dwords</doc>
<reg32 offset="0" name="0">
<bitfield name="TILE_MODE" low="0" high="1" type="a6xx_tile_mode"/>

View file

@ -1199,7 +1199,7 @@ r3d_src_buffer(struct tu_cmd_buffer *cmd,
if (CHIP >= A8XX) {
desc[4] = COND(util_format_is_srgb(format), A8XX_TEX_MEMOBJ_4_SRGB);
} else {
desc[0] = COND(util_format_is_srgb(format), A6XX_TEX_CONST_0_SRGB);
desc[0] = COND(util_format_is_srgb(format), A6XX_TEX_MEMOBJ_0_SRGB);
}
tu_desc_set_dim<CHIP>(desc, width, height);

View file

@ -4984,7 +4984,7 @@ tu_bind_descriptor_sets(struct tu_cmd_buffer *cmd,
va += offset;
} else {
uint32_t desc_offset = pkt_field_get(
A6XX_TEX_CONST_2_STARTOFFSETTEXELS, dst_desc[2]);
A6XX_TEX_MEMOBJ_2_STARTOFFSETTEXELS, dst_desc[2]);
/* Use descriptor's format to determine the shift amount
* that's to be used on the offset value.
@ -5009,7 +5009,7 @@ tu_bind_descriptor_sets(struct tu_cmd_buffer *cmd,
unsigned new_offset = (va & 0x3f) >> offset_shift;
va &= ~0x3full;
dst_desc[2] =
pkt_field_set(A6XX_TEX_CONST_2_STARTOFFSETTEXELS,
pkt_field_set(A6XX_TEX_MEMOBJ_2_STARTOFFSETTEXELS,
dst_desc[2], new_offset);
}
tu_desc_set_addr<CHIP>(dst_desc, va);

View file

@ -258,10 +258,10 @@ tu_desc_set_swiz(uint32_t *desc, const uint8_t (&swiz)[4])
desc[3] = pkt_field_set(A8XX_TEX_MEMOBJ_3_SWIZ_Z, desc[3], fdl8_swiz(swiz[2]));
desc[3] = pkt_field_set(A8XX_TEX_MEMOBJ_3_SWIZ_W, desc[3], fdl8_swiz(swiz[3]));
} else {
desc[0] = pkt_field_set(A6XX_TEX_CONST_0_SWIZ_X, desc[0], fdl6_swiz(swiz[0]));
desc[0] = pkt_field_set(A6XX_TEX_CONST_0_SWIZ_Y, desc[0], fdl6_swiz(swiz[1]));
desc[0] = pkt_field_set(A6XX_TEX_CONST_0_SWIZ_Z, desc[0], fdl6_swiz(swiz[2]));
desc[0] = pkt_field_set(A6XX_TEX_CONST_0_SWIZ_W, desc[0], fdl6_swiz(swiz[3]));
desc[0] = pkt_field_set(A6XX_TEX_MEMOBJ_0_SWIZ_X, desc[0], fdl6_swiz(swiz[0]));
desc[0] = pkt_field_set(A6XX_TEX_MEMOBJ_0_SWIZ_Y, desc[0], fdl6_swiz(swiz[1]));
desc[0] = pkt_field_set(A6XX_TEX_MEMOBJ_0_SWIZ_Z, desc[0], fdl6_swiz(swiz[2]));
desc[0] = pkt_field_set(A6XX_TEX_MEMOBJ_0_SWIZ_W, desc[0], fdl6_swiz(swiz[3]));
}
}
@ -272,7 +272,7 @@ tu_desc_get_format(uint32_t *desc)
if (CHIP >= A8XX) {
return (enum a6xx_format)pkt_field_get(A8XX_TEX_MEMOBJ_3_FMT, desc[3]);
} else {
return (enum a6xx_format)pkt_field_get(A6XX_TEX_CONST_0_FMT, desc[0]);
return (enum a6xx_format)pkt_field_get(A6XX_TEX_MEMOBJ_0_FMT, desc[0]);
}
}
@ -283,7 +283,7 @@ tu_desc_set_format(uint32_t *desc, enum a6xx_format fmt)
if (CHIP >= A8XX) {
desc[3] = pkt_field_set(A8XX_TEX_MEMOBJ_3_FMT, desc[3], fmt);
} else {
desc[0] = pkt_field_set(A6XX_TEX_CONST_0_FMT, desc[0], fmt);
desc[0] = pkt_field_set(A6XX_TEX_MEMOBJ_0_FMT, desc[0], fmt);
}
}
@ -294,7 +294,7 @@ tu_desc_set_swap(uint32_t *desc, enum a3xx_color_swap swap)
if (CHIP >= A8XX) {
desc[3] = pkt_field_set(A8XX_TEX_MEMOBJ_3_SWAP, desc[3], swap);
} else {
desc[0] = pkt_field_set(A6XX_TEX_CONST_0_SWAP, desc[0], swap);
desc[0] = pkt_field_set(A6XX_TEX_MEMOBJ_0_SWAP, desc[0], swap);
}
}
@ -305,7 +305,7 @@ tu_desc_set_tile_mode(uint32_t *desc, enum a6xx_tile_mode tile_mode)
if (CHIP >= A8XX) {
desc[4] = pkt_field_set(A8XX_TEX_MEMOBJ_4_TILE_MODE, desc[4], tile_mode);
} else {
desc[0] = pkt_field_set(A6XX_TEX_CONST_0_TILE_MODE, desc[0], tile_mode);
desc[0] = pkt_field_set(A6XX_TEX_MEMOBJ_0_TILE_MODE, desc[0], tile_mode);
}
}
@ -321,9 +321,9 @@ tu_desc_set_tile_all(uint32_t *desc, bool tile_all)
}
} else {
if (tile_all) {
desc[3] |= A6XX_TEX_CONST_3_TILE_ALL;
desc[3] |= A6XX_TEX_MEMOBJ_3_TILE_ALL;
} else {
desc[3] &= ~A6XX_TEX_CONST_3_TILE_ALL;
desc[3] &= ~A6XX_TEX_MEMOBJ_3_TILE_ALL;
}
}
}
@ -335,7 +335,7 @@ tu_desc_get_type(uint32_t *desc)
if (CHIP >= A8XX) {
return (enum a6xx_tex_type)pkt_field_get(A8XX_TEX_MEMOBJ_1_TYPE, desc[1]);
} else {
return (enum a6xx_tex_type)pkt_field_get(A6XX_TEX_CONST_2_TYPE, desc[2]);
return (enum a6xx_tex_type)pkt_field_get(A6XX_TEX_MEMOBJ_2_TYPE, desc[2]);
}
}
@ -346,7 +346,7 @@ tu_desc_set_type(uint32_t *desc, enum a6xx_tex_type type)
if (CHIP >= A8XX) {
desc[1] = pkt_field_set(A8XX_TEX_MEMOBJ_1_TYPE, desc[1], type);
} else {
desc[2] = pkt_field_set(A6XX_TEX_CONST_2_TYPE, desc[2], type);
desc[2] = pkt_field_set(A6XX_TEX_MEMOBJ_2_TYPE, desc[2], type);
}
}
@ -358,8 +358,8 @@ tu_desc_get_dim(uint32_t *desc, uint32_t *width, uint32_t *height)
*width = pkt_field_get(A8XX_TEX_MEMOBJ_2_WIDTH, desc[2]);
*height = pkt_field_get(A8XX_TEX_MEMOBJ_2_HEIGHT, desc[2]);
} else {
*width = pkt_field_get(A6XX_TEX_CONST_1_WIDTH, desc[1]);
*height = pkt_field_get(A6XX_TEX_CONST_1_HEIGHT, desc[1]);
*width = pkt_field_get(A6XX_TEX_MEMOBJ_1_WIDTH, desc[1]);
*height = pkt_field_get(A6XX_TEX_MEMOBJ_1_HEIGHT, desc[1]);
}
}
@ -371,8 +371,8 @@ tu_desc_set_dim(uint32_t *desc, uint32_t width, uint32_t height)
desc[2] = pkt_field_set(A8XX_TEX_MEMOBJ_2_WIDTH, desc[2], width);
desc[2] = pkt_field_set(A8XX_TEX_MEMOBJ_2_HEIGHT, desc[2], height);
} else {
desc[1] = pkt_field_set(A6XX_TEX_CONST_1_WIDTH, desc[1], width);
desc[1] = pkt_field_set(A6XX_TEX_CONST_1_HEIGHT, desc[1], height);
desc[1] = pkt_field_set(A6XX_TEX_MEMOBJ_1_WIDTH, desc[1], width);
desc[1] = pkt_field_set(A6XX_TEX_MEMOBJ_1_HEIGHT, desc[1], height);
}
}
@ -383,7 +383,7 @@ tu_desc_get_depth(uint32_t *desc)
if (CHIP >= A8XX) {
return pkt_field_get(A8XX_TEX_MEMOBJ_1_DEPTH, desc[1]);
} else {
return pkt_field_get(A6XX_TEX_CONST_5_DEPTH, desc[5]);
return pkt_field_get(A6XX_TEX_MEMOBJ_5_DEPTH, desc[5]);
}
}
@ -394,7 +394,7 @@ tu_desc_set_depth(uint32_t *desc, uint32_t depth)
if (CHIP >= A8XX) {
desc[1] = pkt_field_set(A8XX_TEX_MEMOBJ_1_DEPTH, desc[1], depth);
} else {
desc[5] = pkt_field_set(A6XX_TEX_CONST_5_DEPTH, desc[5], depth);
desc[5] = pkt_field_set(A6XX_TEX_MEMOBJ_5_DEPTH, desc[5], depth);
}
}
@ -405,7 +405,7 @@ tu_desc_set_struct_size_texels(uint32_t *desc, uint32_t struct_size_texels)
if (CHIP >= A8XX) {
desc[1] = pkt_field_set(A8XX_TEX_MEMOBJ_1_STRUCTSIZETEXELS, desc[1], struct_size_texels);
} else {
desc[2] = pkt_field_set(A6XX_TEX_CONST_2_STRUCTSIZETEXELS, desc[2], struct_size_texels);
desc[2] = pkt_field_set(A6XX_TEX_MEMOBJ_2_STRUCTSIZETEXELS, desc[2], struct_size_texels);
}
}
@ -416,7 +416,7 @@ tu_desc_set_min_line_offset(uint32_t *desc, uint32_t min_line_offset)
if (CHIP >= A8XX) {
desc[6] = pkt_field_set(A8XX_TEX_MEMOBJ_6_MIN_LINE_OFFSET, desc[6], min_line_offset);
} else {
desc[2] = pkt_field_set(A6XX_TEX_CONST_2_PITCHALIGN, desc[2], min_line_offset);
desc[2] = pkt_field_set(A6XX_TEX_MEMOBJ_2_PITCHALIGN, desc[2], min_line_offset);
}
}
@ -427,7 +427,7 @@ tu_desc_set_tex_line_offset(uint32_t *desc, uint32_t tex_line_offset)
if (CHIP >= A8XX) {
desc[6] = pkt_field_set(A8XX_TEX_MEMOBJ_6_TEX_LINE_OFFSET, desc[6], tex_line_offset);
} else {
desc[2] = pkt_field_set(A6XX_TEX_CONST_2_PITCH, desc[2], tex_line_offset);
desc[2] = pkt_field_set(A6XX_TEX_MEMOBJ_2_PITCH, desc[2], tex_line_offset);
}
}
@ -438,7 +438,7 @@ tu_desc_set_array_slice_offset(uint32_t *desc, uint32_t array_slice_offset)
if (CHIP >= A8XX) {
desc[7] = pkt_field_set(A8XX_TEX_MEMOBJ_7_ARRAY_SLICE_OFFSET, desc[7], array_slice_offset);
} else {
desc[3] = pkt_field_set(A6XX_TEX_CONST_3_ARRAY_PITCH, desc[3], array_slice_offset);
desc[3] = pkt_field_set(A6XX_TEX_MEMOBJ_3_ARRAY_PITCH, desc[3], array_slice_offset);
}
}
@ -469,7 +469,7 @@ tu_desc_get_ubwc(uint32_t *desc)
uint64_t addr = desc[4] & ~0x1f;
addr |= (uint64_t)(desc[5] & 0xffff) << 32;
return addr;
} else if ((CHIP <= A7XX) && (desc[3] & A6XX_TEX_CONST_3_FLAG)) {
} else if ((CHIP <= A7XX) && (desc[3] & A6XX_TEX_MEMOBJ_3_FLAG)) {
uint64_t addr = desc[7];
addr |= (uint64_t)(desc[8] & 0xffff) << 32;
return addr;
@ -495,9 +495,9 @@ tu_desc_set_ubwc(uint32_t *desc, uint64_t addr)
if (addr) {
desc[7] = addr;
desc[8] = (desc[8] & 0xffff) | addr >> 32;
desc[3] |= A6XX_TEX_CONST_3_FLAG;
desc[3] |= A6XX_TEX_MEMOBJ_3_FLAG;
} else {
desc[3] &= ~A6XX_TEX_CONST_3_FLAG;
desc[3] &= ~A6XX_TEX_MEMOBJ_3_FLAG;
}
}
}

View file

@ -409,28 +409,28 @@ patch_fb_read_gmem(struct fd_batch *batch)
if (CHIP <= A7XX) {
uint64_t base = screen->gmem_base + gmem->cbuf_base[buf];
uint32_t descriptor[FDL6_TEX_CONST_DWORDS] = {
A6XX_TEX_CONST_0_FMT(fd6_texture_format(
A6XX_TEX_MEMOBJ_0_FMT(fd6_texture_format(
format, (enum a6xx_tile_mode)rsc->layout.tile_mode, false)) |
A6XX_TEX_CONST_0_SAMPLES(fd_msaa_samples(prsc->nr_samples)) |
A6XX_TEX_CONST_0_SWAP(WZYX) |
A6XX_TEX_CONST_0_TILE_MODE(TILE6_2) |
COND(util_format_is_srgb(format), A6XX_TEX_CONST_0_SRGB) |
A6XX_TEX_CONST_0_SWIZ_X(fdl6_swiz(swiz[0])) |
A6XX_TEX_CONST_0_SWIZ_Y(fdl6_swiz(swiz[1])) |
A6XX_TEX_CONST_0_SWIZ_Z(fdl6_swiz(swiz[2])) |
A6XX_TEX_CONST_0_SWIZ_W(fdl6_swiz(swiz[3])),
A6XX_TEX_MEMOBJ_0_SAMPLES(fd_msaa_samples(prsc->nr_samples)) |
A6XX_TEX_MEMOBJ_0_SWAP(WZYX) |
A6XX_TEX_MEMOBJ_0_TILE_MODE(TILE6_2) |
COND(util_format_is_srgb(format), A6XX_TEX_MEMOBJ_0_SRGB) |
A6XX_TEX_MEMOBJ_0_SWIZ_X(fdl6_swiz(swiz[0])) |
A6XX_TEX_MEMOBJ_0_SWIZ_Y(fdl6_swiz(swiz[1])) |
A6XX_TEX_MEMOBJ_0_SWIZ_Z(fdl6_swiz(swiz[2])) |
A6XX_TEX_MEMOBJ_0_SWIZ_W(fdl6_swiz(swiz[3])),
A6XX_TEX_CONST_1_WIDTH(pfb->width) |
A6XX_TEX_CONST_1_HEIGHT(pfb->height),
A6XX_TEX_MEMOBJ_1_WIDTH(pfb->width) |
A6XX_TEX_MEMOBJ_1_HEIGHT(pfb->height),
A6XX_TEX_CONST_2_PITCH(gmem->bin_w * gmem->cbuf_cpp[buf]) |
A6XX_TEX_CONST_2_TYPE(A6XX_TEX_2D),
A6XX_TEX_MEMOBJ_2_PITCH(gmem->bin_w * gmem->cbuf_cpp[buf]) |
A6XX_TEX_MEMOBJ_2_TYPE(A6XX_TEX_2D),
A6XX_TEX_CONST_3_ARRAY_PITCH(rsc->layout.layer_size),
A6XX_TEX_CONST_4_BASE_LO(base),
A6XX_TEX_MEMOBJ_3_ARRAY_PITCH(rsc->layout.layer_size),
A6XX_TEX_MEMOBJ_4_BASE_LO(base),
A6XX_TEX_CONST_5_BASE_HI(base >> 32) |
A6XX_TEX_CONST_5_DEPTH(prsc->array_size)
A6XX_TEX_MEMOBJ_5_BASE_HI(base >> 32) |
A6XX_TEX_MEMOBJ_5_DEPTH(prsc->array_size)
};
memcpy(patch->cs, descriptor, FDL6_TEX_CONST_DWORDS * 4);