From abb84e3f2da47d69b5211d838b10b155f590acc0 Mon Sep 17 00:00:00 2001 From: Topi Pohjolainen Date: Tue, 18 Jul 2017 16:25:43 +0300 Subject: intel/isl/gen7: Allow msaa with 128-bit formats 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. Reviewed-by: Jason Ekstrand Signed-off-by: Topi Pohjolainen --- src/intel/isl/isl_format.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/intel') diff --git a/src/intel/isl/isl_format.c b/src/intel/isl/isl_format.c index a9f9c6be73a..435b0d003a6 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; -- cgit v1.2.3