diff options
author | Jason Ekstrand <[email protected]> | 2016-09-01 18:57:01 -0700 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2016-10-03 14:53:01 -0700 |
commit | 5637f3f1202b46ff02c80e743dd84752a040685a (patch) | |
tree | 44d2b312053204f14dc752ecb77ed13f9d5578e5 /src/intel/isl/isl_format.c | |
parent | b7a0f2e1f769314d88d902c8506250d18393d359 (diff) |
intel/isl: Add a format_supports_multisampling helper
Signed-off-by: Jason Ekstrand <[email protected]>
Reviewed-by: Chad Versace <[email protected]>
Reviewed-by: Nanley Chery <[email protected]>
Diffstat (limited to 'src/intel/isl/isl_format.c')
-rw-r--r-- | src/intel/isl/isl_format.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/intel/isl/isl_format.c b/src/intel/isl/isl_format.c index 2804463b127..81c01e0b8ca 100644 --- a/src/intel/isl/isl_format.c +++ b/src/intel/isl/isl_format.c @@ -429,6 +429,34 @@ isl_format_supports_lossless_compression(const struct gen_device_info *devinfo, return format_gen(devinfo) >= format_info[format].lossless_compression; } +bool +isl_format_supports_multisampling(const struct gen_device_info *devinfo, + enum isl_format format) +{ + /* From the Sandybridge PRM, Volume 4 Part 1 p72, SURFACE_STATE, Surface + * Format: + * + * If Number of Multisamples is set to a value other than + * MULTISAMPLECOUNT_1, this field cannot be set to the following + * formats: + * + * - any format with greater than 64 bits per element + * - any compressed texture format (BC*) + * - any YCRCB* format + * + * The restriction on the format's size is removed on Broadwell. + */ + if (devinfo->gen < 8 && isl_format_get_layout(format)->bpb > 64) { + return false; + } else if (isl_format_is_compressed(format)) { + return false; + } else if (isl_format_is_yuv(format)) { + return false; + } else { + return true; + } +} + static inline bool isl_format_has_channel_type(enum isl_format fmt, enum isl_base_type type) { |