* [PATCH v10 0/2] drm/atomic: Ease async flip restrictions
@ 2024-12-11 3:25 André Almeida
2024-12-11 3:25 ` [PATCH v10 1/2] drm/atomic: Let drivers decide which planes to async flip André Almeida
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: André Almeida @ 2024-12-11 3:25 UTC (permalink / raw)
To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Harry Wentland, Leo Li,
Rodrigo Siqueira, Alex Deucher, Christian König, Xinhui Pan,
dmitry.baryshkov, Simon Ser, joshua, Xaver Hugl, Daniel Stone,
ville.syrjala
Cc: kernel-dev, dri-devel, linux-kernel, amd-gfx, André Almeida
Hi,
The goal of this work is to find a nice way to allow amdgpu to perform
async page flips in the overlay plane as well, not only on the primary
one. Currently, when using the atomic uAPI, this is the only type of
plane allowed to do async flips, and every driver accepts it.
This patchset re-uses the per-plane function atomic_async_check() to
this purpose, so drivers can allow different plane types. There's a
`bool flip` parameter so the atomic_async_check() can do different
decisions if it's a complete page flip or a plane update.
igt test: https://lore.kernel.org/igt-dev/20241211031820.115844-1-andrealmeid@igalia.com/
Changelog
v9: https://lore.kernel.org/r/20241101-tonyk-async_flip-v9-0-681814efbfbe@igalia.com
- Add a 'flip' flag to indicate where the atomic_async_check() is being called from.
v8: https://lore.kernel.org/lkml/20240806135300.114469-1-andrealmeid@igalia.com/
- Rebased on top of 6.12-rc1 (drm/drm-next)
v7: https://lore.kernel.org/dri-devel/20240618030024.500532-1-andrealmeid@igalia.com/
- Complete rewrite
---
André Almeida (2):
drm/atomic: Let drivers decide which planes to async flip
drm/amdgpu: Enable async flip on overlay planes
.../drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c | 11 ++++---
drivers/gpu/drm/drm_atomic_helper.c | 2 +-
drivers/gpu/drm/drm_atomic_uapi.c | 37 ++++++++++++++++------
drivers/gpu/drm/loongson/lsdc_plane.c | 3 +-
drivers/gpu/drm/mediatek/mtk_plane.c | 2 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c | 2 +-
drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 2 +-
drivers/gpu/drm/tegra/dc.c | 3 +-
drivers/gpu/drm/vc4/vc4_plane.c | 2 +-
include/drm/drm_modeset_helper_vtables.h | 7 +++-
10 files changed, 49 insertions(+), 22 deletions(-)
---
base-commit: c40c32cf71b90d85386fcc066c19feb23eb42804
change-id: 20241002-tonyk-async_flip-828cfe9cf3ca
Best regards,
--
André Almeida <andrealmeid@igalia.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v10 1/2] drm/atomic: Let drivers decide which planes to async flip
2024-12-11 3:25 [PATCH v10 0/2] drm/atomic: Ease async flip restrictions André Almeida
@ 2024-12-11 3:25 ` André Almeida
2024-12-11 3:25 ` [PATCH v10 2/2] drm/amdgpu: Enable async flip on overlay planes André Almeida
2024-12-11 19:35 ` [PATCH v10 0/2] drm/atomic: Ease async flip restrictions Dmitry Baryshkov
2 siblings, 0 replies; 5+ messages in thread
From: André Almeida @ 2024-12-11 3:25 UTC (permalink / raw)
To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Harry Wentland, Leo Li,
Rodrigo Siqueira, Alex Deucher, Christian König, Xinhui Pan,
dmitry.baryshkov, Simon Ser, joshua, Xaver Hugl, Daniel Stone,
ville.syrjala
Cc: kernel-dev, dri-devel, linux-kernel, amd-gfx, André Almeida
Currently, DRM atomic uAPI allows only primary planes to be flipped
asynchronously. However, each driver might be able to perform async
flips in other different plane types. To enable drivers to set their own
restrictions on which type of plane they can or cannot flip, use the
existing atomic_async_check() from struct drm_plane_helper_funcs to
enhance this flexibility, thus allowing different plane types to be able
to do async flips as well.
Create a new parameter for the atomic_async_check(), `bool flip`. This
parameter is used to distinguish when this function is being called from
a plane update from a full page flip.
In order to prevent regressions and such, we keep the current policy: we
skip the driver check for the primary plane, because it is always
allowed to do async flips on it.
Signed-off-by: André Almeida <andrealmeid@igalia.com>
---
Changes from v9:
- Add a 'flip' flag to indicate where the atomic_async_check() is being
called from.
Changes from v8:
- Rebased on top of 6.12-rc1
---
drivers/gpu/drm/drm_atomic_helper.c | 2 +-
drivers/gpu/drm/drm_atomic_uapi.c | 37 +++++++++++++++++++++--------
drivers/gpu/drm/loongson/lsdc_plane.c | 3 ++-
drivers/gpu/drm/mediatek/mtk_plane.c | 2 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c | 2 +-
drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 2 +-
drivers/gpu/drm/tegra/dc.c | 3 ++-
drivers/gpu/drm/vc4/vc4_plane.c | 2 +-
include/drm/drm_modeset_helper_vtables.h | 7 +++++-
9 files changed, 42 insertions(+), 18 deletions(-)
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
index 5186d2114a503701e228e382cc45180b0c578d0c..8a5d62c3faecfd764fd485434858fa3933104918 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -1928,7 +1928,7 @@ int drm_atomic_helper_async_check(struct drm_device *dev,
return -EBUSY;
}
- ret = funcs->atomic_async_check(plane, state);
+ ret = funcs->atomic_async_check(plane, state, false);
if (ret != 0)
drm_dbg_atomic(dev,
"[PLANE:%d:%s] driver async check failed\n",
diff --git a/drivers/gpu/drm/drm_atomic_uapi.c b/drivers/gpu/drm/drm_atomic_uapi.c
index 370dc676e3aa543c9827b50df20df78f02b738c9..2765ba90ad8faec6f1c1db112ef667e794d465c2 100644
--- a/drivers/gpu/drm/drm_atomic_uapi.c
+++ b/drivers/gpu/drm/drm_atomic_uapi.c
@@ -27,8 +27,9 @@
* Daniel Vetter <daniel.vetter@ffwll.ch>
*/
-#include <drm/drm_atomic_uapi.h>
#include <drm/drm_atomic.h>
+#include <drm/drm_atomic_helper.h>
+#include <drm/drm_atomic_uapi.h>
#include <drm/drm_framebuffer.h>
#include <drm/drm_print.h>
#include <drm/drm_drv.h>
@@ -1063,6 +1064,7 @@ int drm_atomic_set_property(struct drm_atomic_state *state,
struct drm_plane *plane = obj_to_plane(obj);
struct drm_plane_state *plane_state;
struct drm_mode_config *config = &plane->dev->mode_config;
+ const struct drm_plane_helper_funcs *plane_funcs = plane->helper_private;
plane_state = drm_atomic_get_plane_state(state, plane);
if (IS_ERR(plane_state)) {
@@ -1070,15 +1072,30 @@ int drm_atomic_set_property(struct drm_atomic_state *state,
break;
}
- if (async_flip &&
- (plane_state->plane->type != DRM_PLANE_TYPE_PRIMARY ||
- (prop != config->prop_fb_id &&
- prop != config->prop_in_fence_fd &&
- prop != config->prop_fb_damage_clips))) {
- ret = drm_atomic_plane_get_property(plane, plane_state,
- prop, &old_val);
- ret = drm_atomic_check_prop_changes(ret, old_val, prop_value, prop);
- break;
+ if (async_flip) {
+ /* check if the prop does a nop change */
+ if ((prop != config->prop_fb_id &&
+ prop != config->prop_in_fence_fd &&
+ prop != config->prop_fb_damage_clips)) {
+ ret = drm_atomic_plane_get_property(plane, plane_state,
+ prop, &old_val);
+ ret = drm_atomic_check_prop_changes(ret, old_val, prop_value, prop);
+ }
+
+ /* ask the driver if this non-primary plane is supported */
+ if (plane->type != DRM_PLANE_TYPE_PRIMARY) {
+ ret = -EINVAL;
+
+ if (plane_funcs && plane_funcs->atomic_async_check)
+ ret = plane_funcs->atomic_async_check(plane, state, true);
+
+ if (ret) {
+ drm_dbg_atomic(prop->dev,
+ "[PLANE:%d:%s] does not support async flips\n",
+ obj->id, plane->name);
+ break;
+ }
+ }
}
ret = drm_atomic_plane_set_property(plane,
diff --git a/drivers/gpu/drm/loongson/lsdc_plane.c b/drivers/gpu/drm/loongson/lsdc_plane.c
index d227a2c1dcf16a3d5190de3893a55228ec70b254..aa9a97f9c4dc28eea3098507ce52e6aa6caa46eb 100644
--- a/drivers/gpu/drm/loongson/lsdc_plane.c
+++ b/drivers/gpu/drm/loongson/lsdc_plane.c
@@ -171,7 +171,8 @@ static const struct drm_plane_helper_funcs lsdc_primary_helper_funcs = {
};
static int lsdc_cursor_plane_atomic_async_check(struct drm_plane *plane,
- struct drm_atomic_state *state)
+ struct drm_atomic_state *state,
+ bool flip)
{
struct drm_plane_state *new_state;
struct drm_crtc_state *crtc_state;
diff --git a/drivers/gpu/drm/mediatek/mtk_plane.c b/drivers/gpu/drm/mediatek/mtk_plane.c
index 8a48b3b0a95676c9823daa2052aefb7f86f629ff..655106bbb76d3300edb71fa027591b2f943bbe68 100644
--- a/drivers/gpu/drm/mediatek/mtk_plane.c
+++ b/drivers/gpu/drm/mediatek/mtk_plane.c
@@ -101,7 +101,7 @@ static void mtk_plane_destroy_state(struct drm_plane *plane,
}
static int mtk_plane_atomic_async_check(struct drm_plane *plane,
- struct drm_atomic_state *state)
+ struct drm_atomic_state *state, bool flip)
{
struct drm_plane_state *new_plane_state = drm_atomic_get_new_plane_state(state,
plane);
diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c
index 62de248ed1b09ae479327691eea4866391977b85..bb16019219387e7c5e714106b2fb8054d0db85c1 100644
--- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c
+++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c
@@ -368,7 +368,7 @@ static void mdp5_plane_atomic_update(struct drm_plane *plane,
}
static int mdp5_plane_atomic_async_check(struct drm_plane *plane,
- struct drm_atomic_state *state)
+ struct drm_atomic_state *state, bool flip)
{
struct drm_plane_state *new_plane_state = drm_atomic_get_new_plane_state(state,
plane);
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
index 69900138295bf792a1002aff8d66a781082befb9..cd72c726df84fec6ded3d824222ce1d7a85b7a65 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
@@ -1072,7 +1072,7 @@ static void vop_plane_atomic_update(struct drm_plane *plane,
}
static int vop_plane_atomic_async_check(struct drm_plane *plane,
- struct drm_atomic_state *state)
+ struct drm_atomic_state *state, bool flip)
{
struct drm_plane_state *new_plane_state = drm_atomic_get_new_plane_state(state,
plane);
diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c
index be61c9d1a4f0e8289ba83cb82edb9f30b95f187c..22fc81a71702e5e384d6df968ee3f5ef7b7b14d9 100644
--- a/drivers/gpu/drm/tegra/dc.c
+++ b/drivers/gpu/drm/tegra/dc.c
@@ -1025,7 +1025,8 @@ static void tegra_cursor_atomic_disable(struct drm_plane *plane,
tegra_dc_writel(dc, value, DC_DISP_DISP_WIN_OPTIONS);
}
-static int tegra_cursor_atomic_async_check(struct drm_plane *plane, struct drm_atomic_state *state)
+static int tegra_cursor_atomic_async_check(struct drm_plane *plane, struct drm_atomic_state *state,
+ bool flip)
{
struct drm_plane_state *new_state = drm_atomic_get_new_plane_state(state, plane);
struct drm_crtc_state *crtc_state;
diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c
index ba6e86d62a77cc504826d4ff3ab6db9fb7005f2e..22e34b622a422dbea05baf78eaaa9765d346f25b 100644
--- a/drivers/gpu/drm/vc4/vc4_plane.c
+++ b/drivers/gpu/drm/vc4/vc4_plane.c
@@ -1541,7 +1541,7 @@ static void vc4_plane_atomic_async_update(struct drm_plane *plane,
}
static int vc4_plane_atomic_async_check(struct drm_plane *plane,
- struct drm_atomic_state *state)
+ struct drm_atomic_state *state, bool flip)
{
struct drm_plane_state *new_plane_state = drm_atomic_get_new_plane_state(state,
plane);
diff --git a/include/drm/drm_modeset_helper_vtables.h b/include/drm/drm_modeset_helper_vtables.h
index ec59015aec3cf3ba01510031c55df8c0b3e0b382..0939ace53e7eb51db54dc133d2a8f898d31fc950 100644
--- a/include/drm/drm_modeset_helper_vtables.h
+++ b/include/drm/drm_modeset_helper_vtables.h
@@ -1400,13 +1400,18 @@ struct drm_plane_helper_funcs {
* given update can be committed asynchronously, that is, if it can
* jump ahead of the state currently queued for update.
*
+ * This function is also used by drm_atomic_set_property() to determine
+ * if the plane can be flipped in async. The flip flag is used to
+ * distinguish if the function is used for just the plane state or for a
+ * flip.
+ *
* RETURNS:
*
* Return 0 on success and any error returned indicates that the update
* can not be applied in asynchronous manner.
*/
int (*atomic_async_check)(struct drm_plane *plane,
- struct drm_atomic_state *state);
+ struct drm_atomic_state *state, bool flip);
/**
* @atomic_async_update:
--
2.47.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v10 2/2] drm/amdgpu: Enable async flip on overlay planes
2024-12-11 3:25 [PATCH v10 0/2] drm/atomic: Ease async flip restrictions André Almeida
2024-12-11 3:25 ` [PATCH v10 1/2] drm/atomic: Let drivers decide which planes to async flip André Almeida
@ 2024-12-11 3:25 ` André Almeida
2024-12-11 19:35 ` [PATCH v10 0/2] drm/atomic: Ease async flip restrictions Dmitry Baryshkov
2 siblings, 0 replies; 5+ messages in thread
From: André Almeida @ 2024-12-11 3:25 UTC (permalink / raw)
To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Harry Wentland, Leo Li,
Rodrigo Siqueira, Alex Deucher, Christian König, Xinhui Pan,
dmitry.baryshkov, Simon Ser, joshua, Xaver Hugl, Daniel Stone,
ville.syrjala
Cc: kernel-dev, dri-devel, linux-kernel, amd-gfx, André Almeida
amdgpu can handle async flips on overlay planes, so allow it for atomic
async checks.
Signed-off-by: André Almeida <andrealmeid@igalia.com>
---
Changes from v8:
- Use new parameter 'flip'
---
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
index 495e3cd70426db0182cb2811bc6d5d09f52f8a4b..2792d393157beec12d6e96843c43158c03f16027 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
@@ -1260,22 +1260,25 @@ static int amdgpu_dm_plane_atomic_check(struct drm_plane *plane,
}
static int amdgpu_dm_plane_atomic_async_check(struct drm_plane *plane,
- struct drm_atomic_state *state)
+ struct drm_atomic_state *state, bool flip)
{
struct drm_crtc_state *new_crtc_state;
struct drm_plane_state *new_plane_state;
struct dm_crtc_state *dm_new_crtc_state;
- /* Only support async updates on cursor planes. */
- if (plane->type != DRM_PLANE_TYPE_CURSOR)
+ if (flip) {
+ if (plane->type != DRM_PLANE_TYPE_OVERLAY)
+ return -EINVAL;
+ } else if (plane->type != DRM_PLANE_TYPE_CURSOR)
return -EINVAL;
new_plane_state = drm_atomic_get_new_plane_state(state, plane);
new_crtc_state = drm_atomic_get_new_crtc_state(state, new_plane_state->crtc);
dm_new_crtc_state = to_dm_crtc_state(new_crtc_state);
/* Reject overlay cursors for now*/
- if (dm_new_crtc_state->cursor_mode == DM_CURSOR_OVERLAY_MODE)
+ if (!flip && dm_new_crtc_state->cursor_mode == DM_CURSOR_OVERLAY_MODE) {
return -EINVAL;
+ }
return 0;
}
--
2.47.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v10 0/2] drm/atomic: Ease async flip restrictions
2024-12-11 3:25 [PATCH v10 0/2] drm/atomic: Ease async flip restrictions André Almeida
2024-12-11 3:25 ` [PATCH v10 1/2] drm/atomic: Let drivers decide which planes to async flip André Almeida
2024-12-11 3:25 ` [PATCH v10 2/2] drm/amdgpu: Enable async flip on overlay planes André Almeida
@ 2024-12-11 19:35 ` Dmitry Baryshkov
2024-12-11 22:35 ` André Almeida
2 siblings, 1 reply; 5+ messages in thread
From: Dmitry Baryshkov @ 2024-12-11 19:35 UTC (permalink / raw)
To: André Almeida
Cc: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Harry Wentland, Leo Li,
Rodrigo Siqueira, Alex Deucher, Christian König, Xinhui Pan,
Simon Ser, joshua, Xaver Hugl, Daniel Stone, ville.syrjala,
kernel-dev, dri-devel, linux-kernel, amd-gfx
On Wed, Dec 11, 2024 at 12:25:07AM -0300, André Almeida wrote:
> Hi,
>
> The goal of this work is to find a nice way to allow amdgpu to perform
> async page flips in the overlay plane as well, not only on the primary
> one. Currently, when using the atomic uAPI, this is the only type of
> plane allowed to do async flips, and every driver accepts it.
>
> This patchset re-uses the per-plane function atomic_async_check() to
> this purpose, so drivers can allow different plane types. There's a
> `bool flip` parameter so the atomic_async_check() can do different
> decisions if it's a complete page flip or a plane update.
>
> igt test: https://lore.kernel.org/igt-dev/20241211031820.115844-1-andrealmeid@igalia.com/
>
> Changelog
> v9: https://lore.kernel.org/r/20241101-tonyk-async_flip-v9-0-681814efbfbe@igalia.com
> - Add a 'flip' flag to indicate where the atomic_async_check() is being called from.
I think something went wrong. There is no changelog for v10 and also no
tags that you've got for v9.
>
> v8: https://lore.kernel.org/lkml/20240806135300.114469-1-andrealmeid@igalia.com/
> - Rebased on top of 6.12-rc1 (drm/drm-next)
>
> v7: https://lore.kernel.org/dri-devel/20240618030024.500532-1-andrealmeid@igalia.com/
> - Complete rewrite
>
> ---
> André Almeida (2):
> drm/atomic: Let drivers decide which planes to async flip
> drm/amdgpu: Enable async flip on overlay planes
>
> .../drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c | 11 ++++---
> drivers/gpu/drm/drm_atomic_helper.c | 2 +-
> drivers/gpu/drm/drm_atomic_uapi.c | 37 ++++++++++++++++------
> drivers/gpu/drm/loongson/lsdc_plane.c | 3 +-
> drivers/gpu/drm/mediatek/mtk_plane.c | 2 +-
> drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c | 2 +-
> drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 2 +-
> drivers/gpu/drm/tegra/dc.c | 3 +-
> drivers/gpu/drm/vc4/vc4_plane.c | 2 +-
> include/drm/drm_modeset_helper_vtables.h | 7 +++-
> 10 files changed, 49 insertions(+), 22 deletions(-)
> ---
> base-commit: c40c32cf71b90d85386fcc066c19feb23eb42804
> change-id: 20241002-tonyk-async_flip-828cfe9cf3ca
>
> Best regards,
> --
> André Almeida <andrealmeid@igalia.com>
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v10 0/2] drm/atomic: Ease async flip restrictions
2024-12-11 19:35 ` [PATCH v10 0/2] drm/atomic: Ease async flip restrictions Dmitry Baryshkov
@ 2024-12-11 22:35 ` André Almeida
0 siblings, 0 replies; 5+ messages in thread
From: André Almeida @ 2024-12-11 22:35 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Harry Wentland, Leo Li,
Rodrigo Siqueira, Alex Deucher, Christian König, Xinhui Pan,
Simon Ser, joshua, Xaver Hugl, Daniel Stone, ville.syrjala,
kernel-dev, dri-devel, linux-kernel, amd-gfx
Hi Dmitry,
Em 11/12/2024 16:35, Dmitry Baryshkov escreveu:
> On Wed, Dec 11, 2024 at 12:25:07AM -0300, André Almeida wrote:
>> Hi,
>>
>> The goal of this work is to find a nice way to allow amdgpu to perform
>> async page flips in the overlay plane as well, not only on the primary
>> one. Currently, when using the atomic uAPI, this is the only type of
>> plane allowed to do async flips, and every driver accepts it.
>>
>> This patchset re-uses the per-plane function atomic_async_check() to
>> this purpose, so drivers can allow different plane types. There's a
>> `bool flip` parameter so the atomic_async_check() can do different
>> decisions if it's a complete page flip or a plane update.
>>
>> igt test: https://lore.kernel.org/igt-dev/20241211031820.115844-1-andrealmeid@igalia.com/
>>
>> Changelog
>> v9: https://lore.kernel.org/r/20241101-tonyk-async_flip-v9-0-681814efbfbe@igalia.com
>> - Add a 'flip' flag to indicate where the atomic_async_check() is being called from.
>
> I think something went wrong. There is no changelog for v10 and also no
> tags that you've got for v9.
>
I have type the numbers wrongly, this is the changelog for v10, but I
forgot the tags, I will send a v11 with the correct changelog and tags.
Thanks!
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-12-11 22:36 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-12-11 3:25 [PATCH v10 0/2] drm/atomic: Ease async flip restrictions André Almeida
2024-12-11 3:25 ` [PATCH v10 1/2] drm/atomic: Let drivers decide which planes to async flip André Almeida
2024-12-11 3:25 ` [PATCH v10 2/2] drm/amdgpu: Enable async flip on overlay planes André Almeida
2024-12-11 19:35 ` [PATCH v10 0/2] drm/atomic: Ease async flip restrictions Dmitry Baryshkov
2024-12-11 22:35 ` André Almeida
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®