[Mesa-dev] [PATCH] isl: Allow multisampled array textures

Jason Ekstrand jason at jlekstrand.net
Thu Aug 25 22:58:24 UTC 2016


This probably isn't the only thing that needs to be done to get
multisampled array textures working in Vulkan but I think this is all that
ISL really needs and it does fix 8 of the new CTS tests.
---
 src/intel/isl/isl.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/intel/isl/isl.c b/src/intel/isl/isl.c
index 59429fb..c4989dd 100644
--- a/src/intel/isl/isl.c
+++ b/src/intel/isl/isl.c
@@ -557,27 +557,27 @@ isl_calc_phys_level0_extent_sa(const struct isl_device *dev,
 
       case ISL_MSAA_LAYOUT_ARRAY:
          assert(info->depth == 1);
-         assert(info->array_len == 1);
+         assert(info->levels == 1);
          assert(!isl_format_is_compressed(info->format));
 
          *phys_level0_sa = (struct isl_extent4d) {
             .w = info->width,
             .h = info->height,
             .d = 1,
-            .a = info->samples,
+            .a = info->array_len * info->samples,
          };
          break;
 
       case ISL_MSAA_LAYOUT_INTERLEAVED:
          assert(info->depth == 1);
-         assert(info->array_len == 1);
+         assert(info->levels == 1);
          assert(!isl_format_is_compressed(info->format));
 
          *phys_level0_sa = (struct isl_extent4d) {
             .w = info->width,
             .h = info->height,
             .d = 1,
-            .a = 1,
+            .a = info->array_len,
          };
 
          isl_msaa_interleaved_scale_px_to_sa(info->samples,
-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list