[Mesa-dev] [PATCH 00/13] i965/compiler: Use ISL for image_load_store format

Jason Ekstrand jason at jlekstrand.net
Sat Apr 16 19:45:08 UTC 2016


This little series switches our back-end compiler to use libisl for the
surface format introspection it needs for doing image_load_store shader
work-arounds.  Format introspection is the one place where thet back-end
compilers still have a dependency on libmesa.

Once this dependency is removed, we can stop linking the Vulkan driver
against libmesa and cut the size of libvulkan_intel.so down to about 2 MB.
Unfortunately, we're not *quite* ready for that yet.  The way that the
different core compiler libraries are split up, libnir has a dependency on
GLSL because glsl_to_nir is in libnir.  It'll take a bit of whack-a-mole
with makefiles and linking to really get to that point.

Jason Ekstrand (13):
  i965: Add a dependency on libisl
  isl: Add an ISL_RESTRICT #define for use in isl.h
  isl: Don't use designated initializers in the header
  isl: Take a devinfo in lower_storage_image_format instead of an
    isl_device
  isl: Add a helper for determining when a typed load/store can be used
  anv/image: Use the has_matching_typed_storage_image_format helper from
    isl
  isl/format: Break the guts of has_[us]int_channel into a helper
  isl/format: Add more isl_format_has_type_channel functions
  isl/format: Add a get_num_channels helper
  i965/fs_surface_builder: Take a GL format enum instead of mesa_format
  i965/fs_surface_builder: Explicitly handle FORMAT_NONE in
    num_image_coordinates
  i965/fs_surface_builder: Add a helper for converting GL to ISL formats
  i965/fs_surface_builder: Use isl instead of mesa for format info

 configure.ac                                       |   3 +-
 src/Makefile.am                                    |   9 +-
 src/intel/Makefile.am                              |   4 -
 src/intel/isl/isl.h                                |  84 +++++++---
 src/intel/isl/isl_format.c                         |  69 ++++++--
 src/intel/isl/isl_storage_image.c                  |  40 +++--
 src/intel/isl/isl_surface_state.c                  |   3 +-
 src/intel/vulkan/anv_image.c                       |  17 +-
 src/mesa/drivers/dri/i965/Makefile.am              |   7 +-
 src/mesa/drivers/dri/i965/brw_fs_nir.cpp           |   8 +-
 .../drivers/dri/i965/brw_fs_surface_builder.cpp    | 173 +++++++++++++--------
 src/mesa/drivers/dri/i965/brw_fs_surface_builder.h |   4 +-
 12 files changed, 276 insertions(+), 145 deletions(-)

-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list