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

Author: Jason Ekstrand <[email protected]>
Date:   Wed May 10 12:15:01 2017 -0700

intel/isl: Refactor gen6_choose_image_alignment_el

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

---

 src/intel/isl/isl_gen6.c | 32 ++++++++++++++------------------
 1 file changed, 14 insertions(+), 18 deletions(-)

diff --git a/src/intel/isl/isl_gen6.c b/src/intel/isl/isl_gen6.c
index b74690319e..6da0be7dc2 100644
--- a/src/intel/isl/isl_gen6.c
+++ b/src/intel/isl/isl_gen6.c
@@ -88,6 +88,8 @@ isl_gen6_choose_image_alignment_el(const struct isl_device 
*dev,
     *    | format                 | halign | valign |
     *    +------------------------+--------+--------+
     *    | YUV 4:2:2 formats      |      4 |      * |
+    *    | BC1-5                  |      4 |      4 |
+    *    | FXT1                   |      8 |      4 |
     *    | uncompressed formats   |      4 |      * |
     *    +------------------------+--------+--------+
     *
@@ -110,38 +112,32 @@ isl_gen6_choose_image_alignment_el(const struct 
isl_device *dev,
     */
 
    if (isl_format_is_compressed(info->format)) {
+      /* Compressed formats have an alignment equal to their block size */
       *image_align_el = isl_extent3d(1, 1, 1);
       return;
    }
 
-   if (isl_format_is_yuv(info->format)) {
-      *image_align_el = isl_extent3d(4, 2, 1);
-      return;
-   }
-
-   if (info->samples > 1) {
-      *image_align_el = isl_extent3d(4, 4, 1);
-      return;
-   }
-
-   if (isl_surf_usage_is_depth_or_stencil(info->usage) &&
-       !ISL_DEV_USE_SEPARATE_STENCIL(dev)) {
-      /* interleaved depthstencil buffer */
-      *image_align_el = isl_extent3d(4, 4, 1);
-      return;
-   }
-
    if (isl_surf_usage_is_depth(info->usage)) {
-      /* separate depth buffer */
+      /* depth buffer (possibly interleaved with stencil) */
       *image_align_el = isl_extent3d(4, 4, 1);
       return;
    }
 
    if (isl_surf_usage_is_stencil(info->usage)) {
       /* separate stencil buffer */
+      assert(!isl_surf_usage_is_depth(info->usage));
       *image_align_el = isl_extent3d(4, 2, 1);
       return;
    }
 
+   if (info->samples > 1) {
+      *image_align_el = isl_extent3d(4, 4, 1);
+      return;
+   }
+
+   /* For everything else, 4x2 is always a valid alignment.  Since this is
+    * also the smallest alignment we can specify, we use 4x2 for everything
+    * else because it uses the least memory.
+    */
    *image_align_el = isl_extent3d(4, 2, 1);
 }

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

Reply via email to