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.pohjolai...@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 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev