Module: Mesa
Branch: master
Commit: ffac81fa5c26d1c1a42f52d3f938ba5edd48cf53
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ffac81fa5c26d1c1a42f52d3f938ba5edd48cf53

Author: Nanley Chery <[email protected]>
Date:   Mon Jun 11 11:01:52 2018 -0700

i965/miptree: Refactor miptree_create

Enable a future patch to create the r8stencil_mt in this function.

v2: Explicitly set etc_format to MESA_FORMAT_NONE (Topi).

Reviewed-by: Topi Pohjolainen <[email protected]>

---

 src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 48 +++++++--------------------
 1 file changed, 12 insertions(+), 36 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c 
b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
index b0ca75d3c5..820c1d8593 100644
--- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
@@ -722,48 +722,24 @@ miptree_create(struct brw_context *brw,
                intel_depth_format_for_depthstencil_format(format);
    }
 
-   if (format == MESA_FORMAT_S_UINT8)
-      return make_surface(brw, target, mt_fmt, first_level, last_level,
-                          width0, height0, depth0, num_samples,
-                          tiling_flags,
-                          mt_surf_usage(mt_fmt),
-                          alloc_flags,
-                          0,
-                          NULL);
+   struct intel_mipmap_tree *mt =
+      make_surface(brw, target, mt_fmt, first_level, last_level,
+                   width0, height0, depth0, num_samples,
+                   tiling_flags, mt_surf_usage(mt_fmt),
+                   alloc_flags, 0, NULL);
 
-   const GLenum base_format = _mesa_get_format_base_format(format);
-   if ((base_format == GL_DEPTH_COMPONENT ||
-        base_format == GL_DEPTH_STENCIL)) {
-      struct intel_mipmap_tree *mt = make_surface(
-         brw, target, mt_fmt,
-         first_level, last_level,
-         width0, height0, depth0, num_samples, tiling_flags,
-         mt_surf_usage(mt_fmt),
-         alloc_flags, 0, NULL);
-
-      if (needs_separate_stencil(brw, mt, format) &&
-          !make_separate_stencil_surface(brw, mt)) {
+   if (mt == NULL)
+      return NULL;
+
+   if (needs_separate_stencil(brw, mt, format)) {
+      if (!make_separate_stencil_surface(brw, mt)) {
          intel_miptree_release(&mt);
          return NULL;
       }
-
-      if (!(flags & MIPTREE_CREATE_NO_AUX))
-         intel_miptree_choose_aux_usage(brw, mt);
-
-      return mt;
    }
 
-   struct intel_mipmap_tree *mt = make_surface(
-                                     brw, target, mt_fmt,
-                                     first_level, last_level,
-                                     width0, height0, depth0,
-                                     num_samples, tiling_flags,
-                                     mt_surf_usage(mt_fmt),
-                                     alloc_flags, 0, NULL);
-   if (!mt)
-      return NULL;
-
-   mt->etc_format = (mt_fmt != format) ? format : MESA_FORMAT_NONE;
+   mt->etc_format = (_mesa_is_format_color_format(format) && mt_fmt != format) 
?
+                    format : MESA_FORMAT_NONE;
 
    if (!(flags & MIPTREE_CREATE_NO_AUX))
       intel_miptree_choose_aux_usage(brw, mt);

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to