[Intel-gfx] [PATCH 7/9] drm/i915: Reject ckey+fp16 on skl+
Ville Syrjala
ville.syrjala at linux.intel.com
Tue Oct 8 16:14:39 UTC 2019
From: Ville Syrjälä <ville.syrjala at linux.intel.com>
According to the spec color keying is not supported with
fp16 pixel formats on skl+. Reject that combo.
Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_sprite.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c
index cc9e5c9668b1..d6cd46e3f738 100644
--- a/drivers/gpu/drm/i915/display/intel_sprite.c
+++ b/drivers/gpu/drm/i915/display/intel_sprite.c
@@ -1689,6 +1689,19 @@ vlv_sprite_check(struct intel_crtc_state *crtc_state,
return 0;
}
+static bool format_is_fp16(u32 format)
+{
+ switch (format) {
+ case DRM_FORMAT_XRGB16161616F:
+ case DRM_FORMAT_XBGR16161616F:
+ case DRM_FORMAT_ARGB16161616F:
+ case DRM_FORMAT_ABGR16161616F:
+ return true;
+ default:
+ return false;
+ }
+}
+
static int skl_plane_check_fb(const struct intel_crtc_state *crtc_state,
const struct intel_plane_state *plane_state)
{
@@ -1760,6 +1773,11 @@ static int skl_plane_check_fb(const struct intel_crtc_state *crtc_state,
return -EINVAL;
}
+ if (plane_state->ckey.flags && format_is_fp16(fb->format->format)) {
+ DRM_DEBUG_KMS("Color keying not supported with fp16 formats\n");
+ return -EINVAL;
+ }
+
return 0;
}
--
2.21.0
More information about the Intel-gfx
mailing list