[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