mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-08 10:00:27 +01:00
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:
parent
74ecf3d0d0
commit
55c8aa8cbd
12 changed files with 105 additions and 105 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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"/>
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue