[PATCH xf86-video-amdgpu] Don't advertise rotation support without hardware acceleration

Alex Deucher alexdeucher at gmail.com
Wed Oct 7 06:22:21 PDT 2015


On Wed, Oct 7, 2015 at 3:25 AM, Michel Dänzer <michel at daenzer.net> wrote:
> From: Michel Dänzer <michel.daenzer at amd.com>
>
> Rotation currently doesn't work without acceleration (doesn't actually
> rotate with Option "NoAccel", crashes with Option "AccelMethod" "none"
> or when glamor fails to initialize) and would probably be too slow
> anyway.
>
> Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>

Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>  src/drmmode_display.c | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/src/drmmode_display.c b/src/drmmode_display.c
> index d75a629..b9fa366 100644
> --- a/src/drmmode_display.c
> +++ b/src/drmmode_display.c
> @@ -918,7 +918,7 @@ static Bool drmmode_set_scanout_pixmap(xf86CrtcPtr crtc, PixmapPtr ppix)
>  }
>  #endif
>
> -static const xf86CrtcFuncsRec drmmode_crtc_funcs = {
> +static xf86CrtcFuncsRec drmmode_crtc_funcs = {
>         .dpms = drmmode_crtc_dpms,
>         .set_mode_major = drmmode_set_mode_major,
>         .set_cursor_colors = drmmode_set_cursor_colors,
> @@ -1872,6 +1872,7 @@ static void drm_wakeup_handler(pointer data, int err, pointer p)
>  Bool drmmode_pre_init(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int cpp)
>  {
>         AMDGPUEntPtr pAMDGPUEnt = AMDGPUEntPriv(pScrn);
> +       AMDGPUInfoPtr info = AMDGPUPTR(pScrn);
>         int i, num_dvi = 0, num_hdmi = 0;
>         unsigned int crtcs_needed = 0;
>         drmModeResPtr mode_res;
> @@ -1896,6 +1897,13 @@ Bool drmmode_pre_init(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int cpp)
>         xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, AMDGPU_LOGLEVEL_DEBUG,
>                        "%d crtcs needed for screen.\n", crtcs_needed);
>
> +       if (!info->use_glamor) {
> +               /* Rotation requires hardware acceleration */
> +               drmmode_crtc_funcs.shadow_allocate = NULL;
> +               drmmode_crtc_funcs.shadow_create = NULL;
> +               drmmode_crtc_funcs.shadow_destroy = NULL;
> +       }
> +
>         for (i = 0; i < mode_res->count_crtcs; i++)
>                 if (!xf86IsEntityShared(pScrn->entityList[0]) ||
>                     (crtcs_needed && !(pAMDGPUEnt->assigned_crtcs & (1 << i))))
> --
> 2.6.0
>
> _______________________________________________
> xorg-driver-ati mailing list
> xorg-driver-ati at lists.x.org
> http://lists.x.org/mailman/listinfo/xorg-driver-ati


More information about the xorg-driver-ati mailing list