[igt-dev] [PATCH i-g-t v4 0/9] Update gem_blits for newer generations

Karolina Stolarek karolina.stolarek at intel.com
Fri Mar 17 12:37:02 UTC 2023


gem_blits test utilizes XY_SRC_COPY_BLT, a legacy blitter command
that is not available on newer generations such as MTL. To make
sure the test covers such platforms, update it to switch to
XY_FAST_COPY_BLT for blit copy operations.

In addition to this change, the series:
  1) Adds helpers to i915_blt library that check support for
     XY_SRC_COPY_BLT command and its capabilities
  2) Updates the definitions of older platforms to properly list
     all available commands and tilings
  3) Updates gem_blits to use aforementioned helpers to detect
     tiling formats supported by the platform

v4:
  - Dropped patch "tests/i915/gem_blits: Add XY_FAST_COPY_BLT support
    for gem_blits" in favour of "lib/intel_batchbuffer: Handle no
    support for Tile Y", as Zbigniew suggested that the workaround
    should be implemented inside the fast_copy_dword1() function
  - Added an extra patch with headers cleanup, as intel_batchbuffer.c
    had _a lot_ of them included
  - Rewrite conditional statements in gem_blits to first check for
    xy_src_copy support and then for fast copy. Update
    blit_supports_tiling() to reflect that change

v3:
  - Rebase the changes, as they stopped applying cleanly
  - Add static asserts on tiling enums, to make sure that changing
    defines or blt_tiling_type results in a compiler error
  - Reorder T_YFMAJOR value to it directly follows Tile4. Thanks to
    __block_tiling() and __fast_tiling() switches, this change
    shouldn't break gem_ccs/gem_exercise_blt tests

v2:
  - Remove libdrm include in "tests/i915/gem_blits: Add XY_FAST_COPY_BLT
    support for gem_blits". It's not needed and causes compile errors
    on some targets

Arjun Melkaveri (1):
  tests/i915/gem_blits: Use new copy instruction

Karolina Stolarek (7):
  lib/i915_blt: Add helpers to check XY_SRC_COPY support
  lib/intel_cmds_info: Correct tiling formats for XY_SRC_COPY
  lib/intel_device_info: Add tiling information for early gens
  lib/intel_batchbuffer: Remove unused includes
  lib/intel_cmds_info: Reorder blt_tiling_type enum
  lib/intel_batchbuffer: Handle no support for Tile Y
  tests/gem_blits: Use intel_cmds_info library

Vikas Srivastava (1):
  lib/intel_batchbuffer: Add wrapper API to use
    XY_FAST_COPY_BLT/XY_SRC_BLT

 lib/i915/i915_blt.c        |  39 ++++++++++
 lib/i915/i915_blt.h        |   2 +
 lib/i915/intel_cmds_info.c |  24 ++++--
 lib/i915/intel_cmds_info.h |   5 +-
 lib/intel_batchbuffer.c    | 128 +++++++++++++++++++++++--------
 lib/intel_batchbuffer.h    |  28 +++++++
 lib/intel_device_info.c    |  29 +++++--
 tests/i915/gem_blits.c     | 151 ++++++++++++++++++++++++-------------
 8 files changed, 305 insertions(+), 101 deletions(-)

-- 
2.25.1



More information about the igt-dev mailing list