From: Jani Nikula <jani.nikula@intel.com>
To: Jan Maslak <jan.maslak@intel.com>, igt-dev@lists.freedesktop.org
Cc: zbigniew.kempczynski@intel.com, Jan Maslak <jan.maslak@intel.com>
Subject: Re: [PATCH 0/3] lib/genxml: Introduce Mesa genxml infrastructure to IGT
Date: Wed, 08 Apr 2026 12:23:44 +0300 [thread overview]
Message-ID: <ad51718ea34c50b7e1c4c889bc6ac71d5c65516a@intel.com> (raw)
In-Reply-To: <20260407132620.1397340-1-jan.maslak@intel.com>
On Tue, 07 Apr 2026, Jan Maslak <jan.maslak@intel.com> wrote:
> This series brings Mesa's hardware XML command/state definitions and
> gen_pack_header.py code generator into IGT, adds a new IGT-written
> batch buffer decoder (gen_decode_header.py), and converts rendercopy_gen9
> to use the generated pack headers.
The cover letter and the commit messages contain a lot of the "What?"
but there not much in terms of the "Why?" here.
I can make assumptions, but the rationale is something that should be
spelled out in the commit messages.
BR,
Jani.
>
> Patch 1 imports the XML definitions and generators. gen_pack_header.py
> is taken from Mesa with C90 compliance fixes and a new baseline
> deduplication mechanism - when a platform's command layout matches any
> older generation exactly, the item is omitted entirely.
> gen_decode_header.py is a new IGT-only file that generates per-platform
> decoders for instructions, structs, and registers.
>
> Patch 2 converts rendercopy_gen9.c to use the generated pack headers,
> replacing hand-written struct assignments and intel_bb_out() calls with
> igt_genxml_emit and igt_genxml_pack_state.
>
> Patch 3 adds an opt-in annotated batch dump to intel_bb_dump(): when
> IGT_BB_ANNOTATE=1 is set a companion .annotated file is written alongside
> the raw hex dump, decoding each command's field names and values.
>
> Tested on LNL and DG2 (xe_render_copy render-square, render-full;
> xe_intel_bb render) and TGL (gem_render_copy_redux; api_intel_bb).
>
> Signed-off-by: Jan Maslak <jan.maslak@intel.com>
>
> Jan Maslak (3):
> lib/genxml: Import genxml definitions and generators from Mesa
> lib/rendercopy: Convert rendercopy_gen9 to use genxml pack headers
> lib: Add genxml annotated batch buffer decode
>
> lib/genxml/gen110.xml | 3358 +++++++++++++++++++++++++
> lib/genxml/gen120.xml | 2432 ++++++++++++++++++
> lib/genxml/gen125.xml | 2628 +++++++++++++++++++
> lib/genxml/gen40.xml | 1012 ++++++++
> lib/genxml/gen45.xml | 507 ++++
> lib/genxml/gen50.xml | 648 +++++
> lib/genxml/gen60.xml | 2606 +++++++++++++++++++
> lib/genxml/gen70.xml | 3067 ++++++++++++++++++++++
> lib/genxml/gen75.xml | 2424 ++++++++++++++++++
> lib/genxml/gen80.xml | 2993 ++++++++++++++++++++++
> lib/genxml/gen90.xml | 4192 +++++++++++++++++++++++++++++++
> lib/genxml/gen_decode_header.py | 487 ++++
> lib/genxml/gen_pack_header.py | 799 ++++++
> lib/genxml/igt_genxml.h | 112 +
> lib/genxml/igt_genxml_decode.h | 60 +
> lib/genxml/igt_genxml_defs.h | 335 +++
> lib/genxml/intel_genxml.py | 553 ++++
> lib/genxml/util.py | 39 +
> lib/genxml/xe2.xml | 1969 +++++++++++++++
> lib/genxml/xe3.xml | 816 ++++++
> lib/genxml/xe3p.xml | 4 +
> lib/intel_batchbuffer.c | 32 +-
> lib/meson.build | 65 +-
> lib/rendercopy_gen9.c | 1117 ++++----
> 24 files changed, 31687 insertions(+), 568 deletions(-)
> create mode 100644 lib/genxml/gen110.xml
> create mode 100644 lib/genxml/gen120.xml
> create mode 100644 lib/genxml/gen125.xml
> create mode 100644 lib/genxml/gen40.xml
> create mode 100644 lib/genxml/gen45.xml
> create mode 100644 lib/genxml/gen50.xml
> create mode 100644 lib/genxml/gen60.xml
> create mode 100644 lib/genxml/gen70.xml
> create mode 100644 lib/genxml/gen75.xml
> create mode 100644 lib/genxml/gen80.xml
> create mode 100644 lib/genxml/gen90.xml
> create mode 100644 lib/genxml/gen_decode_header.py
> create mode 100644 lib/genxml/gen_pack_header.py
> create mode 100644 lib/genxml/igt_genxml.h
> create mode 100644 lib/genxml/igt_genxml_decode.h
> create mode 100644 lib/genxml/igt_genxml_defs.h
> create mode 100644 lib/genxml/intel_genxml.py
> create mode 100644 lib/genxml/util.py
> create mode 100644 lib/genxml/xe2.xml
> create mode 100644 lib/genxml/xe3.xml
> create mode 100644 lib/genxml/xe3p.xml
--
Jani Nikula, Intel
next prev parent reply other threads:[~2026-04-08 9:23 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-07 13:26 [PATCH 0/3] lib/genxml: Introduce Mesa genxml infrastructure to IGT Jan Maslak
2026-04-07 13:26 ` [PATCH 1/3] lib/genxml: Import genxml definitions and generators from Mesa Jan Maslak
2026-04-08 15:44 ` Kamil Konieczny
2026-04-07 13:26 ` [PATCH 2/3] lib/rendercopy: Convert rendercopy_gen9 to use genxml pack headers Jan Maslak
2026-04-07 15:00 ` Ville Syrjälä
2026-04-24 10:21 ` Zbigniew Kempczyński
2026-04-24 10:46 ` Ville Syrjälä
2026-04-24 15:37 ` Zbigniew Kempczyński
2026-04-27 12:19 ` Ville Syrjälä
2026-04-07 13:26 ` [PATCH 3/3] lib: Add genxml annotated batch buffer decode Jan Maslak
2026-04-08 9:23 ` Jani Nikula [this message]
2026-04-09 17:45 ` ✗ Xe.CI.BAT: failure for lib/genxml: Introduce Mesa genxml infrastructure to IGT Patchwork
2026-04-09 18:03 ` ✗ i915.CI.BAT: " Patchwork
2026-04-09 19:02 ` ✗ Xe.CI.FULL: " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ad51718ea34c50b7e1c4c889bc6ac71d5c65516a@intel.com \
--to=jani.nikula@intel.com \
--cc=igt-dev@lists.freedesktop.org \
--cc=jan.maslak@intel.com \
--cc=zbigniew.kempczynski@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.