Re: [Mesa-dev] [PATCH 14/13] i965/surface_state: Use libisl functions for image format lowering

2016-04-21 Thread Chad Versace
On Sat 16 Apr 2016, Jason Ekstrand wrote:
> This lets us delete some redundant code and keep all of the
> image_load_store format lowering logic in one place: libisl.
> ---
>  src/mesa/drivers/dri/i965/brw_context.h  |   2 -
>  src/mesa/drivers/dri/i965/brw_surface_formats.c  | 109 
> ---
>  src/mesa/drivers/dri/i965/brw_wm_surface_state.c |  21 +++--
>  3 files changed, 12 insertions(+), 120 deletions(-)

Patch 14/13? Hmm?

This patch is
Reviewed-by: Chad Versace 
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH 14/13] i965/surface_state: Use libisl functions for image format lowering

2016-04-16 Thread Jason Ekstrand
This lets us delete some redundant code and keep all of the
image_load_store format lowering logic in one place: libisl.
---
 src/mesa/drivers/dri/i965/brw_context.h  |   2 -
 src/mesa/drivers/dri/i965/brw_surface_formats.c  | 109 ---
 src/mesa/drivers/dri/i965/brw_wm_surface_state.c |  21 +++--
 3 files changed, 12 insertions(+), 120 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_context.h 
b/src/mesa/drivers/dri/i965/brw_context.h
index b45ee5e..2d8e10b 100644
--- a/src/mesa/drivers/dri/i965/brw_context.h
+++ b/src/mesa/drivers/dri/i965/brw_context.h
@@ -1578,8 +1578,6 @@ bool brw_render_target_supported(struct brw_context *brw,
 bool brw_losslessly_compressible_format(const struct brw_context *brw,
 uint32_t brw_format);
 uint32_t brw_depth_format(struct brw_context *brw, mesa_format format);
-mesa_format brw_lower_mesa_image_format(const struct brw_device_info *devinfo,
-mesa_format format);
 
 /* brw_performance_monitor.c */
 void brw_init_performance_monitors(struct brw_context *brw);
diff --git a/src/mesa/drivers/dri/i965/brw_surface_formats.c 
b/src/mesa/drivers/dri/i965/brw_surface_formats.c
index 7ff15cc..aa8a0a1 100644
--- a/src/mesa/drivers/dri/i965/brw_surface_formats.c
+++ b/src/mesa/drivers/dri/i965/brw_surface_formats.c
@@ -942,112 +942,3 @@ brw_depth_format(struct brw_context *brw, mesa_format 
format)
   unreachable("Unexpected depth format.");
}
 }
-
-mesa_format
-brw_lower_mesa_image_format(const struct brw_device_info *devinfo,
-mesa_format format)
-{
-   switch (format) {
-   /* These are never lowered.  Up to BDW we'll have to fall back to untyped
-* surface access for 128bpp formats.
-*/
-   case MESA_FORMAT_RGBA_UINT32:
-   case MESA_FORMAT_RGBA_SINT32:
-   case MESA_FORMAT_RGBA_FLOAT32:
-   case MESA_FORMAT_R_UINT32:
-   case MESA_FORMAT_R_SINT32:
-   case MESA_FORMAT_R_FLOAT32:
-  return format;
-
-   /* From HSW to BDW the only 64bpp format supported for typed access is
-* RGBA_UINT16.  IVB falls back to untyped.
-*/
-   case MESA_FORMAT_RGBA_UINT16:
-   case MESA_FORMAT_RGBA_SINT16:
-   case MESA_FORMAT_RGBA_FLOAT16:
-   case MESA_FORMAT_RG_UINT32:
-   case MESA_FORMAT_RG_SINT32:
-   case MESA_FORMAT_RG_FLOAT32:
-  return (devinfo->gen >= 9 ? format :
-  devinfo->gen >= 8 || devinfo->is_haswell ?
-  MESA_FORMAT_RGBA_UINT16 : MESA_FORMAT_RG_UINT32);
-
-   /* Up to BDW no SINT or FLOAT formats of less than 32 bits per component
-* are supported.  IVB doesn't support formats with more than one component
-* for typed access.  For 8 and 16 bpp formats IVB relies on the
-* undocumented behavior that typed reads from R_UINT8 and R_UINT16
-* surfaces actually do a 32-bit misaligned read.  The alternative would be
-* to use two surface state entries with different formats for each image,
-* one for reading (using R_UINT32) and another one for writing (using
-* R_UINT8 or R_UINT16), but that would complicate the shaders we generate
-* even more.
-*/
-   case MESA_FORMAT_RGBA_UINT8:
-   case MESA_FORMAT_RGBA_SINT8:
-  return (devinfo->gen >= 9 ? format :
-  devinfo->gen >= 8 || devinfo->is_haswell ?
-  MESA_FORMAT_RGBA_UINT8 : MESA_FORMAT_R_UINT32);
-
-   case MESA_FORMAT_RG_UINT16:
-   case MESA_FORMAT_RG_SINT16:
-   case MESA_FORMAT_RG_FLOAT16:
-  return (devinfo->gen >= 9 ? format :
-  devinfo->gen >= 8 || devinfo->is_haswell ?
-  MESA_FORMAT_RG_UINT16 : MESA_FORMAT_R_UINT32);
-
-   case MESA_FORMAT_RG_UINT8:
-   case MESA_FORMAT_RG_SINT8:
-  return (devinfo->gen >= 9 ? format :
-  devinfo->gen >= 8 || devinfo->is_haswell ?
-  MESA_FORMAT_RG_UINT8 : MESA_FORMAT_R_UINT16);
-
-   case MESA_FORMAT_R_UINT16:
-   case MESA_FORMAT_R_FLOAT16:
-   case MESA_FORMAT_R_SINT16:
-  return (devinfo->gen >= 9 ? format : MESA_FORMAT_R_UINT16);
-
-   case MESA_FORMAT_R_UINT8:
-   case MESA_FORMAT_R_SINT8:
-  return (devinfo->gen >= 9 ? format : MESA_FORMAT_R_UINT8);
-
-   /* Neither the 2/10/10/10 nor the 11/11/10 packed formats are supported
-* by the hardware.
-*/
-   case MESA_FORMAT_R10G10B10A2_UINT:
-   case MESA_FORMAT_R10G10B10A2_UNORM:
-   case MESA_FORMAT_R11G11B10_FLOAT:
-  return MESA_FORMAT_R_UINT32;
-
-   /* No normalized fixed-point formats are supported by the hardware. */
-   case MESA_FORMAT_RGBA_UNORM16:
-   case MESA_FORMAT_RGBA_SNORM16:
-  return (devinfo->gen >= 8 || devinfo->is_haswell ?
-  MESA_FORMAT_RGBA_UINT16 : MESA_FORMAT_RG_UINT32);
-
-   case MESA_FORMAT_R8G8B8A8_UNORM:
-   case MESA_FORMAT_R8G8B8A8_SNORM:
-  return (devinfo->gen >= 8 || devinfo->is_haswell ?
-  MESA_FORMAT_RGBA_UINT8 : MESA_FORMAT_R_UINT32);
-
-   case MESA_FORMAT_R16G16_UNORM:
-   case MESA_FORMAT_R16G16_SNORM:
-  return