From 26c8bb7bc056ee2e5795fa34bcb2a666554b09dd Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Wed, 21 Sep 2016 04:03:27 -0700 Subject: intel/isl: Rework the asserts and fails in isl_surf_get_ccs There are some invariants such as number of samples on which we should assert. However, most other things should silently return false since they're much easier for isl_surf_get_ccs to check than the caller. We also update the checking to be a bit more complete. --- src/intel/isl/isl.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/intel/isl/isl.c b/src/intel/isl/isl.c index 658650ba6f3..4d85c3b97fb 100644 --- a/src/intel/isl/isl.c +++ b/src/intel/isl/isl.c @@ -1448,9 +1448,14 @@ isl_surf_get_ccs_surf(const struct isl_device *dev, assert(surf->samples == 1 && surf->msaa_layout == ISL_MSAA_LAYOUT_NONE); assert(ISL_DEV_GEN(dev) >= 7); - assert(ISL_DEV_GEN(dev) >= 8 || surf->dim == ISL_SURF_DIM_2D); + if (surf->usage & ISL_SURF_USAGE_DISABLE_AUX_BIT) + return false; - assert(surf->logical_level0_px.depth == 1); + if (ISL_DEV_GEN(dev) <= 8 && surf->dim != ISL_SURF_DIM_2D) + return false; + + if (isl_format_is_compressed(surf->format)) + return false; /* TODO: More conditions where it can fail. */ -- cgit v1.2.3