v2: Inline the switch statement (Jason)

Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net>
---
 src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 90 ++++++++-----------
 1 file changed, 38 insertions(+), 52 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c 
b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
index f78b862a702..b5d7d691ecc 100644
--- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
@@ -1777,30 +1777,37 @@ intel_miptree_level_enable_hiz(struct brw_context *brw,
 }
 
 
-/* Returns true iff all params are successfully filled. */
-static bool
-get_aux_buf_params(const struct brw_context *brw,
-                   const struct intel_mipmap_tree *mt,
-                   enum isl_aux_state *initial_state,
-                   uint8_t *memset_value,
-                   struct isl_surf *aux_surf)
+/**
+ * Allocate the initial aux surface for a miptree based on mt->aux_usage
+ *
+ * Since MCS, HiZ, and CCS_E can compress more than just clear color, we
+ * create the auxiliary surfaces up-front.  CCS_D, on the other hand, can only
+ * compress clear color so we wait until an actual fast-clear to allocate it.
+ */
+bool
+intel_miptree_alloc_aux(struct brw_context *brw,
+                        struct intel_mipmap_tree *mt)
 {
-   assert(initial_state && memset_value && aux_surf);
+   assert(mt->aux_buf == NULL);
+
+   /* Get the aux buf allocation parameters for this miptree. */
+   enum isl_aux_state initial_state;
+   uint8_t memset_value;
+   struct isl_surf aux_surf;
+   bool aux_surf_ok;
 
    switch (mt->aux_usage) {
    case ISL_AUX_USAGE_NONE:
-      aux_surf->size = 0;
-      return true;
+      aux_surf.size = 0;
+      aux_surf_ok = true;
+      break;
    case ISL_AUX_USAGE_HIZ:
       assert(!_mesa_is_format_color_format(mt->format));
 
-      *initial_state = ISL_AUX_STATE_AUX_INVALID;
-      {
-         MAYBE_UNUSED bool ok =
-            isl_surf_get_hiz_surf(&brw->isl_dev, &mt->surf, aux_surf);
-         assert(ok);
-      }
-      return true;
+      initial_state = ISL_AUX_STATE_AUX_INVALID;
+      aux_surf_ok = isl_surf_get_hiz_surf(&brw->isl_dev, &mt->surf, &aux_surf);
+      assert(aux_surf_ok);
+      break;
    case ISL_AUX_USAGE_MCS:
       assert(_mesa_is_format_color_format(mt->format));
       assert(brw->screen->devinfo.gen >= 7); /* MCS only used on Gen7+ */
@@ -1817,14 +1824,11 @@ get_aux_buf_params(const struct brw_context *brw,
        * Note: the clear value for MCS buffers is all 1's, so we memset to
        * 0xff.
        */
-      *initial_state = ISL_AUX_STATE_CLEAR;
-      *memset_value = 0xFF;
-      {
-         MAYBE_UNUSED bool ok =
-            isl_surf_get_mcs_surf(&brw->isl_dev, &mt->surf, aux_surf);
-         assert(ok);
-      }
-      return true;
+      initial_state = ISL_AUX_STATE_CLEAR;
+      memset_value = 0xFF;
+      aux_surf_ok = isl_surf_get_mcs_surf(&brw->isl_dev, &mt->surf, &aux_surf);
+      assert(aux_surf_ok);
+      break;
    case ISL_AUX_USAGE_CCS_D:
    case ISL_AUX_USAGE_CCS_E:
       assert(_mesa_is_format_color_format(mt->format));
@@ -1839,36 +1843,18 @@ get_aux_buf_params(const struct brw_context *brw,
        * A CCS value of 0 indicates that the corresponding block is in the
        * pass-through state which is what we want.
        *
-       * For CCS_D, do the same thing. On gen9+, this avoids having any 
undefined
-       * bits in the aux buffer.
+       * For CCS_D, do the same thing. On gen9+, this avoids having any
+       * undefined bits in the aux buffer.
        */
-      *initial_state = ISL_AUX_STATE_PASS_THROUGH;
-      *memset_value = 0;
-      return isl_surf_get_ccs_surf(&brw->isl_dev, &mt->surf, aux_surf, 0);
+      initial_state = ISL_AUX_STATE_PASS_THROUGH;
+      memset_value = 0;
+      aux_surf_ok =
+         isl_surf_get_ccs_surf(&brw->isl_dev, &mt->surf, &aux_surf, 0);
+      break;
    }
 
-   unreachable("Invalid aux usage");
-}
-
-
-/**
- * Allocate the initial aux surface for a miptree based on mt->aux_usage
- *
- * Since MCS, HiZ, and CCS_E can compress more than just clear color, we
- * create the auxiliary surfaces up-front.  CCS_D, on the other hand, can only
- * compress clear color so we wait until an actual fast-clear to allocate it.
- */
-bool
-intel_miptree_alloc_aux(struct brw_context *brw,
-                        struct intel_mipmap_tree *mt)
-{
-   assert(mt->aux_buf == NULL);
-
-   /* Get the aux buf allocation parameters for this miptree. */
-   enum isl_aux_state initial_state;
-   uint8_t memset_value;
-   struct isl_surf aux_surf;
-   if (!get_aux_buf_params(brw, mt, &initial_state, &memset_value, &aux_surf))
+   /* Ensure we have a valid aux_surf. */
+   if (aux_surf_ok == false)
       return false;
 
    /* No work is needed for a zero-sized auxiliary buffer. */
-- 
2.17.0

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to