[igt-dev] [PATCH i-g-t v8 0/4] Simplify working on tiled surfaces over GenX

Zbigniew Kempczyński zbigniew.kempczynski at intel.com
Mon Jan 13 09:59:04 UTC 2020


Different GenX support different tiling formats and HW capabilities to
copy linear surface on CPU from/to tiled one on GPU. Developing tests
which have to be aware of all tiling HW details is a little bit cumbersome.
Following patches extend IGT:

1. intel_bufops - core tiling surface code which is independent on libdrm,
2. rendercopy_bufmgr - glue between libdrm and intel_bufops, necessary 
   due to current render_copy code is heavily coupled with libdrm.

As CI doesn't have Gen2 I couldn't add and test software tiling code on
that generation. For that single case hardware tiling is enforced and 
switch to software fallback is not possible. 

For generations which supports hardware tiling bufops does idempotency
test which should reveal is surface equal regardless using hardware or
software copying method.

v6:
- rename igt_buf_ccs_width/height to igt_buf_intel_ccs_width/height
  pointing ccs field in igt_buf is vendor dependent.
- fixing code compilation dependency and order.

v7:
- fixing support CCS data for vebox copy
- adding support for copying CCS data to/from linear

v8:
- removing HAX commit

Cc: Chris Wilson <chris at chris-wilson.co.uk>
Cc: Katarzyna Dec <katarzyna.dec at intel.com>

Zbigniew Kempczyński (4):
  lib/intel_bufops: Introduce buffer operations
  lib/intel_batchbuffer: Add CCS width/height functions for Intel
    igt_buf
  lib/rendercopy_bufmgr: Add rendercopy buffer manager
  i915/gem_render_copy.c: Simplify code by switch to rendercopy bufmgr

 .../igt-gpu-tools/igt-gpu-tools-docs.xml      |    1 +
 lib/Makefile.sources                          |    4 +
 lib/intel_batchbuffer.c                       |   47 +
 lib/intel_batchbuffer.h                       |    2 +
 lib/intel_bufops.c                            | 1168 +++++++++++++++++
 lib/intel_bufops.h                            |   84 ++
 lib/meson.build                               |    2 +
 lib/rendercopy_bufmgr.c                       |  175 +++
 lib/rendercopy_bufmgr.h                       |   28 +
 tests/i915/gem_render_copy.c                  |  423 ++----
 10 files changed, 1628 insertions(+), 306 deletions(-)
 create mode 100644 lib/intel_bufops.c
 create mode 100644 lib/intel_bufops.h
 create mode 100644 lib/rendercopy_bufmgr.c
 create mode 100644 lib/rendercopy_bufmgr.h

-- 
2.23.0



More information about the igt-dev mailing list