configure.ac | 2 +- debian/changelog | 6 ++++++ src/amdgpu_kms.c | 33 ++++++++++++++++----------------- src/amdgpu_sync.c | 7 +++++++ src/drmmode_display.c | 8 ++++++-- 5 files changed, 36 insertions(+), 20 deletions(-)
New commits: commit 47619e626e26c5de7ffd755416d948b97b593977 Author: Timo Aaltonen <tjaal...@debian.org> Date: Mon Feb 22 06:44:44 2016 +0200 release to unstable diff --git a/debian/changelog b/debian/changelog index e574634..430b90d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +xserver-xorg-video-amdgpu (1.0.1-1) unstable; urgency=medium + + * New upstream release. + + -- Timo Aaltonen <tjaal...@debian.org> Mon, 22 Feb 2016 06:36:08 +0200 + xserver-xorg-video-amdgpu (1.0.0-1) unstable; urgency=medium [ Andreas Boll ] commit d68b3073a9627a81b047e9bdd4b5569359df898d Author: Michel Dänzer <michel.daen...@amd.com> Date: Fri Feb 19 11:53:02 2016 +0900 Bump version for 1.0.1 release diff --git a/configure.ac b/configure.ac index 1849a78..bbd06d1 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-video-amdgpu], - [1.0.0], + [1.0.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-video-amdgpu]) commit c25a48b68695af71dddbdb6d239b2d0ec386db9c Author: Michel Dänzer <michel.daen...@amd.com> Date: Mon Feb 15 18:41:51 2016 +0900 HAS_DIRTYTRACKING_ROTATION also supports multiple CRTCs (ported from radeon commit ff9a6b6f079a8419f4e6fadfee778060618bf735) Reviewed-by: Alex Deucher <alexander.deuc...@amd.com> (cherry picked from commit a36bbfd98b96426bbe0be3923c64da7ec0e565d0) diff --git a/src/drmmode_display.c b/src/drmmode_display.c index 40a134c..896b9d2 100644 --- a/src/drmmode_display.c +++ b/src/drmmode_display.c @@ -905,7 +905,7 @@ static Bool drmmode_set_scanout_pixmap(xf86CrtcPtr crtc, PixmapPtr ppix) if (max_height < iter->mode.VDisplay) max_height = iter->mode.VDisplay; } -#ifndef HAS_DIRTYTRACKING2 +#if !defined(HAS_DIRTYTRACKING_ROTATION) && !defined(HAS_DIRTYTRACKING2) if (iter != crtc) { ErrorF ("Cannot do multiple crtcs without X server dirty tracking 2 interface\n"); commit a05ea868f940b9649ead2333108d69619b9003bf Author: Michel Dänzer <michel.daen...@amd.com> Date: Mon Feb 15 18:35:54 2016 +0900 Load fb module before glamoregl/shadow modules Fixes unresolved symbols on some systems. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93105 (ported from radeon commit 78fbca095ae9887a2d3de48bb07975e2d1126e68) Reviewed-by: Alex Deucher <alexander.deuc...@amd.com> (cherry picked from commit a37746ffceaed83e48e48fb05439be7e020dd2ea) diff --git a/src/amdgpu_kms.c b/src/amdgpu_kms.c index c257941..dcecf86 100644 --- a/src/amdgpu_kms.c +++ b/src/amdgpu_kms.c @@ -783,6 +783,10 @@ Bool AMDGPUPreInit_KMS(ScrnInfoPtr pScrn, int flags) goto fail; } + /* Get ScreenInit function */ + if (!xf86LoadSubModule(pScrn, "fb")) + return FALSE; + if (!AMDGPUPreInitAccel_KMS(pScrn)) goto fail; @@ -868,10 +872,6 @@ Bool AMDGPUPreInit_KMS(ScrnInfoPtr pScrn, int flags) /* Set display resolution */ xf86SetDpi(pScrn, 0, 0); - /* Get ScreenInit function */ - if (!xf86LoadSubModule(pScrn, "fb")) - return FALSE; - if (!xf86SetGamma(pScrn, zeros)) return FALSE; commit 7729b29b0a76c3e2eacfcb02abcbe115948b2937 Author: Michel Dänzer <michel.daen...@amd.com> Date: Mon Feb 15 18:28:13 2016 +0900 Don't advertise any PRIME offloading capabilities without acceleration Acceleration is required even for display offloading. Trying to enable display offloading without acceleration resulted in a crash. (ported from radeon commit b19417e2fddf4df725951aea5ad5e9558338f59e) Reviewed-by: Alex Deucher <alexander.deuc...@amd.com> (cherry picked from commit 59c0a6807110eca829c6708e16585a38f39a5c17) diff --git a/src/amdgpu_kms.c b/src/amdgpu_kms.c index 75d35c1..c257941 100644 --- a/src/amdgpu_kms.c +++ b/src/amdgpu_kms.c @@ -663,25 +663,23 @@ static Bool amdgpu_get_tile_config(ScrnInfoPtr pScrn) static void AMDGPUSetupCapabilities(ScrnInfoPtr pScrn) { #ifdef AMDGPU_PIXMAP_SHARING + AMDGPUInfoPtr info = AMDGPUPTR(pScrn); AMDGPUEntPtr pAMDGPUEnt = AMDGPUEntPriv(pScrn); uint64_t value; int ret; pScrn->capabilities = 0; + + /* PRIME offloading requires acceleration */ + if (!info->use_glamor) + return; + ret = drmGetCap(pAMDGPUEnt->fd, DRM_CAP_PRIME, &value); if (ret == 0) { - AMDGPUInfoPtr info = AMDGPUPTR(pScrn); - - if (value & DRM_PRIME_CAP_EXPORT) { - pScrn->capabilities |= RR_Capability_SourceOutput; - if (info->use_glamor && info->dri2.available) - pScrn->capabilities |= RR_Capability_SinkOffload; - } - if (value & DRM_PRIME_CAP_IMPORT) { - pScrn->capabilities |= RR_Capability_SinkOutput; - if (info->use_glamor && info->dri2.available) - pScrn->capabilities |= RR_Capability_SourceOffload; - } + if (value & DRM_PRIME_CAP_EXPORT) + pScrn->capabilities |= RR_Capability_SourceOutput | RR_Capability_SinkOffload; + if (value & DRM_PRIME_CAP_IMPORT) + pScrn->capabilities |= RR_Capability_SinkOutput | RR_Capability_SourceOffload; } #endif } commit 65ee496c0567ea6aaf947a6098fbf925d2f6b14b Author: Michel Dänzer <michel.daen...@amd.com> Date: Tue Jan 26 16:12:28 2016 +0900 Only map front buffer if glamor acceleration is disabled (v2) Otherwise the front buffer may not be accessible by the CPU, because Mesa sets the AMDGPU_GEM_CREATE_NO_CPU_ACCESS flag for tiled buffers, because accessing tiled buffers with the CPU makes little sense. v2: Also handle Option "AccelMethod" "none" Reviewed-by: Alex Deucher <alexander.deuc...@amd.com> (cherry picked from commit a3eac85d812ecc605436e6bd5b9ee7ebf307e3d3) diff --git a/src/amdgpu_kms.c b/src/amdgpu_kms.c index 3993591..75d35c1 100644 --- a/src/amdgpu_kms.c +++ b/src/amdgpu_kms.c @@ -1415,7 +1415,8 @@ static Bool amdgpu_setup_kernel_mem(ScreenPtr pScreen) return FALSE; } - if (amdgpu_bo_map(pScrn, info->front_buffer)) { + if (!info->use_glamor && + amdgpu_bo_map(pScrn, info->front_buffer) != 0) { ErrorF("Failed to map front buffer memory\n"); return FALSE; } diff --git a/src/drmmode_display.c b/src/drmmode_display.c index 3f015f9..40a134c 100644 --- a/src/drmmode_display.c +++ b/src/drmmode_display.c @@ -1741,7 +1741,7 @@ static Bool drmmode_xf86crtc_resize(ScrnInfoPtr scrn, int width, int height) goto fail; } - if (amdgpu_bo_map(scrn, info->front_buffer)) { + if (!info->use_glamor && amdgpu_bo_map(scrn, info->front_buffer) != 0) { xf86DrvMsg(scrn->scrnIndex, X_ERROR, "Failed to map front buffer memory\n"); goto fail; commit 076c7b60f2b3700dfc7d94af78b368c00d216532 Author: Mykola Lysenko <mykola.lyse...@amd.com> Date: Wed Jan 13 14:03:55 2016 +0800 Initialize drmmode_crtc dpms_mode to DPMSModeOff This disables query of disabled pipes for drmWaitVBlank on X start Signed-off-by: Mykola Lysenko <mykola.lyse...@amd.com> Reviewed-by: Michel Dänzer <michel.daen...@amd.com> (cherry picked from commit 4eb9cedca080b30c57ded349a397620ee7d0cd46) diff --git a/src/drmmode_display.c b/src/drmmode_display.c index 05c3418..3f015f9 100644 --- a/src/drmmode_display.c +++ b/src/drmmode_display.c @@ -993,6 +993,7 @@ drmmode_crtc_init(ScrnInfoPtr pScrn, drmmode_ptr drmmode, drmModeResPtr mode_res drmmode_crtc->mode_crtc = drmModeGetCrtc(pAMDGPUEnt->fd, mode_res->crtcs[num]); drmmode_crtc->drmmode = drmmode; + drmmode_crtc->dpms_mode = DPMSModeOff; crtc->driver_private = drmmode_crtc; drmmode_crtc_hw_id(crtc); commit a17aca22ef308a58b1759179677b78846da6f4a5 Author: Michel Dänzer <michel.daen...@amd.com> Date: Thu Dec 10 18:08:12 2015 +0900 sync: Check if miSyncShmScreenInit symbol is resolved at runtime It may be disabled in the Xorg build, either explicitly or because the xshmfence library isn't available. Reviewed-by: Alex Deucher <alexander.deuc...@amd.com> (cherry picked from commit 1d0b0c1794e65e581a48aa9fb19679d928d82a5d) diff --git a/src/amdgpu_sync.c b/src/amdgpu_sync.c index baade0e..e92f658 100644 --- a/src/amdgpu_sync.c +++ b/src/amdgpu_sync.c @@ -87,6 +87,13 @@ amdgpu_sync_init(ScreenPtr screen) AMDGPUInfoPtr info = AMDGPUPTR(scrn); SyncScreenFuncsPtr screen_funcs; + if (!xf86LoaderCheckSymbol("miSyncShmScreenInit")) { + xf86DrvMsg(scrn->scrnIndex, X_WARNING, + "SYNC extension fences disabled because " + "miSyncShmScreenInit symbol unresolved\n"); + return FALSE; + } + if (!miSyncShmScreenInit(screen)) { xf86DrvMsg(scrn->scrnIndex, X_WARNING, "SYNC extension fences disabled because " commit ff99645f7ea09fbf3ebe8ae68b8f0d5d2d9b29c9 Author: Mykola Lysenko <mykola.lyse...@amd.com> Date: Wed Dec 23 11:58:47 2015 -0500 Check for NULL koutput in drmmode_output_dpms This situation happens whit start of usage of DRM DP MST framework, when connectors created and destroyed dynamically. Signed-off-by: Mykola Lysenko <mykola.lyse...@amd.com> Reviewed-by: Michel Dänzer <michel.daen...@amd.com> (cherry picked from commit f4107f67f147e2500582fc36cf0f0f76bc1ef098) diff --git a/src/drmmode_display.c b/src/drmmode_display.c index 2761513..05c3418 100644 --- a/src/drmmode_display.c +++ b/src/drmmode_display.c @@ -1117,6 +1117,9 @@ static void drmmode_output_dpms(xf86OutputPtr output, int mode) drmModeConnectorPtr koutput = drmmode_output->mode_output; AMDGPUEntPtr pAMDGPUEnt = AMDGPUEntPriv(output->scrn); + if (!koutput) + return; + if (mode != DPMSModeOn && crtc) drmmode_do_crtc_dpms(crtc, mode);