[Mesa-dev] [PATCH 3/4] intel/isl: Refactor gen6_choose_image_alignment_el

Jason Ekstrand jason at jlekstrand.net
Wed May 10 21:30:31 UTC 2017


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

diff --git a/src/intel/isl/isl_gen6.c b/src/intel/isl/isl_gen6.c
index b746903..0de9620 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,29 +112,13 @@ 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;
    }
@@ -143,5 +129,13 @@ isl_gen6_choose_image_alignment_el(const struct isl_device *dev,
       return;
    }
 
+   if (info->samples > 1) {
+      *image_align_el = isl_extent3d(4, 4, 1);
+      return;
+   }
+
+   /* For everything else, we can chose any vertical alignment we want.  We
+    * choose an alignment of 2 because it uses the least memory.
+    */
    *image_align_el = isl_extent3d(4, 2, 1);
 }
-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list