All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm: Fix page flip ioctl format check
@ 2020-04-16 17:04 ` Ville Syrjala
  0 siblings, 0 replies; 42+ messages in thread
From: Ville Syrjala @ 2020-04-16 17:04 UTC (permalink / raw)
  To: dri-devel; +Cc: intel-gfx, stable, Laurent Pinchart

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Revert back to comparing fb->format->format instead fb->format for the
page flip ioctl. This check was originally only here to disallow pixel
format changes, but when we changed it to do the pointer comparison
we potentially started to reject some (but definitely not all) modifier
changes as well. In fact the current behaviour depends on whether the
driver overrides the format info for a specific format+modifier combo.
Eg. on i915 this now rejects compression vs. no compression changes but
does not reject any other tiling changes. That's just inconsistent
nonsense.

The main reason we have to go back to the old behaviour is to fix page
flipping with Xorg. At some point Xorg got its atomic rights taken away
and since then we can't page flip between compressed and non-compressed
fbs on i915. Currently we get no page flipping for any games pretty much
since Mesa likes to use compressed buffers. Not sure how compositors are
working around this (don't use one myself). I guess they must be doing
something to get non-compressed buffers instead. Either that or
somehow no one noticed the tearing from the blit fallback.

Looking back at the original discussion on this change we pretty much
just did it in the name of skipping a few extra pointer dereferences.
However, I've decided not to revert the whole thing in case someone
has since started to depend on these changes. None of the other checks
are relevant for i915 anyways.

Cc: stable@vger.kernel.org
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Fixes: dbd4d5761e1f ("drm: Replace 'format->format' comparisons to just 'format' comparisons")
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/drm_plane.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c
index d6ad60ab0d38..f2ca5315f23b 100644
--- a/drivers/gpu/drm/drm_plane.c
+++ b/drivers/gpu/drm/drm_plane.c
@@ -1153,7 +1153,7 @@ int drm_mode_page_flip_ioctl(struct drm_device *dev,
 	if (ret)
 		goto out;
 
-	if (old_fb->format != fb->format) {
+	if (old_fb->format->format != fb->format->format) {
 		DRM_DEBUG_KMS("Page flip is not allowed to change frame buffer format.\n");
 		ret = -EINVAL;
 		goto out;
-- 
2.24.1


^ permalink raw reply related	[flat|nested] 42+ messages in thread

end of thread, other threads:[~2020-05-11 13:05 UTC | newest]

Thread overview: 42+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-16 17:04 [PATCH] drm: Fix page flip ioctl format check Ville Syrjala
2020-04-16 17:04 ` [Intel-gfx] " Ville Syrjala
2020-04-16 17:04 ` Ville Syrjala
2020-04-16 17:08 ` Laurent Pinchart
2020-04-16 17:08   ` [Intel-gfx] " Laurent Pinchart
2020-04-16 17:08   ` Laurent Pinchart
2020-04-16 17:36   ` Ville Syrjälä
2020-04-16 17:36     ` [Intel-gfx] " Ville Syrjälä
2020-04-16 17:36     ` Ville Syrjälä
2020-04-16 18:36 ` [Intel-gfx] ✗ Fi.CI.DOCS: warning for " Patchwork
2020-04-16 18:44 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2020-04-17 15:08 ` [PATCH] " Kadiyala, Kishore
2020-04-17 15:08   ` [Intel-gfx] " Kadiyala, Kishore
2020-04-17 15:08   ` Kadiyala, Kishore
2020-04-17 15:23 ` Daniel Vetter
2020-04-17 15:23   ` [Intel-gfx] " Daniel Vetter
2020-04-17 15:23   ` Daniel Vetter
2020-04-17 15:43   ` Ville Syrjälä
2020-04-17 15:43     ` [Intel-gfx] " Ville Syrjälä
2020-04-17 15:43     ` Ville Syrjälä
2020-04-17 18:10     ` Daniel Vetter
2020-04-17 18:10       ` [Intel-gfx] " Daniel Vetter
2020-04-17 18:10       ` Daniel Vetter
2020-04-17 18:28       ` Ville Syrjälä
2020-04-17 18:28         ` [Intel-gfx] " Ville Syrjälä
2020-04-17 18:28         ` Ville Syrjälä
2020-05-08 17:08         ` Rodrigo Vivi
2020-05-08 17:08           ` [Intel-gfx] " Rodrigo Vivi
2020-05-08 17:08           ` Rodrigo Vivi
2020-05-09 10:13           ` Daniel Vetter
2020-05-09 10:13             ` [Intel-gfx] " Daniel Vetter
2020-05-09 10:13             ` Daniel Vetter
2020-05-11 12:37             ` Ville Syrjälä
2020-05-11 12:37               ` [Intel-gfx] " Ville Syrjälä
2020-05-11 12:37               ` Ville Syrjälä
2020-05-11 12:41               ` Daniel Vetter
2020-05-11 12:41                 ` [Intel-gfx] " Daniel Vetter
2020-05-11 12:41                 ` Daniel Vetter
2020-05-11 13:05                 ` Ville Syrjälä
2020-05-11 13:05                   ` [Intel-gfx] " Ville Syrjälä
2020-05-11 13:05                   ` Ville Syrjälä
2020-04-17 18:56 ` [Intel-gfx] ✓ Fi.CI.IGT: success for " Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.