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 <jason@jlekstrand.net> Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user