[Mesa-dev] [PATCH v2 00/34] i965: Use ISL for emitting surface state

Jason Ekstrand jason at jlekstrand.net
Thu Jun 23 20:59:59 UTC 2016


This series is largely a resend of the earlier series.  Most of the
precursor ISL cleanup patches have been pushed and tagged for 12.0 for
Vulkan.  These are the patches actually needed to convert the i965 driver
over.

The primary change since v1 is a rework of the way color compression
surfaces are handled.  After a very long chat with Chad on Tuesday, we
decided my approach wasn't quite what we wanted and took a different tack.
Other than that and the few refactors required for it, the series should be
basically the same.

Jason Ekstrand (34):
  genxml: Add enough XML for gens 4, 4.5, and 5 to get SURFACE_STATE
  genxml: Make X/Y Offset field of SURFACE_STATE a uint
  genxml: Add macros and #includes for gens 4-6
  isl: Add an ISL_DEV_IS_G4X macro
  isl: Add support for filling out surface states all the way back to
    gen4
  isl/state: Add support for OffsetX/Y in surface state
  isl: Add surface formats for color compression surfaces
  isl: Add an auxiliary surface layout enum
  isl/state: Add support for handling color control surfaces
  i965/miptree: Add a helper for getting an isl_surf from a miptree
  i965/miptree: Add a helper for getting the ISL clear color from a
    miptree
  i965/miptree: Add a helper for getting the aux isl_surf from a miptree
  i965/blorp: Add a generic ISL-based surface state emit path
  i965/blorp: Use the generic ISL path for renderbuffer surfaces on
    gen8-9
  i965/blorp: Use the generic ISL path for renderbuffer surfaces on gen7
  i965/blorp: Use the generic ISL path for texture surfaces on gen7
  i965/blorp: Use the generic ISL path for renderbuffer surfaces on gen6
  i965/blorp: Use the generic ISL path for texture surfaces on gen6
  i965/state: Add a helper for emitting a surface state using isl
  i965/blorp: Use a generic ISL path for texture surfaces on gen8
  i965/state: Use ISL for emitting image surfaces
  i965/surface_state: Rename brw_update to gen4_update
  i965/state: Add generic surface update functions based on ISL
  i965/gen8: Use the generic ISL-based path for texture surfaces
  i965/gen8: Use the generic ISL-based path for renderbuffer surfaces
  i965/gen7: Use the generic ISL-based path for texture surfaces
  i965/gen7: Use the generic ISL-based path for renderbuffer surfaces
  i965/gen6: Use the generic ISL-based path for renderbuffer surfaces
  i965/gen4-6: Use the generic ISL-based path for texture surfaces
  isl/formats: Mark RAW as having a block size of 1 byte
  i965/state: Account for the element size in emit_buffer_surface_state
  i965: Use ISL for emitting buffer surface states
  i965: Get rid of gen6_surface_state.c
  i965/context: Remove some unnecessary vfuncs

 src/intel/genxml/Android.mk                       |  15 +
 src/intel/genxml/Makefile.am                      |   3 +
 src/intel/genxml/Makefile.sources                 |   3 +
 src/intel/genxml/gen4.xml                         |  52 +++
 src/intel/genxml/gen45.xml                        |  56 +++
 src/intel/genxml/gen5.xml                         |  56 +++
 src/intel/genxml/gen6.xml                         |   4 +-
 src/intel/genxml/gen7.xml                         |   4 +-
 src/intel/genxml/gen75.xml                        |   4 +-
 src/intel/genxml/gen8.xml                         |   4 +-
 src/intel/genxml/gen9.xml                         |   4 +-
 src/intel/genxml/genX_pack.h                      |  10 +-
 src/intel/genxml/gen_macros.h                     |  15 +-
 src/intel/isl/Android.mk                          |  60 +++
 src/intel/isl/Makefile.am                         |  12 +
 src/intel/isl/Makefile.sources                    |  13 +-
 src/intel/isl/isl.c                               |  22 +
 src/intel/isl/isl.h                               |  61 +++
 src/intel/isl/isl_format_layout.csv               |  16 +-
 src/intel/isl/isl_priv.h                          |  24 +
 src/intel/isl/isl_surface_state.c                 | 105 ++++-
 src/mesa/drivers/dri/i965/Makefile.sources        |   1 -
 src/mesa/drivers/dri/i965/brw_binding_tables.c    |   2 +-
 src/mesa/drivers/dri/i965/brw_blorp.c             | 148 +++++++
 src/mesa/drivers/dri/i965/brw_blorp.h             |   6 +
 src/mesa/drivers/dri/i965/brw_context.h           |  25 --
 src/mesa/drivers/dri/i965/brw_state.h             |  49 ++-
 src/mesa/drivers/dri/i965/brw_wm_surface_state.c  | 511 +++++++++++++++-------
 src/mesa/drivers/dri/i965/gen6_blorp.c            |  83 +---
 src/mesa/drivers/dri/i965/gen6_surface_state.c    | 146 -------
 src/mesa/drivers/dri/i965/gen7_blorp.c            | 105 +----
 src/mesa/drivers/dri/i965/gen7_cs_state.c         |   2 +-
 src/mesa/drivers/dri/i965/gen7_wm_surface_state.c | 408 +----------------
 src/mesa/drivers/dri/i965/gen8_blorp.c            | 146 ++-----
 src/mesa/drivers/dri/i965/gen8_surface_state.c    | 502 +--------------------
 src/mesa/drivers/dri/i965/intel_mipmap_tree.c     | 284 +++++++++++-
 src/mesa/drivers/dri/i965/intel_mipmap_tree.h     |  15 +
 37 files changed, 1409 insertions(+), 1567 deletions(-)
 create mode 100644 src/intel/genxml/gen4.xml
 create mode 100644 src/intel/genxml/gen45.xml
 create mode 100644 src/intel/genxml/gen5.xml
 delete mode 100644 src/mesa/drivers/dri/i965/gen6_surface_state.c

-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list