On Mon, Sep 7, 2020 at 10:51 AM Ernst Sjöstrand <ernstp@xxxxxxxxx> wrote: > > > > Den fre 4 sep. 2020 kl 18:07 skrev Bas Nieuwenhuizen <bas@xxxxxxxxxxxxxxxxxxx>: >> >> This adds modifier support to radeonsi. > > > Wouldn't it be more correct to say that this adds modifier support to amdgpu (and enables it to work with radeonsi OpenGL) > or something like that? Yep, this was copy pasted from the userspace MR ... > > //E > >> >> It has been tested on >> >> - VEGA10, RAVEN, NAVI14 >> - weston, sway, X with xf86-video-amdgpu (i.e. legacy path still works) >> >> and includes some basic testing of the layout code. >> >> The main goal is to keep it somewhat simple and regression free, so >> on the display side this series only exposes what the current GPU >> can render to. While we could expose more I think that is more >> suitable for follow-up work as the benefit would be minimal and >> there are some more design discussion there to discuss that are >> orthogonal from the initial implementation. >> >> Similarly this series only exposes 32-bpp displayable DCC in the cases >> that radeonsi would use it and any extra capabilities here should be >> future work. >> >> I believe these are by far the most complicated modifiers we've seen >> up till now, mostly related to >> >> - GPU identification for cases where it matters wrt tiling. >> - Every generation having tiling layout changes >> - Compression settings. >> >> I believe the complexity is necessary as every layout should be different >> and all layouts should be the best in some situation (though not all >> combinations of GPU parameters will actually have an existing GPU). >> >> That said, on the render side the number of modifiers actually listed for >> a given GPU is ~10, and in the current implementation that is the same >> for the display side. (we could expose more actually differing layouts >> on the display side for cross-GPU compatibility, but I consider that >> out of scope for this initial work). >> >> This series can be found on >> https://github.com/BNieuwenhuizen/linux/tree/modifiers >> >> An userspace implementation in radeonsi can be found on >> https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6176 >> >> v2: >> >> Per suggestion from Daniel Vetter I added logic to get the tiling_flags at >> addfb2 time and convert them into modifiers for GFX9+. Furthermore, the DCC >> constant econding modifers only get exposed on RAVEN2 and newer. >> >> Bas Nieuwenhuizen (11): >> drm/amd/display: Do not silently accept DCC for multiplane formats. >> drm/amd: Init modifier field of helper fb. >> drm/amd/display: Honor the offset for plane 0. >> drm/fourcc: Add AMD DRM modifiers. >> drm/amd/display: Store tiling_flags in the framebuffer. >> drm/amd/display: Convert tiling_flags to modifiers. >> drm/amd/display: Refactor surface tiling setup. >> drm/amd/display: Set DC options from modifiers. >> drm/amd/display: Add formats for DCC with 2/3 planes. >> drm/amd/display: Expose modifiers. >> drm/amd/display: Clean up GFX9 tiling_flags path. >> >> drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 169 +++- >> drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 2 +- >> drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 3 + >> .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 754 ++++++++++++++---- >> .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 2 - >> include/uapi/drm/drm_fourcc.h | 115 +++ >> 6 files changed, 880 insertions(+), 165 deletions(-) >> >> -- >> 2.28.0 >> >> _______________________________________________ >> amd-gfx mailing list >> amd-gfx@xxxxxxxxxxxxxxxxxxxxx >> https://lists.freedesktop.org/mailman/listinfo/amd-gfx _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel