[Mesa-dev] [PATCH 07/17] intel/isl/gen7: Allow msaa with 128-bit formats

Topi Pohjolainen topi.pohjolainen at gmail.com
Fri Jul 21 15:00:58 UTC 2017


These formats are already allowed by the i965 GL driver, and the
feature seems to work just fine.

There are tests for multisampled rendering in piglit:
tests/spec/ext_framebuffer_multisample which can be patched to
try GL_RGBA16F/32F/16I/16UI/32I/32UI in addition to GL_RGBA/8I.
IvyBridge passed all tests with all sample numbers and even
with 128-bit formats.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
---
 src/intel/isl/isl_format.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/intel/isl/isl_format.c b/src/intel/isl/isl_format.c
index a9f9c6be73..435b0d003a 100644
--- a/src/intel/isl/isl_format.c
+++ b/src/intel/isl/isl_format.c
@@ -554,16 +554,19 @@ isl_format_supports_multisampling(const struct gen_device_info *devinfo,
     *       - any compressed texture format (BC*)
     *       - any YCRCB* format
     *
-    * The restriction on the format's size is removed on Broadwell.  Also,
-    * there is an exception for HiZ which we treat as a compressed format and
-    * is allowed to be multisampled on Broadwell and earlier.
+    * The restriction on the format's size is removed on Broadwell. Moreover,
+    * empirically it looks that even IvyBridge can handle multisampled surfaces
+    * with format sizes all the way to 128-bits (RGBA32F, RGBA32I, RGBA32UI).
+    *
+    * Also, there is an exception for HiZ which we treat as a compressed
+    * format and is allowed to be multisampled on Broadwell and earlier.
     */
    if (format == ISL_FORMAT_HIZ) {
       /* On SKL+, HiZ is always single-sampled even when the primary surface
        * is multisampled.  See also isl_surf_get_hiz_surf().
        */
       return devinfo->gen <= 8;
-   } else if (devinfo->gen < 8 && isl_format_get_layout(format)->bpb > 64) {
+   } else if (devinfo->gen < 7 && isl_format_get_layout(format)->bpb > 64) {
       return false;
    } else if (isl_format_is_compressed(format)) {
       return false;
-- 
2.11.0



More information about the mesa-dev mailing list