diff options
Diffstat (limited to 'src/intel/isl/isl_format.c')
-rw-r--r-- | src/intel/isl/isl_format.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/intel/isl/isl_format.c b/src/intel/isl/isl_format.c index ef1324c370a..28f63a75d7c 100644 --- a/src/intel/isl/isl_format.c +++ b/src/intel/isl/isl_format.c @@ -372,6 +372,15 @@ isl_format_supports_sampling(const struct brw_device_info *devinfo, if (!format_info[format].exists) return false; + if (devinfo->is_baytrail) { + const struct isl_format_layout *fmtl = isl_format_get_layout(format); + /* Support for ETC1 and ETC2 exists on Bay Trail even though big-core + * GPUs didn't get it until Broadwell. + */ + if (fmtl->txc == ISL_TXC_ETC1 || fmtl->txc == ISL_TXC_ETC2) + return true; + } + return format_gen(devinfo) >= format_info[format].sampling; } @@ -382,6 +391,15 @@ isl_format_supports_filtering(const struct brw_device_info *devinfo, if (!format_info[format].exists) return false; + if (devinfo->is_baytrail) { + const struct isl_format_layout *fmtl = isl_format_get_layout(format); + /* Support for ETC1 and ETC2 exists on Bay Trail even though big-core + * GPUs didn't get it until Broadwell. + */ + if (fmtl->txc == ISL_TXC_ETC1 || fmtl->txc == ISL_TXC_ETC2) + return true; + } + return format_gen(devinfo) >= format_info[format].filtering; } |