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: 9+ 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 2/3] lib/rendercopy: Convert rendercopy_gen9 to use genxml pack headers Jan Maslak
2026-04-07 15:00 ` 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]
[not found] ` <20260407132620.1397340-2-jan.maslak@intel.com>
2026-04-08 15:44 ` [PATCH 1/3] lib/genxml: Import genxml definitions and generators from Mesa Kamil Konieczny
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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox