aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/iris
diff options
context:
space:
mode:
authorNanley Chery <[email protected]>2020-06-09 16:27:14 -0700
committerMarge Bot <[email protected]>2020-06-19 23:32:29 +0000
commit2305ab693820f6f08b054cb8b33536e4b1178e45 (patch)
treeb8a8e5d86cd7e24f17817aca008b285a5003a4f6 /src/gallium/drivers/iris
parentc19492bcdb9ff5c5bf4092d2daff6e2e5d7bce1b (diff)
iris: Refactor modifier_is_supported for gen12
Reviewed-by: Sagar Ghuge <[email protected]> Reviewed-by: Jordan Justen <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5420>
Diffstat (limited to 'src/gallium/drivers/iris')
-rw-r--r--src/gallium/drivers/iris/iris_resource.c28
1 files changed, 19 insertions, 9 deletions
diff --git a/src/gallium/drivers/iris/iris_resource.c b/src/gallium/drivers/iris/iris_resource.c
index 5b5c24a37d2..c2f1b2a300e 100644
--- a/src/gallium/drivers/iris/iris_resource.c
+++ b/src/gallium/drivers/iris/iris_resource.c
@@ -73,7 +73,22 @@ static bool
modifier_is_supported(const struct gen_device_info *devinfo,
enum pipe_format pfmt, uint64_t modifier)
{
- /* XXX: do something real */
+ /* Check for basic device support. */
+ switch (modifier) {
+ case DRM_FORMAT_MOD_LINEAR:
+ case I915_FORMAT_MOD_X_TILED:
+ case I915_FORMAT_MOD_Y_TILED:
+ break;
+ case I915_FORMAT_MOD_Y_TILED_CCS:
+ if (devinfo->gen <= 8 || devinfo->gen >= 12)
+ return false;
+ break;
+ case DRM_FORMAT_MOD_INVALID:
+ default:
+ return false;
+ }
+
+ /* Check remaining requirements. */
switch (modifier) {
case I915_FORMAT_MOD_Y_TILED_CCS: {
if (unlikely(INTEL_DEBUG & DEBUG_NO_RBC))
@@ -86,17 +101,12 @@ modifier_is_supported(const struct gen_device_info *devinfo,
if (rt_format == ISL_FORMAT_UNSUPPORTED ||
!isl_format_supports_ccs_e(devinfo, rt_format))
return false;
-
- return devinfo->gen >= 9 && devinfo->gen <= 11;
}
- case I915_FORMAT_MOD_Y_TILED:
- case I915_FORMAT_MOD_X_TILED:
- case DRM_FORMAT_MOD_LINEAR:
- return true;
- case DRM_FORMAT_MOD_INVALID:
default:
- return false;
+ break;
}
+
+ return true;
}
static uint64_t