[Mesa-dev] [PATCH 0/9] isl: Fix requests for exact row pitch (v4)

Chad Versace chadversary at chromium.org
Thu Mar 23 01:03:55 UTC 2017


All callers of isl_surf_init() that set 'min_pitch' wanted to
request an *exact* row pitch, as evidenced by nearby asserts, but isl
lacked API for doing so. This series fixes that by adding a field,
isl_surf_init_info::row_pitch.

This prepares for VK_MESAX_external_image_dma_buf, which requires
support for create VkImages with an exact, user-provided row pitch.

This patch series lives at:
    git://git.kiwitree.net/~chadv/mesa
    refs/tags/chadv/review/isl-request-exact-row-pitch-v04
    gitweb: http://git.kiwitree.net/cgit/~chadv/mesa/tag/?h=chadv/review/isl-request-exact-row-pitch-v04

v2:
  - Validate the requested row pitch. This required more extensive
    refactors in patch 2.

v3:
  - New generated genxml header genX_bits.h.
  - Fix the pitch validation. Inspect the surface's usage bits instead
    of its tiling to determine the pitch constraints. Use the bitfield
    sizes from genX_bits.h.

v4:
  - When generating genX_bits.h, parse the XML instead of scraping the
    gen*_pack.h headers.  [for jekstrand]

    Jason and I tentatively agreed that I should just hand-write the
    header. But my conscience refused. The XML way is the right way.
    Anyway, the generator script are about the same number of lines (259
    vs 222), so the generator is the clear winner in my opinion.

Testing:
  I'm locally running dEQP-VK on Skylake.
    dEQP-VK.memory.*: 0 failures
    dEQP-VK.api.*: still running

  I also pushed this to my 'jenkins' branch. But I no longer know to
  view the Jenkins results, because they're behind the Intel firewall.

Chad Versace (9):
  genxml: Define GENXML_XML_FILES in Makefile.sources
  genxml: Fix gen_zipped_file.py dependency
  genxml: New generated header genX_bits.h (v2)
  genxml: Add 3DSTATE_DEPTH_BUFFER to gen5.xml
  intel/common: Add func gen_get_version_10x()
  isl: Validate the calculated row pitch (v2)
  isl: Let isl_surf_init's caller set the exact row pitch (v2)
  intel: Fix requests for exact surface row pitch (v2)
  isl: Drop unused isl_surf_init_info::min_pitch

 src/intel/Makefile.genxml.am        |  17 +--
 src/intel/Makefile.isl.am           |   3 +
 src/intel/Makefile.sources          |  16 ++-
 src/intel/blorp/blorp_blit.c        |   8 +-
 src/intel/common/gen_device_info.c  |  11 ++
 src/intel/common/gen_device_info.h  |   3 +
 src/intel/genxml/.gitignore         |   1 +
 src/intel/genxml/gen5.xml           |  56 ++++++++
 src/intel/genxml/gen_bits_header.py | 259 ++++++++++++++++++++++++++++++++++++
 src/intel/isl/isl.c                 |  97 +++++++++++---
 src/intel/isl/isl.h                 |   7 +-
 src/intel/vulkan/anv_blorp.c        |  29 ++--
 src/intel/vulkan/anv_image.c        |   2 +-
 13 files changed, 462 insertions(+), 47 deletions(-)
 create mode 100644 src/intel/genxml/gen_bits_header.py

-- 
2.12.0



More information about the mesa-dev mailing list