intel/isl/gen7: Allow msaa with signed integer formats
authorTopi Pohjolainen <topi.pohjolainen@intel.com>
Tue, 18 Jul 2017 14:06:07 +0000 (17:06 +0300)
committerTopi Pohjolainen <topi.pohjolainen@intel.com>
Fri, 21 Jul 2017 21:14:16 +0000 (00:14 +0300)
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 16I/32I in addition to GL_RGBA8I.
IvyBridge passed all tests with all sample numbers.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
src/intel/isl/isl_gen7.c

index 4c5edb4b93cf8a27a8333fa7313443e789f56767..ab47a7f62292ae7cb3a501f95bc0f78f215469a4 100644 (file)
@@ -76,9 +76,10 @@ isl_gen7_choose_msaa_layout(const struct isl_device *dev,
     * Note that the above SINT restrictions apply only to *MSRTs* (that is,
     * *multisampled* render targets). The restrictions seem to permit an MCS
     * if the render target is singlesampled.
+    *
+    * Moreover, empirically it looks that hardware can render multisampled
+    * surfaces with RGBA8I, RGBA16I and RGBA32I.
     */
-   if (isl_format_has_sint_channel(info->format))
-      return false;
 
    /* More obvious restrictions */
    if (isl_surf_usage_is_display(info->usage))