* [PATCH v2] drm/amd/display: Revert logic for plane modifiers [not found] <CAP+8YyFUoFhh1+CEKrs48JV5CiorSSfe6qg90TyUrDoBtzcPhA@mail.gmail.com> @ 2022-10-24 3:08 ` Joaquín Ignacio Aramendía 2022-10-24 3:16 ` kernel test robot 2022-10-24 11:33 ` Joaquín Ignacio Aramendía 1 sibling, 1 reply; 4+ messages in thread From: Joaquín Ignacio Aramendía @ 2022-10-24 3:08 UTC (permalink / raw) To: bas Cc: Xinhui.Pan, alexander.deucher, amd-gfx, christian.koenig, dri-devel, linux-kernel, rodrigo.siqueira, samsagax, sunpeng.li, stable This file was split in commit 5d945cbcd4b16a29d6470a80dfb19738f9a4319f ("drm/amd/display: Create a file dedicated to planes") and the logic in dm_plane_format_mod_supported() function got changed by a switch logic. That change broke drm_plane modifiers setting on series 5000 APUs (tested on OXP mini AMD 5800U and HP Dev One 5850U PRO) leading to Gamescope not working as reported on GitHub[1] To reproduce the issue, enter a TTY and run: $ gamescope -- vkcube With said commit applied it will abort. This one restores the old logic, fixing the issue that affects Gamescope. [1](https://github.com/Plagman/gamescope/issues/624) Signed-off-by: Joaquín Ignacio Aramendía <samsagax@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> --- Removed asic_id and excess newlines --- .../amd/display/amdgpu_dm/amdgpu_dm_plane.c | 50 +++---------------- 1 file changed, 7 insertions(+), 43 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 dfd3be49eac8..e6854f7270a6 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 @@ -1369,7 +1369,7 @@ static bool dm_plane_format_mod_supported(struct drm_plane *plane, { struct amdgpu_device *adev = drm_to_adev(plane->dev); const struct drm_format_info *info = drm_format_info(format); - struct hw_asic_id asic_id = adev->dm.dc->ctx->asic_id; + int i; enum dm_micro_swizzle microtile = modifier_gfx9_swizzle_mode(modifier) & 3; @@ -1386,49 +1386,13 @@ static bool dm_plane_format_mod_supported(struct drm_plane *plane, return true; } - /* check if swizzle mode is supported by this version of DCN */ - switch (asic_id.chip_family) { - case FAMILY_SI: - case FAMILY_CI: - case FAMILY_KV: - case FAMILY_CZ: - case FAMILY_VI: - /* asics before AI does not have modifier support */ - return false; - case FAMILY_AI: - case FAMILY_RV: - case FAMILY_NV: - case FAMILY_VGH: - case FAMILY_YELLOW_CARP: - case AMDGPU_FAMILY_GC_10_3_6: - case AMDGPU_FAMILY_GC_10_3_7: - switch (AMD_FMT_MOD_GET(TILE, modifier)) { - case AMD_FMT_MOD_TILE_GFX9_64K_R_X: - case AMD_FMT_MOD_TILE_GFX9_64K_D_X: - case AMD_FMT_MOD_TILE_GFX9_64K_S_X: - case AMD_FMT_MOD_TILE_GFX9_64K_D: - return true; - default: - return false; - } - break; - case AMDGPU_FAMILY_GC_11_0_0: - case AMDGPU_FAMILY_GC_11_0_1: - switch (AMD_FMT_MOD_GET(TILE, modifier)) { - case AMD_FMT_MOD_TILE_GFX11_256K_R_X: - case AMD_FMT_MOD_TILE_GFX9_64K_R_X: - case AMD_FMT_MOD_TILE_GFX9_64K_D_X: - case AMD_FMT_MOD_TILE_GFX9_64K_S_X: - case AMD_FMT_MOD_TILE_GFX9_64K_D: - return true; - default: - return false; - } - break; - default: - ASSERT(0); /* Unknown asic */ - break; + /* Check that the modifier is on the list of the plane's supported modifiers. */ + for (i = 0; i < plane->modifier_count; i++) { + if (modifier == plane->modifiers[i]) + break; } + if (i == plane->modifier_count) + return false; /* * For D swizzle the canonical modifier depends on the bpp, so check -- 2.38.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v2] drm/amd/display: Revert logic for plane modifiers 2022-10-24 3:08 ` [PATCH v2] drm/amd/display: Revert logic for plane modifiers Joaquín Ignacio Aramendía @ 2022-10-24 3:16 ` kernel test robot 0 siblings, 0 replies; 4+ messages in thread From: kernel test robot @ 2022-10-24 3:16 UTC (permalink / raw) To: Joaquín Ignacio Aramendía; +Cc: stable, kbuild-all Hi, Thanks for your patch. FYI: kernel test robot notices the stable kernel rule is not satisfied. Rule: 'Cc: stable@vger.kernel.org' or 'commit <sha1> upstream.' Subject: [PATCH v2] drm/amd/display: Revert logic for plane modifiers Link: https://lore.kernel.org/stable/20221024030832.119039-1-samsagax%40gmail.com The check is based on https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html -- 0-DAY CI Kernel Test Service https://01.org/lkp ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2] drm/amd/display: Revert logic for plane modifiers [not found] <CAP+8YyFUoFhh1+CEKrs48JV5CiorSSfe6qg90TyUrDoBtzcPhA@mail.gmail.com> 2022-10-24 3:08 ` [PATCH v2] drm/amd/display: Revert logic for plane modifiers Joaquín Ignacio Aramendía @ 2022-10-24 11:33 ` Joaquín Ignacio Aramendía 2022-10-24 17:13 ` Alex Deucher 1 sibling, 1 reply; 4+ messages in thread From: Joaquín Ignacio Aramendía @ 2022-10-24 11:33 UTC (permalink / raw) To: bas Cc: Xinhui.Pan, alexander.deucher, amd-gfx, christian.koenig, dri-devel, linux-kernel, rodrigo.siqueira, samsagax, sunpeng.li, stable This file was split in commit 5d945cbcd4b16a29d6470a80dfb19738f9a4319f ("drm/amd/display: Create a file dedicated to planes") and the logic in dm_plane_format_mod_supported() function got changed by a switch logic. That change broke drm_plane modifiers setting on series 5000 APUs (tested on OXP mini AMD 5800U and HP Dev One 5850U PRO) leading to Gamescope not working as reported on GitHub[1] To reproduce the issue, enter a TTY and run: $ gamescope -- vkcube With said commit applied it will abort. This one restores the old logic, fixing the issue that affects Gamescope. [1](https://github.com/Plagman/gamescope/issues/624) Cc: <stable@vger.kernel.org> # 6.0.x Signed-off-by: Joaquín Ignacio Aramendía <samsagax@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> --- Removed asic_id and excess newlines. Resend with correct Cc line. --- .../amd/display/amdgpu_dm/amdgpu_dm_plane.c | 50 +++---------------- 1 file changed, 7 insertions(+), 43 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 dfd3be49eac8..e6854f7270a6 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 @@ -1369,7 +1369,7 @@ static bool dm_plane_format_mod_supported(struct drm_plane *plane, { struct amdgpu_device *adev = drm_to_adev(plane->dev); const struct drm_format_info *info = drm_format_info(format); - struct hw_asic_id asic_id = adev->dm.dc->ctx->asic_id; + int i; enum dm_micro_swizzle microtile = modifier_gfx9_swizzle_mode(modifier) & 3; @@ -1386,49 +1386,13 @@ static bool dm_plane_format_mod_supported(struct drm_plane *plane, return true; } - /* check if swizzle mode is supported by this version of DCN */ - switch (asic_id.chip_family) { - case FAMILY_SI: - case FAMILY_CI: - case FAMILY_KV: - case FAMILY_CZ: - case FAMILY_VI: - /* asics before AI does not have modifier support */ - return false; - case FAMILY_AI: - case FAMILY_RV: - case FAMILY_NV: - case FAMILY_VGH: - case FAMILY_YELLOW_CARP: - case AMDGPU_FAMILY_GC_10_3_6: - case AMDGPU_FAMILY_GC_10_3_7: - switch (AMD_FMT_MOD_GET(TILE, modifier)) { - case AMD_FMT_MOD_TILE_GFX9_64K_R_X: - case AMD_FMT_MOD_TILE_GFX9_64K_D_X: - case AMD_FMT_MOD_TILE_GFX9_64K_S_X: - case AMD_FMT_MOD_TILE_GFX9_64K_D: - return true; - default: - return false; - } - break; - case AMDGPU_FAMILY_GC_11_0_0: - case AMDGPU_FAMILY_GC_11_0_1: - switch (AMD_FMT_MOD_GET(TILE, modifier)) { - case AMD_FMT_MOD_TILE_GFX11_256K_R_X: - case AMD_FMT_MOD_TILE_GFX9_64K_R_X: - case AMD_FMT_MOD_TILE_GFX9_64K_D_X: - case AMD_FMT_MOD_TILE_GFX9_64K_S_X: - case AMD_FMT_MOD_TILE_GFX9_64K_D: - return true; - default: - return false; - } - break; - default: - ASSERT(0); /* Unknown asic */ - break; + /* Check that the modifier is on the list of the plane's supported modifiers. */ + for (i = 0; i < plane->modifier_count; i++) { + if (modifier == plane->modifiers[i]) + break; } + if (i == plane->modifier_count) + return false; /* * For D swizzle the canonical modifier depends on the bpp, so check -- 2.38.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v2] drm/amd/display: Revert logic for plane modifiers 2022-10-24 11:33 ` Joaquín Ignacio Aramendía @ 2022-10-24 17:13 ` Alex Deucher 0 siblings, 0 replies; 4+ messages in thread From: Alex Deucher @ 2022-10-24 17:13 UTC (permalink / raw) To: Joaquín Ignacio Aramendía Cc: bas, sunpeng.li, Xinhui.Pan, rodrigo.siqueira, linux-kernel, dri-devel, amd-gfx, alexander.deucher, stable, christian.koenig Applied. Thanks! Alex On Mon, Oct 24, 2022 at 9:17 AM Joaquín Ignacio Aramendía <samsagax@gmail.com> wrote: > > This file was split in commit 5d945cbcd4b16a29d6470a80dfb19738f9a4319f > ("drm/amd/display: Create a file dedicated to planes") and the logic in > dm_plane_format_mod_supported() function got changed by a switch logic. > That change broke drm_plane modifiers setting on series 5000 APUs > (tested on OXP mini AMD 5800U and HP Dev One 5850U PRO) > leading to Gamescope not working as reported on GitHub[1] > > To reproduce the issue, enter a TTY and run: > > $ gamescope -- vkcube > > With said commit applied it will abort. This one restores the old logic, > fixing the issue that affects Gamescope. > > [1](https://github.com/Plagman/gamescope/issues/624) > > Cc: <stable@vger.kernel.org> # 6.0.x > Signed-off-by: Joaquín Ignacio Aramendía <samsagax@gmail.com> > Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> > --- > Removed asic_id and excess newlines. Resend with correct Cc line. > --- > .../amd/display/amdgpu_dm/amdgpu_dm_plane.c | 50 +++---------------- > 1 file changed, 7 insertions(+), 43 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 dfd3be49eac8..e6854f7270a6 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 > @@ -1369,7 +1369,7 @@ static bool dm_plane_format_mod_supported(struct drm_plane *plane, > { > struct amdgpu_device *adev = drm_to_adev(plane->dev); > const struct drm_format_info *info = drm_format_info(format); > - struct hw_asic_id asic_id = adev->dm.dc->ctx->asic_id; > + int i; > > enum dm_micro_swizzle microtile = modifier_gfx9_swizzle_mode(modifier) & 3; > > @@ -1386,49 +1386,13 @@ static bool dm_plane_format_mod_supported(struct drm_plane *plane, > return true; > } > > - /* check if swizzle mode is supported by this version of DCN */ > - switch (asic_id.chip_family) { > - case FAMILY_SI: > - case FAMILY_CI: > - case FAMILY_KV: > - case FAMILY_CZ: > - case FAMILY_VI: > - /* asics before AI does not have modifier support */ > - return false; > - case FAMILY_AI: > - case FAMILY_RV: > - case FAMILY_NV: > - case FAMILY_VGH: > - case FAMILY_YELLOW_CARP: > - case AMDGPU_FAMILY_GC_10_3_6: > - case AMDGPU_FAMILY_GC_10_3_7: > - switch (AMD_FMT_MOD_GET(TILE, modifier)) { > - case AMD_FMT_MOD_TILE_GFX9_64K_R_X: > - case AMD_FMT_MOD_TILE_GFX9_64K_D_X: > - case AMD_FMT_MOD_TILE_GFX9_64K_S_X: > - case AMD_FMT_MOD_TILE_GFX9_64K_D: > - return true; > - default: > - return false; > - } > - break; > - case AMDGPU_FAMILY_GC_11_0_0: > - case AMDGPU_FAMILY_GC_11_0_1: > - switch (AMD_FMT_MOD_GET(TILE, modifier)) { > - case AMD_FMT_MOD_TILE_GFX11_256K_R_X: > - case AMD_FMT_MOD_TILE_GFX9_64K_R_X: > - case AMD_FMT_MOD_TILE_GFX9_64K_D_X: > - case AMD_FMT_MOD_TILE_GFX9_64K_S_X: > - case AMD_FMT_MOD_TILE_GFX9_64K_D: > - return true; > - default: > - return false; > - } > - break; > - default: > - ASSERT(0); /* Unknown asic */ > - break; > + /* Check that the modifier is on the list of the plane's supported modifiers. */ > + for (i = 0; i < plane->modifier_count; i++) { > + if (modifier == plane->modifiers[i]) > + break; > } > + if (i == plane->modifier_count) > + return false; > > /* > * For D swizzle the canonical modifier depends on the bpp, so check > -- > 2.38.1 > ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-10-24 18:46 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CAP+8YyFUoFhh1+CEKrs48JV5CiorSSfe6qg90TyUrDoBtzcPhA@mail.gmail.com>
2022-10-24 3:08 ` [PATCH v2] drm/amd/display: Revert logic for plane modifiers Joaquín Ignacio Aramendía
2022-10-24 3:16 ` kernel test robot
2022-10-24 11:33 ` Joaquín Ignacio Aramendía
2022-10-24 17:13 ` Alex Deucher
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox