--- xserver-xorg-video-amdgpu-18.1.99+git20190207.orig/ChangeLog +++ xserver-xorg-video-amdgpu-18.1.99+git20190207/ChangeLog @@ -0,0 +1,6232 @@ +commit 9045fb310f88780e250e60b80431ca153330e61b +Author: Michel Dänzer +Date: Thu Jan 24 18:31:40 2019 +0100 + + Keep waiting for a pending flip if drm_handle_event returns 0 + + drm_wait_pending_flip stopped waiting if drm_handle_event returned 0, + but that might have processed only some unrelated DRM events. As long as + the flip is pending, we have to keep waiting for its completion event. + + Noticed while working on the previous fix. + + Acked-by: Alex Deucher + +commit 3ff2cc225f6bc08364ee007fa54e9d0150adaf11 +Author: Michel Dänzer +Date: Tue Jan 22 18:36:56 2019 +0100 + + Call drmHandleEvent again if it was interrupted by a signal + + drmHandleEvent can be interrupted by a signal in read(), in which case + it doesn't process any events but returns -1, which + drm_handle_event propagated to its callers. This could cause the + following failure cascade: + + 1. drm_wait_pending_flip stopped waiting for a pending flip. + 2. Its caller cleared drmmode_crtc->flip_pending before the flip + completed. + 3. Another flip was attempted but got an unexpected EBUSY error because + the previous flip was still pending. + 4. TearFree was disabled due to the error. + + The solution is to call drmHandleEvent if it was interrupted by a + signal. We can do that in drm_handle_event, because when that is called, + either it is known that there are events ready to be processed, or the + caller has to wait for events to arrive anyway. + + v2: + * Use ErrorF instead of xf86DrvMsg with hard-coded screen 0. + + Bugzilla: https://bugs.freedesktop.org/109364 + Reviewed-by: Alex Deucher # v1 + +commit e72a02ba1d35743fefd939458b9d8cddce86e7f5 +Author: Michel Dänzer +Date: Wed Jan 16 10:26:59 2019 +0100 + + Only update drmmode_crtc->flip_pending after actually submitting a flip + + And only clear it if it matches the framebuffer of the completed flip + being processed. + + Fixes + + (WW) AMDGPU(0): flip queue failed: Device or resource busy + (WW) AMDGPU(0): Page flip failed: Device or resource busy + (EE) AMDGPU(0): present flip failed + + due to clobbering drmmode_crtc->flip_pending. + + Reproducer: Enable TearFree, run warzone2100 fullscreen, toggle + Vertical sync on/off under Video Options. Discovered while investigating + https://bugs.freedesktop.org/109364 . + + Acked-by: Alex Deucher + +commit a1b479c7d0066c481af920f297d6af9009dda11e +Author: Michel Dänzer +Date: Tue Jan 15 17:55:27 2019 +0100 + + Don't allow TearFree scanout flips to complete in the same vblank period + + We were using a relative target of 0, meaning "complete the flip ASAP". + This could result in the flip sometimes, but not always completing in + the same vertical blank period where the corresponding drawing occurred, + potentially causing judder artifacts with applications updating their + window contents synchronized to the display refresh. A good way to test + this is the vsynctester.com site in a windowed browser, where the judder + results in the large "VSYNC" text intermittently appearing red or cyan + instead of the expected gray. + + To avoid this, use a relative target MSC of 1, meaning that if a + vertical blank period is in progress, the flip will only complete in the + next one. + + Reported by Julian Tempel and Brandon Wright in + https://bugs.freedesktop.org/106175 . + + Reviewed-by: Alex Deucher + +commit bf326f2ea19daa6c8da23d6788ff301ae70b8e69 +Author: Michel Dänzer +Date: Thu Jan 10 18:33:04 2019 +0100 + + glamor: Avoid glamor_create_pixmap for pixmaps backing windows + + If the compositing manager uses direct rendering (as is usually the case + these days), the storage of a pixmap allocated by glamor_create_pixmap + needs to be reallocated for sharing it with the compositing manager. + Instead, allocate pixmap storage which can be shared directly. + + Acked-by: Alex Deucher + +commit ebd32b1c07208f8dbe853e089f5e4b7c6a7a658a +Author: Michel Dänzer +Date: Wed Jan 9 18:57:08 2019 +0100 + + dri2: Flush in dri2_create_buffer2 after calling glamor_set_pixmap_bo + + To make sure the client can't use the shared pixmap storage for direct + rendering first, which could produce garbage. + + Bugzilla: https://bugs.freedesktop.org/109235 + Reviewed-by: Alex Deucher + +commit d168532ee739f7e33a2798051e64ba445dd3859f +Author: Michel Dänzer +Date: Wed Jan 9 17:24:11 2019 +0100 + + dri3: Flush if necessary in dri3_fd_from_pixmap + + To make sure the client can't use the shared pixmap storage for direct + rendering first, which could produce garbage. + + Bugzilla: https://bugs.freedesktop.org/109235 + Reviewed-by: Alex Deucher + +commit 2058c4c469b172d4a3b0443f75466d84281a64c7 +Author: Michel Dänzer +Date: Thu Jan 10 17:03:04 2019 +0100 + + Only call drmmode_validate_leases if RandR is enabled + + It would crash if RandR is disabled, e.g. because Xinerama is enabled. + + Bugzilla: https://bugs.freedesktop.org/109230 + (Ported from radeon commit b1c01698f577577e4a88bad0ae08fb5d998e7ebb) + Reviewed-by: Alex Deucher + +commit f3c0939a0cbb93c367ece3d41dc69824f585af42 +Author: Michel Dänzer +Date: Thu Jan 10 17:00:12 2019 +0100 + + Only call drmmode_uevent_init if RandR is enabled + + There's no point in listening for hotplug events if RandR is disabled, + as there's no other mechanism for them to be propagated. We were already + mostly ignoring them in that case. + + Inspired by + https://gitlab.freedesktop.org/xorg/driver/xf86-video-intel/commit/1a489142c8e6a4828348cc9afbd0f430d3b1e2d8 + (via https://bugs.freedesktop.org/109230#c11). + (Ported from radeon commit 38db1bbcfc019c92884c7819a6630c70e543f6b2) + Reviewed-by: Alex Deucher + +commit f3ddda618ec86650ed85f8b140a5db1394676748 +Author: Michel Dänzer +Date: Mon Dec 17 17:54:05 2018 +0100 + + gitlab-ci: Use kaniko instead of docker-in-docker for image generation + + kaniko can also work in unprivileged runners. + + Based on v2 of + https://gitlab.freedesktop.org/xorg/xserver/merge_requests/92 . + Acked-by: Alex Deucher + +commit b689dc5081493377a31759d24a8dc9fcde12948a +Author: Michel Dänzer +Date: Tue Dec 18 16:39:28 2018 +0100 + + Remove superfluous vrr_flipping field and clean up related code + + Reviewed-by: Alex Deucher + +commit 233a0be82d5c317e58002f4daf836d4f95048465 +Author: Michel Dänzer +Date: Tue Dec 18 16:42:53 2018 +0100 + + Don't clear info->flip_window in present_unflip + + present_unflip can get called between present_check_flip and + present_flip, in which case the latter would pass a NULL WindowPtr to + the former, resulting in a crash. + + present_flip should never get called for a window which has already been + destroyed, so there's no need to clear info->flip_window. + + Bugzilla: https://bugs.freedesktop.org/109067 + Fixes: 2d18b37159edc "Check last flip window instead of screen root + before flipping" + Reviewed-by: Alex Deucher + +commit d4eab5d108c4569f3a9e2892704ea89b7ee797b6 +Author: Mario Kleiner +Date: Wed Dec 19 07:56:15 2018 +0100 + + Fix crash when page flipping in multi-X-Screen/Zaphod mode + + amdgpu_do_pageflip() indexed the flipdata->fb[] array + indexing over config->num_crtc, but the flip completion + routines, e.g., drmmode_flip_handler(), index that array + via the crtc hw id from drmmode_get_crtc_id(crtc). + + This is mismatched and causes indexing into the wrong + array slot at flip completion -> Server crash. + + Always use drmmode_get_crtc_id(crtc) for indexing into + the array to fix this. + + Tested on a dual-X-Screen setup with one video output + assigned to each X-Screen, page-flipping an OpenGL app + on either of both X-Screens. This used to crash when + flipping on X-Screen 1, now it doesn't anymore. + + Fixes: 9b6782c821e0 "Store FB for each CRTC in drmmode_flipdata_rec" + (Ported from radeon commit 0058fd2ebf4c900b12f129984e98886a7ac84b2f) + Reviewed-by: Michel Dänzer + Signed-off-by: Mario Kleiner + +commit 0d60233d26ec70d4e1faa343b438e33829c6d5e4 +Author: Michel Dänzer +Date: Thu Nov 22 19:02:20 2018 +0100 + + Use two HW cursor buffers per CRTC + + Switch to the other buffer when xf86_config->cursor changes. Avoids + these issues possible when re-using the same buffer: + + * The HW may intermittently display a mix of the old and new cursor + images. + * If the hotspot changes, the HW may intermittently display the new + cursor image at the location corresponding to the old image's hotspot. + + Bugzilla: https://bugs.freedesktop.org/108832 + Reviewed-by: Alex Deucher + +commit b04697de5270e8e45744a7025c24df1f454a4cf0 +Author: Michel Dänzer +Date: Fri Nov 23 18:41:00 2018 +0100 + + Update cursor position in drmmode_show_cursor if hotspot changed + + The cursor position is updated to be consistent with the new hotspot in + the same ioctl call. + + Reviewed-by: Alex Deucher + +commit b344e1559e936046ef02c777fc4f6bcefa3830bc +Author: Michel Dänzer +Date: Fri Nov 23 18:22:25 2018 +0100 + + Use drmIoctl in drmmode_show_cursor + + This should be functionally equivalent to what drmModeSetCursor(2) do + behind the scenes, but allows for new tricks in following changes. + + Reviewed-by: Alex Deucher + +commit e95044e45350870fa7e237860e89ade91ac03550 +Author: Michel Dänzer +Date: Thu Nov 22 17:54:45 2018 +0100 + + Drop AMDGPUInfoRec::cursor_buffer array + + Not needed or even useful for anything. + + Reviewed-by: Alex Deucher + +commit 13c85e8a136e8626ba84656c6f8321394750f5c7 +Author: Michel Dänzer +Date: Thu Nov 22 17:50:19 2018 +0100 + + Don't use GBM for allocating HW cursor BOs + + GBM doesn't really buy us anything for the cursor BOs. This simplifies + the code and following changes. + + Reviewed-by: Alex Deucher + +commit bcfa6c258fdf41a9928f8a3c78fc528d0fafee25 +Author: Michel Dänzer +Date: Wed Nov 21 18:32:04 2018 +0100 + + Automatically try re-enabling TearFree after a flip failed + + Specifically, after both the page flip and vblank ioctls failed, but + then the vblank ioctl started working again. This can happen + intermittently e.g. when hotplugging a DP display. Previously, TearFree + would stay disabled in that case until a modeset was triggered somehow. + + Bugzilla: https://bugs.freedesktop.org/103791 + Reviewed-by: Alex Deucher + +commit 4e7a24ac5a64e402146953ec5850d13c05742116 +Author: Michel Dänzer +Date: Wed Nov 21 17:54:18 2018 +0100 + + Cancel pending scanout update in drmmode_crtc_scanout_update + + drmmode_crtc_scanout_update does the equivalent of a scanout update, + so no need to do it again. This might also avoid issues if there's a + pending scanout update at this point. + + Reviewed-by: Alex Deucher + +commit 500fadb16285146e91f62fce3a0ce1360ca684ba +Author: Michel Dänzer +Date: Wed Nov 21 12:42:22 2018 +0100 + + Perform scanout buffer update immediately if drmmode_wait_vblank fails + + Otherwise the damaged screen contents may never be displayed in that + case. + + Reviewed-by: Alex Deucher + +commit be862ed459b06ab7dfc80b5c3d1e2ac7e9327a6e +Author: Michel Dänzer +Date: Tue Dec 11 11:47:16 2018 +0100 + + Generate docker image as part of CI pipeline + + This removes the dependency on an externally generated docker image, and + should make it easier to update the docker image or make other changes + related to it. + + v2: + * If the image doesn't exist, try pulling it from the main repo's + registry. + * Use debian:testing-slim as the base, might result in a slightly + smaller image. + + v3: + * Prevent installation of packages which are only recommended, for an + even smaller image. + * Add recommendation to remove new image from source repository in + favour of the main repository's. + + Acked-by: Alex Deucher # v2 + +commit b11ee02c4596ddee3c9ff2141be5c91815efacc3 +Author: Nicholas Kazlauskas +Date: Thu Oct 4 09:51:40 2018 -0400 + + Support CRTC variable refresh for windows using Present flips + + This patch adds support for setting the CRTC variable refresh property + for suitable windows flipping via the Present extension. + + The "VariableRefresh" Option is added to AMDGPU in this patch. This + option defaults to false, and must be set to "true" in an X conf + file for variable refresh support in the driver. + + In order for a window to be suitable for variable refresh it must have + the _VARIABLE_REFRESH property with a 32-bit CARDINAL value of 1. + + Then the window must pass the checks required to be suitable for + Present extension flips - it must cover the entire X screen and no + other window may already be flipping. + + With these conditions met every CRTC for the X screen will have their + variable refresh property set to true. + + Signed-off-by: Nicholas Kazlauskas + +commit 2d18b37159edc526c73a36143fe9b5d6b75e610a +Author: Nicholas Kazlauskas +Date: Tue Nov 13 09:08:01 2018 -0500 + + Check last flip window instead of screen root before flipping + + A significant amount of time can pass between the X call into + check_flip for a window and when amdgpu_present_flip actually occurs. + To ensure that flipping is still possible there was an additional check + performed on screen->root in amdgpu_present_flip - but what should + be checked instead is the window itself. This only really worked before + because X ensures that the window has the same dimensions as the screen + to allow for present extension flipping. + + This patch tracks the flip window between calls to check_flip and flip + and uses that window instead of screen->root. + + Signed-off-by: Nicholas Kazlauskas + +commit 13c94a373b4858a2d2aa14c22b5f98d53c84c0d9 +Author: Michel Dänzer +Date: Thu Nov 15 16:40:46 2018 +0100 + + Skip gamma correction of cursor data if premultiplied R/G/B > alpha + + The un-premultiplied R/G/B values would overflow the gamma LUT, so just + pass through the data unchanged, and leave it up to the HW how to + interpret such weird premultiplied alpha pixels. + + Bugzilla: https://bugs.freedesktop.org/108355 + +commit 51ba6dddee40c3688d4c7b12eabeab516ed153b7 +Author: Michel Dänzer +Date: Fri Nov 9 11:00:04 2018 +0100 + + Move deferred vblank events to separate drm_vblank_deferred list + + It was still possible for nested xorg_list_for_each_entry_safe loops + to occur over the drm_vblank_signalled list, which could mess up that + list. Moving deferred events to a separate list allows processing the + drm_vblank_signalled list without xorg_list_for_each_entry_safe. + + v2: + * Refactor drm_handle_vblank_signalled helper function, less code + duplication => better readability (Alex Deucher) + + Bugzilla: https://bugs.freedesktop.org/108600 + Acked-by: Alex Deucher + +commit e2c7369cae65069aa93eed1c0b678f975ce5c274 +Author: Michel Dänzer +Date: Mon Nov 5 19:02:31 2018 +0100 + + Explicitly keep track of whether a DRM event is for a flip or not + + When an async flip is performed, and TearFree is enabled on the CRTC + used for timing, we schedule a vblank event for completing the page + flip. The DRM event queuing code treated this event like a vblank event, + but it needs to be treated like a page flip event. + + Acked-by: Alex Deucher + +commit eda571222f5a6be47f8897e82d85199bb9d95251 +Author: Michel Dänzer +Date: Mon Nov 5 18:07:54 2018 +0100 + + Use drm_abort_one in drm_queue_handler + + At this point, we've already established that e->handler is NULL, no + need to check again in drm_queue_handle_one. This also makes it clearer + what's happening. + + Reviewed-by: Alex Deucher + +commit 426f9a49655f01863cf4d898f525e5f95984e0c4 +Author: Michel Dänzer +Date: Tue Nov 6 12:06:20 2018 +0100 + + Relax detection of non-premultiplied alpha cursor data + + The stricter detection broke the cursor in some games. Apparently those + use cursor data with premultiplied alpha, but with some pixels having + r/g/b values larger than the alpha value (which corresponds to original + r/g/b values > 1.0), triggering the workaround. + + Relax the detection to match what's in the X server since 1.18.4, but + keep the workaround for older versions. + + Bugzilla: https://bugs.freedesktop.org/108650 + Acked-by: Alex Deucher + +commit a9da219e13bd0cdec65554382b5cd15abc3e3778 +Author: Michel Dänzer +Date: Wed Nov 14 09:58:28 2018 +0100 + + Add README.md to EXTRA_DIST + + Otherwise it isn't included in the generated tarballs. + + Suggested-by: Alan Coopersmith + Reviewed-by: Alex Deucher + +commit 1cb338253af9c539fc1f13fc12b255ed6303f8b1 +Author: Michel Dänzer +Date: Wed Oct 24 18:07:31 2018 +0200 + + man: This driver supports colour depths 8, 15 and 16 + + Reviewed-by: Alex Deucher + +commit 0734cdf544ffd3f2ac8749ad0e4bf43f8a5cea50 +Author: Michel Dänzer +Date: Fri Oct 5 12:35:37 2018 +0200 + + glamor: Can work at depth >= 15 with current xserver Git master + + Reviewed-by: Alex Deucher + +commit ad6dfb0124860cf67730bde85867f81d9258c84d +Author: Michel Dänzer +Date: Fri Oct 19 11:02:41 2018 +0200 + + Detect and fix up non-premultiplied cursor data + + X server >= 1.18 already had code for this, but it only caught cases + where some pixels have 0 for alpha and non-0 for a non-alpha component. + Turns out some apps (e.g. the Civilization VI game) use + non-premultiplied cursor data which doesn't have such pixels, but can + still result in visual artifacts. + + This uses the method suggested by Kamil in + https://bugs.freedesktop.org/92309#c19: check for pixels where any + colour component value is larger than the alpha value, which isn't + possible with premultiplied alpha. + + There can still be non-premultiplied data which won't be caught by this, + but that should result in slightly incorrect colours and/or blending at + the worst, not wildly incorrect colours such as shown in the bug report + below. + + v2: + * Disable the check with current xserver Git master, which already does + the same check now. + + Bugzilla: https://bugs.freedesktop.org/108355 + Suggested-by: Kamil Páral + Reviewed-by: Alex Deucher + +commit c9d43c1deb9a9cfc41a8d6439caf46d12d220853 +Author: Michel Dänzer +Date: Thu Oct 4 12:54:13 2018 +0200 + + Allow up to six instances in Zaphod mode + + Corresponding to up to six CRTCs being available in the hardware. + + v2: + * Move instance overflow check from PreInit to the probe hooks, in + order to further minimize wasted effort. + + Reviewed-by: Alex Deucher # v1 + +commit aa572683d86174be2bfc09d4e173ae2a9907d40e +Author: Michel Dänzer +Date: Wed Oct 10 17:28:35 2018 +0200 + + Fix condition for calling set_pixmap_bo in drmmode_xf86crtc_resize + + This matches CreateScreenResources_KMS. + + Fixes crash when resizing the screen (e.g. using xrandr) with depth < + 24. + + Bugzilla: https://bugs.freedesktop.org/104914 + Acked-by: Alex Deucher + +commit 05a1ba9abc941dec616ef7f836f4c54ac93ff9be +Author: Michel Dänzer +Date: Tue Oct 2 18:01:14 2018 +0200 + + Add GitLab CI configuration + + Builds the driver against all supported versions of xserver, with both + gcc and clang for xserver >= 1.18 (older versions cause warnings with + clang). Compiler warnings are treated as errors. + + The xserver 1.15 build uses standalone glamor, the xserver 1.13 & 1.14 + builds use --disable-glamor. + + With the latest xserver version, make install and make distcheck are + tested as well. + +commit babbd38057559471ab3cb6970010b9a4adf1ef3d +Author: Michel Dänzer +Date: Tue Oct 2 17:55:03 2018 +0200 + + Fix --disable-glamor build + + We were still relying on the glamor.h header being picked up implicitly. + +commit b6ee7f92cfaa2c134bee101cf89983db73f4c28d +Author: Michel Dänzer +Date: Tue Oct 2 17:52:10 2018 +0200 + + Cast return value of amdgpu_get_marketing_name to char* + + Avoids compiler warning with xserver < 1.16: + + ../../src/amdgpu_kms.c: In function ‘AMDGPUPreInitChipType_KMS’: + ../../src/amdgpu_kms.c:1203:17: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] + pScrn->chipset = amdgpu_get_marketing_name(pAMDGPUEnt->pDev); + ^ + +commit 955373a3e69baa241a1f267e96d04ddb902f689f +Author: Michel Dänzer +Date: Tue Sep 25 18:40:01 2018 +0200 + + Make wait_pending_flip / handle_deferred symmetric in set_mode_major + + We were always calling the latter, but not always the former, which + could result in handling deferred DRM events prematurely. + + Acked-by: Slava Abramov + Acked-by: Alex Deucher + +commit 0cd2c337d2c02b8ec2bd994d6124b4aaaad10741 +Author: Michel Dänzer +Date: Thu Sep 20 17:35:40 2018 +0200 + + Handle pending scanout update in drmmode_crtc_scanout_free + + We have to wait for a pending scanout flip or abort a pending scanout + update, otherwise the corresponding event handler will likely crash + after drmmode_crtc_scanout_free cleaned up the data structures. + + Fixes crash after VT switch while dedicated scanout pixmaps are enabled + for any CRTC. + + Acked-by: Alex Deucher + +commit ac5b6f96e97aaf95f4e668b4057006b221cffaec +Author: Michel Dänzer +Date: Thu Sep 20 18:53:05 2018 +0200 + + Convert README to markdown + + And update it a little for the current Gitlab infrastructure. + +commit 451fe96809771ed4e2be3851a65f5360ba9912cb +Author: Michel Dänzer +Date: Thu Sep 20 18:48:43 2018 +0200 + + Post-release version bump + +commit d5e17dc4c78aee5d37de399728066b9be881e044 +Author: Michel Dänzer +Date: Fri Sep 14 17:00:17 2018 +0200 + + Bump version for the 18.1.0 release + +commit 6572be49b713a26eca14f16e1854cabf28101288 +Author: Michel Dänzer +Date: Thu Sep 13 11:44:21 2018 +0200 + + Bail from drmmode_cm_init if there's no CRTC + + We would crash due to dereferencing the NULL mode_res->crtc pointer. + + Bugzilla: https://bugs.freedesktop.org/107913 + Reviewed-by: Alex Deucher + +commit ca5eb9894fff153c0a1df7bdc4a4745713309e27 +Author: Michel Dänzer +Date: Wed Aug 29 18:50:45 2018 +0200 + + Bail early from drm_wait_pending_flip if there's no pending flip + + No need to process any events in that case. + + v2: + * Re-check drmmode_crtc->flip_pending after processing each event + +commit a923bedfd91d39977dbf95f296cf9b68439490f2 +Author: Michel Dänzer +Date: Fri Aug 31 12:44:37 2018 +0200 + + Do not push the CM_GAMMA_LUT property values in drmmode_crtc_cm_init + + The crtc->gamma_lut values aren't initialized yet at this point, and + the property values are pushed again from drmmode_setup_colormap + anyway. + + Fixes intermittent flicker due to random gamma LUT values during server + startup. + + Acked-by: Alex Deucher + +commit 26770be44b89b83bf39c28f2fe284c8cb92ed0c0 +Author: Michel Dänzer +Date: Wed Aug 29 18:49:19 2018 +0200 + + Don't use xorg_list_for_each_entry_safe for signalled flips + + drm_wait_pending_flip can get called from drm_handle_event, in which + case xorg_list_for_each_entry_safe can end up processing the same entry + in both. To avoid this, just process the first list entry until the list + is empty. + +commit 7eea3e2cd74eed22e982319144e18ae5b1087b78 +Author: Michel Dänzer +Date: Wed Aug 29 18:41:19 2018 +0200 + + Always delete entry from list in drm_queue_handler + + We left entries without a handler hook in the list, so the list could + keep taking longer to process and use up more memory. + +commit b804d7f85d8a07389ba7d3f9b8af8773f852f1c7 +Author: Michel Dänzer +Date: Wed Aug 29 17:34:55 2018 +0200 + + glamor: Handle ihandle == -1 in amdgpu_glamor_set_shared_pixmap_backing + + (Ported from radeon commit de88ea2755611bdcb18d91d8234d2ab5be8ff2e9) + Acked-by: Alex Deucher + +commit ae2a450cb98707c4cab8a8265a284cf708bcd43d +Author: Michel Dänzer +Date: Wed Aug 29 17:31:49 2018 +0200 + + Handle ihandle == -1 in amdgpu_set_shared_pixmap_backing + + It means to stop using the shared pixmap backing. + + (Ported from radeon commit 1799680f7bd84e0618f34f4c7486799521ddaf83) + Acked-by: Alex Deucher + +commit 34e851d1f284da5afcfe449f349cf1eb5e962408 +Author: Michel Dänzer +Date: Fri Aug 24 17:18:10 2018 +0200 + + Use AC_CONFIG_MACRO_DIR instead of AC_CONFIG_MACRO_DIRS + + Older versions of autoconf only supported the former. + + (Cherry picked from radeon commit cba8fe4d64819aaa8ba516aa68dbe6d2aa153046) + Acked-by: Alex Deucher + +commit afdfa2a1b6d4b594e0ed345b32279d4a2fd5e188 +Author: Michel Dänzer +Date: Fri Aug 24 17:17:43 2018 +0200 + + Add m4 directory + + Although normally it only warns about it, under some circumstances, + aclocal can error out if this directory doesn't exist. + + Reported-by: John Lumby + (Cherry picked from radeon commit 7b01c10137aba24c8f61dd9b2a19ea257ad24371) + Acked-by: Alex Deucher + +commit f6cd72e64e85896b6d155bee0930e59771dcb701 +Author: Michel Dänzer +Date: Thu Aug 16 16:31:01 2018 +0200 + + Use correct FB handle in amdgpu_do_pageflip + + We were always using the handle of the client provided FB, which + prevented RandR transforms from working, and could result in a black + screen. + + Fixes: 9b6782c821e0 "Store FB for each CRTC in drmmode_flipdata_rec" + Reviewed-by: Alex Deucher + +commit 85cd8eef0cbed7b409b07f58d76dacd34aa3ddea +Author: Michel Dänzer +Date: Tue Jul 24 18:58:27 2018 +0200 + + Remove drmmode_crtc_private_rec::present_vblank_* related code + + Not needed anymore with the more robust mechanisms for preventing nested + drmHandleEvent calls introduced in the previous changes. + + Acked-by: Alex Deucher + +commit e52872da69ecc84dafb3355839e35b0383f0d228 +Author: Michel Dänzer +Date: Fri Jul 20 16:56:22 2018 +0200 + + Defer vblank event handling while waiting for a pending flip + + This is to avoid submitting more flips while we are waiting for pending + ones to complete. + + Acked-by: Alex Deucher + +commit 739181c8d3334ff14b5a607895dfdeb29b0d9020 +Author: Michel Dänzer +Date: Wed Jul 25 13:00:15 2018 +0200 + + Add amdgpu_drm_handle_event wrapper for drmHandleEvent + + Instead of processing DRM events directly from drmHandleEvent's + callbacks, there are three phases: + + 1. drmHandleEvent is called, and signalled events are re-queued to + _signalled lists from its callbacks. + 2. Signalled page flip completion events are processed. + 3. Signalled vblank events are processed. + + This should make sure that we never call drmHandleEvent from one of its + callbacks, which would usually result in blocking forever. + +commit 6029794e8a35417faf825491a89b85f713c77fc1 +Author: Michel Dänzer +Date: Fri Jul 20 17:07:23 2018 +0200 + + Add amdgpu_drm_wait_pending_flip function + + Replacing the drmmode_crtc_wait_pending_event macro. + + Acked-by: Alex Deucher + +commit 0148283984c77f7a6e97026edc3093497547e0a4 +Author: Michel Dänzer +Date: Fri Jul 20 16:37:05 2018 +0200 + + Move DRM event queue related initialization to amdgpu_drm_queue_init + + And make amdgpu_drm_queue_handler not directly accessible outside of + amdgpu_drm_queue.c. + + Acked-by: Alex Deucher + +commit 7f65a8c9e03bddf2378aaa928460632ed6b1a688 +Author: Michel Dänzer +Date: Fri Aug 3 17:52:28 2018 +0200 + + glamor: Check glamor module version for depth 30 support + + Instead of the Xorg version. This should allow glamor backported from + xserver >= 1.20 to work with older Xorg versions. + + Reviewed-by: Alex Deucher + +commit 08c4d42f43f80baa4bbc2ff9d0a422202cdc3538 +Author: Michel Dänzer +Date: Thu Aug 2 18:41:04 2018 +0200 + + glamor: Use glamor_egl_create_textured_pixmap_from_gbm_bo when possible + + Inspired by the modesetting driver. + + (Ported from radeon commit db28d35ce9fd07a2a4703f3df0633d4c8291ff9b) + Reviewed-by: Alex Deucher + +commit 9b6782c821e0bdc53336d98f87ddde752faf7902 +Author: Michel Dänzer +Date: Fri Jul 27 17:55:11 2018 +0200 + + Store FB for each CRTC in drmmode_flipdata_rec + + We were only storing the FB provided by the client, but on CRTCs with + TearFree enabled, we use a separate FB. This could cause + drmmode_flip_handler to fail to clear drmmode_crtc->flip_pending, which + could result in a hang when waiting for the pending flip to complete. We + were trying to avoid that by always clearing drmmode_crtc->flip_pending + when TearFree is enabled, but that wasn't reliable, because + drmmode_crtc->tear_free can already be FALSE at this point when + disabling TearFree. + + Now that we're keeping track of each CRTC's flip FB separately, + drmmode_flip_handler can reliably clear flip_pending, and we no longer + need the TearFree hack. + + Reviewed-by: Alex Deucher + +commit 2989d40ef74d9966e8e8df2ef7727b2cc48d4960 +Author: Michel Dänzer +Date: Wed Jul 25 18:37:48 2018 +0200 + + glamor: Set AMDGPU_CREATE_PIXMAP_DRI2 for DRI3 pixmaps + + Not doing this resulted in falling back to software for DRI3 client + presentation operations with ShadowPrimary. + + Reviewed-by: Alex Deucher + +commit f3b2ed37d683f8616a0a31ff63133ddb8fe1a4a3 +Author: Michel Dänzer +Date: Mon Jul 23 18:42:39 2018 +0200 + + Use strcpy for RandR output property names + + Instead of strncpy with the string length. Avoids new warnings with GCC + 8: + + ../../src/drmmode_display.c: In function ‘drmmode_output_create_resources’: + ../../src/drmmode_display.c:2240:2: warning: ‘strncpy’ output truncated before terminating nul copying 8 bytes from a string of the same length [-Wstringop-truncation] + strncpy(tearfree_prop->name, "TearFree", 8); + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ../../src/drmmode_display.c:2244:2: warning: ‘strncpy’ output truncated before terminating nul copying 3 bytes from a string of the same length [-Wstringop-truncation] + strncpy(tearfree_prop->enums[0].name, "off", 3); + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ../../src/drmmode_display.c:2245:2: warning: ‘strncpy’ output truncated before terminating nul copying 2 bytes from a string of the same length [-Wstringop-truncation] + strncpy(tearfree_prop->enums[1].name, "on", 2); + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ../../src/drmmode_display.c:2247:2: warning: ‘strncpy’ output truncated before terminating nul copying 4 bytes from a string of the same length [-Wstringop-truncation] + strncpy(tearfree_prop->enums[2].name, "auto", 4); + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Reviewed-by: Slava Abramov + +commit 5f06d6b8ba570b500956ad26fee711d5ac427818 +Author: Michel Dänzer +Date: Tue Jul 17 19:00:51 2018 +0200 + + Remove drmmode_terminate_leases + + The RandR screen private is already freed when our CloseScreen runs, so + this can't do anything useful. This cleanup has to be done by the X + server itself. + +commit 7cc2d4515a63845a027214daf4d391cf56e35bb3 +Author: Michel Dänzer +Date: Thu Jul 19 16:59:22 2018 +0200 + + Remove AMDGPUInfoRec::fbcon_pixmap + + We always destroy the fbcon pixmap in drmmode_copy_fb anyway. + + Reviewed-by: Alex Deucher + +commit 46d87187c6a0b8f941cc6f30af1f53a98ff2e635 +Author: Michel Dänzer +Date: Thu Jul 19 12:37:42 2018 +0200 + + Don't use DRM_IOCTL_GEM_FLINK in create_pixmap_for_fbcon + + We don't need it. + +commit b8d8416792488f7b15c94234d7e0e35d5ce10ed9 +Author: Michel Dänzer +Date: Thu Jul 19 11:36:19 2018 +0200 + + Free previous xf86CrtcRec gamma LUT memory + + We were leaking it. + + Also, don't bother allocating new memory if it's already the expected + size. + + Reviewed-by: Alex Deucher + +commit ae8e02c6fc4ef5d5340b8cd4739e66b19b9e3386 +Author: Michel Dänzer +Date: Fri Jul 13 10:38:56 2018 +0200 + + Hardcode "non-desktop" RandR property name + + It's a bit silly to require current randrproto just for this definition, + which can't really change anyway. + + Suggested-by: Qiang Yu + Reviewed-by: Qiang Yu + +commit 1247be21704dd185ce26097e11b3685815ffac4f +Author: Michel Dänzer +Date: Fri Jul 13 18:30:04 2018 +0200 + + Support gamma correction & colormaps at depth 30 as well + + Only supported with the advanced colour management properties available + with DC as of kernel 4.17. + + Reviewed-by: Alex Deucher + +commit 9dfbae76b179285d142b97852211b900ebfae51d +Author: Michel Dänzer +Date: Tue Jul 10 18:13:39 2018 +0200 + + Move flush from radeon_scanout_do_update to its callers + + No functional change intended. + + (Ported from radeon commit 90b94d40449f665f2d12874598062a5e5e5b64cd) + Reviewed-by: Alex Deucher + +commit ace6ea016ce0013a34e1d4637aeacbf4d0e83c79 +Author: Michel Dänzer +Date: Tue Jul 10 18:11:04 2018 +0200 + + glamor: Bail CreatePixmap on unsupported pixmap depth + + Fixes crash in that case. + + Bugzilla: https://bugs.freedesktop.org/106293 + (Ported from radeon commit 65c9dfea4e841b7d6f795c7489fede58c5e9631f) + Reviewed-by: Alex Deucher + +commit c160302abcdb18eec35c377d80e34f5bd857df45 +Author: Michel Dänzer +Date: Thu May 17 09:50:50 2018 +0200 + + Bail from dri2_create_buffer2 if we can't get a pixmap + + We would store the NULL pointer and continue, which would lead to a + crash down the road. + + Bugzilla: https://bugs.freedesktop.org/106293 + (Ported from radeon commit 3dcfce8d0f495d09d7836caf98ef30d625b78a13) + Reviewed-by: Alex Deucher + +commit 61040bdfa360975614fb47aa7ea1b3a1abac3427 +Author: Keith Packard +Date: Mon Feb 12 13:51:56 2018 -0800 + + Add RandR leases support + + Signed-off-by: Keith Packard + (Ported from xserver commit e4e3447603b5fd3a38a92c3f972396d1f81168ad) + Reviewed-by: Keith Packard + Signed-off-by: Michel Dänzer + +commit ab7e39c5a03e24c3ce3ee2f22ada7572bc2d9aa7 +Author: Keith Packard +Date: Mon Feb 12 13:51:55 2018 -0800 + + modesetting: Create CONNECTOR_ID properties for outputs [v2] + + This lets a DRM client map between X outputs and kernel connectors. + + v2: + Change CONNECTOR_ID to enum -- Adam Jackson + + Signed-off-by: Keith Packard + (Ported from xserver commit 023d4aba8d45e9e3630b944ecfb650c081799b96) + Reviewed-by: Keith Packard + Signed-off-by: Michel Dänzer + +commit 14db71a606128c4a207f43298809af279b77e2a8 +Author: Keith Packard +Date: Mon Feb 12 13:51:53 2018 -0800 + + modesetting: Record non-desktop kernel property at PreInit time + + Save any value of the kernel non-desktop property in the xf86Output + structure to avoid non-desktop outputs in the default configuration. + + [Also bump randrproto requirement to a version that defines + RR_PROPERTY_NON_DESKTOP - ajax] + + Signed-off-by: Keith Packard + (Ported from xserver commit b91c787c4cd2d20685db69426c539938c556128a) + Reviewed-by: Keith Packard + Signed-off-by: Michel Dänzer + +commit baea4fa492f635cdfe746a84be2e337d9aeae8a9 +Author: Michel Dänzer +Date: Tue Jun 26 19:02:21 2018 +0200 + + Call drmmode_crtc_gamma_do_set from drmmode_setup_colormap + + Instead of from drmmode_set_mode_major. There's no need to re-set the + gamma LUT on every modeset, the kernel should preserve it. + + Reviewed-by: Alex Deucher + +commit 19a40758be04e1d451a030f452efb49e8aaad541 +Author: Michel Dänzer +Date: Wed Jun 27 18:36:43 2018 +0200 + + Remove #if 0'd code + + This has always been disabled, no need to keep it. + + Reviewed-by: Alex Deucher + Reviewed-by: Slava Abramov + +commit 8e98195e58f77fd1f354b2707360bd4445aef5b4 +Author: Michel Dänzer +Date: Tue Jun 26 18:40:23 2018 +0200 + + Don't apply gamma to HW cursor data if colour management is enabled + + In that case (with DC as of 4.17 kernels), the display hardware applies + gamma to the HW cursor. + + v2: + * Also use all 0s when alpha == 0 in the gamma passthrough case. + + Bugzilla: https://bugs.freedesktop.org/106578 + Reviewed-by: Alex Deucher + +commit 606075b852d8e1d40ed0a56b5a928abdd7012f95 +Author: Leo Li (Sunpeng) +Date: Fri Jun 15 17:05:52 2018 -0400 + + Also compose LUT when setting legacy gamma + + We compose the two LUTs when pushing non-legacy gamma changes, and the + same needs to be done when setting legacy gamma. + + To do so, we just call push_cm_prop() on the gamma LUT. It will compose + the LUTs for us, and fall back to using legacy LUT (upscaled to non- + legacy size) if non-legacy is unavailable. + + It's also possible that the Kernel has no support support for non- + legacy color. In which case, we fall back to legacy gamma. + + v2: Remove per-CRTC check for color management support. + + Signed-off-by: Leo (Sunpeng) Li + Signed-off-by: Michel Dänzer + +commit e0a4c0e2155a5fcfad747ea5bddcf5b4b551f151 +Author: Leo Li (Sunpeng) +Date: Fri Jun 15 17:12:48 2018 -0400 + + Compose non-legacy with legacy regamma LUT + + Frequently, a user may have non-legacy gamma enabled for monitor + correction, while using legacy gamma for things like + redshift/nightlight. + + To do so, we compose the two LUTs. Legacy gamma will be applied first, + then non-legacy. i.e. non-legacy_LUT(legacy_LUT(in_color)). + + Note that the staged gamma LUT within the driver-private CRTC will + always contain the non-legacy LUT. This is to ensure that we have a + cached copy for future compositions. + + v2: Don't compose LUTs if legacy gamma is disabled (which is the case + for deep 30bpp color). The legacy LUT won't be computed here, + causing composition to spit out something invalid. + + v3: Use LUT sizes that are now cached in drmmode. + + Signed-off-by: Leo (Sunpeng) Li + + [ Michel Dänzer: Replace "crtc->funcs->gamma_set == NULL" with + !crtc->funcs->gamma_set ] + + Signed-off-by: Michel Dänzer + +commit e1fe46013c281f4644ca49915ae0ff081582a5b9 +Author: Leo Li (Sunpeng) +Date: Fri Jun 15 17:05:39 2018 -0400 + + Enable setting of color properties via RandR + + Setting a color property involves: + 1. Staging the property onto the driver-private CRTC object + 2. Pushing the staged property into kernel DRM, for HW programming + + Add a function to do the staging, and execute the above steps in + output_property_set. + + v2: + - Remove per-CRTC check for color management support in stage_cm_prop. + - Use switch statement instead of if statements. + + Signed-off-by: Leo (Sunpeng) Li + Signed-off-by: Michel Dänzer + +commit 29de2859e296b4e9f0b4ae7564c353c5518f3f08 +Author: Leo Li (Sunpeng) +Date: Fri Jun 15 17:05:28 2018 -0400 + + Update color properties on output_get_property + + Notify RandR of any updated color properties on the output's CRTC when + its get_property() hook is called. + + v2: Remove per-CRTC check for color management support. + + Signed-off-by: Leo (Sunpeng) Li + Signed-off-by: Michel Dänzer + +commit 639acf54b4de6f62000d12cc6dbf4f5e49cae888 +Author: Leo Li (Sunpeng) +Date: Fri Jun 15 17:04:58 2018 -0400 + + Configure color properties when creating output resources + + List color management properties on outputs if there is kernel support. + Otherwise, don't list them at all. + + v2: + - Use switch statement in configure_and_change + - Also configure LUT sizes for outputs that don't have an attached CRTC. + We can do this since LUT sizes are now cached on the drmmode object. + + Signed-off-by: Leo (Sunpeng) Li + + [ Michel Dänzer: Drop const from data pointer declaration in + rr_configure_and_change_cm_property, to avoid warning when building + against xserver 1.13 ] + + Signed-off-by: Michel Dänzer + +commit 3cf5a281d8481c997029dae164d6fdeca66b9447 +Author: Leo Li (Sunpeng) +Date: Fri Jun 15 17:04:44 2018 -0400 + + Initialize color properties on CRTC during CRTC init + + And destroy them on the CRTC destroy hook. + + When initializing color management properties on the private + drmmode_crtc, we want to: + + 1. Default its color transform matrix (CTM) to identity + 2. Program hardware with default color management values (SRGB for + de/regamma, identity for CTM) + + It's possible that cm initialization fails due to memory error or DRM + error. In which case, the RandR state may not reflect the actual + hardware state. + + v2: + - Use switch statement in push_cm_prop + - Get rid of per-CRTC cm support checks. Keep it simple and only check + the first CRTC, since kernel will always report all or nothing for AMD + hardware. + - Remove per-CRTC LUT size caching, drmmode now holds that. Update + commit message to reflect this. + + Signed-off-by: Leo (Sunpeng) Li + + [ Michel Dänzer: Replace "drmmode_crtc->ctm == NULL" with + !drmmode_crtc->ctm ] + + Signed-off-by: Michel Dänzer + +commit 810ed133cd67b3deb38d1af87e252a094e9ee8f2 +Author: Leo Li (Sunpeng) +Date: Fri Jun 15 17:02:57 2018 -0400 + + Cache color property IDs and LUT sizes during pre-init + + DRM creates property types with unique IDs during kernel driver init. + Cache the color property IDs on DDX init for use later, when we need + to modify these properties. Also cache the (de)gamma LUT sizes, since + they are the same for all CRTCs on AMD hardware. + + Since these values are the same regardless of the CRTC, they can be + cached within the private drmmode_rec object. We can also use any color- + management-enabled CRTC to initially fetch them. + + Also introduce an enumeration of possible color management properties, + to provide a easy and unified way of referring to them. + + v2: + - Reorder cm property enum so that LUT sizes are at the end. This allows + us to use DEGAMMA_LUT_SIZE as an anchor for iterating over mutable cm + properties. + - Cache (de)gamma LUT sizes within drmmode, since it's the same for all + CRTCs on AMD hardware. Update commit message to reflect this. + + Signed-off-by: Leo (Sunpeng) Li + Signed-off-by: Michel Dänzer + +commit 940c8b39f79789d4d5ddb8ab8d25a8ae05932756 +Author: Michel Dänzer +Date: Tue Jun 12 18:45:08 2018 +0200 + + Check dimensions passed to drmmode_xf86crtc_resize + + When enabling a secondary GPU output, Xorg can try resizing the screen + beyond the limit advertised by the driver, leading to drmModeAddFB + failing and primary GPU outputs turning off. Check for this and bail + instead. + +commit 74124f2c17dbb4b752707bb7eee398ae099e8a2c +Author: Michel Dänzer +Date: Fri May 18 12:31:57 2018 +0200 + + Use drmmode_crtc_dpms in drmmode_set_desired_modes + + Simplifies the latter slightly. + + Reviewed-by: Leo (Sunpeng) Li + +commit ceeacb455cd058492a493aac954deab8455804b5 +Author: Michel Dänzer +Date: Fri May 18 12:13:23 2018 +0200 + + Call drmmode_do_crtc_dpms from drmmode_crtc_dpms as well + + Leo pointed out that drmmode_do_crtc_dpms wasn't getting called when + turning off an output with + + xrandr --output --off + + This meant that the vblank sequence number and timestamp wouldn't be + saved before turning off the CRTC in this case. + + Reported-by: Leo (Sunpeng) Li + Reviewed-by: Leo (Sunpeng) Li + +commit e8e688f3852fb06b0c34ed5bce47c9493bcd1613 +Author: Michel Dänzer +Date: Wed May 16 16:49:20 2018 +0200 + + Replace 'foo == NULL' with '!foo' + + Shorter and sweeter. :) + + Reviewed-by: Alex Deucher + +commit 103bd6f44cc5f1a6cd6cc9a5cb34d0419c4cece9 +Author: Slava Grigorev +Date: Fri Apr 27 13:04:36 2018 -0400 + + Include xf86platformBus.h unconditionally + + Compilation failed with XSERVER_PLATFORM_BUS undefined: + + ../../src/amdgpu_probe.c: In function ‘amdgpu_kernel_open_fd’: + ../../src/amdgpu_probe.c:133:21: error: dereferencing pointer to incomplete type ‘struct xf86_platform_device’ + dev = platform_dev->pdev; + ^~ + + Signed-off-by: Slava Grigorev + + [ Michel Dänzer: + * Fixed remaining preprocessor guards to work with xserver 1.13 + * Touched up commit log ] + +commit 04947b83cce3a7782e59dece2c7797cc396c1e05 +Author: Michel Dänzer +Date: Thu Apr 26 17:58:08 2018 +0200 + + Wait for pending flips in drmmode_output_set_tear_free + + This prevents a nested call to drmHandleEvent, which would hang. + + Fixes hangs when disabling TearFree on a CRTC while a DRI3 client is + page flipping. + + Reviewed-by: Samuel Li + +commit fa30f4601de7a44edfb4a95873bd648946fd4292 +Author: Michel Dänzer +Date: Thu Apr 26 17:55:30 2018 +0200 + + Refactor drmmode_output_set_tear_free helper + + Preparation for the following fix, no functional change intended. + + Reviewed-by: Samuel Li + +commit 7db0c8e9d7586cff4312d4b93684d35de3e6376f +Author: Michel Dänzer +Date: Tue Apr 24 11:56:03 2018 +0200 + + Set drmmode_crtc->scanout_id = 0 when TearFree is disabled + + When disabling TearFree, drmmode_crtc->scanout_id could remain as 1, + but drmmode_set_mode_major would destroy drmmode_crtc->scanout[1], so + scanout_do_update() would keep bailing, and the scanout buffer would + stop being updated. + + Fixes freeze after disabling TearFree on a CRTC with active RandR + rotation or other transform. + + Reviewed-by: Alex Deucher + +commit 8e544b4a0de6717feb4abf00052d57c5b726b5ce +Author: Michel Dänzer +Date: Mon Apr 23 18:52:02 2018 +0200 + + Simplify drmmode_handle_transform + + Set crtc->driverIsPerformingTransform for any case we can handle before + calling xf86CrtcRotate. We already clear it afterwards when the latter + clears crtc->transform_in_use. + + This should allow our separate scanout buffer mechanism to be used in + more cases. + + Acked-by: Alex Deucher + +commit 463477661c88cab3a87746499e5838c5b9f9a13b +Author: Michel Dänzer +Date: Mon Apr 23 18:44:06 2018 +0200 + + Don't call scanout_flip/update with a legacy RandR scanout buffer + + It means we are not using our own scanout buffers. + + Fixes crash when TearFree is supposed to be enabled, but + drmmode_handle_transform doesn't set crtc->driverIsPerformingTransform. + + Bugzilla: https://bugs.freedesktop.org/105736 + Reviewed-by: Alex Deucher + +commit 72c3e9c7308fbcdf85708b72f9be14a5f2f8e7b5 +Author: Michel Dänzer +Date: Thu Mar 8 19:07:21 2018 +0100 + + Simplify drmmode_crtc_scanout_update + + Use our own BoxRec for the extents, and RegionEmpty for clearing the + scanout damage region. + +commit 4dcda0b48d62944c841cd9540f4ad4c7ac8dee47 +Author: Michel Dänzer +Date: Fri Apr 20 17:34:55 2018 +0200 + + Update RandR CRTC state if set_mode_major fails in set_desired_modes + + Without this, RandR would report the CRTC and its outputs as enabled, + even though they were actually off due to the failure. + +commit 36d01989cd842588f12fdae5b2cba5fdcf9c91dd +Author: Michel Dänzer +Date: Wed Apr 18 11:17:02 2018 +0200 + + Abort scanout_update_pending event when possible + + We don't need to wait for a non-TearFree scanout update before scanning + out from the screen pixmap or before flipping, as the scanout update + won't be visible anyway. Instead, just abort it. + +commit 04a5c5f7cfacad8d9ccffe81e388cc3da2036cb5 +Author: Michel Dänzer +Date: Wed Apr 18 11:03:14 2018 +0200 + + Track DRM event queue sequence number in scanout_update_pending + + Preparation for next change, no behaviour change intended. + +commit 8fcc3a9b43d3907052a83a96e5a2423afab5ad3f +Author: Michel Dänzer +Date: Wed Apr 18 11:18:59 2018 +0200 + + Ignore AMDGPU_DRM_QUEUE_ERROR (0) in amdgpu_drm_abort_entry + + This allows a following change to be slightly simpler. + +commit 720a61000aeb139005bd8125908cec66a6e69554 +Author: Emil Velikov +Date: Wed Apr 4 15:29:51 2018 +0100 + + Remove set but unused amdgpu_dri2::pKernelDRMVersion + + Signed-off-by: Emil Velikov + Reviewed-by: Michel Dänzer + +commit 7fb8b49895e225b3908c8bd186539de23afe91d1 +Author: Emil Velikov +Date: Wed Apr 4 15:29:50 2018 +0100 + + Do not export the DriverRec AMDGPU + + Unused externally and should not be exported. + + Signed-off-by: Emil Velikov + Reviewed-by: Michel Dänzer + +commit 00c128b45fc196c3a3a788ddb4453e7521be5860 +Author: Emil Velikov +Date: Wed Apr 4 15:29:36 2018 +0100 + + Move amdgpu_bus_id/amgpu_kernel_mode within amdgpu_kernel_open_fd + + Small step towards unifying the code paths and removing a handful of + duplication. + + Signed-off-by: Emil Velikov + Reviewed-by: Michel Dänzer + +commit 9f6a8905611b5b1d8fcd31bebbc9af7ca1355cc3 +Author: Jim Qu +Date: Tue Apr 17 19:11:16 2018 +0800 + + Wait for pending scanout update before calling drmmode_crtc_scanout_free + + There is a case that when set screen from reverse to normal, the old + scanout damage is freed in modesetting before scanout update handler, + so it causes segment fault issue. + + Signed-off-by: Jim Qu + + [ Michel Dänzer: Only call drmmode_crtc_wait_pending_event before + drmmode_crtc_scanout_free is actually called, slightly tweak commit + message ] + Signed-off-by: Michel Dänzer + +commit c6f1559eba551a5a3bf374c7e7e875928f3b138d +Author: Michel Dänzer +Date: Wed Apr 18 10:41:46 2018 +0200 + + Post-release version bump + +commit 9f37a44473ded8c669897379acbc750362c15ec6 +Author: Michel Dänzer +Date: Thu Mar 15 16:34:19 2018 +0100 + + Bump version for 18.0.1 release + +commit 8af989546907ad9fb491d940e1936d3bfc89276b +Author: Michel Dänzer +Date: Thu Mar 8 18:48:28 2018 +0100 + + Pass extents to amdgpu_scanout_do_update by value + + amdgpu_scanout_extents_intersect could leave the scanout damage region + in an invalid state, triggering debugging checks in pixman: + + *** BUG *** + In pixman_region_append_non_o: The expression r->x1 < r->x2 was false + Set a breakpoint on '_pixman_log_error' to debug + +commit 29649652a08ece7e07741be161b067a4484455ca +Author: Michel Dänzer +Date: Wed Mar 7 17:51:25 2018 +0100 + + Wrap the whole miPointerScreenFuncRec, instead of only Set/MoveCursor + + We were clobbering entries in mi's global miSpritePointerFuncs struct, + which cannot work correctly with multiple primary screens. Instead, + assign a pointer to our own wrapper struct to PointPriv->spriteFuncs. + + Fixes crashes with multiple primary screens. + + Fixes: 69e20839bfeb ("Keep track of how many SW cursors are visible on + each screen") + Reported-by: Mario Kleiner + +commit b4a28bdcfa7089e1cf708490ddf048b7df4c7eed +Author: Michel Dänzer +Date: Tue Mar 6 17:59:26 2018 +0100 + + Only change Set/MoveCursor hooks from what we expect + + Since xf86CursorCloseScreen runs after AMDGPUCloseScreen_KMS, + PointPriv->spriteFuncs doesn't point to the same struct in the latter as + in AMDGPUCursorInit_KMS. So we were restoring info->Set/MoveCursor to + the wrong struct. Then in the next server generation, + info->Set/MoveCursor would end up pointing to + drmmode_sprite_set/move_cursor, resulting in an infinite loop if one of + them was called. + + To avoid this, only change the Set/MoveCursor hooks if their values + match our expectations, otherwise leave them as is. This is kind of a + hack, but the alternative would be invasive and thus risky changes to + the way we're wrapping CloseScreen, and it's not even clear that can + work without changing xserver code. + + Fixes: 69e20839bfeb ("Keep track of how many SW cursors are visible on + each screen") + (Ported from radeon commit 504b8721b17a672caf1ed3eab087027c02458cab) + Acked-by: Alex Deucher + +commit 5cfba7b6221779832be915993765cb128a561087 +Author: Michel Dänzer +Date: Fri Mar 2 18:10:40 2018 +0100 + + Bump version for 18.0.0 release + +commit 374cb8fef4fdbb648af089ee80803ec78321f1b2 +Author: Keith Packard +Date: Thu Dec 21 18:54:34 2017 -0800 + + modesetting: Update property values at detect and uevent time + + We were updating the link-status property when a uevent came in, but + we also want to update the non-desktop property, and potentially + others as well. We also want to check at detect time in case we don't + get a hotplug event. + + This patch updates every property provided by the kernel, sending + changes to DIX so it can track things as well. + + Signed-off-by: Keith Packard + + (Ported from xserver commit a12485ed846b852ca14d17d1e58c8b0f2399e577, + slightly modifying logic to reduce indentation depth) + Reviewed-by: Alex Deucher + +commit 10054b6c3d9a755b30abb43020121b9631fa296d +Author: Daniel Martin +Date: Mon Nov 20 10:47:41 2017 +0100 + + modesetting: Reset output_id if drmModeGetConnector failed + + If drmModeGetConnector() fails in drmmode_output_detect(), we have to + reset the output_id to -1 too. + + Yet another spot leading to a potential NULL dereference when handling + the mode_output member as output_id was != -1. Though, this case should + be very hard to hit. + + Signed-off-by: Daniel Martin + + (Ported from xserver commit 6804875662363764683a86c1614e4cf3cc70a20a) + Reviewed-by: Alex Deucher + +commit fb58e06acd6c6bd59de2dbdadbca27eb1dd0025b +Author: Daniel Martin +Date: Mon Oct 23 10:31:21 2017 +0200 + + modesetting: Use helper to fetch drmModeProperty(Blob)s + + Replace the various loops to lookup drmModeProperty(Blob)s by + introducing helper functions. + + Signed-off-by: Daniel Martin + + (Ported from xserver commit f44935cdb7321af242ce9f242975f096807b97f7) + Reviewed-by: Alex Deucher + +commit 7854ace03f12207600ec8159ef8b2c5a562c4aee +Author: Christoph Haag +Date: Thu Mar 1 15:07:00 2018 +0100 + + fix include order for present.h configure test + + xorg-server.h defines _XSERVER64 which is used in X.h to choose the + correct definition of XID + + this prevents a failure in the present.h configure test that disables + DRI3 on X.Org 1.20 + + Reviewed-and-Tested-by: Michel Dänzer + +commit e3aae7a24296f640c0153d1459f3e0820485468a +Author: Michel Dänzer +Date: Fri Feb 16 17:15:24 2018 +0100 + + Disable all unused CRTCs before setting desired modes + + This might avoid modeset failures in some cases where a CRTC which isn't + used by Xorg was enabled before. + +commit f5ac5f385f41d1547cfd7ccc8bb35a537a8fffeb +Author: Michel Dänzer +Date: Thu Feb 15 18:37:09 2018 +0100 + + Don't bail from drmmode_set_desired_modes immediately + + If we fail to find or set the mode for a CRTC, keep trying for the + remaining CRTCs, and only return FALSE if we failed for all CRTCs that + should be on. + + Reviewed-by: Alex Deucher + Acked-by: Harry Wentland + +commit 37c7260bdef3a53b0f0295a531f33938e9aad8cf +Author: Michel Dänzer +Date: Wed Feb 14 19:06:33 2018 +0100 + + If glamor is too old for depth 30, fall back to ShadowFB + + Instead of not starting up at all. + + Reviewed-by: Alex Deucher + +commit 63b0c73a99fdf0eb7550a88df3a0052ce784e758 +Author: Michel Dänzer +Date: Wed Feb 14 18:50:18 2018 +0100 + + Revert "Guard against pAMDGPUEnt == NULL in AMDGPUFreeRec" + + This reverts commit a23d1ff700d486138c624c2023d8d251c73709af. + + pAMDGPUEnt cannot be NULL anymore here now that we no longer call + AMDGPUFreeRec directly from AMDGPUPreInit_KMS. + + Reviewed-by: Alex Deucher + +commit 103b7285845b786929fb509083c57e074c48f9be +Author: Michel Dänzer +Date: Tue Feb 13 19:11:00 2018 +0100 + + Don't call AMDGPUFreeRec from AMDGPUPreInit_KMS + + If the latter fails, Xorg will call AMDGPUFreeScreen_KMS, which calls + the former. + + Reviewed-by: Alex Deucher + +commit a23d1ff700d486138c624c2023d8d251c73709af +Author: Michel Dänzer +Date: Tue Feb 13 18:57:48 2018 +0100 + + Guard against pAMDGPUEnt == NULL in AMDGPUFreeRec + + This can happen if PreInit fails early. + + Reviewed-by: Alex Deucher + +commit b3095710b7c240ddefce794033a77033806f639d +Author: Michel Dänzer +Date: Tue Feb 13 18:26:06 2018 +0100 + + Always use screen depth/bpp for KMS framebuffers + + DRI clients can use depth 32 pixmaps while the screen is depth 24, in + which case page flipping would fail. + + Reported-by: Mario Kleiner + (Ported from radeon commit 733f606dd6ca8350e6e7f0858bfff5454ddc98ed) + Reviewed-by: Alex Deucher + +commit 6aee5770fb913713bb1b9a1af8f0d0892a66f21a +Author: Hawking Zhang +Date: Sat Jul 16 00:09:21 2016 +0800 + + Add 30bit RGB color format support + + Signed-off-by: Hawking Zhang + + [ Michel Dänzer: + * Require Xorg >= 1.19.99.1 for depth 30, otherwise it can't work with glamor + * Update manpage, per radeon commit + 574bfab4bf1fcd95163a8f33cea2889189429d30 ] + Reviewed-by: Alex Deucher + +commit ec397f7d3bfc89a5d8b8429c96e1b9572f6ee47d +Author: Qiang Yu +Date: Thu Nov 2 14:00:23 2017 +0800 + + Disable gamma set when deep color + + gamma set is disabled in kernel driver when deep color. + Enable it will confuse the user. + + Signed-off-by: Qiang Yu + + [ Michel Dänzer: Align drmmode_pre_init change with radeon commit + 1f1d4b1fa7d4b22dd8553f7e71251bf17ca7a7b1 ] + Reviewed-by: Alex Deucher + +commit c849081e24377a81afc1a05f2a5634b1e60c67db +Author: Mario Kleiner +Date: Mon Feb 12 18:18:46 2018 +0100 + + Define per x-screen individual drmmode_crtc_funcs + + This allows to en-/disable some functions depending on individual screen + settings. + + Prep work for more efficient depth 30 support. + + Suggested-by: Michel Dänzer + Signed-off-by: Mario Kleiner + (Ported from radeon commit 21f6753462464acfd3c452393328c977a375ce26) + Reviewed-by: Alex Deucher + +commit 348023cea43e0474352df0c2aa6345eb0b25c2f7 +Author: Michel Dänzer +Date: Mon Jan 22 18:23:18 2018 +0100 + + Fix linear check in amdgpu_glamor_share_pixmap_backing + + We were incorrectly interpreting the tiling information. + + Reported-by: Marek Olšák + Acked-by: Alex Deucher + Reviewed-by: Marek Olšák + +commit 69e20839bfeb3ee0b0a732d72de0a32d6c5435fc +Author: Michel Dänzer +Date: Fri Dec 22 18:33:58 2017 +0100 + + Keep track of how many SW cursors are visible on each screen + + And use this to determine when we cannot use page flipping for DRI + clients. We previously did this based on whether the HW cursor cannot + be used on at least one CRTC, which had at least two issues: + + * Even while the HW cursor cannot be used, no SW cursor may actually be + visible (e.g. because all cursors are disabled), in which case we can + use page flipping for DRI clients anyway + * Even while the HW cursor can be used, there may be SW cursors visible + from non-core pointer devices, in which case we cannot use page + flipping for DRI clients anyway + + Reviewed-by: Alex Deucher + +commit dfccaa7043ccb157a1f8be7313123792bb7e7001 +Author: Michel Dänzer +Date: Fri Dec 22 17:09:07 2017 +0100 + + Move cursor related ScreenInit calls into AMDGPUCursorInit_KMS + + And bail if xf86_cursors_init fails. + + Reviewed-by: Alex Deucher + +commit 1d65ac395971571094df21ca0408d5972c6b56ec +Author: Michel Dänzer +Date: Wed Nov 15 18:22:27 2017 +0100 + + Add amdgpu_dirty_src_drawable helper + + Allows tidying up amdgpu_dirty_src_equals and redisplay_dirty slightly. + + v2: + * Different approach for amdgpu_dirty_master + + Acked-by: Alex Deucher + +commit 3a4f7422913093ed9e26b73ecd7f9e773478cb1e +Author: Michel Dänzer +Date: Wed Nov 8 18:44:25 2017 +0100 + + Use correct ScrnInfoPtr in redisplay_dirty + + We used the destination pixmap's screen for flushing glamor. But when + we are the master screen, the destination pixmap is from the slave + screen. + + Fixes crash when the slave screen isn't using glamor as well. + + Bugzilla: https://bugs.freedesktop.org/103613 + Fixes: e15b23663cd1 ("Adapt to PixmapDirtyUpdateRec::src being a + DrawablePtr") + Reviewed-by: Alex Deucher + +commit 875339c1064f666a2391b4a5a495eddda9407ab6 +Author: Daniel Martin +Date: Fri Oct 20 10:05:35 2017 +0200 + + modesetting: Check crtc before searching link-status property + + No need to lookup the link-status property if we don't have a crtc. + + Signed-off-by: Daniel Martin + (Ported from xserver commit 8d7f7e24261e68459e6f0a865e243473f65fe7ad) + Reviewed-by: Alex Deucher + +commit 91cd0ceab2cabba75e3552d0fbfcfc55f6d132ee +Author: Keith Packard +Date: Mon Sep 25 16:18:22 2017 -0700 + + modesetting: Skip no-longer-present connectors when resetting BAD links + + Outputs may have NULL mode_output (connector) pointers if the + connector disappears while the server is running. Skip these when + resetting outputs with BAD link status. + + (Ported from xserver commit 37f4e7651a2fd51efa613a08a1e705553be33e76) + Reviewed-by: Alex Deucher + +commit f6b39bcd45cb06976ba8a3600df77fc471c63995 +Author: Michel Dänzer +Date: Thu Oct 19 18:02:05 2017 +0200 + + Always call drmModeFreeProperty after drmModeGetProperty + + We were not doing so in all cases, leaking memory allocated by the + latter. + + Reviewed-by: Alex Deucher + +commit 84aad09f18fed6b52b0c073f0bbd675a6de07807 +Author: Michel Dänzer +Date: Thu Oct 19 17:54:13 2017 +0200 + + Call TimerFree for timer created in LeaveVT + + We were leaking the memory allocated by TimerSet. + + Reviewed-by: Alex Deucher + +commit cfccf4c4e7e5c73fe4040fabeb1b43283cf29b33 +Author: Michel Dänzer +Date: Thu Oct 19 17:41:44 2017 +0200 + + Free memory returned by xf86GetEntityInfo + + We were leaking it. + + Reviewed-by: Alex Deucher + +commit 9d84934309e4ccd9a43c73d958b8ff10ef2fc990 +Author: Michel Dänzer +Date: Thu Oct 19 17:28:53 2017 +0200 + + Free pAMDGPUEnt memory in AMDGPUFreeRec + + We were freeing it earlier but then still trying to access it in + AMDGPUFreeRec. + + Reviewed-by: Alex Deucher + +commit b67a2b62b20c17db7471f5bbea591ab55806cb29 +Author: Michel Dänzer +Date: Thu Oct 19 16:46:35 2017 +0200 + + Bail if there's a problem with ShadowFB + + If we hit a problem while setting up ShadowFB, just carrying on trying + to set up HW acceleration instead is unlikely to work. + + (Ported from radeon commit 7d435354099119234d443b07e2df1c7b9f97cf3c) + Reviewed-by: Alex Deucher + +commit 55396cc45c9aae3b1985ced1044b6b93064667c3 +Author: Michel Dänzer +Date: Thu Oct 19 16:20:03 2017 +0200 + + Fix VT switching with ShadowFB + + We were trying to call acceleration specific functions from LeaveVT. + Instead, memset the scanout buffer to all 0 in LeaveVT and allocate a + new one in EnterVT. + + Bugzilla: https://bugs.freedesktop.org/102948 + Fixes: c16ff42f927d ("Make all active CRTCs scan out an all-black + framebuffer in LeaveVT") + (Ported from radeon commit 34da04daec82077571558ac3fe1ec0c1203a01ad) + Reviewed-by: Alex Deucher + +commit 2f72be038d22c54620e436af30121dd89f79a003 +Author: Darren Salt +Date: Wed Sep 13 03:22:19 2017 +0100 + + Clarify when TearFree is automatically enabled. + + Reviewed-by: Michel Dänzer + +commit 2ce59dfa1c57655137fcc7ccdf15a341e51383ff +Author: Michel Dänzer +Date: Thu Oct 5 11:15:34 2017 +0200 + + Post-release version bump + +commit cf1767a9a58a3ec95622a7b8ca661113e2148da9 +Author: Michel Dänzer +Date: Fri Sep 8 16:19:48 2017 +0900 + + Bump version for 1.4.0 release + +commit 114de91e3548cd30b709b19f1447f597e71175e0 +Author: Michel Dänzer +Date: Thu Aug 31 17:59:08 2017 +0900 + + Require xserver >= 1.13 + + xserver 1.13.0 was released on September 6th, 2012, almost 5 years ago. + + This allows cleaning up a bunch of backwards compatibility code. + + (Ported from radeon commit 5cdd334b3402c2431deb3a87a8d04ef590da53ee) + Reviewed-by: Alex Deucher + +commit 456e5841233a8a79c23ad13649bbdaf8428b50f3 +Author: Michel Dänzer +Date: Wed Aug 30 17:17:49 2017 +0900 + + Use a timer for unreferencing the all-black FB + + The timer fires 1 second after LeaveVT. This gives the next DRM master + enough time to set up scanout of its own buffers. + + Fixes prolonged intermittent black screen when switching from Xorg to + e.g. the GDM Wayland mode login VT. + + Fixes: c16ff42f927d ("Make all active CRTCs scan out an all-black + framebuffer in LeaveVT") + (Ported from radeon commit 9d9c565c84601f4c6c73ad769f86491088683f7a) + Reviewed-by: Alex Deucher + +commit 639076efb06cdf13a211a8df1acb00c3908992b9 +Author: Michel Dänzer +Date: Tue Aug 29 17:24:18 2017 +0900 + + Remove drmmode_scanout_free + + Not used anymore. + + (Cherry picked from radeon commit e4a3df19d588a4310fcb889ef34e205d0e92e4d7) + Reviewed-by: Alex Deucher + +commit c16ff42f927df805619a5255bc383841474daff8 +Author: Michel Dänzer +Date: Tue Aug 29 17:06:58 2017 +0900 + + Make all active CRTCs scan out an all-black framebuffer in LeaveVT + + And destroy all other FBs. This is so that other DRM masters can only + get access to this all-black FB, not to any other FB we created, while + we're switched away and not DRM master. + + Fixes: b09fde0d81e0 ("Use reference counting for tracking KMS + framebuffer lifetimes") + (Ported from radeon commit 06a465484101f21e99d3a0a62fb03440bcaff93e) + Reviewed-by: Alex Deucher + +commit 19672625df0531c12acc05999ea09ea763e5db59 +Author: Michel Dänzer +Date: Tue Aug 29 17:05:19 2017 +0900 + + Create amdgpu_master_screen helper + + Preparatory, no functional change intended yet. + + (Ported from radeon commit 7f0cd68d1b0c132e32ae736371bce3e12ed33c7a) + Reviewed-by: Alex Deucher + +commit 6b376c8d73b20c92755527edb0527a233886e4eb +Author: Michel Dänzer +Date: Tue Aug 29 16:56:56 2017 +0900 + + Create amdgpu_pixmap_get_fb_ptr helper + + Preparatory, no functional change intended yet. + + Also inline amdgpu_pixmap_create_fb into amdgpu_pixmap_get_fb, since + there's only one call-site. + + (Ported from radeon commit 20f6b56fdb74d88086e8e094013fedbb14e50a24) + Reviewed-by: Alex Deucher + +commit 5af396253f6a03fa3f8f92e81da231dd581b50c9 +Author: Michel Dänzer +Date: Tue Aug 29 16:54:10 2017 +0900 + + Create drmmode_set_mode helper + + Preparatory, no functional change intended yet. + + (Ported from radeon commit 4bc992c31059eb50e22df4ebf5b92d08411f41ef) + Reviewed-by: Alex Deucher + +commit 1afd4a526c97e77ec882988e35d4977880b9d16c +Author: Michel Dänzer +Date: Tue Aug 29 16:46:33 2017 +0900 + + Create amdgpu_pixmap_clear helper + + Preparatory, no functional change intended yet. + + (Ported from radeon commit 3f6210ca2c8ef60d59efc8139151d3b9838bb875) + Reviewed-by: Alex Deucher + +commit 0de05767adb79d417284dae83e9a77857633fd80 +Author: Martin Peres +Date: Tue Aug 22 18:43:24 2017 +0900 + + modesetting: re-set the crtc's mode when link-status goes BAD + + Despite all the careful planning of the kernel, a link may become + insufficient to handle the currently-set mode. At this point, the + kernel should mark this particular configuration as being broken + and potentially prune the mode before setting the offending connector's + link-status to BAD and send the userspace a hotplug event. This may + happen right after a modeset or later on. + + Upon receiving a hot-plug event, we iterate through the connectors to + re-apply the currently-set mode on all the connectors that have a + link-status property set to BAD. The kernel may be able to get the + link to work by dropping to using a lower link bpp (with the same + display bpp). However, the modeset may fail if the kernel has pruned + the mode, so to make users aware of this problem a warning is outputed + in the logs to warn about having a potentially-black display. + + This patch does not modify the current behaviour of always propagating + the events to the randr clients. This allows desktop environments to + re-probe the connectors and select a new resolution based on the new + (currated) mode list if a mode disapeared. This behaviour is expected in + order to pass the Display Port compliance tests. + + (Ported from xserver commit bcee1b76aa0db8525b491485e90b8740763d7de6) + + [ Michel: Bump libdrm dependency to >= 2.4.78 for + DRM_MODE_LINK_STATUS_BAD ] + (Ported from radeon commit 0472a605e0ec8fec1892bbc3a84698b7ef9c5296) + Acked-by: Harry Wentland + Reviewed-by: Alex Deucher + +commit a2ee5c36c7d4fdcd067fdc1ef424be474f1ad2cb +Author: Michel Dänzer +Date: Fri Aug 18 17:24:45 2017 +0900 + + Make amdgpu_scanout_do_update take a PixmapPtr instead of a DrawablePtr + + All callers were already passing in a pixmap. + + This allows simplifying the rotated scanout case slightly. + + (Ported from radeon commit d822a0f47070374ad0c1a97b559bae27724dc52a) + Reviewed-by: Alex Deucher + +commit 828fb44cf953f78bd65d8f391bdabe2b1b3d53ae +Author: Michel Dänzer +Date: Fri Aug 18 17:22:12 2017 +0900 + + Use xorg_list_append for the DRM event list + + We were adding entries at the start of the list, i.e. the list was + ordered from most recently added to least recently added. However, the + corresponding DRM events are generally expected to arrive in the same + order as they are queued, which means that amdgpu_drm_queue_alloc would + generally have to traverse the whole list to find the entry + corresponding to an arrived event. Fix this by adding entries at the end + of the list. + + (Ported from radeon commit 3e24770b1b472fc15df56d06f5f04778c9db63dd) + Reviewed-by: Alex Deucher + +commit 22740f86d028cdd0f556543df7444516a86f923b +Author: Michel Dänzer +Date: Fri Aug 18 17:15:54 2017 +0900 + + Consolidate amdgpu_scanout_flip_abort/handler helpers + + While at it, make them use crtc->driver_private. + + (Ported from radeon commit 36ce7920136c0d723c9397a84e7dd5926a9c7943) + Reviewed-by: Alex Deucher + +commit 2692508ae8920ce62f488a9384444c1645964913 +Author: Michel Dänzer +Date: Fri Aug 18 17:12:15 2017 +0900 + + Always allow DRI2 page flipping with TearFree + + Even if TearFree is enabled for the CRTC we're synchronizing to. + + (Ported from radeon commit d314cbfb228bb4b8762714f98d0c114a8ee3f061) + Reviewed-by: Alex Deucher + +commit 8c82878c6ef1b984ba289383dc17152192c916ee +Author: Michel Dänzer +Date: Fri Aug 18 16:57:13 2017 +0900 + + Always allow Present page flipping with TearFree + + Even if TearFree is active for the the CRTC we're synchronizing to. In + that case, for Present flips synchronized to vertical blank, the other + scanout buffer is immediately synchronized and flipped to during the + target vertical blank period. For Present flips not synchronized to + vertical blank, we simply use the MSC and timestamp values of the last + vertical blank period for timing purposes, and let the normal TearFree + mechanism handle display updates. + + (Ported from radeon commit 4445765af5b97d0cfd10889fe6d6f58f2ce85659) + Reviewed-by: Alex Deucher + +commit d8e8f0107bb3e83a787917f4db16a7a54ce4768b +Author: Michel Dänzer +Date: Fri Aug 18 16:46:18 2017 +0900 + + Pass extents to amdgpu_scanout_do_update + + Preparation for following change, no functional change intended yet. + + (Ported from radeon commit 65e0c5ea1b4adff21d673dbf54af99704c429627) + Reviewed-by: Alex Deucher + +commit cc1dfb88eb6714fcdcb9b576a70f400a5d0d58ca +Author: Michel Dänzer +Date: Fri Aug 18 16:34:50 2017 +0900 + + Add source drawable parameter to amdgpu_scanout_do_update + + Preparation for following changes, no functional change intended yet. + + (Ported from radeon commit 1443270e52e8562bd8dc3603f301963bd4027cef) + Reviewed-by: Alex Deucher + +commit b82d1b6063a36facc9cdd0e0189fdb6932be94e2 +Author: Michel Dänzer +Date: Fri Aug 18 16:23:39 2017 +0900 + + Handle multiple "pending" Present flips + + The xserver Present code can submit a flip in response to notifying it + that a vblank event arrived. This can happen before the completion event + of the previous flip is processed. In that case, we were clearing the + drmmode_crtc->flip_pending field prematurely. + + Prevent this by only clearing drmmode_crtc->flip_pending when it matches + the framebuffer being scanned out since the flip whose completion event + we're processing. + + (Ported from radeon commit 7c10ee9c88378d773c0bcf651fdc5d9f2c6dc5e5) + Reviewed-by: Alex Deucher + +commit 2cbe7f2dff5eef159486f875b3ec67516c85862d +Author: Michel Dänzer +Date: Fri Aug 18 16:13:17 2017 +0900 + + Wait for pending flips synchronously before turning off a CRTC + + Allows removing drmmode_clear_pending_flip and the pending_dpms_mode + field and cleaning up the code considerably. + + (Ported from radeon commit e6d7dc2070f4d21a6900916bb70a31839112882c) + Reviewed-by: Alex Deucher + +commit e8d0bfab276d47338c337955b9d2fcbff3af225f +Author: Michel Dänzer +Date: Fri Aug 18 16:11:41 2017 +0900 + + Create drmmode_crtc_wait_pending_event helper macro + + Preparation for following change, no functional change intended yet. + + (Ported from radeon commit f87acdbfb1b0b6d2769764772a52ea8b81675e20) + Reviewed-by: Alex Deucher + +commit fd5b78b7edff2021111bca37642b8b508f0c3328 +Author: Michel Dänzer +Date: Fri Aug 18 15:12:35 2017 +0900 + + Create drmmode_wait_vblank helper + + Allows cleaning up the code considerably. + + (Ported from radeon commit 99f1d7a474af3683fe1a66f50c0bb8935478ff0a) + Reviewed-by: Alex Deucher + +commit 24b2718992e4bbc859c07e5b29b571f53314045d +Author: Michel Dänzer +Date: Fri Aug 18 15:03:52 2017 +0900 + + Pass reference CRTC to amdgpu_do_pageflip directly + + Simplifies the code slightly. + + (Ported from radeon commit 49cc61ab970ee28d4509b4e2dd0a57165136889f) + Reviewed-by: Alex Deucher + +commit 87a1f577f1de62f6b628bbe221cd8d551531e708 +Author: Michel Dänzer +Date: Fri Aug 18 14:56:10 2017 +0900 + + Remove drmmode_crtc->scanout_destroy[] array + + No longer necessary since we're reference counting framebuffers. + + (Ported from radeon commit 3f120fa1d5d921656a367751bc079e020e9ab105) + Reviewed-by: Alex Deucher + +commit e15b23663cd1a6f85394253b3fb566b55828b1c5 +Author: Michel Dänzer +Date: Tue Apr 18 18:21:24 2017 +0900 + + Adapt to PixmapDirtyUpdateRec::src being a DrawablePtr + +commit 9caa9dd9cc5eb9882c4bb85275bc318948dab71f +Author: Michel Dänzer +Date: Wed Aug 2 19:07:40 2017 +0900 + + Allow DRI page flipping when some CRTCs use separate scanout buffers + + As long as the CRTC we're synchronizing to doesn't. + + (Ported from radeon commit 5309bde0c4e28adf2b167191c6d7011a19e31eed) + Reviewed-by: Alex Deucher + +commit 4441c7c6dde2d71bd44c3031c5679ee3186ea8f9 +Author: Michel Dänzer +Date: Tue Aug 1 17:29:16 2017 +0900 + + Add drmmode_crtc_can_flip helper + + To reduce code duplication between DRI2 and Present. No functional + change intended yet. + + (Ported from radeon commit 9bc3eef74452d924f9101c024f66ad9b14c404c8) + Reviewed-by: Alex Deucher + +commit 3e08409344a2fd504429522507592f98555bec05 +Author: Michel Dänzer +Date: Wed Aug 2 19:03:40 2017 +0900 + + Use root window (pixmap) instead of screen pixmap for scanout updates + + Preparation for following changes, no functional change intended yet. + + (Ported from radeon commit c2d26890691ec105858f086b63170ad94c6f7f05) + Reviewed-by: Alex Deucher + +commit 35106fc0a948957cbb7e1e9649c89993a3d5c95c +Author: Michel Dänzer +Date: Thu Jul 27 15:22:02 2017 +0900 + + Only handle reflection in the driver with Xorg < 1.16 + + Xorg doesn't handle the hardware cursor correctly in that case for + rotation and general transforms, and we can't force the SW cursor. + + Fixes: ba2aa0a8c12a ("Handle rotation in the driver also with Xorg + 1.12-1.18") + (Cherry picked from radeon commit 7d7abf99b5441ddb04dbee99bc8fa7abc30d4c46) + Reviewed-by: Alex Deucher + +commit a47c0093338d80d84e7033ad15d051925d542ca0 +Author: Michel Dänzer +Date: Wed Jul 26 16:46:14 2017 +0900 + + autogen.sh: Pass -f to autoreconf + + To ensure that any existing copies of autotools files will be replaced + with the current versions. + + Acked-by: Alex Deucher + +commit 842bad4b951296ca25f47b50cb358e502bf30ebb +Author: Michel Dänzer +Date: Wed Jul 26 16:44:00 2017 +0900 + + Makefile.am: Set ACLOCAL_AMFLAGS = -I m4 + + Suggested by one of the tools called by autoreconf. + + Acked-by: Alex Deucher + +commit 227b399badaad9bbef0be5a776ce008d0d243449 +Author: Michel Dänzer +Date: Wed Jul 26 16:42:58 2017 +0900 + + Add AC_CONFIG_MACRO_DIRS([m4]) to configure.ac + + Suggested by one of the tools called by autoreconf. + + Acked-by: Alex Deucher + +commit 4d36306bcebb8548455a21eae6a7216a9439d9e4 +Author: Michel Dänzer +Date: Thu Jul 13 17:40:58 2017 +0900 + + If a TearFree flip fails, fall back to non-TearFree operation + + In order to avoid possible freeze / log file spam in that case. + + Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99769 + (Ported from radeon commit 94dc2b80f3ef0b2c17c20501d824fb0447d52e7a) + Reviewed-by: Alex Deucher + +commit 88147c1a532a9275eb57e14d8c11be41bf4c1fe1 +Author: Michel Dänzer +Date: Thu Jul 13 17:35:55 2017 +0900 + + Use drmmode_crtc->scanout_id instead of 0 to check for scanout buffer + + Preparation for following change, no functional change intended. + + (Ported from radeon commit aff267ee36cc6a703a532f91f82adc1ba1425ff3) + Reviewed-by: Alex Deucher + +commit e90721ba654d70db5eeb1cf552308c73151530ee +Author: Michel Dänzer +Date: Tue Jun 27 18:13:05 2017 +0900 + + Only call drmmode_scanout_free for non-GPU screens in LeaveVT + + Destroying the scanout buffers of GPU screens resulted in a crash when + switching back to the Xorg VT. + + Fixes: b10ecdbd89b0 ("Use drmmode_crtc_scanout_* helpers for RandR 1.4 + scanout pixmaps") + (Ported from radeon commit c9dd28cb0c9c3de676eadac61e727732510f6b9b) + Reviewed-by: Alex Deucher + +commit 1b6ff5fd9933c00ec1ec90dfc62e0b531927749b +Author: Michel Dänzer +Date: Thu Jun 22 16:27:32 2017 +0900 + + Improve drmmode_fb_reference debugging code + + If a reference count is <= 0, call FatalError with the call location + (in case it doesn't get resolved in the backtrace printed by + FatalError). + + Reviewed-by: Alex Deucher + +commit af7221e1c4d2dbdfd488eb0976a835584ea8441c +Author: Michel Dänzer +Date: Wed Jun 21 19:01:54 2017 +0900 + + Increase reference count of FB assigned to drmmode_crtc->flip_pending + + Otherwise, it could happen that we destroy the FB before the flip + completes, resulting in use-after-free and most likely a crash. + + Reviewed-by: Alex Deucher + +commit 184d50e008b9b31f4dda1425e255af068b6ab068 +Author: Adam Jackson +Date: Tue Jun 13 09:36:21 2017 -0400 + + modesetting: Validate the atom for enum properties + + The client could have said anything here, and if what they said doesn't + actually name an atom NameForAtom() will return NULL, and strcmp() will + be unhappy about that. + + [copied from xserver d4995a3936ae283b9080fdaa0905daa669ebacfc] + + Signed-off-by: Adam Jackson + Reviewed-and-Tested-by: Michel Dänzer + +commit bbdac40e2af472d37aa0f4f26df77a0b1b12a830 +Author: Michel Dänzer +Date: Thu Jun 8 10:46:26 2017 +0900 + + Improve AMDGPUPreInitAccel_KMS log messages + + Now it should always be clear in the log file why acceleration isn't + enabled. + + Reviewed-by: Alex Deucher + +commit b09fde0d81e07fbe96139289098b4d4b9f5e3c35 +Author: Michel Dänzer +Date: Thu May 11 19:04:11 2017 +0900 + + Use reference counting for tracking KMS framebuffer lifetimes + + References are held by the pixmaps corresponding to the FBs (so + the same KMS FB can be reused as long as the pixmap exists) and by the + CRTCs scanning out from them (so a KMS FB is only destroyed once it's + not being scanned out anymore, preventing intermittent black screens and + worse issues due to a CRTC turning off when it should be on). + + v2: + * Only increase reference count in drmmode_fb_reference if it was sane + before + * Make drmmode_fb_reference's indentation match the rest of + drmmode_display.h + + (Ported from radeon commit 55e513b978b2afc52b7cafc5bfcb0d1dc78d75f6) + Reviewed-by: Alex Deucher + +commit 000e5eaeb20607508c5c5371654615a30a8a1b0b +Author: Michel Dänzer +Date: Wed May 24 10:12:55 2017 +0900 + + Update URLs + + * Point to the amd-gfx mailing list + * Specify the component in all bugzilla URLs + * Use https:// for all HTML URLs + + (Ported from radeon commit d80d01a73c2eaba2e3649b7bc0a3541b3ff782f6) + Reviewed-by: Alex Deucher + +commit 2ea2d4d827f086098be198f110ca822ed2c290cd +Author: Michel Dänzer +Date: Fri May 12 19:01:18 2017 +0900 + + Simplify tracking of PRIME scanout pixmap + + Remember the shared pixmap passed to drmmode_set_scanout_pixmap for each + CRTC, and just compare against that. + + Fixes leaving stale entries in ScreenRec::pixmap_dirty_list under some + circumstances, which would usually result in use-after-free and a crash + down the line. + + (Ported from radeon commit 7dc68e26755466f9056f8c72195ab8690660693d) + Reviewed-by: Alex Deucher + +commit 8cb41b962eb06b9cb1b3a573a4087e4d89f733fb +Author: Eric Anholt +Date: Wed May 17 16:11:52 2017 +0900 + + Use plain glamor_egl_create_textured_screen(). + + Since 5064ffab631 (2014), glamor's implementation of _ext just drops the + back_pixmap arg, which we were passing NULL (the default) to anyway. + + Signed-off-by: Eric Anholt + Reviewed-by: Michel Dänzer + (Ported from radeon commit 2b7d77b90108911777a11ecaa63435552000c958) + +commit e900e48a11a93cde7d8d2d7bdb4a15ec705c56b1 +Author: Michel Dänzer +Date: Wed May 10 18:37:56 2017 +0900 + + Don't enable DRI3 without glamor + + Can't work currently. Fixes crash when trying to run a DRI3 client when + glamor isn't enabled. + + Bugzilla: https://bugs.freedesktop.org/100968 + + Reviewed-by: Alex Deucher + +commit 462ac3341e5bfbded9086d3d9043821d19352b3e +Author: Michel Dänzer +Date: Tue May 2 17:58:55 2017 +0900 + + Remove unused struct members from drmmode_display.h + + Reviewed-by: Alex Deucher + +commit 82fa615f38137add75f9cd4bb49c48dd88de916f +Author: Michel Dänzer +Date: Tue May 2 11:53:25 2017 +0900 + + Apply gamma correction to HW cursor + + The display hardware CLUT we're currently using for gamma correction + doesn't affect the HW cursor, so we have to apply it manually when + uploading the HW cursor data. + + This currently only works in depth 24/32. + + Reviewed-by: Alex Deucher + +commit 981bac185cfd74ae50dffc28f57cf34623a9595f +Author: Michel Dänzer +Date: Thu Mar 23 18:51:38 2017 +0900 + + Don't set modes before AMDGPUWindowExposures_oneshot is called + + The root window contents may be undefined before that, so we don't want + to show anything yet. + + Fixes a crash on startup with rotation and virtual resolution set in + xorg.conf. + + Bugzilla: https://bugs.freedesktop.org/100276 + Fixes: ad53635af150 ("Move DPMS check from amdgpu_scanout_do_update to + amdgpu_scanout_flip") + Reviewed-by: Alex Deucher + +commit 51e17041cb89806c934c5cf795207940a6aaccfe +Author: Daniel Stone +Date: Mon Apr 10 17:36:01 2017 +0900 + + Set correct DRM event context version + + DRM_EVENT_CONTEXT_VERSION is the latest context version supported by + whatever version of libdrm is present. We were blindly asserting we + supported whatever version that may be, even if we actually didn't. + + Set the version as 2, which should be bumped only with the appropriate + version checks. + + Signed-off-by: Daniel Stone + (Ported from xserver commit 0c8e6ed85810e96d84173a52d628863802a78d82) + v2: Remove second paragraph of commit log, we always initialize + page_flip_handler2 = NULL (Emil Velikov) + Reviewed-by: Emil Velikov + Reviewed-by: Alex Deucher # v1 + +commit 67d155e62f5e09af242b0181527c162576dae02e +Author: Nicholas Molloy +Date: Sun Mar 26 02:38:40 2017 +1300 + + Fix a misspelling of 'acceleration' in amdgpu_kms.c + + Reviewed-by: Edward O'Callaghan + Reviewed-by: Alex Deucher + Reviewed-by: Michel Dänzer + +commit 165b51447643ce37f391f25ca6aecb8d76fabaa3 +Author: Michel Dänzer +Date: Wed Mar 22 18:58:32 2017 +0900 + + manpage: Don't put "'" at the beginning of a line + + It caused the whole line to be dropped. + + Fixes: af0b24c1aca4 ("Allow toggling TearFree at runtime via output + property") + Reported-by: Andy Furniss + Reviewed-by: Alex Deucher + +commit 1b476d417f85fd1b97e813adbbf4970db07adf5c +Author: Michel Dänzer +Date: Thu Mar 23 18:03:56 2017 +0900 + + Post-release version bump + +commit 804e30e14e51f94403a0721ef2aae28f1fa9e9f2 +Author: Michel Dänzer +Date: Thu Mar 16 17:28:11 2017 +0900 + + Bump version for 1.3.0 release + +commit 3a8582944ed3fef1b75f8871489e6e19963e2ea6 +Author: Michel Dänzer +Date: Thu Mar 9 15:56:59 2017 +0900 + + Pass TRUE to drmmode_set_desired_modes the first time for GPU screens + + This is the only place we call drmmode_set_desired_modes for GPU screens + during server startup. Without this change, the display outputs of + secondary GPUs may stay on even while Xorg isn't using them. + + (Ported from radeon commit 9a71445094b728f3d78db8f6808b4782ee19a453) + Reviewed-by: Alex Deucher + +commit 82b15a4da156e18da4c8fc0093500c32b549e487 +Author: Michel Dänzer +Date: Thu Mar 9 15:47:24 2017 +0900 + + Skip some initialization steps for GPU screens + + Xorg doesn't use the following functionality of GPU screens, so don't + bother initializing it: + + * DRI page flipping + * DRI3 / Present / SYNC fences + * XVideo / XvMC + * Root window with background None + + (Ported from radeon commit 67ae5e00a748ad52cf92738d401afff2947b1891) + Reviewed-by: Alex Deucher + +commit fa85331f0ce27e16a9338516518433955133840e +Author: Michel Dänzer +Date: Tue Mar 7 18:02:29 2017 +0900 + + glamor: Use glamor_finish when available + + Reviewed-by: Alex Deucher + +commit 7884e38e94c2cbd6c205f556f2b31ad59b4089b4 +Author: Hans De Goede +Date: Tue Oct 18 16:48:40 2016 +0200 + + amdgpu_probe: Do not close server managed drm fds + + This fixes the xserver only seeing AMD/ATI devices supported by the amdgpu + driver, as by the time xf86-video-ati gets a chance to probe them, the + fd has been closed. + + This fixes e.g. Xorg not seeing the dGPU on a Lenovo Thinkpad E465 laptop + with a CARRIZO iGPU and a HAINAN dGPU. + + Signed-off-by: Hans de Goede + + v2: Rebased on top of new patch 1. + + Reviewed-by: Alex Deucher + +commit a2c360fa1d33d6a5aa64c396197e119ff77d1379 +Author: Michel Dänzer +Date: Mon Mar 6 18:59:23 2017 +0900 + + Refactor amdgpu_kernel_close_fd helper + + Preparation for the following change. + + Assign pAMDGPUEnt->fd = -1 instead of 0 when we're not using the file + descriptor anymore. + + Reviewed-by: Hans de Goede + Reviewed-by: Alex Deucher + +commit 947017194d07e32876a43ee0efc45fdc71385748 +Author: Michel Dänzer +Date: Fri Mar 3 17:59:19 2017 +0900 + + glamor: Don't flush in BlockHandler with Xorg >= 1.19 + + This was only necessary with older versions for driving the FBO cache + expiry mechanism. + + Reviewed-by: Alex Deucher + +commit 86907a5e4ce33154167b330570491f88218725d3 +Author: Michel Dänzer +Date: Mon Mar 6 18:23:41 2017 +0900 + + Only define transform_region for XF86_CRTC_VERSION >= 4 + + Not used with older versions of Xorg. Fixes warning in that case: + + ../../src/amdgpu_kms.c:328:1: warning: ‘transform_region’ defined but not used [-Wunused-function] + transform_region(RegionPtr region, struct pict_f_transform *transform, + ^~~~~~~~~~~~~~~~ + + Reviewed-by: Alex Deucher + +commit 8d2b7d1758e3fcac520a18a0684c073f0ac62389 +Author: Michel Dänzer +Date: Mon Mar 6 18:09:58 2017 +0900 + + Use local implementation of RegionDuplicate for older xserver + + It was only added in xserver 1.15. Fixes build against older xserver. + + Reported-by: Pali Rohár + (Ported from radeon commit 80cc892ee1ce54fad3cb7dd11bd9df18c359136f) + Reviewed-by: Alex Deucher + +commit cd73100114a18642d9c40f1df33cef8311e96a8b +Author: Michel Dänzer +Date: Mon Mar 6 18:07:19 2017 +0900 + + Don't use pScrn->is_gpu in AMDGPUCreateScreenResources_KMS + + Looks like this snuck in accidentally. + + Brings us back in line with the radeon driver, and fixes the build + against older versions of xserver which didn't have the is_gpu field + yet. + + Fixes: 6bab8fabb37e ("Remove info->dri2.drm_fd and info->drmmode->fd") + Reviewed-by: Alex Deucher + +commit 351baa89b9b0ecfb6c666af3a2d10c559a9224a9 +Author: Michel Dänzer +Date: Fri Mar 3 16:44:15 2017 +0900 + + Don't call amdgpu_glamor_flush in drmmode_copy_fb + + AMDGPUWindowExposures_oneshot takes care of it. + + (Ported from radeon commit d63881623f0686a66a2e3e3c1f84e496aa52ec6b) + Reviewed-by: Alex Deucher + +commit ad53635af150cda9b8da413be5a011d74f972ac7 +Author: Michel Dänzer +Date: Fri Mar 3 16:41:49 2017 +0900 + + Move DPMS check from amdgpu_scanout_do_update to amdgpu_scanout_flip + + When amdgpu_scanout_do_update is called from + drmmode_crtc_scanout_update, drmmode_crtc->pending_dpms_mode may still + be != DPMSModeOn, e.g. during server startup. + + Fixes intermittently showing garbage with TearFree enabled. + + (Ported from radeon commit cc9d6b7db9c2078be1e530a64af6d517c6a42024) + Reviewed-by: Alex Deucher + +commit 378bd05c849ad3092f138bdc8917d35d0b967389 +Author: Michel Dänzer +Date: Fri Mar 3 16:36:24 2017 +0900 + + Call drmmode_set_desired_modes from a WindowExposures hook + + This is the earliest opportunity where the root window contents are + guaranteed to be initialized, and prevents drmmode_set_mode_major from + getting called before drmmode_set_desired_modes via AMDGPUUnblank -> + drmmode_crtc_dpms. Also, in contrast to the BlockHandler hook, this is + called when running Xorg with -pogo. + + Fixes intermittently showing garbage on server startup or after server + reset. + + As a bonus, this avoids trouble due to higher layers (e.g. the tigervnc + Xorg module) calling AMDGPUBlockHandler_oneshot repeatedly even after + we set pScreen->BlockHandler = AMDGPUBlockHandler_KMS. + + Bugzilla: https://bugs.freedesktop.org/99457 + (Ported from radeon commits 0a12bf1085505017068dfdfd31d23133e51b45b9 and + f0e7948e1c0e984fc27f235f365639e9cf628291) + Reviewed-by: Alex Deucher + +commit 8d4d73e05ce34eb353daec7b2c0e7c844113c7de +Author: Michel Dänzer +Date: Fri Mar 3 16:34:16 2017 +0900 + + present: Flush before flipping + + This isn't necessary for DRI clients, but the Present extension can also + be used for presenting normal pixmaps rendered to via the X11 protocol. + + (Ported from radeon commit 9035b6abea557828e672ee455f0c84e43da0906f) + Reviewed-by: Alex Deucher + +commit 88725b68cad92418c9bb03cb7f20526ce238d64e +Author: Michel Dänzer +Date: Fri Mar 3 16:30:27 2017 +0900 + + present: Use async flip for unflip if possible + + In that case, unflip operations should finish faster in general. + + (Ported from radeon commit 0a4eb0e12f0c9c653cf4cea6fd62e1a507eb261c) + Reviewed-by: Alex Deucher + +commit b31489c086b4bc50c824e85fa26d97c0f43afb20 +Author: Michel Dänzer +Date: Fri Mar 3 16:28:41 2017 +0900 + + present: Also flush before using a flip to unflip + + Not doing so might result in intermittently scanning out stale contents + of the screen pixmap. + + (Ported from radeon commit 9a951a3e551db58ba50e7a594521ceac54d90615) + Reviewed-by: Alex Deucher + +commit f6a3c87c3097e8d5c1d2159bc90d6541a46ed8be +Author: Michel Dänzer +Date: Fri Mar 3 16:26:26 2017 +0900 + + present: Wait for GPU idle before setting modes for unflip + + To make sure the screen pixmap contents are up to date when it starts + being scanned out. + + (Ported from radeon commit 244d4bc7f8c8f6bc90f49556c0b9344c8aa40295) + Reviewed-by: Alex Deucher + +commit 012ffffb45119059f3610fb8fd6ae103186b3e3c +Author: Michel Dänzer +Date: Fri Mar 3 16:22:39 2017 +0900 + + present: Only call drmModeRmFB after setting modes for unflip + + Fixes display intermittently blanking when a modeset is used for unflip. + + (Ported from radeon commit 3ff29e5a14451916bc66b4e0028e9a317f0723f8) + Reviewed-by: Alex Deucher + +commit f4719bb473df897012f8830f46e99cb781d67b6f +Author: Michel Dänzer +Date: Fri Mar 3 16:19:11 2017 +0900 + + Use drmmode_crtc_scanout_free in drmmode_fini + + We were leaking drmmode_crtc->scanout_damage, which caused trouble on + server reset. Fixes server reset with active separate scanout pixmaps. + + (Cherry picked from radeon commit 0c29deb5a97d9a57e994cc0053c49ddf7aca6ecb) + Reviewed-by: Alex Deucher + +commit af0b24c1aca4cba2692d5aa410e63cb536478dbe +Author: Michel Dänzer +Date: Thu Mar 2 17:24:03 2017 +0900 + + Allow toggling TearFree at runtime via output property + + Option "TearFree" now sets the default value of the output property. + See the manpage update for details. + + TearFree is now enabled by default for outputs using rotation or other + RandR transforms, and for RandR 1.4 slave outputs. + + (Ported from radeon commit 58cd1600057e41aade0106d4acf78e23eac6e44f) + Reviewed-by: Alex Deucher + +commit 77853f02e5b879e7042f55c672cf2d8e6955309f +Author: Michel Dänzer +Date: Thu Mar 2 17:19:59 2017 +0900 + + Factor out drmmode_crtc_scanout_update helper + + Cleanup in preparation for following change, no functional change + intended. + + (Ported from radeon commit 305e2cbf335837a2ab6a24e9ff65815afe038296) + Reviewed-by: Alex Deucher + +commit d25cc3b2b3b2d257aea247b85fea405d7e84e5b1 +Author: Michel Dänzer +Date: Thu Mar 2 17:15:03 2017 +0900 + + Factor out amdgpu_prime_dirty_to_crtc helper + + Cleanup in preparation for the following change, no functional change + intended. + + (Ported from radeon commit 649644a88347a6d03de68f8c41db03a82deeb23b) + Reviewed-by: Alex Deucher + +commit a6d363008e2b55f0aa6151be1a99f01b97870e91 +Author: Michel Dänzer +Date: Thu Mar 2 17:13:06 2017 +0900 + + Don't destroy current FB if drmModeAddFB fails + + It would probably result in a black screen. + + (Ported from radeon commit 1351e48efe7a2c28eab447e16f36a00fbd02ae48) + Reviewed-by: Alex Deucher + +commit 53926db2355de0a324c205703a0377b498136f65 +Author: Michel Dänzer +Date: Thu Mar 2 17:08:19 2017 +0900 + + Fix flip event data leak if calloc or drmModeAddFB fails + + (Ported from radeon commit 481394e3c9f9f7d88bb66fe9ae8834c87952a8ab) + Reviewed-by: Alex Deucher + +commit 45a8ec6257c370eecf43b6b8010863e37b704872 +Author: Mihail Konev +Date: Thu Mar 2 17:04:36 2017 +0900 + + autogen: add default patch prefix + + (Ported from radeon commit 8e6a4e96b7b27559e186f71b5547abb0a80b96dd) + Reviewed-by: Alex Deucher + +commit ba2aa0a8c12a2bea1e8be01ca3134b518d4cb0f2 +Author: Michel Dänzer +Date: Thu Mar 2 16:55:38 2017 +0900 + + Handle rotation in the driver also with Xorg 1.12-1.18 + + We cannot use the HW cursor in that case, but in turn we get more + efficient and less teary updates of rotated outputs. + + (Ported from radeon commit f2bc882f1c1082bed9f496cfab6c8f07a76bc122) + Reviewed-by: Alex Deucher + +commit 7f3abf35a2e1225ffd6a777b23f6a7a6355c1691 +Author: Michel Dänzer +Date: Thu Mar 2 16:47:06 2017 +0900 + + Fold drmmode_crtc_scanout_allocate into drmmode_crtc_scanout_create + + Not used anywhere else anymore. + + (Ported from radeon commit ae921a3150f69c38b5b3c88a9e37d54fdf0d5093) + Reviewed-by: Alex Deucher + +commit 03c2db3c67bf5ad3c0744add9e0bb611b6cd3df7 +Author: Michel Dänzer +Date: Thu Mar 2 16:42:04 2017 +0900 + + Call drmmode_crtc_scanout_create in drmmode_crtc_shadow_allocate as well + + Calling drmmode_crtc_scanout_allocate in drmmode_crtc_shadow_allocate + resulted in drmmode_crtc_scanout_create called from + drmmode_crtc_shadow_create passing an uninitialized pitch value to + drmmode_create_bo_pixmap. + + Fixes issues such as failure to allocate the scanout pixmap or visual + corruption and GPUVM faults when attempting to use rotation with Xorg + <1.19. + + Bugzilla: https://bugs.freedesktop.org/99916 + Fixes: 5f7123808833 ("Pass pitch from drmmode_crtc_scanout_allocate to + drmmode_create_bo_pixmap") + (Ported from radeon commit 987a34adb319923ad36e2b47a26837248f187c3e) + Reviewed-by: Alex Deucher + +commit 49b092563cb3958911d28a006f155b4f4e38ed73 +Author: Emil Velikov +Date: Thu Jan 26 11:10:12 2017 +0900 + + autogen.sh: use quoted string variables + + Place quotes around the $srcdir, $ORIGDIR and $0 variables to prevent + fall-outs, when they contain space. + + Signed-off-by: Emil Velikov + Reviewed-by: Peter Hutterer + Signed-off-by: Peter Hutterer + +commit 457fcc5935c659aab5b88cf26d065180b47ed632 +Author: Peter Hutterer +Date: Thu Jan 26 11:09:07 2017 +0900 + + autogen.sh: use exec instead of waiting for configure to finish + + Syncs the invocation of configure with the one from the server. + + Signed-off-by: Peter Hutterer + Reviewed-by: Emil Velikov + +commit 5f712380883357d03c9934a753ef302e109aeb14 +Author: Michel Dänzer +Date: Fri Jan 6 17:42:25 2017 +0900 + + Pass pitch from drmmode_crtc_scanout_allocate to drmmode_create_bo_pixmap + + Mostly to align with radeon commit + ea30d856ba5e7274c8ea499293b8b0e721b8e082, but also gets rid of a + gbm_bo_get_stride call. + + Reviewed-by: Alex Deucher + +commit b5c189473dba2cffc9e4df310ce5c86ceca99a94 +Author: Jammy Zhou +Date: Tue Dec 13 12:32:39 2016 +0900 + + Use render node for DRI3 if available + + Signed-off-by: Jammy Zhou + Reviewed-by: Michel Dänzer + [ Second attempt, let's see if there's any fallout this time... ] + +commit edd276185d42962a13faf9ec9eeebc754ef284e7 +Author: Michel Dänzer +Date: Thu Dec 15 12:42:44 2016 +0900 + + Simplify drmmode_handle_uevents + + No functional change intended. + + Reviewed-by: Jim Qu + +commit 732cf4d3a248b288532ad0f3443da49e08dc7507 +Author: jimqu +Date: Tue Dec 13 16:33:26 2016 +0800 + + udev_monitor_receive_device() will block when hotplug monitor + + udev_monitor_receive_device() will block and wait for the event of udev + use select() to ensure that this will not block. + + Signed-off-by: JimQu + Reviewed-by: Michel Dänzer + +commit d60ea478cf2215ded7e1acf5817a0dae07e54026 +Author: Michel Dänzer +Date: Wed Nov 30 16:28:27 2016 +0900 + + Call amdgpu_drm_abort_entry on failure to flip to a scanout pixmap + + Fixes leaking the corresponding struct amdgpu_drm_queue list entry in + that case. + + (Ported from radeon commit e2942449171fe628a7726e59bcaab65e27d88563) + Reviewed-by: Alex Deucher + +commit aea70298ef0d53fc81aa1fd22c8566920a856223 +Author: Michel Dänzer +Date: Wed Nov 30 16:27:10 2016 +0900 + + Call ValidateGC after ChangeClip in amdgpu_sync_scanout_pixmaps + + The wrong order meant that the clipping region wasn't actually applied, + so it always copied the full contents from the other scanout pixmap. + + (Ported from radeon commit 14c3f59f5157885ad8f941f0bad6c0c5e3db12f8) + Reviewed-by: Alex Deucher + +commit 0f79c30619168c6845b143c6ed94ade307383068 +Author: Michel Dänzer +Date: Wed Nov 30 16:25:52 2016 +0900 + + Fix amdgpu_scanout_extents_intersect for GPU screens + + Fixes incorrect screen updates with TearFree enabled on PRIME slave + outputs which are not located at (0, 0). + + (Ported from radeon commit a995f5830916a0fee5126263d1bfe48632be3a15) + Reviewed-by: Alex Deucher + +commit 082b6b8ca1878f4b7ab0b25d16b85ba40748ac57 +Author: Michel Dänzer +Date: Wed Nov 30 16:21:28 2016 +0900 + + Take current scanout_id into account everywhere involved with TearFree + + Fixes various potential issues with TearFree enabled, e.g. outputs + freezing after display configuration changes. + + (Ported from radeon commit e543ef3a2fb304cbe3a965fb780632af2e4186f4) + Reviewed-by: Alex Deucher + +commit 82729b1f3b9d57f3002ac2689bfbf37ece0bc3f2 +Author: Michel Dänzer +Date: Mon Nov 28 17:47:17 2016 +0900 + + Add amdgpu_is_gpu_screen helper + + This will hopefully decrease the chance of accidentally breaking the + build against xserver < 1.13 in the future. + + (Ported from radeon commit f130b10e63f7526360b41aa0918b4940f63f662a) + Reviewed-by: Alex Deucher + +commit 7fe2a8ed67ef82916a1eb5b241c5a602a26e10b2 +Author: Michel Dänzer +Date: Tue Nov 22 16:50:59 2016 +0900 + + Don't install Flush/EventCallback for GPU screens + + Their purpose is to flush GPU rendering commands corresponding to damage + events, but there can be no damage events corresponding to GPU screen + rendering operations. + + (Ported from radeon commits 13c6bc5e382765fe567091e1c616c0a26eec04ca and + 487aa62a2a23b86e4ea4714fdfd465c9e513141f) + + v2: Squash in radeon fix for build against xserver < 1.13 + + Reviewed-by: Alex Deucher (v1) + +commit ff31320644b4d17b9b3f0abd612c99769d3d9643 +Author: Michel Dänzer +Date: Fri Nov 25 18:34:40 2016 +0900 + + Make libdrm >= 2.4.72 requirement explicit + + And drop compatibility code for older versions. + + Reviewed-by: Alex Deucher + +commit f9ba1e8fd48cd967a09c4e083b277505d08d3849 +Author: Michel Dänzer +Date: Tue Nov 22 16:30:59 2016 +0900 + + Use DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE/RELATIVE flags when available + + (Ported from radeon commits 1106b2f773ad0611c729b27f4c192a26b43ef1e7 + and 5fea5ef2f07eee4a0f94baab427010b936f1d4b4) + + v2: + * Squash in radeon fix for TearFree regression + * Remove preprocessor guards for compatibility with libdrm < 2.4.72 + (Emil Velikov) + + Reviewed-by: Alex Deucher + +commit e8aa4e7ea59f00d5527654b7181a05aab8c78928 +Author: Michel Dänzer +Date: Wed Oct 26 18:38:20 2016 +0900 + + Remove generated header files + + No longer used. + + Reviewed-by: Alex Deucher + +commit d69fd22b6d13052d667929a0e3db61829ce1396e +Author: Michel Dänzer +Date: Wed Oct 26 18:36:18 2016 +0900 + + Stop using AMDGPU(Unique)Chipsets + + Use libdrm_amdgpu's amdgpu_get_marketing_name for the chipset name, or + "Unknown AMD Radeon GPU" as a fallback. + + v2: Require libdrm_amdgpu >= 2.4.72 for amdgpu_get_marketing_name + + Reviewed-by: Alex Deucher (v1) + +commit 8a5ff54af32a75ae56d3369a828a50ae28dd1acd +Author: Michel Dänzer +Date: Wed Oct 26 18:09:18 2016 +0900 + + Stop using AMDGPUPciChipsets + + Not actually used by Xorg. + + Reviewed-by: Alex Deucher + +commit 298eaf58a57efa6acc53d374eea239b6bb55c0f8 +Author: Michel Dänzer +Date: Wed Oct 26 18:05:58 2016 +0900 + + Remove amdpciids.h + + Not useful anymore. + + Reviewed-by: Alex Deucher + +commit a0881d55fe80d639d31cdfeadd6014322c037791 +Author: Michel Dänzer +Date: Wed Oct 26 18:02:39 2016 +0900 + + Stop using generated amdgpu_device_match + + Just match on PCI device ID 0x1002. + + Reviewed-by: Alex Deucher + +commit 40ddc52b2ae32b17ef7eea1602fdf59b63f06f17 +Author: Michel Dänzer +Date: Wed Oct 26 17:42:36 2016 +0900 + + Use family information from libdrm_amdgpu / kernel + + Reviewed-by: Alex Deucher + +commit 5c9d1c5097e326c69f1be4427c62a0d348e8a4a6 +Author: Michel Dänzer +Date: Wed Oct 26 17:32:56 2016 +0900 + + Move struct amdgpu_gpu_info out of amdgpu_get_tile_config + + Preparation for the following change, no functional change intended. + + Reviewed-by: Alex Deucher + +commit adf7dabdf9c8acd674190e25050b0885a05d0e92 +Author: Michel Dänzer +Date: Mon Nov 21 17:50:22 2016 +0900 + + Post-release version bump + +commit a00032050873fc99f3ceaa3293468dad1d94d4b1 +Author: Michel Dänzer +Date: Thu Nov 17 15:17:10 2016 +0900 + + Bump version for 1.2.0 release + +commit a446b3af9b055056e9fb0f37069b08b979eba277 +Author: Michel Dänzer +Date: Thu Nov 17 15:13:59 2016 +0900 + + manpage updates for the 1.2.0 release + + Option "TearFree" is now effective for arbitrary transforms as well. + + Point to the amd-gfx mailing list instead of xorg-driver-ati. + +commit 24e36c7044a24294d5709c0306efacc8de6df072 +Author: Michel Dänzer +Date: Thu Nov 10 12:30:10 2016 +0900 + + Use pAMDGPUEnt to find both screens of a GPU in amdgpu_mode_hotplug + + Fixes misbehaviour when hotplugging DisplayPort connectors on secondary + GPUs. + + Fixes: 14606e127f4b ("Handle Zaphod mode correctly in amdgpu_mode_hotplug") + Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98626 + (Ported from radeon commit 9760ef33cba5795eddeda4d5c2fcbe2dcce21689) + Reviewed-by: Alex Deucher + +commit 257be5b0853814a557a5337878a4311acbc89856 +Author: Michel Dänzer +Date: Thu Nov 10 12:28:03 2016 +0900 + + Refactor amdgpu_mode_hotplug + + Preparation for the next change, no functional change intended. + + (Cherry picked from radeon commit 35bec4937d89b48a79acfcb4f814b7370cb631b2) + Reviewed-by: Alex Deucher + +commit 1352a1d2f78cb0433d421ef86bfce2a5a1646807 +Author: Michel Dänzer +Date: Wed Nov 2 12:35:55 2016 +0900 + + Check Xorg version at runtime instead of build time in two places + + This means that all possible paths can be handled as intended, no matter + which Xorg version the driver happened to be compiled against. + + (Ported from radeon commit 350a2645a1b127227ff294c0b62d20000d0fd48a) + Reviewed-by: Alex Deucher + +commit 5da43c5da8adc139d57d89975a52eef91a5595e1 +Author: Michel Dänzer +Date: Tue Nov 1 16:01:24 2016 +0900 + + Require xserver 1.10 or newer + + 1.10.0 was released in February 2011. + + We've been accidentally requiring 1.10 or newer since c7d27c94cb65 ("Keep + track of damage event related flushes per-client"). + + (Ported from radeon commit 5df36de39952c3a26cb2fbc125f298139a9dd5bc) + Reviewed-by: Alex Deucher + +commit dd4a740714e481b09312a04883aa6e0f5200ca81 +Author: Michel Dänzer +Date: Thu Oct 27 11:22:36 2016 +0900 + + present: Check tiling info for flips + + The kernel driver doesn't handle flipping between buffers with + different tiling parameters correctly. + + Fixes display corruption with fullscreen apps using different tiling + modes (e.g. due to R600_DEBUG=notiling or R600_DEBUG=no2d) via DRI3. + + Reviewed-by: Alex Deucher + +commit 3c1f4386ba7d0b6c16bdd2b2178f978f2f154ba8 +Author: Michel Dänzer +Date: Wed Oct 26 16:19:01 2016 +0900 + + Consume all available udev events at once + + We get multiple udev events for actions like docking a laptop into its + station or plugging a monitor to the station. By consuming as many + events as we can, we reduce the number of output re-evalutions. + + It depends on the timing how many events can be consumed at once. + + (Inspired by xserver commit 363f4273dd4aec3e26cc57ecb6c20f27e6c813d8) + (Ported from radeon commit 22b5ce9548393ba2ff73ee234ecd82eeaf0ef6c4) + Reviewed-by: Alex Deucher + +commit c87dff3257e797cfd80d208c9a612b21978ff4eb +Author: Hans de Goede +Date: Wed Oct 26 16:17:04 2016 +0900 + + PRIME: Fix swapping of provider sink / source capabilities + + When a card has import capability it can be an offload _sink_, not a + source and vice versa for export capability. + + This went unnoticed sofar because most gpus have both import and export + capability. + + Signed-off-by: Hans de Goede + (Ported from xserver commit 94a1c77259ce39ba59ad87615df39b570ffab435) + (Ported from radeon commit 82d3c8f5500d2a6fb1495e217a0b79c396f1534c) + Reviewed-by: Alex Deucher + +commit 9c4416422f2d07dbfa7c0b18beb1353f122fc1a1 +Author: Michel Dänzer +Date: Wed Oct 26 16:15:42 2016 +0900 + + Always call PixmapStopDirtyTracking in drmmode_set_scanout_pixmap + + Otherwise, we may leak screen->pixmap_dirty_list entries if + drmmode_set_scanout_pixmap is called repatedly with ppix != NULL, which + can happen from RRReplaceScanoutPixmap. + + (Inspired by xserver commit b773a9c8126222e5fed2904d012fbf917a9f22fd) + (Ported from radeon commit 6c940446ddadf418ee4959e46fa552b6c1cf6704) + Reviewed-by: Alex Deucher + +commit 0a91f11c03400e3f92a2b048505f39e7de7e87fc +Author: Michel Dänzer +Date: Wed Oct 26 16:14:45 2016 +0900 + + Don't rely on randr_crtc->scanout_pixmap in drmmode_set_scanout_pixmap + + RRReplaceScanoutPixmap may set randr_crtc->scanout_pixmap = NULL before + we get here. + + (Inspired by xserver commit f4c37eeee7953df1fe0e3196eda452acf0078e61) + v2: Always return TRUE in the if (!ppix) block. + (Cherry picked from radeon commit 61df12e2377cbb19a19ca9d5624df8959822da9f) + Reviewed-by: Alex Deucher + +commit b37f4774880bfd0cbe50273ac0d9c539d81995f9 +Author: Michel Dänzer +Date: Tue Oct 25 16:30:46 2016 +0900 + + Sayōnara, AM_MAINTAINER_MODE! + + If --enable-maintainer-mode got lost from config.status for any reason, + builds would fail in mysterious ways after changing between different + Git commits. + + There are more reasons for dropping it in the automake manual: + + https://www.gnu.org/software/automake/manual/html_node/maintainer_002dmode.html + + I'm not aware of any reason why --disable-maintainer-mode would ever be + useful with this project. + + Reviewed-by: Alex Deucher + (Cherry picked from radeon commit 49cf3b5032a7ce40afe514b7092440e3e19e05aa) + +commit c8d9ad0e188d3da3a35006a00536d61e23305830 +Author: Michel Dänzer +Date: Wed Oct 19 18:16:47 2016 +0900 + + Order unique chipsets according to first appearance in ati_pciids.csv + + Instead of lexically. This makes it more likely for similar generations + to be close to each other in the list of unique chipsets. + + (Ported from radeon commit 1ce1b1656acc6211deb2091ff7f28d51b6daf86b, + plus change $numunique++ => ++$numunique to fix OLAND getting listed + twice) + + Reviewed-by: Alex Deucher + +commit 7cc04035c55788261cda89a915c433c2add6cad9 +Author: Michel Dänzer +Date: Wed Sep 28 15:59:22 2016 +0900 + + Enable HW cursor support with PRIME slave output & Xorg > 1.18.99.901 + + Supported since Xorg 1.18.99.2, but buggy until 1.18.99.901. + + Reviewed-by: Alex Deucher + +commit d42773eb45baff5933730e26878a0b45fcf07b65 +Author: Michel Dänzer +Date: Wed Sep 28 18:17:53 2016 +0900 + + Rotate and reflect cursor hotspot position for drmModeSetCursor2 + + We were always passing the hotspot position in the X screen coordinate + space, but drmModeSetCursor2 needs it in the CRTC coordinate space. The + wrong hotspot position would cause the kernel driver to adjust the + HW cursor position incorrectly when the hotspot position changed. + + Reviewed-by: Alex Deucher + +commit bdee9f4dd4f21015e7696e06c4b485ab2b3a16dc +Author: Michel Dänzer +Date: Wed Aug 31 16:46:56 2016 +0900 + + Add support for ScreenPtr::SyncSharedPixmap + + This allows deferring shared pixmap updates between different drivers. + + (Ported from radeon commit 53be26b00e83f871f0afd39caa5a7a1d6ec4aea1) + Reviewed-by: Alex Deucher + +commit 97d7386caf7ba53d2cf398b8a9bb65d0a2a4770a +Author: Michel Dänzer +Date: Fri Sep 16 16:36:23 2016 +0900 + + Untangle HAS_XORG_CONF_DIR / --with-xorg-conf-dir lines in configure.ac + + $sysconfigdir used to be part of the default --with-xorg-conf-dir value, + but it no longer is. + + Reviewed-by: Alex Deucher + +commit aa8a3fa2468094cd37959179e8417ba7ba0a326c +Author: Michel Dänzer +Date: Fri Sep 16 15:59:16 2016 +0900 + + Fix handling of configure option --with-xorg-conf-dir + + There were two problems: + + I accidentally changed the variable name in the AC_ARG_WITH stanza from + configdir to xorgconfigdir, so specifying --with-xorg-conf-dir wouldn't + work correctly. Fix this back to configdir. + + If neither --with-xorg-conf-dir nor --prefix is specified on the command + line, the $prefix variable doesn't contain "/usr/local" (the default + prefix) yet at this point but "NONE". So make install would attempt to + install 10-amdgpu.conf in ${DESTDIR}NONE/share/X11/xorg.conf.d/ . Fix + this by leaving ${prefix} verbatim in the default value, to be resolved + by make. + + Also print the configdir value along with the values of other similar + configuration variables. + + Reported-by: Timo Aaltonen + Reviewed-by: Julien Cristau + +commit cd3acb75718dfd42dd25d58b4e7bd4db27b659d8 +Author: Michel Dänzer +Date: Wed Sep 14 18:33:42 2016 +0900 + + Use --with-xorg-conf-dir=$prefix/share/X11/xorg.conf.d by default + + We were using the result of `pkg-config --variable=sysconfigdir + xorg-server` before, which may not be inside $prefix, so make install + might fail for 10-amdgpu.conf . + + Fixes make distcheck in that case, and possibly also 10-amdgpu.conf + seemingly missing from some distribution packages. + + This matches what some (though not all) input drivers are doing for their + xorg.conf.d snippets. + +commit 0f8df8584ad61a3e47fe303b34cd7b0c4ed08bb0 +Author: Michel Dänzer +Date: Thu Sep 8 18:14:49 2016 +0900 + + Make TearFree effective with PRIME slave scanout + + TearFree can now prevent tearing with any possible display + configuration. + + Note that there may still be inter-GPU tearing if the primary GPU uses + a different driver. + + (Ported from radeon commit 38797a33117222dadbc89e5f21ed8cd5deef9bea) + Reviewed-by: Alex Deucher + +commit d6feed2cd78fe879aba4860a6d9bc2e388b9f135 +Author: Michel Dänzer +Date: Thu Sep 8 17:56:24 2016 +0900 + + Synchronize scanout pixmaps for TearFree + + Copy the damaged areas which are still valid in the other scanout pixmap + from there, then only copy the remaining damaged area from the screen + pixmap. + + This is slightly more efficient (only needs one Damage record instead of + two, and only needs to copy each screen update across PCIe once with + ShadowPrimary and a discrete GPU), and will be significantly more + efficient for PRIME with the following change. + + (Ported from radeon commit eda1f3df6aaed683036369fe8820da4dac3c2ae2) + Reviewed-by: Alex Deucher + +commit 4927b84ec84bc0cb5055686cca6be54390f82803 +Author: Michel Dänzer +Date: Thu Sep 8 17:52:25 2016 +0900 + + Move up amdgpu_scanout_extents_intersect + + Will be needed higher up by the following changes. No functional change. + + (Ported from radeon commit 2f6e5fb15f1a9ce523c85550e493f8bda9d0c00f) + Reviewed-by: Alex Deucher + +commit 1c725f63961746258f6138b47037ec18bf508d78 +Author: Michel Dänzer +Date: Thu Sep 8 17:45:32 2016 +0900 + + Factor out transform_region helper + + (Ported from radeon commit 5a57005178fc13b6f7e513458ca6dae72a3e5783) + Reviewed-by: Alex Deucher + +commit c92842764f95fa09e145d81f80e9fa39ea8c453c +Author: Michel Dänzer +Date: Thu Sep 8 17:26:18 2016 +0900 + + Only copy from screen pixmap to shared pixmap on demand for slave scanout + + Only copy once for each time we update the corresponding scanout pixmap. + This can significantly reduce the bandwidth usage when there are + frequent updates to the screen pixmap. + + This initial implementation only works when both the master and slave + screens use this driver. + + (Ported from radeon commit 99232f64db52812a843cd616d263d3a6b90eef3d) + Reviewed-by: Alex Deucher + +commit 61ceefe17fe9e6ffbaaad0e216b2bd37fd39f47d +Author: Michel Dänzer +Date: Thu Sep 8 17:15:03 2016 +0900 + + Track damage accurately for RandR 1.4 slave scanout + + This further reduces the PCIe bandwidth usage. + + (Ported from radeon commit b0867063abb197b9134166706d99fcbe5f204bb5, + plus leak fix from 5a57005178fc13b6f7e513458ca6dae72a3e5783) + Reviewed-by: Alex Deucher + +commit 6d31fb124d4418e64c949bde9ed1facf95967762 +Author: Michel Dänzer +Date: Thu Sep 8 17:04:05 2016 +0900 + + Handle RandR 1.4 slave dirty updates via amdgpu_drm_queue + + This reduces PCIe bandwidth usage and tearing. + + (Ported from radeon commit ad0a0656dd0e74683e6d7789decba827aa29c221) + Reviewed-by: Alex Deucher + +commit b10ecdbd89b0a60a990c78c3e53bab6c4c96fe9f +Author: Michel Dänzer +Date: Thu Sep 8 16:48:59 2016 +0900 + + Use drmmode_crtc_scanout_* helpers for RandR 1.4 scanout pixmaps + + This should allow using multiple CRTCs via RandR 1.4 even with xserver + < 1.17. It also simplifies the code a little, and paves the way for + following changes. + + (Ported from radeon commits 4cfa4615f79f64062e5e771cd45dd7048f48b4f6 + and a92c27484703abc7c410b6ae0e4b8d1efbbb8e6f) + Reviewed-by: Alex Deucher + +commit 9565981f751b0884cbfa885b8f3af3d41a965a2b +Author: Michel Dänzer +Date: Wed Sep 7 18:49:54 2016 +0900 + + Wait for pending flips to complete before turning off an output or CRTC + + At least with older kernels, the flip may never complete otherwise, + which can result in us hanging in drmmode_set_mode_major. + + Fixes: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-ati/+bug/1577170 + + (Ported from radeon commits 9090309e057dc703d1a5bffd88e6cae14108cfc3, + e520ce0ec0adf91ddce5c932d4b3f9477fd49304, + a36fdaff40d5b4795a1400c348a80eee94892212 and + 4bd2d01552f18153afa03a8947b22eebf3d67c6b) + Reviewed-by: Alex Deucher + +commit c7d27c94cb656899746898c2e55407c3e3d7cdc8 +Author: Michel Dänzer +Date: Wed Sep 7 18:28:23 2016 +0900 + + Keep track of damage event related flushes per-client + + This further reduces the compositing slowdown due to flushing overhead, + by only flushing when the X server actually sends XDamageNotify events + to a client, and there hasn't been a flush yet in the meantime. + + (Ported from radeon commit 121a6de72da5fcf9a32408eff36b2235f3dfbcfe) + Reviewed-by: Alex Deucher + +commit 58773d1945cfa8155d8a6c5eb3f95097535604ef +Author: Michel Dänzer +Date: Wed Sep 7 18:14:10 2016 +0900 + + Use EventCallback to avoid flushing every time in the FlushCallback + + We only need to flush for XDamageNotify events. + + Significantly reduces compositing slowdown due to flushing overhead, in + particular with glamor. + + (Ported from radeon commit 9a1afbf61fbb2827c86bd86d295fa0848980d60b) + Reviewed-by: Alex Deucher + +commit d166d04f6951f6a48d7d5ce5d31bba857fe0cb06 +Author: Michel Dänzer +Date: Wed Sep 7 18:03:05 2016 +0900 + + Add explicit AMDGPU_DRM_QUEUE_ERROR define + + Should make the amdgpu_drm_queue_alloc error handling clearer, and gets + rid of a compile warning about it returning NULL. + + (Ported from radeon commit a37af701768b12d86868a831a79f1e02ee4968cf) + Reviewed-by: Alex Deucher + +commit 6a1ba044c2b71081e6060d0c096917d6238f2145 +Author: Michel Dänzer +Date: Mon Aug 29 16:43:59 2016 +0900 + + Only list each unique chipset family once in the log file + + Acked-by: Christian König + Reviewed-by: Alex Deucher + +commit 7d050d15d49ef25e86e7abe88dafb52370715640 +Author: Michel Dänzer +Date: Mon Aug 29 16:13:20 2016 +0900 + + Add missing Kaveri PCI ID (1318) + + Found by comparing src/pcidb/ati_pciids.csv with xf86-video-ati. + + Reviewed-by: Alex Deucher + +commit aa5492660958e359bdc2107cba9a211ff988c90e +Author: Michel Dänzer +Date: Mon Aug 29 15:52:48 2016 +0900 + + Add Mullins PCI IDs + + Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97472 + Reviewed-by: Alex Deucher + +commit 73c8dc000ad6b2b53ba3aa7155f5e8f6b55623b7 +Author: Qiang Yu +Date: Mon Aug 22 19:13:26 2016 +0800 + + DRI2: Fix amdgpu_dri2_exchange_buffers width/height copy'n'paste error + + Signed-off-by: Qiang Yu + Reviewed-by: Alex Deucher + Reviewed-by: Michel Dänzer + +commit 5a4d3267ac3823fe58b51b0b9075b82375d7180c +Author: Michel Dänzer +Date: Wed Aug 17 18:57:01 2016 +0900 + + Remove unused lut_r/g/b arrays from drmmode_crtc_private_rec + + Fixes: 1091f28e1fa2 ("Remove drmmode_load_palette") + Reviewed-by: Alex Deucher + +commit c4364520691d18961f0a6b77071baeeffaa80a11 +Author: Marek Olšák +Date: Fri Aug 19 12:42:38 2016 +0200 + + Fix cursor size for SI + + Reviewed-by: Michel Dänzer + Acked-by: Edward O'Callaghan + +commit 2eb5d77b841e55e7328df4b95c0d41fec30ce10f +Author: Ronie Salgado +Date: Thu Feb 11 03:00:14 2016 -0300 + + Add SI PCI IDs + + Reviewed-by: Michel Dänzer + +commit abd1a7901c95e4bc78415cf1b7923623b9177152 +Author: Michel Dänzer +Date: Wed Jun 29 17:54:26 2016 +0900 + + DRI2: Add interpolated_vblanks in amdgpu_dri2_get_crtc_msc + + We need that in amdgpu_dri2_drawable_crtc as well for priv->vblank_delta + to work as intended. + + amdgpu_dri2_get_msc was already doing this. + + Fixes hangs in some cases when using VDPAU via DRI2 and moving the + window between CRTCs. + + Reviewed-by: Alex Deucher + +commit 978242977e5dc905e1d5a46b1b0d34b356c7af26 +Author: Qiang Yu +Date: Wed Jul 13 19:25:12 2016 +0800 + + Fix amdgpu_mode_hotplug crash on multi GPU platform. + + On multi GPU platform, some screen is created by other GPU DDX. + + Signed-off-by: Qiang Yu + Reviewed-by: Michel Dänzer + +commit fdd1209e26128b3e894f2867fac3a1b08fe1f29e +Author: Keith Packard +Date: Tue Jul 19 09:16:32 2016 -0700 + + Use NotifyFd for drm fd + + NotifyFd is available after API 22, and must be used after API 23. + + Signed-off-by: Keith Packard + +commit 17c0cf49746a20fb25610c24a40c441f88c08365 +Author: Adam Jackson +Date: Tue Jul 19 10:03:56 2016 -0400 + + Adapt Block/WakeupHandler signature for ABI 23 + + Signed-off-by: Adam Jackson + +commit b5e2b964b7884c205a7c0fa578e05e867c176fcc +Author: Michel Dänzer +Date: Wed Jul 6 17:46:56 2016 +0900 + + Only use RandR APIs if RandR is enabled + + Fixes crash with Xinerama enabled, which disables RandR. + + Fixes: https://bugs.debian.org/827984 + + (Ported from radeon commit 3be841d0ae7d505cef325993205b12d15e98dba9) + Reviewed-by: Alex Deucher + +commit 84496ebc89a9973347c774c13ff6f4667fcdbe69 +Author: Michel Dänzer +Date: Wed Jul 6 17:43:36 2016 +0900 + + Add .editorconfig file + + Basically a conversion from .dir-locals.el. EditorConfig supports many + more editors and IDEs. + + (Ported from radeon commit aa07b365d7b0610411e118f105e49daff5f5a5cf) + Reviewed-by: Alex Deucher + +commit a576430526cbc404de64b30e1377a356644e8024 +Author: Michel Dänzer +Date: Fri Jun 24 16:28:25 2016 +0900 + + Clear damage in amdgpu_scanout_update if it doesn't intersect the CRTC + + There's no need to test that same damage again. + + Reviewed-by: Alex Deucher + +commit ede7f2bcae63be65e05e3029bfe7c742e5978932 +Author: Michel Dänzer +Date: Fri Jun 24 16:19:15 2016 +0900 + + Remove w/h parameters from amdgpu_scanout_extents_intersect + + We can use the dimensions of the CRTC's mode instead. + + Reviewed-by: Alex Deucher + +commit bf000ea7ef91f5ecb59fc3c1ab8ed9eddcc0841d +Author: Michel Dänzer +Date: Thu Jun 23 17:28:16 2016 +0900 + + Make the dedicated scanout mechanism work with arbitrary transforms v2 + + This makes TearFree work with arbitrary transforms, and makes transforms + work better even without TearFree, with xserver >= 1.12. + + v2: Preserve clamping of transformed damage extents to CRTC boundaries. + + Reviewed-by: Alex Deucher + +commit d96dabc71b1b32dc4b422a9633cdd4e0e95da052 +Author: Michel Dänzer +Date: Thu Jun 23 16:27:45 2016 +0900 + + Destroy all dedicated scanout buffers during CloseScreen + + Fixes leaking active scanout buffers across a server reset, which also + fixes server reset with glamor and active scanout buffers. + + Reviewed-by: Alex Deucher + +commit 1091f28e1fa239ee1a973d84a8376fa4a95d7247 +Author: Michel Dänzer +Date: Thu Jun 23 12:47:04 2016 +0900 + + Remove drmmode_load_palette + + Not used by any supported version of xserver. + + Reviewed-by: Alex Deucher + +commit 4d506c23c9a628204fa23607931557b07ada3e31 +Author: Michel Dänzer +Date: Wed Jun 22 17:16:24 2016 +0900 + + present: Separate checks for flips vs unflips v2 + + All unflip checks apply to flips as well, but not vice versa. + + v2: Add comment above amdgpu_present_check_unflip (Alex) + Reviewed-by: Alex Deucher + +commit decabd574f90d3df397c80ec931b3fde8a4afb49 +Author: Michel Dänzer +Date: Wed Jun 22 17:43:41 2016 +0900 + + dri2: Don't allow flipping when using a dedicated scanout buffer + + Fixes issues when mixing rotation and page flipping with current xserver + Git master. + + Reviewed-by: Alex Deucher + +commit 3ed28ce7cd26f89969617ba901ff253091d0d469 +Author: Michel Dänzer +Date: Wed Jun 22 16:54:01 2016 +0900 + + present: Don't allow flipping when using a dedicated scanout buffer + + Fixes issues when mixing rotation and page flipping with current xserver + Git master. + + Reviewed-by: Alex Deucher + +commit 9c3324715fd395fd486ea341654d78f4f298b97f +Author: Michel Dänzer +Date: Wed Jun 22 16:12:32 2016 +0900 + + Make sure drmmode_crtc->scanout[] are destroyed when not needed + + We failed to do this when going back to scanning out directly from the + screen pixmap. + + As a bonus, since we now destroy drmmode_crtc->scanout[] after setting + the new scanout buffer, we may avoid the CRTC turning off intermittently + in this case. + + Reviewed-by: Alex Deucher + +commit 3bce0519a4008cf87c0e31a7a579e10f5dcdd2f3 +Author: Michel Dänzer +Date: Wed Jun 22 16:19:07 2016 +0900 + + Simplify drmmode_set_mode_major error handling + + Initialize ret = FALSE and only set it to TRUE when we've succeeded. + + Reviewed-by: Alex Deucher + +commit a3ca1500703837cbb8d49c554199a25dea7d5e1e +Author: Hans de Goede +Date: Wed Jun 1 15:14:32 2016 +0200 + + Only add main fb if necessary + + If we're doing reverse-prime; or doing rotation the main fb is not used, + and there is no reason to add it in this case. + + Signed-off-by: Hans de Goede + (Ported from xserver commit 4313122dea0df9affc280ee698e929489061ccc6) + Reviewed-by: Alex Deucher + +commit 9ca1c24235ff5ab2e028333fc326e2eff008c574 +Author: Hans de Goede +Date: Wed Jun 1 15:11:05 2016 +0200 + + Remove unnecessary fb addition from drmmode_xf86crtc_resize + + drmmode_set_mode_major() is the only user of drmmode->fb_id and will + create it if necessary. + + Signed-off-by: Hans de Goede + (Ported from xserver commit 877453212166fdc912e0d687cdecee11aba563b5) + Reviewed-by: Alex Deucher + +commit 0d42082108c264568e2aadd15ace70e72388bc65 +Author: Michel Dänzer +Date: Wed Jun 22 19:01:03 2016 +0900 + + Call amdgpu_glamor_create_screen_resources after ModifyPixmapHeader + + Otherwise, glamor doesn't pick up the new screen pixmap size and + continues using the old size, leaving garbage in some areas after + enlarging the screen. + + Fixes regression from commit c315c00e44afc91a7c8e2eab5af836d9643ebb88 + ("Propagate failure from amdgpu_set_pixmap_bo"). + + Reviewed-by: Alex Deucher + +commit e7e71eabbbccdeabcae1bc6fffabc27c272090ab +Author: Michel Dänzer +Date: Mon Mar 28 18:49:15 2016 +0900 + + Adapt to XF86_CRTC_VERSION 7 + + Now the HW cursor can be used with TearFree rotation. + + This also allows always using the separate scanout pixmap mechanism for + rotation, so that should be much smoother even without TearFree enabled. + + (Ported from radeon commit 7835558acdce318130ba4a09ef936fd675e3197d) + Reviewed-by: Alex Deucher + +commit 7f7f9825caf3983902491da27c16d14cd8bf9b7d +Author: Michel Dänzer +Date: Mon Jun 13 18:58:49 2016 +0900 + + Free priv in amdgpu_set_pixmap_bo also if priv->bo == NULL + + Fixes memory leak when destroying pixmaps with priv->bo == NULL. + + Reported-by: Qiang Yu + Reviewed-by: Alex Deucher + +commit 397aedafee437c125b8ac1feafb1c3b466842aeb +Author: Michel Dänzer +Date: Mon Jun 13 18:34:11 2016 +0900 + + glamor: Fix leak of pixmap private when replacing BO + + Reported-by: Qiang Yu + Reviewed-by: Alex Deucher + +commit 5b4a8a7a6ed70a50be252fa9b34d3b3a17cdf91a +Author: Michel Dänzer +Date: Tue Jun 14 19:00:18 2016 +0900 + + Use amdgpu_set_pixmap_bo in amdgpu_set_shared_pixmap_backing + + Fixes leaking any existing pixmap private. + + While we're at it, also fix leaking the GBM BO if + amdgpu_glamor_create_textured_pixmap fails. + + Reviewed-by: Alex Deucher + +commit c315c00e44afc91a7c8e2eab5af836d9643ebb88 +Author: Michel Dänzer +Date: Wed Jun 15 17:20:36 2016 +0900 + + Propagate failure from amdgpu_set_pixmap_bo + + Preparation for the following fixes. + + Reviewed-by: Alex Deucher + +commit 74602c4221e3c84949fd69f690cbc66dcae384ea +Author: Michel Dänzer +Date: Tue Jun 14 18:53:34 2016 +0900 + + glamor: Make amdgpu_glamor_create_textured_pixmap take amdgpu_buffer* + + Preparation for the following fixes. + + Reviewed-by: Alex Deucher + +commit 0007c2f018ba663303d91d847e7c085269a23062 +Author: Michel Dänzer +Date: Wed Jun 8 16:27:33 2016 +0900 + + glamor: Reallocate linear pixmap BO if necessary for DRI2 PRIME + + Fixes corruption when using DRI2 PRIME render offloading with the master + screen using this driver. + + Reported-by: Qiang Yu + Reviewed-by: Alex Deucher + Tested-by: Qiang Yu + +commit 5518bf5d793439b5bab369e5fc18de9a4a3b9dd6 +Author: Michel Dänzer +Date: Wed Jun 8 16:44:26 2016 +0900 + + Move DRI2's local fixup_glamor helper to amdgpu_glamor_set_pixmap_bo v2 + + So it can be used outside of the DRI2 code. + + v2: Keep pixmap refcnt increment in amdgpu_dri2_create_buffer2 (Qiang Yu) + + Reviewed-by: Alex Deucher + Tested-by: Qiang Yu (v1) + +commit 641f4647b7f51dfd2da330376cd10fa9702b6423 +Author: Michel Dänzer +Date: Wed Jun 8 16:39:10 2016 +0900 + + Consolidate get_drawable_pixmap helper + + There were two static helpers for the same purpose. Consolidate them + into a single inline helper which can be used anywhere. + + Reviewed-by: Alex Deucher + Tested-by: Qiang Yu + +commit 8e40f190e4704c2802bf0f073f17e742786d0f18 +Author: Michel Dänzer +Date: Wed Jun 8 16:00:21 2016 +0900 + + Add amdgpu_pixmap_get_tiling_info + + Retrieves the tiling information about a pixmap BO from the kernel + driver. + + Reviewed-by: Alex Deucher + Tested-by: Qiang Yu + +commit e7eeb6ad1133b6023d34b4489959ae330a8e15dd +Author: Michel Dänzer +Date: Wed Jun 8 15:42:01 2016 +0900 + + Remove amdgpu_share_pixmap_backing + + Not used anymore. + + Reviewed-by: Alex Deucher + Tested-by: Qiang Yu + +commit b36c77695ba77b59a0ccd868454e3af4fc04d5ff +Author: Michel Dänzer +Date: Wed Jun 8 15:38:57 2016 +0900 + + glamor: Fix amdgpu_glamor_share_pixmap_backing for priv->bo == NULL + + Fixes crash when running a compositor and DRI_PRIME client via DRI2. + + Reported-by: Qiang Yu + Reviewed-by: Alex Deucher + Tested-by: Qiang Yu + +commit 60ced5026ebc34d9f32c7618430b6a7ef7c8eb4b +Author: Alex Deucher +Date: Tue May 17 16:59:41 2016 -0400 + + add missing bonaire pci id + + Signed-off-by: Alex Deucher + +commit 8e89448ee00da16e05e6777f34bb75d2dd6f7025 +Author: Flora Cui +Date: Tue May 17 11:02:09 2016 +0800 + + Add more Polaris 11 PCI IDs + + Signed-off-by: Flora Cui + Reviewed-by: Christian König + Signed-off-by: Alex Deucher + +commit a59b23d64285741a7a25e314343f6261046d980f +Author: Flora Cui +Date: Mon May 16 17:25:34 2016 +0800 + + Add more Polaris 10 PCI IDs + + Signed-off-by: Flora Cui + Reviewed-by: Alex Deucher + Reviewed-by: Michel Dänzer + Signed-off-by: Alex Deucher + +commit 14606e127f4b6eb0b00fd42cec13d524a67e4c4a +Author: Michel Dänzer +Date: Thu May 12 16:38:56 2016 +0900 + + Handle Zaphod mode correctly in amdgpu_mode_hotplug + + We need to scan both screens of the entity for existing connectors, and + enumerate DVI & HDMI connectors consistently regardless of which screen + they're assigned to. + + Fixes crash when hot-(un)plugging connectors in Zaphod mode. + + Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93415 + (Ported from radeon commit c801f9f10a5d72d935faf21e72f7e7808fb4f05f) + + Reviewed-by: Alex Deucher + +commit 861da1d5c243f51d6c1f76e5b13e5184aa608776 +Author: Michel Dänzer +Date: Thu May 12 16:34:30 2016 +0900 + + Enable DRI3 by default when building for Xorg >= 1.18.3 + + Seems to work well enough in general now. + + (Ported from radeon commit 1181b9c582f10b6c523e4b2988e2ce87ecf3d367) + + Reviewed-by: Alex Deucher + +commit 86f991838824494e68ac277fa27cbd88c23a5ee8 +Author: Michel Dänzer +Date: Tue May 10 15:57:04 2016 +0900 + + present: Support async flips + + The xserver Present code only calls radeon_present_flip with + sync_flip=FALSE if radeon_present_screen_init sets + PresentCapabilityAsync, and the latter only sets it if the kernel driver + advertises support for async flips. + + (Ported from radeon commit 1ca677309720e2f6c953c9e76f5b34c22a4416c6) + + Reviewed-by: Alex Deucher + +commit 744ac5faff7f58e26fa76974b6bdc345ea4c7c79 +Author: Michel Dänzer +Date: Tue May 10 15:47:55 2016 +0900 + + Add support for async flips to radeon_do_pageflip + + Will be used by the next change. No functional change here. + + (Ported from radeon commit 90a915c62d012e99193833aecc93974e68880c60) + + Reviewed-by: Alex Deucher + +commit 4822ec7a23d2253c88bc403f17abb6d7a053528c +Author: Flora Cui +Date: Tue May 10 17:14:00 2016 +0900 + + add strato pci id + + Signed-off-by: Flora Cui + Reviewed-by: Jammy Zhou + +commit b93006714b8de972060492cfa311320921a73773 +Author: Tom St Denis +Date: Tue Apr 12 08:48:33 2016 -0400 + + dri3: Return NULL from amdgpu_dri3_pixmap_from_fd if calloc fails. + + Signed-off-by: Tom St Denis + Reviewed-by: Michel Dänzer + +commit a0bbb373f902e0ffc14570c85faec7e44134f62e +Author: Qiang Yu +Date: Fri Apr 8 17:29:17 2016 +0800 + + Remove RR_Capability_SinkOutput for GPU without CRTC. + + Signed-off-by: Qiang Yu + Reviewed-by: Alex Deucher + Reviewed-by: Michel Dänzer + +commit 1a29c4bcc0a286b14f37ab942eb0cad47bc4f337 +Author: Michel Dänzer +Date: Mon Apr 11 16:27:40 2016 +0900 + + Post 1.1.0 release version bump + +commit a04f4015d6afef20c2b79e2779f6555836ee2b07 +Author: Michel Dänzer +Date: Thu Apr 7 16:47:25 2016 +0900 + + Bump version for 1.1.0 release + +commit aed1c17c43b2c0c983f6fc0973a5224d0faf32d9 +Author: Michel Dänzer +Date: Mon Apr 4 18:28:02 2016 +0900 + + glamor: Force GPU rendering to/from pixmaps created via DRI3 + + Fixes crash when running DRI3 clients with ShadowPrimary enabled. + + Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94799 + + Reviewed-by: Alex Deucher + +commit faf9d720b7d650f5f1ea657a874d08eac3972e60 +Author: Michel Dänzer +Date: Fri Apr 1 16:09:51 2016 +0900 + + Update manpage entry for Option "TearFree" + + It's now effective for rotation as well. + + Reviewed-by: Alex Deucher + +commit 5ba95c3abeb8df82aa8d33a47596eae6403ea7af +Author: Michel Dänzer +Date: Fri Apr 1 15:29:26 2016 +0900 + + Identify DRM event queue entries by sequence number instead of by pointer + + If the memory for an entry was allocated at the same address as that for + a previously cancelled entry, the handler could theoretically be called + prematurely, triggered by the DRM event which was submitted for the + cancelled entry. + + (Ported from radeon commit 4693b1bd5b5c381e8b7b68a6f7f0c6696d6a68df) + + Reviewed-by: Alex Deucher + +commit 8ecfa69b5a833bd4c39e773a6acfd7eef9144d13 +Author: Michel Dänzer +Date: Wed Mar 30 18:33:00 2016 +0900 + + DRI3: Refuse to open DRM file descriptor for ssh clients + + Fixes hangs when attempting to use DRI3 on display connections forwarded + via SSH. + + Don't do this for Xorg > 1.18.99.1 since the corresponding xserver + change has landed in Git master. + + Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93261 + + (Ported from radeon commit 0b3aac1de9db42bfca545fa331e4985836682ec7) + + Reviewed-by: Alex Deucher + +commit b2a2e114eec0967f7b67f030fbab8983cf980489 +Author: Michel Dänzer +Date: Fri Mar 25 11:55:34 2016 +0900 + + Revert "Use render node for DRI3 if available" + + This reverts commit ea558e645786b08d75307716036045170e97b43e. + + It broke VDPAU<->GL interop with DRI3 enabled, because the Gallium VDPAU + code doesn't support DRI3 yet. We can consider re-enabling this once + there is a Mesa release where the Gallium VDPAU code supports DRI3. + + Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94675 + + Reviewed-by: Alex Deucher + +commit e31a2d668a1b5ebaf75d423c8123cbc8e0dcbae9 +Author: Flora Cui +Date: Wed Nov 18 16:44:13 2015 +0800 + + add polaris10 pci id + + Reviewed-by: Michel Dänzer + Signed-off-by: Flora Cui + Reviewed-by: Jammy Zhou + +commit 6e09b8deb77f76b9bb7d393cc1ad924ebba62eff +Author: Flora Cui +Date: Thu Nov 5 14:16:39 2015 +0800 + + add polaris11 pci id + + Reviewed-by: Michel Dänzer + Signed-off-by: Flora Cui + Reviewed-By: Jammy Zhou + Reviewed-by: Alex Deucher + +commit 7d32c43fff4c8df32cce150223094f793e036cf3 +Author: Alex Deucher +Date: Wed Oct 28 17:28:23 2015 -0400 + + add Polaris chip families + + Reviewed-by: Michel Dänzer + Signed-off-by: Alex Deucher + +commit fbf9ae18cd241b8b78936aa30441e5fbfd9ba1c5 +Author: Michel Dänzer +Date: Thu Mar 24 19:05:15 2016 +0900 + + Require xserver 1.9 or newer + + 1.9.0 was released in August 2010. + + We were already unintentionally relying on things not available in 1.8 + for at least a year, and nobody has complained. + + (Ported from radeon commit e592f32f8b5f5873fcc18b10a69dd5e4ccf11073) + + Reviewed-by: Alex Deucher + +commit 912db5fbbc6b9b1121c8a03168cb4bd870474376 +Author: Michel Dänzer +Date: Thu Mar 24 18:59:05 2016 +0900 + + Fix build against older versions of xserver + + Also slightly clean up the error handling in amdgpu_scanout_do_update. + + Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94614 + + (Ported from radeon commit bde466e5d44cad64b4e4eceaa5de80fdbf86356e) + + Reviewed-by: Alex Deucher + +commit 3fb6280ab3b104b02841c7cab8ed68c1d463c834 +Author: Michel Dänzer +Date: Thu Mar 24 18:56:44 2016 +0900 + + DRI3 only works with acceleration + + Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94214 + + (Ported from radeon commit d21ac4669a8b2cdd4eec5e5a94d1950b7423b8b5) + + Reviewed-by: Alex Deucher + +commit 3177fe817a5f2de4ed10860866a0dd6d6c6ba816 +Author: Michel Dänzer +Date: Thu Mar 24 18:51:59 2016 +0900 + + Check for xf86CursorResetCursor + + If it's available, Xorg calls it on each mode configuration change. It + does what xf86_reload_cursors does (and more), so we don't need to call + the latter anymore. + + (Ported from radeon commit d670c5c9851b4eff21c845d26c7d7e4eb5ee0fa9) + + Reviewed-by: Alex Deucher + +commit a3dfce7b24e1ea01c1aa62926025a545312cbe13 +Author: Michel Dänzer +Date: Thu Mar 24 18:45:46 2016 +0900 + + Don't try DRI2/Present flipping while the HW cursor can't be used + + Flipping doesn't interact correctly with SW cursor: A flip makes the SW + cursor disappear. It will only appear again when the cursor is moved, + but it will be surrounded by corruption, because the SW cursor code + will restore stale screen contents at the old cursor location before + drawing the cursor at the new location. + + (Ported from radeon commit 7f3d0780ca65a90117c2a61362dbc0899bd9c0b0) + + Reviewed-by: Alex Deucher + +commit ba9be8f32f0321689133e17c1681809dec8c6cf1 +Author: Michel Dänzer +Date: Thu Mar 24 18:44:30 2016 +0900 + + Factor out HW cursor checking code into drmmode_can_use_hw_cursor + + And add a check for RandR 1.4 multihead. + + (Ported from radeon commit 3de480e83c0a1824838d662d6d67c9fe85277298) + + Reviewed-by: Alex Deucher + +commit 4a60b4b1851a3cbc2d8ad9048d68eeb6947cf132 +Author: Michel Dänzer +Date: Thu Mar 24 12:03:38 2016 +0900 + + Call AMDGPUBlockHandler_KMS before setting initial modes + + Doing it the other way around meant that there was still a possibility + for the front buffer contents to be uninitialized when they start being + scanned out. + + Reviewed-by: Alex Deucher + +commit 37bd79652a8ec612b94a1863e8c580b1cfaf3960 +Author: Michel Dänzer +Date: Fri Mar 18 18:51:00 2016 +0900 + + present: Return rotated CRTCs from amdgpu_present_get_crtc + + Sync-to-vblank works fine with rotation. We're still checking for + rotation in amdgpu_present_check_flip. + + Returning NULL from here resulted in the xserver present code falling + back to the fake CRTC running at 1 fps. + + (Ported from radeon commit a03271de5ecdaa7790d1316e993c4450b91fe936) + + Reviewed-by: Alex Deucher + +commit 6b930fb3285dea4a6440e31099c96f08da508d49 +Author: Michel Dänzer +Date: Fri Mar 18 18:47:10 2016 +0900 + + present: Clear drmmode->fb_id before calling set_mode_major for unflip + + Without this, drmmode_set_mode_major may just re-set the FB for the + last flipped BO, in which case the display will probably freeze. + + Reproduction recipe: Enable rotation while a fullscreen client is + flipping. + + (Ported from radeon commit 40191d82370eb7e58bd34c44966cbf44c3703229) + + Reviewed-by: Alex Deucher + +commit 6889e091442b6ba1b9351e72bd067425e87d96e9 +Author: Michel Dänzer +Date: Fri Mar 18 18:18:04 2016 +0900 + + Make Option "TearFree" effective for rotated/reflected outputs as well + + Support varies by xserver version: + + < 1.12: No support for the driver handling rotation/reflection + 1.12-1.15: Support for driver handling rotation/reflection, but there's + a bug preventing the HW cursor from being visible everywhere + it should be on rotated outputs, so we can only support + TearFree for reflection. + >= 1.16: While the bug above is still there (fixes pending review), + the driver can force SW cursor for rotated outputs, so we + can support TearFree for rotation as well. + + (Ported from radeon commit 798c4fd16d339b1ad5fd729cc884be084c60e38b) + + Reviewed-by: Alex Deucher + +commit da4e0c66fcbcf63143372720e3d606a462332e3a +Author: Michel Dänzer +Date: Fri Mar 18 18:15:34 2016 +0900 + + Consolidate pScreen usage in drmmode_set_mode_major + + We were already relying on pScrn->pScreen being non-NULL in some cases, + which is supposedly always true ever since this function is no longer + getting called from ScreenInit. + + (Ported from radeon commit eb611a2e4ecce7a1ab85fd72b9b78e3269311dd5) + + Reviewed-by: Alex Deucher + +commit 0bbf09dd7ef54133b3e534becb3ba15c0cf3eed2 +Author: Michel Dänzer +Date: Fri Mar 18 18:14:28 2016 +0900 + + Remove check for XF86_CRTC_VERSION 3 + + We require xserver >= 1.8, which was already at version 3. + + (Ported from radeon commit 06602171386e538081c298645fb7ca1a70fe80cc) + + Reviewed-by: Alex Deucher + +commit 3485ca0051a224d00135d4024a97a6c4e85a9644 +Author: Michel Dänzer +Date: Fri Mar 18 18:07:07 2016 +0900 + + Deal with modesets and page flips crossing on a CRTC + + If we set a mode while a flip is pending, the kernel driver may program + the flip to the hardware after the modeset. If that happens, the hardware + will display the BO from the flip, whereas we will assume it displays the + BO from the modeset. In other words, the display will most likely freeze, + at least until another modeset. + + Prevent this condition by waiting for a pending flip to finish before + setting a mode. + + Fixes display freezing when setting rotation or a transform with + TearFree enabled. + + (Ported from radeon commit a88985f5d1e39caca49ceb65678aaa9cb622a0d2) + + Reviewed-by: Alex Deucher + +commit b9d00fa7aaf946d985897380bfa42faafbf1b3fb +Author: Michel Dänzer +Date: Fri Mar 18 17:18:00 2016 +0900 + + Make DRM event queue xf86CrtcPtr based instead of ScrnInfoPtr based + + This allows for a minor simplification of the code. + + (Ported from radeon commit f5d968cbba3c9b7ec202161f2157d8d64778c817) + + Reviewed-by: Alex Deucher + +commit e0ed26151bfeadf309da53d001751c0a014dbd24 +Author: Michel Dänzer +Date: Fri Mar 18 17:11:47 2016 +0900 + + Remove amdgpu_scanout_flip_handler + + No longer necessary now that amdgpu_drm_queue_handler can handle + e->handler == NULL. + + (Ported from radeon commit d5dbb07db22d5420c81dfebc060f0dd86e7b8a20) + + Reviewed-by: Alex Deucher + +commit acd5da56f502d6ad115501e77bce06fe72b1895c +Author: Michel Dänzer +Date: Fri Mar 18 17:14:49 2016 +0900 + + DRI2: Also clear dri2_flipping when client disconnects before event + + Fixes the following problem: + + With DRI3 enabled, run glxgears with LIBGL_DRI3_DISABLE=1, make it + fullscreen and press Escape while it's still fullscreen. This could + result in dri2_flipping not getting cleared, spuriously preventing apps + using DRI3 from flipping. + + (Ported from radeon commit e87365117acbd80b7d80fbb5eb30890ef7153291) + + Reviewed-by: Alex Deucher + +commit a58bfa98208cc092014d3f36a08714eb1e0d8814 +Author: Michel Dänzer +Date: Fri Mar 18 17:07:47 2016 +0900 + + drm_queue: Don't abort events immediately from amdgpu_drm_abort_client + + Keep them around until the DRM event arrives, but then call the abort + functions instead of the handler functions. + + This is a prerequisite for the following fix. + + (Ported from radeon commit 3989766edde85d1abe7024577b98fc9b007bc02a) + + Reviewed-by: Alex Deucher + +commit e4888df6e32bb817bf0d6166a22b19c14e189a84 +Author: Michel Dänzer +Date: Fri Mar 18 17:04:10 2016 +0900 + + Fix RandR CRTC transforms + + Currently, Xorg will only transform the cursor as of the first time the + cursor image changes after a transform is set. + + Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=80678 + + (Ported from radeon commit 9483a3d777919b224f70c3b4d01e4b320a57db31) + + Reviewed-by: Alex Deucher + +commit 43af92ede0968f2108f9562aa4c2c861ac703617 +Author: Michel Dänzer +Date: Fri Mar 18 16:58:07 2016 +0900 + + Build RandR 1.4 provider name from chipset name and bus ID + + Instead of just "amdgpu", it's now e.g. "TONGA @ pci:0000:01:00.0". + + (Ported from radeon commit c7cf00487cd6d4a5d0f39d5b92ff04f6420d6a32) + + Reviewed-by: Alex Deucher + +commit 5ec1797a2858d693d18d21326e2307d71555e1db +Author: Michel Dänzer +Date: Wed Feb 24 17:33:49 2016 +0900 + + DRI2: Use amdgpu_pixmap_get_handle + + Now we can share pixmaps with no struct amdgpu_buffer via DRI2. + + Fixes VDPAU video playback freezing when using an OpenGL compositor with + DRI3 enabled and mpv VAAPI hardware decoding with OpenGL output. + + Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89755 + Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93804 + + (ported from radeon commit f8b0f23e9f4af9f9097ee5e72d53b45173163c41) + + Reviewed-by: Alex Deucher + +commit df60c635e1e632233de9dd4b01d63c2b963003f8 +Author: Michel Dänzer +Date: Wed Feb 24 17:06:43 2016 +0900 + + glamor: Avoid generating GEM flink names for BOs shared via DRI3 (v2) + + We can't create our own struct amdgpu_buffer representation in this case + because destroying that would make the GEM handle inaccessible to glamor + as well. So just get the handle directly via dma-buf. + + (ported from radeon commit 391900a670addec39515f924265bfa9f8bfa9ec0, + extended to cache BO handles in the private for non-DRI3 pixmaps as + well) + + v2: Swap whole pixmap privates instead of just BOs in + amdgpu_dri2_exchange_buffers to avoid invalidating cached BO handles + + Reviewed-by: Alex Deucher + +commit e463b849f3e9d7b69e64a65619a22e00e78d297b +Author: Michel Dänzer +Date: Tue Feb 23 18:10:29 2016 +0900 + + Make amdgpu_do_pageflip take a pixmap instead of a BO + + (inspired by radeon commit 7b4fc4a677d252d01c2bf80d162bc35814059eaa) + + Reviewed-by: Alex Deucher + +commit 1ee341f9d909f3b7ba2984fc912dabdb98c34b19 +Author: Michel Dänzer +Date: Tue Feb 23 18:42:19 2016 +0900 + + Add amdgpu_pixmap_get_handle helper + + (inspired by radeon commits dfad91fffb5bd013785223b42d78886df839eacf + and ccbda955ebae1d457d35293833f12791e0f9fb0b) + + Reviewed-by: Alex Deucher + +commit a36bbfd98b96426bbe0be3923c64da7ec0e565d0 +Author: Michel Dänzer +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 + +commit a37746ffceaed83e48e48fb05439be7e020dd2ea +Author: Michel Dänzer +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 + +commit 59c0a6807110eca829c6708e16585a38f39a5c17 +Author: Michel Dänzer +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 + +commit a3eac85d812ecc605436e6bd5b9ee7ebf307e3d3 +Author: Michel Dänzer +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 + +commit 2fcb7dadd3c71cd405cbbaafc777697538ca9c29 +Author: jimqu +Date: Mon Jan 25 09:47:00 2016 +0800 + + glamor: Return NullPixmap on failure to create shareable pixmap + + If we were asked to create a shareable pixmap, it doesn't make sense + to return a pixmap which isn't shareable. Doing so caused trouble down + the line such as a crash with older versions of glamor when trying to + use GLX pixmaps of bpp < 32 via DRI2. + + Signed-off-by: JimQu + Reviewed-by: Michel Dänzer + +commit 5269a2228bff6023c1a7f3e8534027e1d7addc25 +Author: jimqu +Date: Mon Jan 25 10:12:02 2016 +0800 + + Move amdgpu_glamor_destroy_pixmap before amdgpu_glamor_create_pixmap + + The next commit will call the former from the latter. No functional + change. + + Signed-off-by: JimQu + Reviewed-by: Michel Dänzer + +commit 54c959c163288caa87f612911b70df73f87d29d6 +Author: Tom St Denis +Date: Wed Jan 20 09:37:36 2016 -0500 + + Move memset() after variable declarations + + To make the code more "C" like move the function calls + after the variable declarations. + + Signed-off-by: Tom St Denis + Reviewed-by: Alex Deucher + Reviewed-by: Michel Dänzer + +commit 8853b07ae8169c409740c40d45cd335bd608f2a7 +Author: Michel Dänzer +Date: Tue Jan 19 17:35:11 2016 +0900 + + Set the RandR primary output on startup if Xorg hasn't + + Fixes xrandr (XRRGetOutputPrimary) not reporting any output as primary + after startup. + + (Ported from radeon commit b16856b25086ffb27365ac2249b8da921066ce62) + + Reviewed-by: Alex Deucher + +commit bd5c65daceaf633c36fcec86ff061df10c364bc0 +Author: Michel Dänzer +Date: Thu Jan 7 15:53:41 2016 +0900 + + Only call amdgpu_bus_id once in each probe path (v2) + + Instead of up to twice as before. + + v2: Remove free(busIdString) call from amdgpu_kernel_mode_enabled, the + bus ID string is now managed by its callers. + + Reviewed-by: Alex Deucher (v1) + +commit 6e42c58375a4c3229da93c27bbd104af145c6163 +Author: Michel Dänzer +Date: Thu Jan 7 15:57:38 2016 +0900 + + Remove pci_dev test from amdgpu_get_scrninfo + + The pci_dev parameter can never be NULL since we only support KMS. + + Reported-by: Tom St Denis + Reviewed-by: Alex Deucher + +commit 8e09180798a06af5afa030d754938e4ca06e272f +Author: Michel Dänzer +Date: Thu Jan 7 15:35:35 2016 +0900 + + Re-use PCI bus ID code from kernel_open_fd in kernel_mode_enabled + + Reviewed-by: Alex Deucher + +commit 4eb9cedca080b30c57ded349a397620ee7d0cd46 +Author: Mykola Lysenko +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 + Reviewed-by: Michel Dänzer + +commit 1d0b0c1794e65e581a48aa9fb19679d928d82a5d +Author: Michel Dänzer +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 + +commit f4107f67f147e2500582fc36cf0f0f76bc1ef098 +Author: Mykola Lysenko +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 + Reviewed-by: Michel Dänzer + +commit ea558e645786b08d75307716036045170e97b43e +Author: Jammy Zhou +Date: Fri Nov 20 17:03:05 2015 +0800 + + Use render node for DRI3 if available + + Signed-off-by: Jammy Zhou + Reviewed-by: Michel Dänzer + +commit 43c2dc1aab682d5b6ad49d24983d6382c4f305bb +Author: Michel Dänzer +Date: Thu Nov 19 17:05:05 2015 +0900 + + glamor: Deal with glamor_egl_destroy_textured_pixmap being removed + + When it's not available, it's safe to call down to the glamor + DestroyPixmap hook instead. + + (ported from radeon commit 10b7c3def58bb34acc38f076bc230e25b454ab79) + + Reviewed-by: Alex Deucher + +commit 84cab5738a315e9825bd0864c4f0fc5b03eb81a1 +Author: Michel Dänzer +Date: Thu Nov 19 16:44:22 2015 +0900 + + glamor: Restore all ScreenRec hooks during CloseScreen + + (ported from radeon commit 535e5438b2c32f774b9c8c27ee0289b4749548ef) + + Reviewed-by: Alex Deucher + +commit a00c050c2e5667ed815c51979a3cadb5146136ff +Author: Michel Dänzer +Date: Thu Nov 19 17:55:53 2015 +0900 + + Post 1.0.0 release version bump + +commit 755e6ff2337cf615e3ba0854ccd533baec7144db +Author: Michel Dänzer +Date: Thu Nov 19 17:28:19 2015 +0900 + + Bump version for 1.0.0 release + +commit 49c7d2be99aaf6d040e553065bdc461ce8d4769a +Author: Michel Dänzer +Date: Thu Nov 19 17:14:54 2015 +0900 + + Add amdgpu_pixmap.h to src/Makefile.am's EXTRA_DIST + + Fixes make distcheck. + +commit d069ec5d27f5c8d2ab17b759b85293ef4113acf3 +Author: Stephen Chandler Paul +Date: Wed Nov 11 18:10:55 2015 +0900 + + Handle failures in setting a CRTC to a DRM mode properly + + This fixes a bug where running the card out of PPLL's when hotplugging + another monitor would result in all of the displays going blank and + failing to work properly until X was restarted or the user switched to + another VT. + + [Michel Dänzer: Pass errno instead of -ret to strerror()] + + Signed-off-by: Stephen Chandler Paul + (ported from radeon commit 7186a8713ba004de4991f21c1a9fc4abc62aeff4) + + Reviewed-by: Alex Deucher + +commit c8bddcf6c97b1338be3715f1fc5e0b17ce71c195 +Author: Michel Dänzer +Date: Wed Nov 11 18:09:59 2015 +0900 + + Call xf86CrtcRotate from initial drmmode_set_desired_modes call + + Fixes various problems when rotation is specified in xorg.conf. + + Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92475 + + (ported from radeon commit 548e97b3b7d1e94075a54ca2bb4eb683025098a7) + + Reviewed-by: Alex Deucher + +commit 12815156f38ce3357f03901a78402db834577d11 +Author: Emil Velikov +Date: Wed Nov 11 18:04:01 2015 +0900 + + Do not link amdgpu_drv.so against libpciaccess + + Not used directly. + + Signed-off-by: Emil Velikov + (ported from radeon commit fcb32231a38f9461d12720cbf72f63502197a711) + + Reviewed-by: Alex Deucher + +commit a02982b0ae0b79d2f183a1628edc05cafed8703a +Author: Michel Dänzer +Date: Wed Nov 11 17:59:14 2015 +0900 + + Skip disabled CRTCs in amdgpu_scanout_(do_)update + + The vblank / page flip ioctls don't work as expected for a disabled CRTC. + + (ported from radeon commit acc11877423ecd81a6e0a7f38466f80e43efee20) + + Reviewed-by: Alex Deucher + +commit 0ddd20600d0046afd17aa47ffebe86dfd91a2215 +Author: Michel Dänzer +Date: Wed Nov 11 17:44:16 2015 +0900 + + Prefer drmModeSetCursor2 over drmModeSetCursor + + The former includes information about the position of the hotspot within + the cursor image. + + Copied from xf86-video-modesetting. + + (ported from radeon commit c9f8f642fd495937400618a4fc25ecae3f8888fc) + + Reviewed-by: Alex Deucher + +commit 83a47c0ebe17caa79d12a8b2f94b59cc945452f5 +Author: Michel Dänzer +Date: Wed Nov 11 17:37:54 2015 +0900 + + PRIME: Don't advertise offload capabilities when acceleration is disabled + + Xorg tends to crash if the user tries to actually use the offload + capabilities with acceleration disabled. + + Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=57200 + (ported from radeon commit c74de9fec13fac2c836bb2a07ae6f90e1d61e667) + + Reviewed-by: Alex Deucher + +commit 560b7fe6dc66405762020f00e9a05918a36f3a17 +Author: Michel Dänzer +Date: Wed Nov 11 17:31:34 2015 +0900 + + Rename Option "NoAccel" to "Accel" + + Removes the need for a double negation when forcing acceleration on. + + Note that this change is backwards compatible, as the option parser + automagically handles the 'No' prefix. + + (ported from radeon commit cc615d06db0332fc6e673b55632bcc7bf957b44b) + + Reviewed-by: Alex Deucher + +commit ad77ad32c4a723447d3191d527cfa6de9f54d7ce +Author: Adam Jackson +Date: Wed Nov 11 17:20:21 2015 +0900 + + Use own thunk function instead of shadowUpdatePackedWeak + + I plan to delete the Weak functions from a future server. + + Signed-off-by: Adam Jackson + (ported from radeon commit 851b2cf8714618843725f6d067915375485ade9d) + + Reviewed-by: Alex Deucher + +commit f5ccea99c03b62acf3a25984aba617c665d80b7c +Author: Michel Dänzer +Date: Wed Nov 11 17:16:58 2015 +0900 + + dri2: Handle PRIME for source buffer as well in amdgpu_dri2_copy_region2 + + Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77810 + + (ported from radeon commit c84230d686c078aac1dc98d82153f8b02521b2e1) + + Reviewed-by: Alex Deucher + +commit 92e7c93d2f9c3036da1a17d7fccccb6f9e9eaa3d +Author: Michel Dänzer +Date: Mon Nov 2 18:29:24 2015 +0900 + + Move scrn/info declaration inside USE_GLAMOR in amdgpu_dri3_fd_from_pixmap + + Fixes warning when building with --disable-glamor: + + ../../src/amdgpu_dri3.c: In function 'amdgpu_dri3_fd_from_pixmap': + ../../src/amdgpu_dri3.c:135:16: warning: unused variable 'info' [-Wunused-variable] + AMDGPUInfoPtr info = AMDGPUPTR(scrn); + ^ + + Reported-by: Jammy Zhou + Reviewed-by: Alex Deucher + +commit c9bd1399a13cea2e1331af2c826ca054b88db071 +Author: Michel Dänzer +Date: Mon Nov 2 18:21:50 2015 +0900 + + Call AMDGPUFreeRec from AMDGPUFreeScreen_KMS even if info == NULL + + It's safe now. + + Reviewed-by: Alex Deucher + +commit fb8444e731765588c0ff1e9053c1c7b73f5f0907 +Author: Michel Dänzer +Date: Mon Nov 2 18:20:41 2015 +0900 + + Don't use AMDGPUEntPriv in AMDGPUFreeRec + + It crashes if info == NULL. + + Reviewed-by: Alex Deucher + +commit 8e7ee03f55c2f3874f6e84daeb5700f8b8037a51 +Author: Michel Dänzer +Date: Wed Oct 28 17:53:27 2015 +0900 + + Remove amdgpu_reference_drm_fd + + Increase pAMDGPUEnt->fd_ref in the probe code instead when we're reusing + the existing fd. + + The previous reference counting was imbalanced, so pAMDGPUEnt->fd_ref + could never go to 0. + + Reviewed-by: Jammy Zhou + +commit 6bab8fabb37eb131e131ce59446c214ded28f779 +Author: Michel Dänzer +Date: Wed Oct 28 17:44:09 2015 +0900 + + Remove info->dri2.drm_fd and info->drmmode->fd + + Use pAMDGPUEnt->fd everywhere instead. + + Reviewed-by: Jammy Zhou + +commit 0530e39cc6b7340163e7f6bb6d82719d102ee6e9 +Author: Jammy Zhou +Date: Thu Oct 29 17:08:01 2015 +0900 + + Pass struct pci_device *pci_dev directly to amdgpu_get_scrninfo + + Instead of throwing away the type information by passing it as a void*. + + Signed-off-by: Michel Dänzer + Reviewed-by: Alex Deucher + +commit edf72afee3a25eae9827b4de3a013b541b78e213 +Author: Jammy Zhou +Date: Wed Oct 28 21:24:29 2015 +0800 + + Fix crash in PCI probe path (v4) + + The crash is caused by the NULL value returned by AMDGPUPTR(pScrn), + because the driverPrivate is not allocated yet in PciProbe phase, + and it is usually done in the PreInit phase. + + Use pAMDGPUEnt->fd instead of info->dri2.drm_fd to avoid AMDGPUInfoPtr + related code in amdgpu_open_drm_master, so that the crash can be fixed. + + v4: (md) Remove unused parameter entity_num, split out logically + separate changes + v3: some more cleanup + v2: switch to pAMDGPUEnt->fd, and update the commit message + + Signed-off-by: Jammy Zhou + Signed-off-by: Michel Dänzer + Reviewed-by: Alex Deucher (v3) + +commit cef725121eb0e56aa54d9c4665e36047373f4db7 +Author: Michel Dänzer +Date: Wed Oct 28 17:56:13 2015 +0900 + + Remove dead code from probe paths + + amdgpu_get_scrninfo allocates the memory pointed to by pAMDGPUEnt just + before it calls amdgpu_open_drm_master, so pAMDGPUEnt->fd is always 0 + in the latter. + + Also, no need to clear pAMDGPUEnt->fd just before freeing the memory + it's stored in. + + Reviewed-by: Jammy Zhou + +commit 3b0a3c89b53b3ebe21a9d703a4dbff6e57c65a57 +Author: Samuel Li +Date: Thu Oct 22 12:50:21 2015 -0400 + + Add Stoney support + + (agd): rebase + + Reviewed-by: Michel Dänzer + Signed-off-by: Samuel Li + +commit 9c8b7ebe15eec7abd5dc10ad6ccecbc57225494a +Author: Michel Dänzer +Date: Wed Oct 21 17:18:44 2015 +0900 + + Revert "Handle RandR CRTC transforms properly" + + This reverts commit 175251645fec1a3d19f498e1cd1e655374c67801. + + I accidentally pushed this patch. + +commit 0a6ba4bf50128464a30951721b0c72e748fb89bc +Author: Darren Powell +Date: Tue Oct 20 16:56:54 2015 -0400 + + Add Option "TearFree" to manpage + + This was missed in commit c57da33308a81fa575179238a0415abcb8b34908. + + Signed-off-by: Darren Powell + Reviewed-by: Alex Deucher + Reviewed-by: Michel Dänzer + +commit 175251645fec1a3d19f498e1cd1e655374c67801 +Author: Michel Dänzer +Date: Thu Oct 15 16:35:51 2015 +0900 + + Handle RandR CRTC transforms properly + +commit 6000aef4e2f0a121b94023484406fb6f04688f74 +Author: Tom St Denis +Date: Wed Oct 14 13:25:59 2015 -0400 + + Clean up amdgpu_dri2_create_buffer2() + + Remove the depth_pixmap variable from the function and clear + out any dead/odd behaviour that results. + + Signed-off-by: Tom St Denis + +commit 21e72fb2418b5cc7fc849a9cf951186e209036b0 +Author: Michel Dänzer +Date: Fri Oct 9 18:38:47 2015 +0900 + + Properly handle drmModeAddFB failure in drmmode_crtc_scanout_allocate + + We were printing an error message, but not propagating the failure. That + would probably lead to trouble down the road. + + Reviewed-by: Alex Deucher + +commit 8da1d0c870e1081d77925807d6e3bbc61a23f54f +Author: Michel Dänzer +Date: Fri Oct 9 18:59:16 2015 +0900 + + Eliminate redundant data parameter from drmmode_crtc_scanout_create + + drmmode_crtc_scanout_create just needs to call + drmmode_crtc_scanout_allocate when scanout->bo is NULL. + + This makes it clearer to the reader / compiler that + drmmode_crtc_scanout_create doesn't dereference scanout->bo when it's + NULL. + + Reviewed-by: Alex Deucher + +commit dc40582d5ff94d812cbc08f95cf14b80cd0f410d +Author: Michel Dänzer +Date: Wed Oct 7 16:19:22 2015 +0900 + + Don't advertise rotation support without hardware acceleration v2 + + 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. + + v2: Also remove now dead code checking for ShadowFB from + drmmode_crtc_scanout_allocate(). + + Reviewed-by: Alex Deucher + +commit 460560502a1bdf26d06f3c30df46fa9f28ffb9e5 +Author: Tom St Denis +Date: Tue Oct 6 08:49:54 2015 -0400 + + Simplify drmmode_set_mode_major() and avoid leaking memory. + + The function would leak the memory allocated for output_ids. This + patch addresses that as well as simplifies the logic somewhat. + + Signed-off-by: Tom St Denis + Reviewed-by: Michel Dänzer + +commit 56398d6651dfc4935cbd117ad861e1800077c73c +Author: Tom St Denis +Date: Tue Oct 6 08:43:12 2015 -0400 + + Avoid NULL dereference if drmmode_crtc_scanout_allocate fails + + This avoids a NULL dereference if the memory allocation fails. + + Signed-off-by: Tom St Denis + Reviewed-by: Michel Dänzer + +commit 4b92b960c7705be8b3a5dee17b2341864d7ca9bb +Author: Tom St Denis +Date: Mon Oct 5 10:00:09 2015 -0400 + + cleanup the entity rec + + Based on radeon commit: b32a0a3de84a44b9af4f1ca8be19f10d7fa31b12 + + Some of these were set, some of them were + always opposites, so clean things up. + + Signed-off-by: Tom St Denis + Reviewed-by: Michel Dänzer + +commit fe100fd6bf483228eaf64b959c56a68e8dac4447 +Author: Tom St Denis +Date: Mon Oct 5 10:45:33 2015 -0400 + + present: Handle DPMS off in radeon_present_get_ust_msc + + Based on radeon commit: 95f5d09e3667ded027ae648c97eb4737d8bf67c5 + + The DRM_IOCTL_WAIT_VBLANK ioctl may return an error during DPMS off, + which would trigger an error message in drmmode_crtc_get_ust_msc. + + Signed-off-by: Tom St Denis + Reviewed-by: Michel Dänzer + +commit bfa925a04815cee5fd57b99447cb2ee0e158036c +Author: Tom St Denis +Date: Mon Oct 5 10:10:51 2015 -0400 + + present: Look at all CRTCs to determine if we can flip + + Based on radeon commit 211862b777d0be251a4662f5dd24f2d400544c09 + + Inspired by modesetting driver change by Kenneth Graunke. + + Signed-off-by: Tom St Denis + Reviewed-by: Michel Dänzer + +commit a1e47e76322619ed037ebce27974a4e3792940c2 +Author: Tom St Denis +Date: Mon Oct 5 10:41:22 2015 -0400 + + present: Fall back to modeset for unflip operation + + Based on radeon commit: 802d33e474a82262d9cdf11b03568b0c4929cd0d + + It's not always possible to use the page flip ioctl for this, e.g. + during DPMS off. We were previously just skipping the unflip in that + case, which could result in hangs when setting DPMS off while a + fullscreen Present app is running, e.g. at the GNOME3 lock screen. + + Signed-off-by: Tom St Denis + Reviewed-by: Michel Dänzer + +commit bac21dfc8e60a07f08158b13fab1f3a9b9d27d1b +Author: Tom St Denis +Date: Mon Oct 5 10:37:50 2015 -0400 + + Don't attempt a DRI2/Present page flip while the other one is flipping + + Based on radeon commit 49f5b0bc301414df049e00d226034e3d6e56421b + + Fixes corrupted display and hangs when switching between DRI2 and DRI3 + fullscreen apps, e.g. a compositor using DRI3 and a fullscreen app using + DRI2 or vice versa. + + Signed-off-by: Tom St Denis + Reviewed-by: Michel Dänzer + +commit a5f7f2e68bad1935f5ad52286033237467f77302 +Author: Tom St Denis +Date: Mon Oct 5 13:12:23 2015 -0400 + + Move amdgpu_drm_handler/abort_proc fields to drmmode_flipdata_re + + Based on radeon commit de5ddd09db82141b263338dcf0c28e01f58268ee + + Their values are the same for all DRM flip ioctl calls within a single + radeon_do_pageflip() call. + + Signed-off-by: Tom St Denis + Reviewed-by: Michel Dänzer + +commit e14e3560bff2537d3ad4c93d2b31442a122cde66 +Author: Tom St Denis +Date: Mon Oct 5 13:08:43 2015 -0400 + + Simplify amdgpu_do_pageflip() error handling slightly more + + Based on radeon commit e8c0f6319fbf4c3ea11e22ab1a68837031bdec8c + + We don't need the local variable old_fb_id. + + Signed-off-by: Tom St Denis + + [ Michel Dänzer: fix up slightly to better match radeon formatting ] + + Reviewed-by: Michel Dänzer + +commit e9621ec0e2400f62db320c560a739b29258edb87 +Author: Tom St Denis +Date: Mon Oct 5 09:34:47 2015 -0400 + + Increase robustness against DRM page flip ioctl failures + + Based on radeon commit 8fc22360d5520469c82092ccb0fcf2af330c573f + + Centralize cleanup, only clean up things that have been allocated for + the failed ioctl call. + + Fixes double-free after a flip ioctl failure. + + Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89681 + + Signed-off-by: Tom St Denis + Reviewed-by: Michel Dänzer + +commit db3bb2061b9ac16b0922d9afae99874820356a04 +Author: Tom St Denis +Date: Tue Sep 29 13:07:04 2015 -0400 + + Clean up allocation in AMDGPUInitVideo() + + The allocation of the adapters should use the correct sizeof (even if + allocating an array of pointers). + + Signed-off-by: Tom St Denis + Reviewed-by: Michel Dänzer + +commit 94caf7ac777134b8396aa762a506053179bbb4c6 +Author: Tom St Denis +Date: Thu Oct 1 13:08:41 2015 -0400 + + Avoid leaking memory on output. + + Based on radeon commit 63dc36dc49f93cb00111b497ab6805194bc9d240 + + and 2nd patch: + + Proper leak fix, previous leak fix was bogus. + + Based on radeon commit b8ec9ed4fe86952763b963c86f0af0dcae69aa6c + + Signed-off-by: Tom St Denis + Reviewed-by: Michel Dänzer + +commit f035faec041cb5df65c78effa58eb50197cedf88 +Author: Tom St Denis +Date: Thu Oct 1 12:56:05 2015 -0400 + + add support for DP 1.2 display hotplug + + Based on radeon commit 2f11dcd43966cf2ee26e61960fd72e6644f5e037 + + > This allows for dynamic creation of conneectors when the + > kernel tells us. + > + > v2: fix dpms off crash + + Signed-off-by: Tom St Denis + Reviewed-by: Michel Dänzer + +commit aee72b29210d79dbf41bde6eef16d7fe817e6cf4 +Author: Tom St Denis +Date: Thu Oct 1 12:29:36 2015 -0400 + + move output name creation to its own function + + Based on radeon commit c88424d1f4aaa78b569e5d44f0b4a47de2f422f4 + + > The secondary indent is deliberate to make the next patch more + > parseable for mst support. + + Signed-off-by: Tom St Denis + Reviewed-by: Michel Dänzer + +commit 0846abeace649d27a5f2c17373e717f92d246797 +Author: Tom St Denis +Date: Thu Oct 1 12:13:21 2015 -0400 + + stop caching mode resources + + Based on radeon commit 32b003cb7657e07d5af6338ad44d768eda87fd33 + + > This is step one towards MST connector hotplug support, + > it stop caching the mode resources structure, and + > just passes a pointer to it around. + + With a few tweaks to match the state of the AMDGPU tree. + + Signed-off-by: Tom St Denis + Reviewed-by: Michel Dänzer + +commit 4ca8f957e0b417b099f625470db98a54531a731d +Author: Tom St Denis +Date: Thu Oct 1 13:16:15 2015 -0400 + + Silence type mismatch warning. + + Signed-off-by: Tom St Denis + Reviewed-by: Michel Dänzer + +commit a79735ab1499c1f7814036d1b19ff465705c5f45 +Author: Tom St Denis +Date: Thu Oct 1 10:51:07 2015 -0400 + + Add support for server managed fds + + Based on radeon commit ed0cfbb4fe77146b0b38f777bc28f3a4ea6da07f + + and 2nd patch: + + Fix building on older servers without xf86platformBus.h + + Based on radeon commit b50da3b96c212086cb58501dbe988d64f1f35b6d + + Signed-off-by: Tom St Denis + + [ Michel Dänzer: Fixed up amdgpu_kernel_open_fd() not to need + AMDGPUEntPriv(), which doesn't work yet at that point ] + + Signed-off-by: Michel Dänzer + Reviewed-by: Michel Dänzer + +commit b93934a9ed5e92f3a6eac6554c5c4fa2967a6dd0 +Author: Tom St Denis +Date: Thu Oct 1 10:05:36 2015 -0400 + + Add amdgpu_open_drm_master helper function + + Based on radeon commit 3d7861fe112f25874319d4cdc12b745fbcd359cf + + > This is a preparation patch for adding server-managed-fd support without it + > turning into a goto fest. + + With appropriate modifications because the open call stack is different + in the amdgpu tree. + + Signed-off-by: Tom St Denis + Reviewed-by: Michel Dänzer + +commit f5c3fd0b57cf9e392bf591110568637937a1d338 +Author: Tom St Denis +Date: Thu Oct 1 09:13:57 2015 -0400 + + Cleaning up for server-fd support + + Based on radeon commit a63342ad15408071437c80b411d14196f3288aed + + > radeon_open_drm_master get rid of unnecessary goto + + Signed-off-by: Tom St Denis + Reviewed-by: Michel Dänzer + +commit 3055724aef76a624718f26d5f0f9e9d567ffbcfb +Author: Tom St Denis +Date: Thu Sep 24 13:08:31 2015 -0400 + + Simplify pick best crtc to fold two loops into one + + This patch folds the two for loops from amdgpu_pick_best_crtc() into + one to reduce the LOC and make the routine easier to read. + + Signed-off-by: Tom St Denis + Reviewed-by: Michel Dänzer + +commit 9945b4ae1664ab815b39ff07e7b66cfa7f942dfa +Author: Tom St Denis +Date: Wed Sep 9 09:38:02 2015 -0400 + + Avoid use-after-free in drmmode_output_destroy() + + The encoders array is freed before potentially all of the elements of + the array are individually freed. + + Signed-off-by: Tom St Denis + Reviewed-by: Christian König + Reviewed-by: Alex Deucher + Signed-off-by: Michel Dänzer (cosmetic fixups) + +commit 36b3faebdd1d2090a286616eeeb131d15e9a1386 +Author: Tom St Denis +Date: Wed Sep 9 09:36:59 2015 -0400 + + Avoid use-after-free in amdgpu_kernel_open_fd() + + If the device cannot be opened avoid re-using busid after it has been + freed. + + Signed-off-by: Tom St Denis + Reviewed-by: Christian König + Reviewed-by: Alex Deucher + Signed-off-by: Michel Dänzer (cosmetic fixups) + +commit 8823c3d4c6db70cff7699b31088f2d92db8faaf4 +Author: Tom St Denis +Date: Wed Sep 9 09:34:38 2015 -0400 + + dri2: Avoid calculation with undefined msc value + + If the get_msc() call fails for any reason we should avoid updating the + vblank counter delta with undefined data. + + Signed-off-by: Tom St Denis + Reviewed-by: Christian König + Acked-by: Alex Deucher + Signed-off-by: Michel Dänzer (minor fixups) + +commit 63948ea091a9b324327ade7ec4fc5d67ca7e6f6f +Author: Michel Dänzer +Date: Fri Aug 14 18:41:57 2015 +0900 + + DRI2: Keep MSC monotonic when moving window between CRTCs + + This mirrors the DRI3 implementation in xserver. Fixes VDPAU video + playback hanging when moving the window between CRTCs. + + Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=66384 + + Reviewed-by: Alex Deucher + +commit 55a4461bd95698cb8d52f9f6c28583f8f81afb4e +Author: Michel Dänzer +Date: Fri Aug 7 11:46:31 2015 +0900 + + Wait for scanout BO initialization to finish before setting mode + + This should avoid intermittent artifacts which could sometimes be visible + when setting a new scanout pixmap, e.g. on server startup or when + changing resolutions. + + (Ported from radeon commit 3791fceabf2cb037467dc41c15364e9f9ec1e47e) + + Reviewed-by: Alex Deucher + +commit 4c425e9c5c038504a0f0498dd800ab1fb40bf0c5 +Author: Michel Dänzer +Date: Fri Aug 7 12:39:24 2015 +0900 + + glamor: Add amdgpu_glamor_finish to wait for glamor rendering to finish + + This is a bit sneaky, because it calls glFinish directly from the driver, + but it seems to work fine. + + Reviewed-by: Alex Deucher + +commit bb989e173dc364a7d68e50d7e819d0e0ee133d2f +Author: Michel Dänzer +Date: Fri Aug 7 11:43:48 2015 +0900 + + Only call drmmode_copy_fb (at most) once on server startup + + It doesn't make sense to copy the screen contents from console when VT + switching back to Xorg or when Xorg resets. + + Fixes intermittent artifacts when VT switching back from console to the + gdm login screen. + + (Ported from radeon commit 4e3dfa69e4630df2e0ec0f5b81d61159757c4664) + + Reviewed-by: Alex Deucher + +commit ebe2c020fbf2ef8de01fc50b201ab23ddb9fb13b +Author: Mario Kleiner +Date: Mon Aug 10 23:34:40 2015 +0200 + + Make selection between DRI2 and DRI3 consistent with other drivers. (v2) + + Add Option "DRI" to allow selection of maximum DRI level. + + This allows the user to select the maximum level of DRI + implementation to use, DRI2 or DRI3. It replaces the old + option "DRI3" which had exactly the same purpose, but + differs from the method used in both intel ddx and nouveau ddx. + Make this consistent before a new stable driver is released. + + v2: Retain handling of old Option "DRI3" for backwards + compatibility, but Option "DRI" will take precedence + over "DRI3" if both are provided. + + Signed-off-by: Mario Kleiner + Reviewed-by: Michel Dänzer + +commit c9611a2aa0f8d3bb55c552353740d60f6e4f63a0 +Author: Alex Deucher +Date: Tue Jul 7 22:46:34 2015 -0400 + + add fiji pci id + + Reviewed-by: Michel Dänzer + Signed-off-by: Alex Deucher + +commit 2622ac1554761b8824bfbbb2e3051a632ee38ce7 +Author: Alex Deucher +Date: Tue Jul 7 22:46:08 2015 -0400 + + Add fiji support + + Reviewed-by: Michel Dänzer + Signed-off-by: Alex Deucher + +commit 7a49d8728d17875206a84fd1023f62b37c4a9f51 +Author: Michel Dänzer +Date: Thu Aug 6 18:21:30 2015 +0900 + + On screen resize, clear the new buffer before displaying it + + Fixes garbage being intermittently visible during a screen resize. + + (Ported from radeon commit 80f3d727f93cb6efedd2b39338d2301035965fe2) + + Reviewed-by: Alex Deucher + +commit 9f988bf1dc9d4cb92926c051ed8f15e9ba58a016 +Author: Michel Dänzer +Date: Thu Aug 6 17:50:11 2015 +0900 + + Make drmmode_copy_fb() work with glamor + + Needed for Xorg -background none. + + (Ported from radeon commit 3999bf88cdb192fe2f30b03bd2ed6f6a3f9f9057) + + Reviewed-by: Alex Deucher + +commit 13cf61bd8d46b0059f26120a8902da6f86e6bd11 +Author: Michel Dänzer +Date: Thu Aug 6 17:46:38 2015 +0900 + + Update scanout pixmap contents before setting a mode with it + + This ensures the scanout pixmaps used for Option "TearFree" and Option + "ShadowPrimary" have been initialized when their initial mode is set. + + (Ported from radeon commit a4a8cdbcc10c1c5f07485a2af9e9e81e490c3e1d) + + Reviewed-by: Alex Deucher + +commit 15050aabf256c17250d1fca0bfac97fc6707b195 +Author: Michel Dänzer +Date: Thu Aug 6 17:37:11 2015 +0900 + + Defer initial modeset until the first BlockHandler invocation + + This ensures that the screen pixmap contents have been initialized when + the initial modes are set. + + (Ported from radeon commits 673e1c7637687c74fc9bdeeeffb7ace0d04b734f and + 1584dc545c78e0bce8d4b4b9f26b568e2c211453) + + Reviewed-by: Alex Deucher + +commit 96b5364496222f1b3afb9caad458f16f156b6c47 +Author: Michel Dänzer +Date: Thu Aug 6 17:32:45 2015 +0900 + + Defer initial drmmode_copy_fb call until root window creation + + That's late enough for acceleration to be fully initialized, but still + early enough to set pScreen->canDoBGNoneRoot. + + (Ported from radeon commit 37874a4eeace5df04b02c8fc28f67b824e3f0f5f) + + Reviewed-by: Alex Deucher + +commit 0fb45f2bba89379ba25d4c863091937b6384bda9 +Author: Michel Dänzer +Date: Thu Aug 6 17:25:53 2015 +0900 + + Only copy fbcon BO contents if bgNoneRoot is TRUE + + Otherwise, the X server will initialize the screen pixmap contents + anyway. + + (Ported from radeon commit 39c497f3efca5ca08343b884f44c93215dcdef31) + + Reviewed-by: Alex Deucher + +commit cac553d3b691d26eaad24fbdcba06097b6728a6d +Author: Michel Dänzer +Date: Thu Aug 6 17:20:22 2015 +0900 + + Add .dir-locals.el file with Emacs indentation settings + + Reviewed-by: Alex Deucher + +commit ea32253541959cc36a40fb0118200a8f493dc98a +Author: Jammy Zhou +Date: Wed Jul 15 11:26:28 2015 +0800 + + Adapt to the interface change of amdgpu_bo_alloc v3 + + The amdgpu_bo_alloc_result structure is removed from libdrm_amdgpu, + and the amdgpu_bo_handle is returned directly + + v2: remove the va_map/unmap + v3: simply the code a bit + + Signed-off-by: Jammy Zhou + Reviewed-by: Michel Dänzer + +commit 3010d3259d3bc74263d526e54e02bc169c8d4b4d +Author: Mario Kleiner +Date: Wed Jul 15 09:54:59 2015 +0200 + + Allow/Fix use of multiple ZaphodHead outputs per x-screen. + + Defining multiple ZaphodHead outputs per x-screen in a + multiple x-screen's per gpu configuration caused all + outputs except one per x-screen to go dark, because + there was a fixed mapping x-screen number -> crtc number, + limiting the number of crtc's per x-screen to one. + + On a ZaphodHead's setup, be more clever and assign + as many crtc's to a given x-screen as there are + ZaphodHeads defined for that screen, assuming + there are enough unused crtc's available. + + (Ported from radeon commit afab7839fc15722dbaa7203d00fe7f6ce5336b9d) + + Signed-off-by: Mario Kleiner + Reviewed-by: Michel Dänzer + +commit 159c5d460a330cf0a24678f3c6c3e2fbaf23c571 +Author: Dave Airlie +Date: Tue Jul 14 17:04:14 2015 +0900 + + Adopt for new X server dirty tracking APIs. + + Signed-off-by: Dave Airlie + + (Ported from radeon commit b6d871bf299c7d0f106c07ee4d8bd3b2337f53cc) + + Reviewed-by: Alex Deucher + +commit 7b3212e33cd36fb6f122774df27b56ec4e1a22b8 +Author: Michel Dänzer +Date: Thu Jul 9 17:57:29 2015 +0900 + + DRI2: Don't ignore rotated CRTCs in amdgpu_dri2_drawable_crtc + + Waiting for vblank interrupts works fine with rotated CRTCs. The only + case we can't handle with rotation is page flipping, which is handled + in can_exchange(). + + This fixes gnome-shell hanging on rotation, probably because + amdgpu_dri2_get_msc returned MSC/UST 0 for rotated CRTCs. + + Reviewed-by: Jammy Zhou + +commit 5587a7b43d02d6371ed4675a6260427492ebad94 +Author: Piotr Redlewski +Date: Wed Jul 8 20:59:14 2015 +0200 + + Do not try to enable already enabled CRTCs in DPMS hook + + (Ported from radeon commit a8ed62010d5012dfb27773595c446b217f3c00c5) + + Signed-off-by: Piotr Redlewski + Reviewed-by: Michel Dänzer + +commit b176e63df20b345cb378fe962afd14eed43421d3 +Author: Piotr Redlewski +Date: Sun Jun 28 23:20:22 2015 +0200 + + Enable/disable CRTCs in DPMS hook + + The CRTC DPMS hook hasn't enabled or disabled hardware CRTCs. + + (Based on radeon commit 48e5be1d5a82c1e0ccf6b7d52924c92a630e52a8) + + Signed-off-by: Piotr Redlewski + Reviewed-by: Michel Dänzer + +commit d94d4a609c593b46ab718544ee24c25530732f22 +Author: Michel Dänzer +Date: Thu Jun 11 17:49:33 2015 +0900 + + Handle CRTC DPMS from output DPMS hooks + + This fixes at least two issues: + + The CRTC DPMS hook isn't called after a modeset, so the vertical blank + interrupt emulation code considered the CRTC disabled after a modeset. As + a side effect, page flipping was no longer used after a modeset. + + This change also makes sure the vertical blank interrupt emulation code + runs before the hardware CRTC is disabled and after it's enabled from the + output DPMS hook. The wrong order could cause gnome-shell to hang after + a suspend/resume and/or DPMS off/on cycle. + + (Ported from radeon commit c4ae0e2cbcc0e2ebf9f13ee92d59b5120254a1dc) + + Reviewed-by: Alex Deucher + +commit c57da33308a81fa575179238a0415abcb8b34908 +Author: Michel Dänzer +Date: Tue Jun 9 12:39:21 2015 +0900 + + Add Option "TearFree" + + Avoids tearing by flipping between two scanout BOs per (non-rotated) CRTC + + (Cherry picked from radeon commit 43159ef400c3b18b9f4d3e6fa1c4aef2d60d38fe) + + Reviewed-by: Alex Deucher + +commit bd0aca09770543fa77b934e1728a832c9c2dc90c +Author: Michel Dänzer +Date: Tue Jun 9 11:57:59 2015 +0900 + + glamor: Remove the stride member of struct radeon_pixmap + + Its value was always the same as that of the PixmapRec devKind member. + + (Cherry picked from radeon commit ed401f5b4f07375db17ff05e294907ec95fc946d) + + Reviewed-by: Alex Deucher + +commit e5dfb6c2667994701ee451bf82c4142cbf343405 +Author: Michel Dänzer +Date: Wed Mar 18 16:23:24 2015 +0900 + + glamor: Add Option "ShadowPrimary" + + When this option is enabled, most pixmaps (including the screen pixmap) + are allocated in system RAM and mostly accessed by the CPU. Changed areas + of the screen pixmap are copied to dedicated per-CRTC scanout pixmaps + regularly, triggered by the vblank interrupt. + + (Cherry picked from radeon commits ae92d1765fa370a8d94c2856ad6c45d273ec3c69 + and 1af044d7eee211fd4b248c236280274a68334da5) + + [ Michel Dänzer: Additional adjustements for the amdgpu driver ] + + Signed-off-by: Darren Powell + Reviewed-by: Alex Deucher + +commit 08da7b691d556735dcc22b1351c886a5079dfd3f +Author: Michel Dänzer +Date: Wed Jun 10 16:21:21 2015 +0900 + + Add AMDGPU_CREATE_PIXMAP_GTT flag + + When set, the pixmap memory is allocated in GTT instead of in VRAM. + + Reviewed-by: Alex Deucher + +commit 59bdb578266a2637fda8d11168b9332f6845157c +Author: Michel Dänzer +Date: Wed Jun 10 12:04:29 2015 +0900 + + Factor out amdgpu_bo_get_handle helper + + The helper transparently handles BOs allocated from GBM and + libdrm_amdgpu. + + Reviewed-by: Alex Deucher + +commit 9a6eff506b6804481a6e8139d362355fc5ffdbfb +Author: Michel Dänzer +Date: Wed Jun 10 12:10:24 2015 +0900 + + Set AMDGPU_BO_FLAGS_GBM for cursor buffers allocated from GBM + + Reviewed-by: Alex Deucher + +commit d3ea8a69b02b308f8f23662be6e0c7bd81c1a2c9 +Author: Michel Dänzer +Date: Fri May 29 18:53:50 2015 +0900 + + glamor: Add wrappers for the X server rendering hooks + + They can choose between using the GPU or CPU for the operation. + + (cherry picked from radeon commits eea79472a84672ee4dc7adc4487cec6a4037048a + and e58fc380ccf2a581d28f041fd74b963626ca5404) + + Signed-off-by: Darren Powell + Reviewed-by: Alex Deucher + +commit 895e4d73d5f042afa13065b64a78f5625ecb5612 +Author: Michel Dänzer +Date: Fri May 29 18:53:40 2015 +0900 + + glamor: Remove unused function radeon_glamor_pixmap_is_offscreen + + (cherry picked from radeon commit 2fa021f77372ca93375a3d13a0c43a9089674899) + + Signed-off-by: Darren Powell + Reviewed-by: Alex Deucher + +commit cc5671c587d575b2a7d2802d17e8af0384a2cea5 +Author: Michel Dänzer +Date: Fri May 29 18:53:36 2015 +0900 + + Add RADEON_CREATE_PIXMAP_SCANOUT flag + + It means that the pixmap is used for scanout exclusively. + + (cherry picked from radeon commit e96349ba6281fd18b8bf9c76629128276b065e6c) + + Signed-off-by: Darren Powell + Reviewed-by: Alex Deucher + +commit 21834953ee64920438dee1c94f3a1e53dc58b82d +Author: Michel Dänzer +Date: Fri May 29 18:53:32 2015 +0900 + + Split out struct drmmode_scanout for rotation shadow buffer information + + Will be used for other kinds of dedicated scanout buffers as well. + + (cherry picked from radeon commit 9be7dd382e86d2b804de81d4e2af7431b2e16843) + + Signed-off-by: Darren Powell + Reviewed-by: Alex Deucher + +commit e4e4f7b83e7d7e43993fa0793d666d6dec2980f8 +Author: Michel Dänzer +Date: Fri May 29 18:53:21 2015 +0900 + + Rename scanout_pixmap_x field to prime_pixmap_x + + To avoid confusion with upcoming changes. + + (cherry picked from radeon commit c32b0530302739f6512755bccf281c2300617376) + + Signed-off-by: Darren Powell + Reviewed-by: Alex Deucher + +commit edfff6b1a3a19953644b8052b30076f76f7dc337 +Author: Michel Dänzer +Date: Tue Jun 2 17:04:21 2015 +0900 + + Add DRI3 support + + Must be enabled with + + Option "DRI3" + + in xorg.conf. + + (Cherry picked from radeon commits 64e1e4dbdd3caee6f5d8f6b6c094b4533fa94953, + 694e04720b886060fe3eefdce59741f218c8269f, + f940fd741b15f03393037c5bb904cd74f012de9d, + fcd37f65f485291084c174666bd605e215bf1398, + 4b0997e56dec0053cb2cb793e0f4ae35055ff7e6, + f68d9b5ba0c91a725b5eec9386c61bea8824c299 and + 98fb4199e63fedd4607cddee64bf602d6398df81) + + Reviewed-by: Alex Deucher + +commit d295b5b3310bc5c23d232c4be4170165a057c090 +Author: Michel Dänzer +Date: Tue Jun 2 17:01:06 2015 +0900 + + amdgpu_set_shared_pixmap_backing: Add support for GBM / glamor v2 + + v2: Initialize reference count of imported GBM BOs to 1, fixes leaking + them. + + Reviewed-by: Alex Deucher [v1] + +commit 03ad0fa0185d215f7d4234006e04406af1ab63ca +Author: Michel Dänzer +Date: Fri May 29 18:53:45 2015 +0900 + + glamor: Add radeon_pixmap parameter to radeon_glamor_create_textured_pixmap + + (cherry picked from radeon commit 051d46382656ffc3e6cac1aab3aee7efdf5b623a) + + Reviewed-by: Michel Dänzer + Signed-off-by: Darren Powell + Reviewed-by: Alex Deucher + +commit fafb8c6ac925ad16073e5a60dbf60d5add11bb25 +Author: Michel Dänzer +Date: Tue Jun 2 17:00:46 2015 +0900 + + Add support for the Present extension + + (Cherry picked from radeon commits 3c65fb849e1ba9fb6454bcaa55b696548902f3fc, + 694e04720b886060fe3eefdce59741f218c8269f, + e3be8b0a8cf484ff16597413a6172788178e80c8, + 80eede245d1eda27eaba108b0761a24bfd69aff6 and + 5f82a720374c9c1caebb42bfbeea1f0cf8847d28) + + Reviewed-by: Alex Deucher + +commit 5b51f0e7e396ea946ef85429a8e9be5c1d5c39c3 +Author: Michel Dänzer +Date: Tue Jun 2 16:58:27 2015 +0900 + + Add support for SYNC extension fences + + (Cherry picked from radeon commits 8fc9a241ab59ffbcdc178d6415332c88a54e85fe, + af1862a37570fa512a525ab47d72b30400d2e2d6, + aa7825eb29cdf6ac9d7b28ad18186807ff384687, + af6076241c0d322b295a4e898407ae2472bd8eb4 and + d64a13ebe0ecd241ee3260dbffd8f4a01e254183) + + Reviewed-by: Alex Deucher + +commit a30060d22a42688371166a861e5050fdd5ce8f7b +Author: Michel Dänzer +Date: Mon Jun 1 18:33:33 2015 +0900 + + DRI2: Split out helper for getting UST and MSC of a specific CRTC + + (Cherry picked from radeon commits 76c2923ac5c7230a8b2f9f8329c308d28b44d9c0 + and d7c82731a8bf3d381bc571b94d80d9bb2dd6e40d) + + Reviewed-by: Alex Deucher + +commit 9a554a683b970660b467566cf05b921393705a20 +Author: Michel Dänzer +Date: Mon Jun 1 17:32:56 2015 +0900 + + DRI2: Use helper functions for DRM event queue management + + This is mostly in preparation for Present support, but it also simplifies + the DRI2 specific code a little. + + (Cherry picked from radeon commit 6c3a721cde9317233072b573f9502348dcd21b16) + + Reviewed-by: Alex Deucher + +commit e6164ad340f65ff8ee6f6a6934302591af875a43 +Author: Michel Dänzer +Date: Mon Jun 1 17:29:30 2015 +0900 + + DRI2: Move amdgpu_dri2_flip_event_handler + + In preparation for the next change, which will modify it to a static + function which needs to be in the new place. No functional change. + + (Cherry picked from radeon commit c3fa22a479e61d1899fa9d327d9c4e2a7f64b0c1) + + Reviewed-by: Alex Deucher + +commit 5419e13da7ec3cffd43510ac88106076ea81124c +Author: Michel Dänzer +Date: Mon Jun 1 17:25:23 2015 +0900 + + DRI2: Remove superfluous assignments to *_info->frame + + That field is only used for page flipping. + + (Cherry picked from radeon commit 65045112fdc8a9fa36e0e00f46739a6152b775ff) + + Reviewed-by: Alex Deucher + +commit f4c2b640be17ab1f8694b35d4cb74ccfce3d1385 +Author: Michel Dänzer +Date: Mon Jun 1 17:11:30 2015 +0900 + + DRI2: Simplify blit fallback handling for scheduled swaps + + Also use amdgpu_dri2_schedule_event when possible. + + (Cherry picked from radeon commit ad27f16f308079d06a2b1c788b3cb0947531253a) + + Reviewed-by: Alex Deucher + +commit 13a7284e061081a12180b375d66f9b8394cf8753 +Author: Michel Dänzer +Date: Mon Jun 1 16:58:00 2015 +0900 + + Add DRM event queue helpers + + (Cherry picked from radeon commit b4af8a327ed8420f0ff4ea0f113f4a59406ed4d3) + + Reviewed-by: Alex Deucher + +commit eb7c6958dff5cb8b0aad02d1d5673483dae4e3d4 +Author: Michel Dänzer +Date: Mon Jun 1 16:52:40 2015 +0900 + + Move xorg_list backwards compatibility to new amdgpu_list.h header + + (Cherry picked from radeon commits 7c3470f4b659206ed23f761948936ede3a2dba3d + and 4a98f60117c387a228d5cbaadb6e298fb4e865df) + + Reviewed-by: Alex Deucher + +commit 69d161a54b4ea0d8033a0873210f2857c91ceae8 +Author: Michel Dänzer +Date: Mon Jun 1 16:46:30 2015 +0900 + + Require at least xserver 1.8 + + So we can rely on the list.h header. + + xserver 1.8 was released in April 2010. + + (Cherry picked from radeon commit 7388d0b6c54b9d536fdb161e3aa61b326627b939) + + Reviewed-by: Alex Deucher + +commit 7363156b7c077def2aaf9a4573410817f5e92610 +Author: Jammy Zhou +Date: Sat May 30 00:31:44 2015 +0800 + + Check GBM_BO_USE_LINEAR correctly v2 + + v2: remove the check for gbm.h + + Signed-off-by: Jammy Zhou + Reviewed-by: Michel Dänzer + Reviewed-by: Alex Deucher [v1] + +commit e75e9f39c95b8b563885882bf29d776861cd6ca3 +Author: Brian Paterni +Date: Sat May 16 15:00:14 2015 -0500 + + extend conditional group GBM_BO_USE_LINEAR over both usages + + Fixes 'GBM_BO_USE_LINEAR' undeclared error when compiling against older + libgbm + + Signed-off-by: Brian Paterni + Reviewed-by: Michel Dänzer + +commit 37b389ee9e13f065fb080d1269f9a6aed616c210 +Author: Michel Dänzer +Date: Fri May 15 10:24:24 2015 +0900 + + glamor: Deal with glamor_glyphs_init being removed from xserver + + Port of radeon commit 818c180c8932233b214a35ba0647af82f7bcec3d. + +commit 22917044e419023d487f816e0d4f094695b55fa6 +Author: Alex Deucher +Date: Tue May 12 13:29:00 2015 -0400 + + add some new tonga pci ids + + Reviewed-by: Jammy Zhou + Reviewed-by: Michel Dänzer + Signed-off-by: Alex Deucher + +commit e71be4a22799ec4c02051b75c5fed16a3a953c7b +Author: Alex Deucher +Date: Tue May 12 13:25:02 2015 -0400 + + add new bonaire pci id + + Reviewed-by: Jammy Zhou + Reviewed-by: Michel Dänzer + Signed-off-by: Alex Deucher + +commit b795d1e137b34a314b4b41d025d96ca9251d6bbe +Author: Michel Dänzer +Date: Thu May 7 18:05:32 2015 +0900 + + Link against libgbm + + Fixes unresolved symbol "gbm_create_device". + + Reported-and-Tested-by: Brian Paterni + +commit 7e3b27390a03e423772717fca3c757cf5cc4d7b4 +Author: Jammy Zhou +Date: Tue May 12 05:34:49 2015 +0800 + + Disable tiling for PRIME shared pixmap + + Signed-off-by: Jammy Zhou + Reviewed-by: Michel Dänzer + +commit 4840f918ab7d61b4f55bcdff3afdac7b34e45d88 +Author: Jammy Zhou +Date: Tue May 12 00:09:42 2015 +0800 + + Use gbm_bo_get_fd to get DMA_BUF fd + + When GBM is used for buffer allocation, gbm_bo_get_fd should be + used to get the DMA_BUF fd. + + Signed-off-by: Jammy Zhou + Reviewed-by: Michel Dänzer + +commit b69c5b3cc2d7da3bb85acd687db9b5a021258914 +Author: Marek Olšák +Date: Fri Mar 27 22:56:37 2015 +0100 + + ddx: use amdgpu_query_crtc_from_id + + Reviewed-by: Jammy Zhou + Reviewed-by: Alex Deucher + +commit 91aa694a7da7b690a3e5d59a1a8fa42cbb3ebda4 +Author: Marek Olšák +Date: Fri Mar 27 22:22:35 2015 +0100 + + ddx: remove AMDGPUIsAccelWorking + + libdrm fails to initialize without acceleration, so this always returns true. + + Reviewed-by: Jammy Zhou + Reviewed-by: Alex Deucher + +commit afc33040f862e2e13ba7f132bb363cf16fb6a1d7 +Author: Marek Olšák +Date: Fri Mar 27 22:14:37 2015 +0100 + + ddx: enable acceleration by default on Hawaii + + Reviewed-by: Jammy Zhou + Reviewed-by: Alex Deucher + +commit 8a34a8149860ac15e83ccdbd8d9a527d8d3e5997 +Author: Jammy Zhou +Date: Mon Apr 27 14:27:34 2015 +0800 + + Remove throttling from amdgpu_dri2_copy_region2 + + Throttling should be handled by the client-side drivers. + + Signed-off-by: Jammy Zhou + Reviewed-by: Michel Dänzer + +commit 9f61a5506b1028d30c99cb5866abcec35d5c9cb8 +Author: Alex Deucher +Date: Fri Apr 24 11:47:32 2015 -0400 + + fixup README + + Reviewed-by: Michel Dänzer + Signed-off-by: Alex Deucher + +commit a49ad11af18dad74506c2f69d7bbda07b67529d2 +Author: Michel Dänzer +Date: Fri Apr 24 09:57:27 2015 +0900 + + Add 10-amdgpu.conf xorg.conf.d snippet + + This instructs Xorg >= 1.16 to try loading the amdgpu driver for devices + managed by the amdgpu kernel driver. + + Reviewed-by: Alex Deucher + +commit fa4aed6cf56048a6520eac57514e38db3685cd15 +Author: Michel Dänzer +Date: Fri Apr 24 09:53:33 2015 +0900 + + Document Option "AccelMethod" in the manpage + + Reviewed-by: Alex Deucher + +commit fe4a4b6836252cc8caa642a32fb3910c8590076b +Author: Michel Dänzer +Date: Fri Apr 24 09:52:04 2015 +0900 + + Fix build when gbm.h doesn't define GBM_BO_USE_LINEAR + + Option "AccelMethod" "none" is ignored in that case. + + Reviewed-by: Alex Deucher + +commit 84df3e7114fb71b5e10c1a6f7869ab1505fef5b0 +Author: Michel Dänzer +Date: Fri Apr 24 09:51:22 2015 +0900 + + glamor: Handle GLAMOR_* flags removed from xserver + + The behaviour is the same as when the removed flags were passed in. + + (cherry picked from radeon commit b16609b453bb1a181198cf27778f205dc23fb642) + + Reviewed-by: Christian König + +commit b947f4bf4efa8841bea4d306d0b0d21c7511c724 +Author: Michel Dänzer +Date: Fri Apr 24 09:50:51 2015 +0900 + + Move #include "radeon_glamor.h" from amdgpu_drv.h to where it's needed + + (cherry picked from radeon commit 4b8adebb80158bcf81ada83bb88517febe931b12) + + Reviewed-by: Christian König + +commit ff62bf6e9dce55dbde92baf4fa30193c7344ee8a +Author: Alex Deucher +Date: Mon Apr 20 11:57:52 2015 -0400 + + amdgpu: add the xf86-video-amdgpu driver + + This adds the new xf86-video-amdgpu driver for + newer AMD GPUs. + + Signed-off-by: Alex Deucher --- xserver-xorg-video-amdgpu-18.1.99+git20190207.orig/debian/README.source +++ xserver-xorg-video-amdgpu-18.1.99+git20190207/debian/README.source @@ -0,0 +1,49 @@ +------------------------------------------------------ +Quick Guide To Patching This Package For The Impatient +------------------------------------------------------ + +1. Make sure you have quilt installed +2. Unpack the package as usual with "dpkg-source -x" +3. Run the "patch" target in debian/rules +4. Create a new patch with "quilt new" (see quilt(1)) +5. Edit all the files you want to include in the patch with "quilt edit" + (see quilt(1)). +6. Write the patch with "quilt refresh" (see quilt(1)) +7. Run the "clean" target in debian/rules + +Alternatively, instead of using quilt directly, you can drop the patch in to +debian/patches and add the name of the patch to debian/patches/series. + +------------------------------------ +Guide To The X Strike Force Packages +------------------------------------ + +The X Strike Force team maintains X packages in git repositories on +git.debian.org in the pkg-xorg subdirectory. Most upstream packages +are actually maintained in git repositories as well, so they often +just need to be pulled into git.debian.org in a "upstream-*" branch. +Otherwise, the upstream sources are manually installed in the Debian +git repository. + +The .orig.tar.gz upstream source file could be generated using this +"upstream-*" branch in the Debian git repository but it is actually +copied from upstream tarballs directly. + +Due to X.org being highly modular, packaging all X.org applications +as their own independent packages would have created too many Debian +packages. For this reason, some X.org applications have been grouped +into larger packages: xutils, xutils-dev, x11-apps, x11-session-utils, +x11-utils, x11-xfs-utils, x11-xkb-utils, x11-xserver-utils. +Most packages, including the X.org server itself and all libraries +and drivers are, however maintained independently. + +The Debian packaging is added by creating the "debian-*" git branch +which contains the aforementioned "upstream-*" branch plus the debian/ +repository files. +When a patch has to be applied to the Debian package, two solutions +are involved: +* If the patch is available in one of the upstream branches, it + may be git'cherry-picked into the Debian repository. In this + case, it appears directly in the .diff.gz. +* Otherwise, the patch is added to debian/patches/ which is managed + with quilt as documented in /usr/share/doc/quilt/README.source. --- xserver-xorg-video-amdgpu-18.1.99+git20190207.orig/debian/changelog +++ xserver-xorg-video-amdgpu-18.1.99+git20190207/debian/changelog @@ -0,0 +1,101 @@ +xserver-xorg-video-amdgpu (18.1.99+git20190207-1) unstable; urgency=medium + + * New upstream snapshot. + * Stop passing --disable-silent-rules to configure. + + -- Andreas Boll Thu, 07 Feb 2019 22:19:06 +0100 + +xserver-xorg-video-amdgpu (18.1.0-1) unstable; urgency=medium + + * Switch to dbgsym package. + * New upstream release. + * control: Build-depend on x11proto-dev. + * control: Bump libdrm build-dep. + * Bump debhelper to 11. + * control: Bump policy to 4.2.1. + + -- Timo Aaltonen Tue, 18 Sep 2018 10:23:52 +0300 + +xserver-xorg-video-amdgpu (18.0.1-1) unstable; urgency=medium + + * New upstream release. + + -- Timo Aaltonen Tue, 20 Mar 2018 14:02:29 +0200 + +xserver-xorg-video-amdgpu (18.0.0-1) unstable; urgency=medium + + * New upstream release. + * control: Update VCS urls. + * control: Bump policy to 4.1.3, no changes. + + -- Timo Aaltonen Wed, 07 Mar 2018 04:44:35 +0200 + +xserver-xorg-video-amdgpu (1.4.0-1) unstable; urgency=medium + + * New upstream release. + * control: Bump libdrm-dev build-dep to 2.4.78 to match configure.ac. + + -- Timo Aaltonen Fri, 29 Sep 2017 00:17:42 +0300 + +xserver-xorg-video-amdgpu (1.3.0-1) unstable; urgency=medium + + * New upstream release. + * control: Bump libdrm-dev build-dep. + + -- Timo Aaltonen Tue, 27 Jun 2017 11:44:43 +0300 + +xserver-xorg-video-amdgpu (1.2.0-1) unstable; urgency=medium + + * New upstream release. + * control: Bump policy to 3.9.8, no changes. + + -- Timo Aaltonen Thu, 17 Nov 2016 11:21:36 +0200 + +xserver-xorg-video-amdgpu (1.1.2-1) unstable; urgency=medium + + * New upstream release. + - fix-configdir.diff: Dropped, fixed upstream + + [ Julien Cristau ] + * Use https URL in debian/watch. + + -- Timo Aaltonen Fri, 16 Sep 2016 13:18:07 +0300 + +xserver-xorg-video-amdgpu (1.1.1-1) unstable; urgency=medium + + * New upstream release. + * fix-configdir.diff: Fix installing the config snippet. + + -- Timo Aaltonen Thu, 15 Sep 2016 23:55:07 +0300 + +xserver-xorg-video-amdgpu (1.1.0-1) unstable; urgency=medium + + * New upstream release. + * control: Bump policy to 3.9.7, no changes. + + -- Timo Aaltonen Thu, 07 Apr 2016 13:32:21 +0300 + +xserver-xorg-video-amdgpu (1.0.1-1) unstable; urgency=medium + + * New upstream release. + + -- Timo Aaltonen Mon, 22 Feb 2016 06:36:08 +0200 + +xserver-xorg-video-amdgpu (1.0.0-1) unstable; urgency=medium + + [ Andreas Boll ] + * First upstream release. + * Let uscan verify tarball signatures. + * Replace non-existing Suggests: linux-firmware with new firmware-amd- + graphics. + * Remove unused libpciaccess-dev build-dep. + * Update list of supported chips. + * Use https for Vcs-* fields. + + -- Timo Aaltonen Tue, 24 Nov 2015 15:46:07 +0200 + +xserver-xorg-video-amdgpu (0.0.01~git20150807-1) unstable; urgency=low + + * Initial release (Closes: #795686) + + -- Timo Aaltonen Sun, 16 Aug 2015 11:26:30 +0300 --- xserver-xorg-video-amdgpu-18.1.99+git20190207.orig/debian/compat +++ xserver-xorg-video-amdgpu-18.1.99+git20190207/debian/compat @@ -0,0 +1 @@ +11 --- xserver-xorg-video-amdgpu-18.1.99+git20190207.orig/debian/control +++ xserver-xorg-video-amdgpu-18.1.99+git20190207/debian/control @@ -0,0 +1,37 @@ +Source: xserver-xorg-video-amdgpu +Section: x11 +Priority: optional +Maintainer: Debian X Strike Force +Uploaders: Timo Aaltonen +Build-Depends: + debhelper (>= 11), + quilt, + libdrm-dev (>= 2.4.89) [!hurd-i386], + libgl1-mesa-dev | libgl-dev, + libgbm-dev, + libudev-dev [linux-any], + pkg-config, + x11proto-dev, + xserver-xorg-dev (>= 2:1.16), + xutils-dev (>= 1:7.5+4) +Standards-Version: 4.2.1 +Vcs-Git: https://salsa.debian.org/xorg-team/driver/xserver-xorg-video-amdgpu.git +Vcs-Browser: https://salsa.debian.org/xorg-team/driver/xserver-xorg-video-amdgpu.git + +Package: xserver-xorg-video-amdgpu +Architecture: linux-any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, + ${xviddriver:Depends}, +Provides: ${xviddriver:Provides} +Suggests: firmware-amd-graphics +Description: X.Org X server -- AMDGPU display driver + This package provides the 'amdgpu' driver for the AMD Radeon cards. The + following chip families should be supported: Bonaire, Hawaii, Kaveri, Kabini + Mullins, Iceland, Tonga, Carrizo, Fiji, Stoney. + . + More information about X.Org can be found at: + + . + This package is built from the X.org xf86-video-amdgpu driver module. --- xserver-xorg-video-amdgpu-18.1.99+git20190207.orig/debian/copyright +++ xserver-xorg-video-amdgpu-18.1.99+git20190207/debian/copyright @@ -0,0 +1,90 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: xserver-xorg-video-amdgpu +Source: http://xorg.freedesktop.org/releases/individual/driver/ + +Files: * +Copyright: 2012-2014 Advanced Micro Devices, Inc +License: MIT + +Files: src/amdgpu_dri2.c +Copyright: 2008 Jerome Glisse + 2008 Kristian Høgsberg +License: MIT + +Files: src/amdgpu_dri2.h +Copyright: 2008 Jerome Glisse +License: MIT + +Files: src/amdgpu_dri3.c +Copyright: 2013-2014 Intel Corporation + 2015 Advanced Micro Devices, Inc +License: MIT + +Files: src/amdgpu_drm_queue.c src/amdgpu_drm_queue.h +Copyright: 2007 Red Hat, Inc + 2015 Advanced Micro Devices, Inc +License: MIT + +Files: src/amdgpu_drv.h src/amdgpu_probe.c src/amdgpu_probe.h +Copyright: 2000 ATI Technologies Inc. + 2000 VA Linux Systems Inc. +License: MIT + +Files: src/amdgpu_glamor.c src/amdgpu_glamor.h +Copyright: 2011 Intel Corporation +License: MIT + +Files: src/amdgpu_glamor_wrappers.c +Copyright: 2001 Keith Packard + The XFree86 Project Inc + 2008 Red Hat, Inc + 2000 SuSE, Inc + 2010 Intel Corporation + 2012,2015 Advanced Micro Devices, Inc. +License: MIT + +Files: src/amdgpu_kms.c +Copyright: 2009 Red Hat, Inc +License: MIT + +Files: src/amdgpu_present.c src/amdgpu_sync.c +Copyright: 2013-2014 Intel Corporation + 2015 Advanced Micro Devices, Inc +License: MIT + +Files: src/amdgpu_misc.c src/amdgpu_version.h +Copyright: 2000-2004 Marc Aurele La France +License: MIT + +Files: src/compat-api.h src/drmmode_display.h src/pcidb/parse_pci_ids.pl +Copyright: 2007-2012 Red Hat, Inc +License: MIT + +Files: src/simple_list.h +Copyright: 1999-2001 Brian Paul + 1997 Keith Whitwell +License: MIT + +Files: debian/* +Copyright: 2015 Timo Aaltonen +License: MIT + +License: MIT + Permission to use, copy, modify, distribute, and sell this software + and its documentation for any purpose is hereby granted without + fee, provided that the above copyright notice appear in all copies + and that both that copyright notice and this permission notice + appear in supporting documentation, and that the name of the authors + not be used in advertising or publicity pertaining to distribution of the + software without specific, written prior permission. The authors make no + representations about the suitability of this software for any + purpose. It is provided "as is" without express or implied + warranty. + . + THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN + NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS + OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. --- xserver-xorg-video-amdgpu-18.1.99+git20190207.orig/debian/patches/series +++ xserver-xorg-video-amdgpu-18.1.99+git20190207/debian/patches/series @@ -0,0 +1 @@ +#placeholder --- xserver-xorg-video-amdgpu-18.1.99+git20190207.orig/debian/rules +++ xserver-xorg-video-amdgpu-18.1.99+git20190207/debian/rules @@ -0,0 +1,33 @@ +#!/usr/bin/make -f +#DH_VERBOSE = 1 + +DPKG_EXPORT_BUILDFLAGS = 1 +include /usr/share/dpkg/default.mk + +XXV=xserver-xorg-video + +override_dh_auto_configure: + dh_auto_configure --builddirectory=build/ -- \ + --libdir=/usr/lib + +override_dh_auto_install: + dh_auto_install --destdir debian/tmp + +# Kill *.la files, and forget no-one: +override_dh_install: + find debian/tmp -name '*.la' -delete + dh_install + +override_dh_missing: + dh_missing --fail-missing + +# Debug packages: +override_dh_strip: + dh_strip -p$(XXV)-amdgpu --dbgsym-migration="$(XXV)-amdgpu-dbg (<< 18.0.1-2~)" + +# That's a plugin, use appropriate warning level: +override_dh_shlibdeps: + dh_shlibdeps -- --warnings=6 + +%: + dh $@ --with quilt,xsf --builddirectory=build/ --- xserver-xorg-video-amdgpu-18.1.99+git20190207.orig/debian/source/format +++ xserver-xorg-video-amdgpu-18.1.99+git20190207/debian/source/format @@ -0,0 +1 @@ +1.0 --- xserver-xorg-video-amdgpu-18.1.99+git20190207.orig/debian/upstream/signing-key.asc +++ xserver-xorg-video-amdgpu-18.1.99+git20190207/debian/upstream/signing-key.asc @@ -0,0 +1,26 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQGiBDsehS8RBACbsIQEX31aYSIuEKxEnEX82ezMR8z3LG8ktv1KjyNErUX9Pt7A +UC7W3W0bLUhu8Le8S2va6hi7GfSAifl0ih3k6Bv1Itzgnd+7ZmSrvCN8yGJaHNQf +AevAuEboIb+MaVHo9EMJj4ikOcRZCmQWw7evu/D9uQdtkCnRY9iJiAGxbwCguBHt +poGMxDOINCr5UU6qt+m4O+UD/355ohBBzzyh49lTj0kTFKr0Ozd20G2FbcqHgfFL +1dc1MPyigej2gLga2osu2QY0ObvAGkOuWBi3LTY8Zs8uqFGDC4ZAwMPoFy3yzu3n +e6T7d/68rJil0QcdQjzzHi6ekqHuhst4a+/+D23hZa8MJBEcdOhRhsaDVGAJSFEQ +B1qLBACOs0xN+XblejO35gsDSVVk8s+FUUw3TSWJBfZa3ImpV2U2tBO4qck+wqbH +NfdnU/crrsHahjzBjvk8Up7VoY8oT+z03sal2vXEonS279xN2B92TttrAgwosujg +uFO/7tvzymWC76rDEwue8TsADE11ErjwaBTs8ZXfnN/uAANgPLQjTWljaGVsIERh +ZW56ZXIgPGRhZW56ZXJAZGViaWFuLm9yZz6IXwQTEQIAFwUCOx6FMAULBwoDBAMV +AwIDFgIBAheAABIJEFqBr45q27IAB2VHUEcAAQFmmQCfSxXBxMctJqTLwn2Ijv5V +JYbUWK8AmQGwoAUEMLmo8Ceu/NJDgkkS92xttCNNaWNoZWwgRGFlbnplciA8bWlj +aGVsQGRhZW56ZXIubmV0PohmBBMRAgAeBQJAVfEmAhsDBgsJCAcDAgMVAgMDFgIB +Ah4BAheAABIJEFqBr45q27IAB2VHUEcAAQGKzwCfcpKJ1yN6EHF/NzdqswhErSzV +uO4Ani1pv0Ij2I6rRlJ50m8rk0HyMkpCuQENBDsehUUQBACWZHL5JT8CQoDYsN+6 +dBkoSphRhqn/2t8WWRKYyKjcc7IRURZ3mc3uH+S4c219f7yJufmV7BFspqSX2c8g +pmD8POkHBccmX5ZAMR8fS3g/vPRJcW8OsE9AnC70r/ETn1NZvGIRm1eoNs1siw9P +52kBlW/HuBYVShjWNhBGx4BQawADBgP9FZLRTgsRQXcy0Ne0Qk8Aid8acj+KrCyR +9MgqANuqx9sxNkcwcoa0xU2Gc2xRInd3XRohzgRC/mzvthjbX4mCpm05I9bTGSfC ++obijjWlawEhcy72WtnZXNs42vWUpLCpoHuQTkyloG8nqRHOasUo7mLGK1+cXy4E +2QuWm4Yc7aWITgQYEQIABgUCOx6FRQASCRBaga+OatuyAAdlR1BHAAEBlscAn2Uf +k2d6/3p4Cuyz/NX7KpL2dQ8WAJ9UD5JEakhfofed8PSqOM7jOO3LCA== +=P0UI +-----END PGP PUBLIC KEY BLOCK----- --- xserver-xorg-video-amdgpu-18.1.99+git20190207.orig/debian/watch +++ xserver-xorg-video-amdgpu-18.1.99+git20190207/debian/watch @@ -0,0 +1,4 @@ +#git=git://anongit.freedesktop.org/xorg/driver/xf86-video-amdgpu +version=3 +opts=pgpsigurlmangle=s/$/.sig/ \ +https://xorg.freedesktop.org/releases/individual/driver/ xf86-video-amdgpu-(.*)\.tar\.gz --- xserver-xorg-video-amdgpu-18.1.99+git20190207.orig/debian/xserver-xorg-video-amdgpu.install +++ xserver-xorg-video-amdgpu-18.1.99+git20190207/debian/xserver-xorg-video-amdgpu.install @@ -0,0 +1,3 @@ +usr/lib/xorg/modules/drivers/amdgpu_drv.so +usr/share/man/man4/amdgpu.4 +usr/share/X11/xorg.conf.d/10-amdgpu.conf --- xserver-xorg-video-amdgpu-18.1.99+git20190207.orig/debian/xserver-xorg-video-amdgpu.links +++ xserver-xorg-video-amdgpu-18.1.99+git20190207/debian/xserver-xorg-video-amdgpu.links @@ -0,0 +1,2 @@ +usr/share/bug/xserver-xorg-core/script usr/share/bug/xserver-xorg-video-amdgpu/script +