Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t v3 00/13] Adapt copy commands for Xe2
@ 2023-10-04 15:49 Lucas De Marchi
  2023-10-04 15:49 ` [igt-dev] [PATCH i-g-t v3 01/13] lib/rendercopy: Use common mocs function Lucas De Marchi
                   ` (21 more replies)
  0 siblings, 22 replies; 26+ messages in thread
From: Lucas De Marchi @ 2023-10-04 15:49 UTC (permalink / raw)
  To: igt-dev; +Cc: Lucas De Marchi

A few copy commands changed for Xe2, mainly adding or moving the bits
used for MOCS. This adapts the places we are manually adding the
commands in the batch buffer, the gpu_cmds and the intel_blt libraries.

Missing here is the conversion of lib/intel_batchbuffer.c. I had
understood that intel_batchbuffer would end up using the new intel_blt.
So, it may just be that we have some patches being cooked for that. Or
I understood it wrong. Anyway, it doesn't seem good that we have
basically 3 ways to do the same thing.

Also it seems that this is the first time we are updating intel_blt for
a platform with a breaking change. I used 2 different approaches in how
to adapt the struct: one for xy-block-copy/xy-fast-copy and another for
ctrl-surf-copy. The reason is that for the former there was just a minor
change and the latter basically rewrites all the dwords. Going forward I
think we should keep applying small deltas to at most 1 or 2 breaking
changes, otherwise it makes it harder to read.

v2: Provide fixes according to the feedback in v1
v3:
  - Fix build: for some reason ninja was caching tests/intel/gem_ccs.o,
    so it was not getting rebuilt
  - Use mocs index 4 for WB (depends on kernel patch)

Lucas De Marchi (13):
  lib/rendercopy: Use common mocs function
  lib/gpu_cmds: Remove prefix from gen7_fill_binding_table()
  lib/gpu_cmds: Reorder if/else ladder according to IP version
  lib/gpu_cmds: Fork a gen9_fill_surface_state()
  lib/gpu_cmds: Reduce scope of xehp_fill_surface_state()
  lib: Fork gen9_media.h
  lib/intel_mocs: Stop encoding mocs
  lib/intel_mocs: Add Xe2 mocs indexes
  lib/igt_draw: Add Xe2 mocs to XY_FAST_COLOR_BLT
  lib/intel_mocs: Remove unused lefotver defines
  lib/intel_blt: Support Xe2 in xy-block-copy command
  lib/intel_blt: Support xe2 in xy-fast-copy command
  lib/intel_blt: Support xe2 in ctrl-surf-copy command

 docs/reference/igt-gpu-tools/meson.build |   1 +
 lib/gen8_media.h                         |  14 -
 lib/gen9_media.h                         | 144 +++++++++
 lib/gen9_render.h                        |   3 +-
 lib/gpu_cmds.c                           | 100 +++++--
 lib/gpu_cmds.h                           |   7 +-
 lib/igt_draw.c                           |   8 +-
 lib/igt_fb.c                             |   2 +-
 lib/intel_blt.c                          | 357 +++++++++++++++++------
 lib/intel_blt.h                          |  10 +-
 lib/intel_compute.c                      |   1 +
 lib/intel_mocs.c                         |  23 +-
 lib/intel_mocs.h                         |   4 +-
 lib/intel_reg.h                          |   4 +-
 lib/media_fill.c                         |   1 +
 lib/rendercopy_gen9.c                    |  41 +--
 lib/xehp_media.h                         |   3 +-
 tests/intel/gem_ccs.c                    |   8 +-
 tests/intel/gem_lmem_swapping.c          |   4 +-
 tests/intel/xe_ccs.c                     |   8 +-
 20 files changed, 539 insertions(+), 204 deletions(-)
 create mode 100644 lib/gen9_media.h

-- 
2.40.1

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2023-10-10 15:49 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-04 15:49 [igt-dev] [PATCH i-g-t v3 00/13] Adapt copy commands for Xe2 Lucas De Marchi
2023-10-04 15:49 ` [igt-dev] [PATCH i-g-t v3 01/13] lib/rendercopy: Use common mocs function Lucas De Marchi
2023-10-04 15:49 ` [igt-dev] [PATCH i-g-t v3 02/13] lib/gpu_cmds: Remove prefix from gen7_fill_binding_table() Lucas De Marchi
2023-10-04 15:49 ` [igt-dev] [PATCH i-g-t v3 03/13] lib/gpu_cmds: Reorder if/else ladder according to IP version Lucas De Marchi
2023-10-04 15:49 ` [igt-dev] [PATCH i-g-t v3 04/13] lib/gpu_cmds: Fork a gen9_fill_surface_state() Lucas De Marchi
2023-10-04 15:49 ` [igt-dev] [PATCH i-g-t v3 05/13] lib/gpu_cmds: Reduce scope of xehp_fill_surface_state() Lucas De Marchi
2023-10-04 15:49 ` [igt-dev] [PATCH i-g-t v3 06/13] lib: Fork gen9_media.h Lucas De Marchi
2023-10-04 15:49 ` [igt-dev] [PATCH i-g-t v3 07/13] lib/intel_mocs: Stop encoding mocs Lucas De Marchi
2023-10-09 18:54   ` Matt Roper
2023-10-04 15:49 ` [igt-dev] [PATCH i-g-t v3 08/13] lib/intel_mocs: Add Xe2 mocs indexes Lucas De Marchi
2023-10-09 18:56   ` Matt Roper
2023-10-04 15:49 ` [igt-dev] [PATCH i-g-t v3 09/13] lib/igt_draw: Add Xe2 mocs to XY_FAST_COLOR_BLT Lucas De Marchi
2023-10-04 15:49 ` [igt-dev] [PATCH i-g-t v3 10/13] lib/intel_mocs: Remove unused lefotver defines Lucas De Marchi
2023-10-04 15:49 ` [igt-dev] [PATCH i-g-t v3 11/13] lib/intel_blt: Support Xe2 in xy-block-copy command Lucas De Marchi
2023-10-04 15:49 ` [igt-dev] [PATCH i-g-t v3 12/13] lib/intel_blt: Support xe2 in xy-fast-copy command Lucas De Marchi
2023-10-06 22:38   ` [igt-dev] [PATCH i-g-t v3.1 " Lucas De Marchi
2023-10-04 15:49 ` [igt-dev] [PATCH i-g-t v3 13/13] lib/intel_blt: Support xe2 in ctrl-surf-copy command Lucas De Marchi
2023-10-04 18:51 ` [igt-dev] ✗ Fi.CI.BAT: failure for Adapt copy commands for Xe2 (rev4) Patchwork
2023-10-04 19:36 ` [igt-dev] ✓ CI.xeBAT: success " Patchwork
2023-10-04 21:49 ` [igt-dev] ✓ Fi.CI.BAT: success for Adapt copy commands for Xe2 (rev5) Patchwork
2023-10-04 23:52 ` [igt-dev] ✓ CI.xeBAT: " Patchwork
2023-10-05  8:32 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2023-10-06 23:34 ` [igt-dev] ✓ Fi.CI.BAT: success for Adapt copy commands for Xe2 (rev6) Patchwork
2023-10-06 23:34 ` [igt-dev] ✓ CI.xeBAT: " Patchwork
2023-10-07 13:11 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2023-10-10 15:49 ` [igt-dev] [PATCH i-g-t v3 00/13] Adapt copy commands for Xe2 Lucas De Marchi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox