mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 22:38:05 +02:00
intel/batch_decoder: Update 3DSTATE_PS decoding for xe2
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26600>
This commit is contained in:
parent
a659b1f0c0
commit
1bc7c966f4
1 changed files with 42 additions and 1 deletions
|
|
@ -783,12 +783,53 @@ decode_ps_kern(struct intel_batch_decode_ctx *ctx,
|
|||
fprintf(ctx->fp, "\n");
|
||||
}
|
||||
|
||||
static void
|
||||
decode_ps_kern_xe2(struct intel_batch_decode_ctx *ctx,
|
||||
struct intel_group *inst, const uint32_t *p)
|
||||
{
|
||||
uint64_t ksp[2] = {0, 0};
|
||||
bool enabled[2] = {false, false};
|
||||
int width[2] = {0, 0};
|
||||
|
||||
struct intel_field_iterator iter;
|
||||
intel_field_iterator_init(&iter, inst, p, 0, false);
|
||||
while (intel_field_iterator_next(&iter)) {
|
||||
if (strncmp(iter.name, "Kernel Start Pointer ",
|
||||
strlen("Kernel Start Pointer ")) == 0) {
|
||||
int idx = iter.name[strlen("Kernel Start Pointer ")] - '0';
|
||||
ksp[idx] = strtol(iter.value, NULL, 16);
|
||||
} else if (strcmp(iter.name, "Kernel 0 Enable") == 0) {
|
||||
enabled[0] = strcmp(iter.value, "true") == 0;
|
||||
} else if (strcmp(iter.name, "Kernel 1 Enable") == 0) {
|
||||
enabled[1] = strcmp(iter.value, "true") == 0;
|
||||
} else if (strcmp(iter.name, "Kernel[0] : SIMD Width") == 0) {
|
||||
width[0] = strncmp(iter.value, "0 ", 2) == 0 ? 16 : 32;
|
||||
} else if (strcmp(iter.name, "Kernel[1] : SIMD Width") == 0) {
|
||||
width[1] = strncmp(iter.value, "0 ", 2) == 0 ? 16 : 32;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
if (enabled[i])
|
||||
ctx_disassemble_program(ctx, ksp[i], "FS",
|
||||
width[i] == 16 ?
|
||||
"SIMD16 fragment shader" :
|
||||
"SIMD32 fragment shader");
|
||||
}
|
||||
|
||||
if (enabled[0] || enabled[1])
|
||||
fprintf(ctx->fp, "\n");
|
||||
}
|
||||
|
||||
static void
|
||||
decode_ps_kernels(struct intel_batch_decode_ctx *ctx,
|
||||
const uint32_t *p)
|
||||
{
|
||||
struct intel_group *inst = intel_ctx_find_instruction(ctx, p);
|
||||
decode_ps_kern(ctx, inst, p);
|
||||
if (ctx->devinfo.ver >= 20)
|
||||
decode_ps_kern_xe2(ctx, inst, p);
|
||||
else
|
||||
decode_ps_kern(ctx, inst, p);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue