[Intel-gfx] [PATCH 2/2] drm/i915: Fail addfb ioctl if color and CCS buffers overlap

Ben Widawsky ben at bwidawsk.net
Thu Aug 31 20:06:53 UTC 2017


On 17-08-31 16:52:15, Gabriel Krisman Bertazi wrote:
>With this patch the new testcase igt at kms_ccs@pipe-X-invalid-ccs-offset
>succeeds.
>
>Signed-off-by: Gabriel Krisman Bertazi <krisman at collabora.co.uk>
>---
> drivers/gpu/drm/i915/intel_display.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
>diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
>index b28f076f98bc..ff1ed67a9eff 100644
>--- a/drivers/gpu/drm/i915/intel_display.c
>+++ b/drivers/gpu/drm/i915/intel_display.c
>@@ -13989,6 +13989,11 @@ static int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
> 			DRM_DEBUG_KMS("RC supported only with RGB8888 formats\n");
> 			goto err;
> 		}
>+
>+		if (mode_cmd->offsets[1] < mode_cmd->pitches[0]) {
>+			DRM_DEBUG_KMS("CCS and color buffers overlap\n");
>+			return -EINVAL;
>+		}

This check doesn't look nearly strict enough to determine overlap. All it's
checking is that the aux buffer isn't in the first row of the main buffer.
Second of all, while today our requirement is that the aux buffer always come
after the main buffer, that may not be the case forever.

> 		/* fall through */
> 	case I915_FORMAT_MOD_Y_TILED:
> 	case I915_FORMAT_MOD_Yf_TILED:
>-- 
>2.11.0
>


More information about the Intel-gfx mailing list