freedreno/decode: Add lua handler to filter descriptors
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

Add a script hook which can be used to decide whether to show a
particular descriptor variant.  For example, the FMT determines
MULTI_PLANE vs SINGLE_PLANE, and the TYPE determines between
BUFFER vs other formats.

Some ambiguity remains.  We could do better in most cases by
extracting info from the enabled shader stages.  But this is
a good start.

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 14:52:28 -08:00 committed by Marge Bot
parent ebde70cdce
commit 2659262335
8 changed files with 119 additions and 345 deletions

View file

@ -1598,7 +1598,15 @@ dump_tex_samp(uint32_t *texsamp, enum state_src_t src, int num_unit, int level)
static void
dump_tex_descriptor_type(uint32_t *texmemobj, int idx, int level, const char *domain, const char *type)
{
struct rnndomain *dom = rnn_finddomain(rnn->db, domain);
if (!dom)
return;
rnn_varadd(rnn, "desctype", type);
if (script_show_descriptor && !script_show_descriptor(texmemobj, 16, type, rnn, dom))
return;
printl(2, "%sSTORAGE/TEXEL/IMAGE[%u]: (%s)\n", levels[level + 1], idx, type);
dump_domain(texmemobj, 16, level + 2, domain);
}

View file

@ -0,0 +1,41 @@
-- SPDX-License-Identifier: MIT
-- `r` is predefined in the environment and is the equivalent of rnn.init(<gpu>)
-- Should the given descriptor be shown decoded with the specified descriptor
-- type. Some combinations can be ruled out, based on TYPE or FMT, for example.
-- If it is ambiguous, be conservative and show the specified decoding.
function show_descriptor(desc, type)
if type == r.desctype.DESC_BUFFER then
return r.a6xx_tex_type.A6XX_TEX_BUFFER == desc.TYPE
end
-- For any other descriptor type, TEX_BUFFER is invalid
if r.a6xx_tex_type.A6XX_TEX_BUFFER == desc.TYPE then
return false
end
local is_yuv = (desc.FMT == r.a6xx_format.FMT6_R8_G8B8_2PLANE_420_UNORM) or
(desc.FMT == r.a6xx_format.FMT6_R8_G8_B8_3PLANE_420_UNORM)
if type == r.desctype.DESC_MULTI_PLANE then
return is_yuv
end
-- For any other descriptor type, is_yuv is invalid
if is_yuv then
return false
end
-- we could be more precise with some info about the enabled
-- shader stages, ie.
--
-- * if no img/img_bindless instructions, don't show DESC_WEIGHT
-- * if no indirect sampler/texture indexing, we know which
-- descriptors are samplers vs memobj
--
return true
end

View file

@ -12,6 +12,13 @@ cffdump_pkt_handler_h = custom_target(
command : [prog_python, '@INPUT@', '@OUTPUT@', '-n', 'cffdump_pkt_handler_lua_src'],
)
cffdump_desc_handler_h = custom_target(
'cffdump-desc-handler.h',
input : [files_xxd, 'cffdump-desc-handler.lua'],
output : 'cffdump-desc-handler.h',
command : [prog_python, '@INPUT@', '@OUTPUT@', '-n', 'cffdump_desc_handler_lua_src'],
)
# Shared cmdstream decoding:
libfreedreno_cffdec = static_library(
'freedreno_cffdec',
@ -28,6 +35,7 @@ libfreedreno_cffdec = static_library(
'script.h',
'util.h',
cffdump_pkt_handler_h,
cffdump_desc_handler_h,
freedreno_pm4_xml_header_file,
],
include_directories: [

View file

@ -21,6 +21,7 @@
#include "cffdec.h"
#include "cffdump-pkt-handler.h"
#include "cffdump-desc-handler.h"
#include "rnnutil.h"
#include "script.h"
@ -704,6 +705,18 @@ internal_lua_pkt_handler_load(void)
fprintf(stderr, "%s\n", lua_tostring(iL, -1));
exit(1);
}
ret = luaL_loadstring(iL, cffdump_desc_handler_lua_src);
if (ret) {
fprintf(stderr, "%s\n", lua_tostring(iL, -1));
exit(1);
}
ret = lua_pcall(iL, 0, LUA_MULTRET, 0);
if (ret) {
fprintf(stderr, "%s\n", lua_tostring(iL, -1));
exit(1);
}
}
void
@ -828,18 +841,16 @@ static const struct luaL_Reg l_meta_rnn_dom[] = {
{NULL, NULL} /* sentinel */
};
/* called to general pm4 packet decoding, such as texture/sampler state
*/
static bool
handle_packet_setup(lua_State *state, uint32_t *dwords, uint32_t sizedwords,
struct rnn *rnn, struct rnndomain *dom)
setup_call(lua_State *state, uint32_t *dwords, uint32_t sizedwords,
const char *name, struct rnn *rnn, struct rnndomain *dom)
{
if (!state)
return false;
assert(state == L || state == iL);
lua_getglobal(state, dom->name);
lua_getglobal(state, name);
/* if no handler for the packet, just ignore it: */
if (!lua_isfunction(state, -1)) {
@ -861,6 +872,18 @@ handle_packet_setup(lua_State *state, uint32_t *dwords, uint32_t sizedwords,
luaL_setmetatable(state, "rnnmetadom");
return true;
}
/* called to general pm4 packet decoding, such as texture/sampler state
*/
static bool
handle_packet_setup(lua_State *state, uint32_t *dwords, uint32_t sizedwords,
struct rnn *rnn, struct rnndomain *dom)
{
if (!setup_call(state, dwords, sizedwords, dom->name, rnn, dom))
return false;
lua_pushnumber(state, sizedwords);
return true;
@ -904,6 +927,33 @@ internal_packet(uint32_t *dwords, uint32_t sizedwords, struct rnn *rnn,
return str;
}
bool
script_show_descriptor(uint32_t *dwords,
uint32_t sizedwords,
const char *type,
struct rnn *rnn,
struct rnndomain *dom)
{
/* If we cannot call handler, fall back to showing all descriptor variants: */
if (!setup_call(iL, dwords, sizedwords, "show_descriptor", rnn, dom))
return true;
struct rnnenum *e = rnn_enumelem(rnn, "desctype");
pushenum(iL, rnn, rnn_enumval(rnn, "desctype", type), e);
/* 2 args, 1 result */
if (lua_pcall(iL, 2, 1, 0) != 0) {
fprintf(stderr, "error running function `f': %s\n",
lua_tostring(iL, -1));
exit(1);
}
bool ret = lua_toboolean(iL, -1);
lua_pop(iL, 1);
return ret;
}
/* helper to call fxn that takes and returns void: */
static void
simple_call(const char *name)

View file

@ -46,6 +46,13 @@ const char * internal_packet(uint32_t *dwords, uint32_t sizedwords,
struct rnn *rnn,
struct rnndomain *dom);
__attribute__((weak))
bool script_show_descriptor(uint32_t *dwords,
uint32_t sizedwords,
const char *type,
struct rnn *rnn,
struct rnndomain *dom);
/* maybe at some point it is interesting to add additional script
* hooks for CP_EVENT_WRITE, etc?
*/

View file

@ -853,40 +853,6 @@
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
STORAGE/TEXEL/IMAGE[0]: (DESC_MULTI_PLANE)
{ BASE_LO = 0xa6000 }
{ BASE_HI = 0x1 | TYPE = A6XX_TEX_2D | 0x100000 }
{ WIDTH = 32 | HEIGHT = 58 }
{ FMT = FMT6_8_UNORM | SWAP = WZYX | SWIZ_X = A8XX_SWIZ_X | SWIZ_Y = A8XX_SWIZ_Y | SWIZ_Z = A8XX_SWIZ_Z | SWIZ_W = A8XX_SWIZ_ONE }
{ TILE_MODE = TILE6_LINEAR | BASE_U_LO = 0 }
{ BASE_U_HI = 0 | FLAG_BUFFER_PITCH = 0 }
{ TEX_LINE_OFFSET = 512 | MIN_LINE_OFFSET = 0 }
{ UV_OFFSET_H = 0.000000 | UV_OFFSET_V = 0.000000 | 0x1 }
{ BASE_V_LO = 0 }
{ BASE_V_HI = 0 | UV_PITCH = 0 }
{ 10 = 0 }
{ 11 = 0 }
{ 12 = 0 }
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
STORAGE/TEXEL/IMAGE[0]: (DESC_BUFFER)
{ INSTANCE_DESC_BASE_LO = 0xa6000 }
{ INSTANCE_DESC_BASE_HI = 0x1 | TYPE = A6XX_TEX_2D | STRUCTSIZETEXELS = 1 }
{ NUM_ELEMENTS = 1900576 }
{ FMT = FMT6_8_UNORM | SWAP = WZYX | SWIZ_X = A8XX_SWIZ_X | SWIZ_Y = A8XX_SWIZ_Y | SWIZ_Z = A8XX_SWIZ_Z | SWIZ_W = A8XX_SWIZ_ONE }
{ 0 }
{ 0 }
{ 0x200 }
{ 0x1 }
{ 0 }
{ 0 }
{ 10 = 0 }
{ 11 = 0 }
{ 12 = 0 }
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
STORAGE/TEXEL/IMAGE[0]: (DESC_WEIGHT)
{ BASE_LO = 0xa6000 }
{ BASE_HI = 0x1 | TYPE = A6XX_TEX_2D | DEPTH = 1 }
@ -930,40 +896,6 @@
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
STORAGE/TEXEL/IMAGE[1]: (DESC_MULTI_PLANE)
{ BASE_LO = 0x1240 }
{ BASE_HI = 0 | TYPE = A6XX_TEX_1D }
{ WIDTH = 1 | HEIGHT = 0 }
{ FMT = 0 | SWAP = WZYX | SWIZ_X = A8XX_SWIZ_IDENTITY | SWIZ_Y = A8XX_SWIZ_IDENTITY | SWIZ_Z = A8XX_SWIZ_IDENTITY | SWIZ_W = A8XX_SWIZ_IDENTITY }
{ TILE_MODE = TILE6_LINEAR | BASE_U_LO = 0 }
{ BASE_U_HI = 0 | FLAG_BUFFER_PITCH = 0 }
{ TEX_LINE_OFFSET = 0 | MIN_LINE_OFFSET = 0 }
{ UV_OFFSET_H = 0.000000 | UV_OFFSET_V = 0.000000 }
{ BASE_V_LO = 0 }
{ BASE_V_HI = 0 | UV_PITCH = 0 }
{ 10 = 0 }
{ 11 = 0 }
{ 12 = 0 }
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
STORAGE/TEXEL/IMAGE[1]: (DESC_BUFFER)
{ INSTANCE_DESC_BASE_LO = 0x1240 }
{ INSTANCE_DESC_BASE_HI = 0 | TYPE = A6XX_TEX_1D | STRUCTSIZETEXELS = 0 }
{ NUM_ELEMENTS = 1 }
{ FMT = 0 | SWAP = WZYX | SWIZ_X = A8XX_SWIZ_IDENTITY | SWIZ_Y = A8XX_SWIZ_IDENTITY | SWIZ_Z = A8XX_SWIZ_IDENTITY | SWIZ_W = A8XX_SWIZ_IDENTITY }
{ 0 }
{ 0 }
{ 0 }
{ 0 }
{ 0 }
{ 0 }
{ 10 = 0 }
{ 11 = 0 }
{ 12 = 0 }
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
STORAGE/TEXEL/IMAGE[1]: (DESC_WEIGHT)
{ BASE_LO = 0x1240 }
{ BASE_HI = 0 | TYPE = A6XX_TEX_1D | DEPTH = 0 }
@ -990,23 +922,6 @@
UBO[2]:
{ BASE_LO = 0xa6000 }
{ BASE_HI = 0x1 | SIZE = 0x9 }
STORAGE/TEXEL/IMAGE[2]: (DESC_SINGLE_PLANE)
{ BASE_LO = 0xa6000 }
{ BASE_HI = 0x1 | TYPE = A6XX_TEX_2D | DEPTH = 1 }
{ WIDTH = 32 | HEIGHT = 58 | SAMPLES = MSAA_ONE }
{ FMT = FMT6_R8_G8_B8_3PLANE_420_UNORM | SWAP = WZYX | SWIZ_X = A8XX_SWIZ_Z | SWIZ_Y = A8XX_SWIZ_X | SWIZ_Z = A8XX_SWIZ_Y | SWIZ_W = A8XX_SWIZ_W }
{ TILE_MODE = TILE6_LINEAR | FLAG_LO = 0xa7000 }
{ FLAG_HI = 0x1 | FLAG_BUFFER_PITCH = 0 }
{ TEX_LINE_OFFSET = 512 | MIN_LINE_OFFSET = 0 | MIPLVLS = 0 }
{ ARRAY_SLICE_OFFSET = 0 | ASO_UNIT = 0 | MIN_ARRAY_SLIZE_OFFSET = 0x5000 }
{ FLAG_ARRAY_PITCH = 0 | FLAG_BUFFER_LOGW = 0 | FLAG_BUFFER_LOGH = 0 | 0xa8000 }
{ MIN_LOD_CLAMP = 0.000000 | 0x20001 }
{ 10 = 0 }
{ 11 = 0 }
{ 12 = 0 }
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
STORAGE/TEXEL/IMAGE[2]: (DESC_MULTI_PLANE)
{ BASE_LO = 0xa6000 }
{ BASE_HI = 0x1 | TYPE = A6XX_TEX_2D | 0x100000 }
@ -1024,40 +939,6 @@
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
STORAGE/TEXEL/IMAGE[2]: (DESC_BUFFER)
{ INSTANCE_DESC_BASE_LO = 0xa6000 }
{ INSTANCE_DESC_BASE_HI = 0x1 | TYPE = A6XX_TEX_2D | STRUCTSIZETEXELS = 1 }
{ NUM_ELEMENTS = 1900576 }
{ FMT = FMT6_R8_G8_B8_3PLANE_420_UNORM | SWAP = WZYX | SWIZ_X = A8XX_SWIZ_Z | SWIZ_Y = A8XX_SWIZ_X | SWIZ_Z = A8XX_SWIZ_Y | SWIZ_W = A8XX_SWIZ_W }
{ 0xa7000 }
{ 0x1 }
{ 0x200 }
{ 0x5000000 }
{ 0xa8000 }
{ 0x20001 }
{ 10 = 0 }
{ 11 = 0 }
{ 12 = 0 }
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
STORAGE/TEXEL/IMAGE[2]: (DESC_WEIGHT)
{ BASE_LO = 0xa6000 }
{ BASE_HI = 0x1 | TYPE = A6XX_TEX_2D | DEPTH = 1 }
{ WIDTH = 32 | HEIGHT = 58 | SAMPLES = MSAA_ONE }
{ FMT = FMT6_R8_G8_B8_3PLANE_420_UNORM | SWAP = WZYX | 0x347400 }
{ TILE_MODE = TILE6_LINEAR | 0xa7000 }
{ FILTER_SIZE_X = 1 | FILTER_SIZE_Y = 0 | FILTER_OFFSET_X = 0 | FILTER_OFFSET_Y = 0 }
{ TEX_LINE_OFFSET = 512 | MIN_LINE_OFFSET = 0 | MIPLVLS = 0 }
{ ARRAY_SLICE_OFFSET = 0 | ASO_UNIT = 0 | DILATION = 5 | LOG2_PHASES = 0 }
{ 0xa8000 }
{ 0x20001 }
{ 10 = 0 }
{ 11 = 0 }
{ 12 = 0 }
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
SAMPLER[2]:
{ XY_MAG = A6XX_TEX_NEAREST | XY_MIN = A6XX_TEX_NEAREST | WRAP_S = A6XX_TEX_REPEAT | WRAP_T = A6XX_TEX_REPEAT | WRAP_R = 0x6 | LOD_BIAS = 0.039062 | ANISO = A6XX_TEX_ANISO_1 }
{ MAX_LOD = 0.003906 | MIN_LOD = 1.125000 | REDUCTION_MODE = A6XX_REDUCTION_MODE_AVERAGE | COMPARE_FUNC = FUNC_NEVER }
@ -1084,40 +965,6 @@
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
STORAGE/TEXEL/IMAGE[3]: (DESC_MULTI_PLANE)
{ BASE_LO = 0x1240 }
{ BASE_HI = 0 | TYPE = A6XX_TEX_1D }
{ WIDTH = 1 | HEIGHT = 0 }
{ FMT = 0 | SWAP = WZYX | SWIZ_X = A8XX_SWIZ_IDENTITY | SWIZ_Y = A8XX_SWIZ_IDENTITY | SWIZ_Z = A8XX_SWIZ_IDENTITY | SWIZ_W = A8XX_SWIZ_IDENTITY }
{ TILE_MODE = TILE6_LINEAR | BASE_U_LO = 0 }
{ BASE_U_HI = 0 | FLAG_BUFFER_PITCH = 0 }
{ TEX_LINE_OFFSET = 0 | MIN_LINE_OFFSET = 0 }
{ UV_OFFSET_H = 0.000000 | UV_OFFSET_V = 0.000000 }
{ BASE_V_LO = 0 }
{ BASE_V_HI = 0 | UV_PITCH = 0 }
{ 10 = 0 }
{ 11 = 0 }
{ 12 = 0 }
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
STORAGE/TEXEL/IMAGE[3]: (DESC_BUFFER)
{ INSTANCE_DESC_BASE_LO = 0x1240 }
{ INSTANCE_DESC_BASE_HI = 0 | TYPE = A6XX_TEX_1D | STRUCTSIZETEXELS = 0 }
{ NUM_ELEMENTS = 1 }
{ FMT = 0 | SWAP = WZYX | SWIZ_X = A8XX_SWIZ_IDENTITY | SWIZ_Y = A8XX_SWIZ_IDENTITY | SWIZ_Z = A8XX_SWIZ_IDENTITY | SWIZ_W = A8XX_SWIZ_IDENTITY }
{ 0 }
{ 0 }
{ 0 }
{ 0 }
{ 0 }
{ 0 }
{ 10 = 0 }
{ 11 = 0 }
{ 12 = 0 }
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
STORAGE/TEXEL/IMAGE[3]: (DESC_WEIGHT)
{ BASE_LO = 0x1240 }
{ BASE_HI = 0 | TYPE = A6XX_TEX_1D | DEPTH = 0 }

View file

@ -758,40 +758,6 @@
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
STORAGE/TEXEL/IMAGE[0]: (DESC_MULTI_PLANE)
{ TILE_MODE = TILE6_LINEAR | SWIZ_X = A6XX_TEX_X | SWIZ_Y = A6XX_TEX_ZERO | SWIZ_Z = A6XX_TEX_ZERO | SWIZ_W = A6XX_TEX_ONE | SAMPLES = MSAA_ONE | FMT = FMT6_8_UNORM | SWAP = WZYX }
{ WIDTH = 32 | HEIGHT = 58 }
{ PITCHALIGN = 0 | PITCH = 64 | TYPE = A6XX_TEX_2D }
{ TILE_ALL | 0x800000 }
{ BASE_LO = 0x181000 }
{ BASE_HI = 0x40 | DEPTH = 1 }
{ MIN_LOD_CLAMP = 0.000000 | PLANE_PITCH = 0 }
{ BASE_U_LO = 0 }
{ BASE_U_HI = 0 }
{ BASE_V_LO = 0 }
{ BASE_V_HI = 0 }
{ 11 = 0x181000 }
{ 12 = 0x40 }
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
STORAGE/TEXEL/IMAGE[0]: (DESC_BUFFER)
{ TILE_MODE = TILE6_LINEAR | SWIZ_X = A6XX_TEX_X | SWIZ_Y = A6XX_TEX_ZERO | SWIZ_Z = A6XX_TEX_ZERO | SWIZ_W = A6XX_TEX_ONE | MIPLVLS = 0 | SAMPLES = MSAA_ONE | FMT = FMT6_8_UNORM | SWAP = WZYX }
{ NUM_ELEMENTS = 1900576 }
{ STRUCTSIZETEXELS = 512 | STARTOFFSETTEXELS = 0 | TYPE = A6XX_TEX_2D }
{ 0x8800000 }
{ BASE_LO = 0x181000 }
{ BASE_HI = 0x40 | 0x20000 }
{ 0 }
{ 0 }
{ 0 }
{ 0 }
{ 0 }
{ 11 = 0x181000 }
{ 12 = 0x40 }
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
STORAGE/TEXEL/IMAGE[0]: (DESC_WEIGHT)
{ TILE_MODE = TILE6_LINEAR | MIPLVLS = 0 | SAMPLES = MSAA_ONE | FMT = FMT6_8_UNORM | SWAP = WZYX | 0xb200 }
{ WIDTH = 32 | HEIGHT = 58 }
@ -835,40 +801,6 @@
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
STORAGE/TEXEL/IMAGE[1]: (DESC_MULTI_PLANE)
{ TILE_MODE = TILE6_LINEAR | SWIZ_X = A6XX_TEX_Z | SWIZ_Y = A6XX_TEX_Z | SWIZ_Z = A6XX_TEX_Z | SWIZ_W = A6XX_TEX_X | SAMPLES = MSAA_ONE | FMT = 0 | SWAP = WZYX }
{ WIDTH = 0 | HEIGHT = 0 }
{ PITCHALIGN = 0 | PITCH = 0 | TYPE = A6XX_TEX_1D }
{ 0 }
{ BASE_LO = 0 }
{ BASE_HI = 0 | DEPTH = 0 }
{ MIN_LOD_CLAMP = 0.000000 | PLANE_PITCH = 0 }
{ BASE_U_LO = 0 }
{ BASE_U_HI = 0 }
{ BASE_V_LO = 0 }
{ BASE_V_HI = 0 }
{ 11 = 0 }
{ 12 = 0 }
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
STORAGE/TEXEL/IMAGE[1]: (DESC_BUFFER)
{ TILE_MODE = TILE6_LINEAR | SWIZ_X = A6XX_TEX_Z | SWIZ_Y = A6XX_TEX_Z | SWIZ_Z = A6XX_TEX_Z | SWIZ_W = A6XX_TEX_X | MIPLVLS = 0 | SAMPLES = MSAA_ONE | FMT = 0 | SWAP = WZYX }
{ NUM_ELEMENTS = 0 }
{ STRUCTSIZETEXELS = 0 | STARTOFFSETTEXELS = 0 | TYPE = A6XX_TEX_1D }
{ 0 }
{ BASE_LO = 0 }
{ BASE_HI = 0 }
{ 0 }
{ 0 }
{ 0 }
{ 0 }
{ 0 }
{ 11 = 0 }
{ 12 = 0 }
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
STORAGE/TEXEL/IMAGE[1]: (DESC_WEIGHT)
{ TILE_MODE = TILE6_LINEAR | MIPLVLS = 0 | SAMPLES = MSAA_ONE | FMT = 0 | SWAP = WZYX | 0x920 }
{ WIDTH = 0 | HEIGHT = 0 }
@ -895,23 +827,6 @@
UBO[2]:
{ BASE_LO = 0x2405a420 }
{ BASE_HI = 0x10020 | SIZE = 0xe }
STORAGE/TEXEL/IMAGE[2]: (DESC_SINGLE_PLANE)
{ TILE_MODE = TILE6_LINEAR | SWIZ_X = A6XX_TEX_Z | SWIZ_Y = A6XX_TEX_X | SWIZ_Z = A6XX_TEX_Y | SWIZ_W = A6XX_TEX_ONE | MIPLVLS = 5 | SAMPLES = MSAA_ONE | FMT = FMT6_R8_G8_B8_3PLANE_420_UNORM | SWAP = WZYX }
{ WIDTH = 32 | HEIGHT = 58 }
{ PITCHALIGN = 0 | PITCH = 64 | TYPE = A6XX_TEX_2D }
{ ARRAY_PITCH = 0 | MIN_LAYERSZ = 0 | TILE_ALL }
{ BASE_LO = 0x181000 }
{ BASE_HI = 0x40 | DEPTH = 1 }
{ MIN_LOD_CLAMP = 0.000000 | 0x4000 }
{ FLAG_LO = 0x181e80 }
{ FLAG_HI = 0x40 }
{ FLAG_BUFFER_ARRAY_PITCH = 154624 | 0x180000 }
{ FLAG_BUFFER_PITCH = 4096 | FLAG_BUFFER_LOGW = 0 | FLAG_BUFFER_LOGH = 0 }
{ 11 = 0x181000 }
{ 12 = 0x40 }
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
STORAGE/TEXEL/IMAGE[2]: (DESC_MULTI_PLANE)
{ TILE_MODE = TILE6_LINEAR | SWIZ_X = A6XX_TEX_Z | SWIZ_Y = A6XX_TEX_X | SWIZ_Z = A6XX_TEX_Y | SWIZ_W = A6XX_TEX_ONE | CHROMA_MIDPOINT_X | CHROMA_MIDPOINT_Y | SAMPLES = MSAA_ONE | FMT = FMT6_R8_G8_B8_3PLANE_420_UNORM | SWAP = WZYX }
{ WIDTH = 32 | HEIGHT = 58 }
@ -929,40 +844,6 @@
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
STORAGE/TEXEL/IMAGE[2]: (DESC_BUFFER)
{ TILE_MODE = TILE6_LINEAR | SWIZ_X = A6XX_TEX_Z | SWIZ_Y = A6XX_TEX_X | SWIZ_Z = A6XX_TEX_Y | SWIZ_W = A6XX_TEX_ONE | MIPLVLS = 5 | SAMPLES = MSAA_ONE | FMT = FMT6_R8_G8_B8_3PLANE_420_UNORM | SWAP = WZYX }
{ NUM_ELEMENTS = 1900576 }
{ STRUCTSIZETEXELS = 512 | STARTOFFSETTEXELS = 0 | TYPE = A6XX_TEX_2D }
{ 0x8000000 }
{ BASE_LO = 0x181000 }
{ BASE_HI = 0x40 | 0x20000 }
{ 0x4000 }
{ 0x181e80 }
{ 0x40 }
{ 0x1825c0 }
{ 0x40 }
{ 11 = 0x181000 }
{ 12 = 0x40 }
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
STORAGE/TEXEL/IMAGE[2]: (DESC_WEIGHT)
{ TILE_MODE = TILE6_LINEAR | MIPLVLS = 5 | SAMPLES = MSAA_ONE | FMT = FMT6_R8_G8_B8_3PLANE_420_UNORM | SWAP = WZYX | 0xa420 }
{ WIDTH = 32 | HEIGHT = 58 }
{ PITCHALIGN = 0 | PITCH = 64 | TYPE = A6XX_TEX_2D }
{ ARRAY_PITCH = 0 | TILE_ALL }
{ BASE_LO = 0x181000 }
{ BASE_HI = 0x40 | DEPTH = 1 }
{ LOG2_PHASES = 0 | DILATION = 0 | 0x4000 }
{ 0x181e80 }
{ FILTER_SIZE_X = 0 | FILTER_SIZE_Y = 0 | 0x40 }
{ 0x1825c0 }
{ FILTER_OFFSET_X = 0 | FILTER_OFFSET_Y = 0 | 0x40 }
{ 11 = 0x181000 }
{ 12 = 0x40 }
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
SAMPLER[2]:
{ XY_MAG = A6XX_TEX_NEAREST | XY_MIN = A6XX_TEX_NEAREST | WRAP_S = A6XX_TEX_CLAMP_TO_EDGE | WRAP_T = A6XX_TEX_MIRROR_CLAMP | WRAP_R = A6XX_TEX_MIRROR_CLAMP | ANISO = 0x6 | LOD_BIAS = 4.500000 | 0x40000 }
{ COMPARE_FUNC = FUNC_NEVER | UNNORM_COORDS | MAX_LOD = 13.000000 | MIN_LOD = 0.003906 }
@ -989,40 +870,6 @@
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
STORAGE/TEXEL/IMAGE[3]: (DESC_MULTI_PLANE)
{ TILE_MODE = TILE6_LINEAR | SWIZ_X = A6XX_TEX_Z | SWIZ_Y = A6XX_TEX_Z | SWIZ_Z = A6XX_TEX_Z | SWIZ_W = A6XX_TEX_X | SAMPLES = MSAA_ONE | FMT = 0 | SWAP = WZYX }
{ WIDTH = 0 | HEIGHT = 0 }
{ PITCHALIGN = 0 | PITCH = 0 | TYPE = A6XX_TEX_1D }
{ 0 }
{ BASE_LO = 0 }
{ BASE_HI = 0 | DEPTH = 0 }
{ MIN_LOD_CLAMP = 0.000000 | PLANE_PITCH = 0 }
{ BASE_U_LO = 0 }
{ BASE_U_HI = 0 }
{ BASE_V_LO = 0 }
{ BASE_V_HI = 0 }
{ 11 = 0 }
{ 12 = 0 }
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
STORAGE/TEXEL/IMAGE[3]: (DESC_BUFFER)
{ TILE_MODE = TILE6_LINEAR | SWIZ_X = A6XX_TEX_Z | SWIZ_Y = A6XX_TEX_Z | SWIZ_Z = A6XX_TEX_Z | SWIZ_W = A6XX_TEX_X | MIPLVLS = 0 | SAMPLES = MSAA_ONE | FMT = 0 | SWAP = WZYX }
{ NUM_ELEMENTS = 0 }
{ STRUCTSIZETEXELS = 0 | STARTOFFSETTEXELS = 0 | TYPE = A6XX_TEX_1D }
{ 0 }
{ BASE_LO = 0 }
{ BASE_HI = 0 }
{ 0 }
{ 0 }
{ 0 }
{ 0 }
{ 0 }
{ 11 = 0 }
{ 12 = 0 }
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
STORAGE/TEXEL/IMAGE[3]: (DESC_WEIGHT)
{ TILE_MODE = TILE6_LINEAR | MIPLVLS = 0 | SAMPLES = MSAA_ONE | FMT = 0 | SWAP = WZYX | 0x920 }
{ WIDTH = 0 | HEIGHT = 0 }

View file

@ -8755,40 +8755,6 @@ got cmdszdw=416
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
STORAGE/TEXEL/IMAGE[0]: (DESC_MULTI_PLANE)
{ TILE_MODE = TILE6_LINEAR | SWIZ_X = A6XX_TEX_X | SWIZ_Y = A6XX_TEX_Y | SWIZ_Z = A6XX_TEX_Z | SWIZ_W = A6XX_TEX_W | SAMPLES = MSAA_ONE | FMT = FMT6_8_8_8_8_UNORM | SWAP = WZYX }
{ WIDTH = 2 | HEIGHT = 2 }
{ PITCHALIGN = 2 | PITCH = 256 | TYPE = A6XX_TEX_2D }
{ 0x1 }
{ BASE_LO = 0x373a000 }
{ BASE_HI = 0x1 | DEPTH = 1 }
{ MIN_LOD_CLAMP = 0.000000 | PLANE_PITCH = 0 }
{ BASE_U_LO = 0 }
{ BASE_U_HI = 0 }
{ BASE_V_LO = 0 }
{ BASE_V_HI = 0 }
{ 11 = 0 }
{ 12 = 0 }
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
STORAGE/TEXEL/IMAGE[0]: (DESC_BUFFER)
{ TILE_MODE = TILE6_LINEAR | SWIZ_X = A6XX_TEX_X | SWIZ_Y = A6XX_TEX_Y | SWIZ_Z = A6XX_TEX_Z | SWIZ_W = A6XX_TEX_W | MIPLVLS = 0 | SAMPLES = MSAA_ONE | FMT = FMT6_8_8_8_8_UNORM | SWAP = WZYX }
{ NUM_ELEMENTS = 65538 }
{ STRUCTSIZETEXELS = 2048 | STARTOFFSETTEXELS = 0 | TYPE = A6XX_TEX_2D | 0x2 }
{ 0x1 }
{ BASE_LO = 0x373a000 }
{ BASE_HI = 0x1 | 0x20000 }
{ 0 }
{ 0 }
{ 0 }
{ 0 }
{ 0 }
{ 11 = 0 }
{ 12 = 0 }
{ 13 = 0 }
{ 14 = 0 }
{ 15 = 0 }
0000000100009200: 0000: 0c006880 00010002 20008002 00000001 0373a000 00020001 00000000 00000000
*
000000010000915c: 0000: 70348003 00524000 00009200 00000001