xenocara/driver/xf86-video-amdgpu/ChangeLog

6593 lines
234 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

commit b467d2569a003da05ad222b0dc095bee5eec450a
Author: Michel Dänzer <mdaenzer@redhat.com>
Date: Fri Oct 11 17:10:10 2019 +0200
Bump version for the 19.1.0 release
commit a1b7263277c033e109629829c370c0e95978e061
Author: Michel Dänzer <mdaenzer@redhat.com>
Date: Thu Sep 26 15:56:59 2019 +0200
Don't unreference FBs of pixmaps from different screens in LeaveVT
FindClientResourcesByType finds pixmaps from all screens, but trying to
process ones from other screens here makes no sense and likely results
in a crash or memory corruption.
Fixes: c16ff42f927d ("Make all active CRTCs scan out an all-black
framebuffer in LeaveVT")
(Ported from radeon commit 2faaecc69b127248718e759c6c98c84d56dd1b6b)
commit 5b8bc9fc505c551dcd9b0ed5ab835a49fa4f9fda
Author: Michel Dänzer <mdaenzer@redhat.com>
Date: Wed Sep 18 12:55:45 2019 +0200
Don't set up black scanout buffer if LeaveVT is called from CloseScreen
Avoids a crash described in
https://gitlab.freedesktop.org/xorg/driver/xf86-video-amdgpu/merge_requests/43#note_223718
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit e6fce59a071220967fcd4e2c9e4a262c72870761
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Wed Jul 24 16:05:05 2019 +0200
present: Don't check pixmap pitch in check_flip with non-DC >= 3.34
The current non-DC kernel driver also handles flipping between different
pitches correctly.
Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
commit 5bb2580b266468f87843b5585ae64e056b63bb88
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Wed Jul 24 15:55:19 2019 +0200
present: Don't check pixmap pitch in check_flip with current DC
Current DC handles flipping between different pitches correctly.
Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
commit ac66086613cbd0974b421cd5eda872adc15242ed
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Wed Jul 24 15:45:21 2019 +0200
present: Also check pixmap pitch in check_flip with current xserver
The corresponding check in the xserver Present code was removed again,
because flipping between different pitches can work in some cases.
Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
commit 98f172eb2d2353e19edd8167f22215ce596811f8
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Mon Jul 29 18:54:24 2019 +0200
gitlab-ci: Use templates from wayland/ci-templates
These are already used by xserver, Mesa and some other projects.
Current Debian testing brings e.g. GCC 8.3.0 and clang 7.0.1.
commit 87f41ace4920fd2069794211683659eb25b025a6
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Fri Jul 5 12:43:53 2019 +0200
Don't disable page flipping completely with SW cursor
Even with SW cursor, page flipping can be used while no X cursor is
visible.
Occurred to me in the context of xorg/xserver#828.
commit 7d3fef72e0c871e1677e9e544f4cae5e238b5c52
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Thu May 9 17:39:49 2019 +0200
present: Check that we can get a KMS FB for flipping
This can legitimately fail if the pixmap's storage is shared from
another device, e.g. when using PRIME render offloading.
commit ea19a5207054bb159fc7fb6d88e0ceb10c3da010
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Thu Jun 6 11:02:15 2019 +0200
Remove dri2_drawable_crtc parameter consider_disabled
All callers were passing TRUE.
Reviewed-and-tested-by: Flora Cui <flora.cui@amd.com>
commit 3109f088fdbd89c2ee8078625d4f073852492656
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Thu Jun 6 11:22:09 2019 +0200
dri2: Re-use previous CRTC when possible if pick_best_crtc returns NULL
This way, the MSC will continue ticking at the rate of (the last mode
which was enabled for) that CRTC, instead of the client running
unthrottled.
Reviewed-and-tested-by: Flora Cui <flora.cui@amd.com>
commit fb06fb814700a47464abd756e1111dcc76d0d776
Author: Flora Cui <flora.cui@amd.com>
Date: Wed May 29 14:18:50 2019 +0800
dri2: reply to client for WaitMSC request in any case
otherwise client would wait for reply forever and desktop appears hang.
Signed-off-by: Flora Cui <flora.cui@amd.com>
Acked-by: Feifei Xu <Feifei.Xu@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit 4b17533fcb30842caf0035ba593b7d986520cc85
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Tue Apr 30 17:50:15 2019 +0200
dri3: Always flush glamor before sharing pixmap storage with clients
Even if glamor_gbm_bo_from_pixmap / glamor_fd_from_pixmap themselves
don't trigger any drawing, there could already be unflushed drawing to
the pixmap whose storage we share with a client.
commit bf61e6d7ac1a5754b1026d7f80acf25ef622c491
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Thu Apr 18 19:21:40 2019 +0200
Retry get_fb_ptr in get_fb
If get_fb_ptr returns NULL, try again after pixmap_get_handle, it should
work then.
Fixes spurious Present page flipping failures using "normal" pixmaps
which aren't shared with direct rendering clients, e.g. with a
compositor using the RENDER extension.
Bugzilla: https://bugs.freedesktop.org/110417
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit bd4ffd4ebbdf1c43ab9e1ef9ba8b812fd2dde4a4
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Tue Mar 19 18:44:31 2019 +0100
Bump version for the 19.0.1 release
commit 6ee857726166f495abcd68e4ff60e3a09593d079
Author: Dave Airlie <airlied@redhat.com>
Date: Mon Mar 23 11:33:23 2015 +1000
modesetting: add tile property support
This adds tiling support to the driver, it retrieves the tile info from
the kernel and translates it into the server format and exposes the
property.
(Ported from xserver commits 8fb8bbb3062f1a06621ab7030a9e89d5e8367b35
and 6abdb54a11dac4e8854ff94ecdcb90a14321ab31)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 9534bf3bb33d14cd3a5af08e36ef42b309647fc7
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Wed Mar 6 12:05:14 2019 +0100
Bump version for the 19.0.0 release
commit a2b32e72fdaff3007a79b84929997d8176c2d512
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Fri Mar 1 17:42:08 2019 +0100
present: Don't check tiling parameters with DC & DRM minor version >= 31
Current DC handles any changes of tiling parameters for flips.
v2:
* Just check all tiling bits if DRM minor < 31 or DC is disabled.
Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
commit 2798244be78df3ef3a7841597577506bfbe50156
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Fri Mar 1 17:47:24 2019 +0100
Make drmmode_cm_enabled an inline function
So that it can be used outside of drmmode_display.c as well.
Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
commit 72653455e4f652ca6c7c290c7f1e8a889b77f5ce
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Fri Mar 1 17:35:48 2019 +0100
Revert "Remove set but unused amdgpu_dri2::pKernelDRMVersion"
This reverts commit 720a61000aeb139005bd8125908cec66a6e69554.
We're going to make use of it now.
Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
commit 28cd209ebf20561e65d14fa2e8bbfaedf6965948
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Wed Feb 27 17:35:26 2019 +0100
Revert "gitlab-ci: Only run docker-image stage if relevant source files change"
This reverts commit 9c23076b9e81c36ac2408c491f9b2d546829ee8e.
Some scenarios have come to light where this failed to ensure the docker
image exists:
* If the master branch of a forked repository is used for an MR which
doesn't modify .gitlab-ci.yml, the docker-image job may not run.
* If the docker-image job of the first pipeline in a forked repository
is cancelled or fails for any reason, and .gitlab-ci.yml isn't
modified for the next pipeline run.
commit 09be74a3d1dd9604336d9a27f98d132b262dcbaf
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Thu Feb 28 17:31:55 2019 +0100
dri2: Call drm_queue_handle_deferred in dri2_deferred_event
drm_queue_handler just puts the event on the signalled list; without
calling drm_queue_handle_deferred, actual processing of the event may be
delayed indefinitely, e.g. until another event arrives from the kernel.
This could result in DRI2 clients hanging during DPMS off.
Fixes: 739181c8d3334 "Add amdgpu_drm_handle_event wrapper for
drmHandleEvent"
Reviewed-by: Aaron Liu <aaron.liu@amd.com>
Tested-by: Aaron Liu <aaron.liu@amd.com>
commit a636f42b496b0604ca00a144690ece61d1a88a27
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Wed Feb 27 18:43:27 2019 +0100
present: Check that flip and screen pixmap pitches match
If they don't, flipping will result in corrupted display.
Test case:
* Run Xorg at 1920x1080 with no window manager
* glxgears -geometry 2048x1080
The Present extension code in xserver 1.21 will check for this.
Tested-by: Jax Lin <jax.lin@amd.com>
commit bd090f389f19f1f4a3f662ffdd891345a3899539
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Tue Feb 12 17:57:17 2019 +0100
Call amdgpu_present_set_screen_vrr from amdgpu_vrr_property_update
If the window is currently flipping.
This might make a difference when the property gets disabled: Variable
refresh will now be disabled immediately in that case, instead of only
when the window can no longer use page flipping at all.
Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
commit d9be5d712d469595e1e610f7294bc670ca3b1985
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Tue Feb 12 12:26:25 2019 +0100
Make use of property request wrappers for VRR property
Instead of scanning for PropertyNotify events. Reasons:
* Works even if no client listens to PropertyNotify events for the
window.
* No overhead on delivery of unrelated events, and no overhead at all
if Option "VariableRefresh" is disabled.
v2:
* Use shorter variable name amdgpu_vrr_atom.
* Call MakeAtom regardless of info->instance_id, for robustness vs VRR
being enabled in some but not all AMDGPU screens.
Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
commit ef8fbe33b7d97f7fb5518db9c0e4d2dcbf2fab6f
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Thu Jan 17 18:41:11 2019 +0100
Wrap change/delete window property request handlers
Preparation for the following change.
v2:
* Add comments explaining what the wrappers are wrapping.
* Use global amdgpu_property_vectors_wrapped to keep track of whether
the vectors need to be (un)wrapped, for robustness against VRR being
enabled in some but not all AMDGPU screens.
Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
commit 09a45ff8fe3ac07bafa3a0822b1598c41f9ca200
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Tue Feb 12 13:01:04 2019 +0100
Don't enable the VRR support code for GPU screens
Windows aren't associated with GPU screens, and amdgpu_present_flip is
never called for them, so VRR can never actually be enabled for them.
Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
commit 2a3d00dc7ed2b4fca698e2d699e1b94da6d0ddb8
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Tue Feb 12 18:12:23 2019 +0100
Don't register a window private if VRR is disabled
It's not used in that case.
Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
commit 5f91be77e059d0c4a4268ec10cbd9aa1052f53eb
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Mon Feb 11 18:32:07 2019 +0100
gitlab-ci: Don't rely on $CI_PROJECT_NAME
The name of a forked repository can be changed later, in which case this
would fail to refer to the main repository.
Pointed out by Eric Engestrom in
https://gitlab.freedesktop.org/mesa/mesa/merge_requests/224 .
commit 9c23076b9e81c36ac2408c491f9b2d546829ee8e
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Thu Feb 7 17:35:13 2019 +0100
gitlab-ci: Only run docker-image stage if relevant source files change
Otherwise there's normally no need to run it. It will also run when a
new branch is created, which ensures that the docker image always exists
(e.g. in a newly forked repository).
Inspired by https://gitlab.freedesktop.org/mesa/mesa/merge_requests/143
commit 9045fb310f88780e250e60b80431ca153330e61b
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 3ff2cc225f6bc08364ee007fa54e9d0150adaf11
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com> # v1
commit e72a02ba1d35743fefd939458b9d8cddce86e7f5
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit a1b479c7d0066c481af920f297d6af9009dda11e
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit bf326f2ea19daa6c8da23d6788ff301ae70b8e69
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit ebd32b1c07208f8dbe853e089f5e4b7c6a7a658a
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit d168532ee739f7e33a2798051e64ba445dd3859f
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 2058c4c469b172d4a3b0443f75466d84281a64c7
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit f3c0939a0cbb93c367ece3d41dc69824f585af42
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit f3ddda618ec86650ed85f8b140a5db1394676748
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit b689dc5081493377a31759d24a8dc9fcde12948a
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Tue Dec 18 16:39:28 2018 +0100
Remove superfluous vrr_flipping field and clean up related code
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 233a0be82d5c317e58002f4daf836d4f95048465
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit d4eab5d108c4569f3a9e2892704ea89b7ee797b6
Author: Mario Kleiner <mario.kleiner.de@gmail.com>
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 <michel.daenzer@amd.com>
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
commit 0d60233d26ec70d4e1faa343b438e33829c6d5e4
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit b04697de5270e8e45744a7025c24df1f454a4cf0
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit b344e1559e936046ef02c777fc4f6bcefa3830bc
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit e95044e45350870fa7e237860e89ade91ac03550
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 13c85e8a136e8626ba84656c6f8321394750f5c7
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit bcfa6c258fdf41a9928f8a3c78fc528d0fafee25
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 4e7a24ac5a64e402146953ec5850d13c05742116
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 500fadb16285146e91f62fce3a0ce1360ca684ba
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit be862ed459b06ab7dfc80b5c3d1e2ac7e9327a6e
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com> # v2
commit b11ee02c4596ddee3c9ff2141be5c91815efacc3
Author: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
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 <nicholas.kazlauskas@amd.com>
commit 2d18b37159edc526c73a36143fe9b5d6b75e610a
Author: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
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 <nicholas.kazlauskas@amd.com>
commit 13c94a373b4858a2d2aa14c22b5f98d53c84c0d9
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit e2c7369cae65069aa93eed1c0b678f975ce5c274
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit eda571222f5a6be47f8897e82d85199bb9d95251
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 426f9a49655f01863cf4d898f525e5f95984e0c4
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit a9da219e13bd0cdec65554382b5cd15abc3e3778
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alan.coopersmith@oracle.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 1cb338253af9c539fc1f13fc12b255ed6303f8b1
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Wed Oct 24 18:07:31 2018 +0200
man: This driver supports colour depths 8, 15 and 16
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 0734cdf544ffd3f2ac8749ad0e4bf43f8a5cea50
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Fri Oct 5 12:35:37 2018 +0200
glamor: Can work at depth >= 15 with current xserver Git master
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit ad6dfb0124860cf67730bde85867f81d9258c84d
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <kamil.paral@gmail.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit c9d43c1deb9a9cfc41a8d6439caf46d12d220853
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com> # v1
commit aa572683d86174be2bfc09d4e173ae2a9907d40e
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 05a1ba9abc941dec616ef7f836f4c54ac93ff9be
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <michel.daenzer@amd.com>
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 <michel.daenzer@amd.com>
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 <michel.daenzer@amd.com>
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 <slava.abramov@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
commit 0cd2c337d2c02b8ec2bd994d6124b4aaaad10741
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit ac5b6f96e97aaf95f4e668b4057006b221cffaec
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <michel.daenzer@amd.com>
Date: Thu Sep 20 18:48:43 2018 +0200
Post-release version bump
commit d5e17dc4c78aee5d37de399728066b9be881e044
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Fri Sep 14 17:00:17 2018 +0200
Bump version for the 18.1.0 release
commit 6572be49b713a26eca14f16e1854cabf28101288
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit ca5eb9894fff153c0a1df7bdc4a4745713309e27
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 26770be44b89b83bf39c28f2fe284c8cb92ed0c0
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <michel.daenzer@amd.com>
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 <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit ae2a450cb98707c4cab8a8265a284cf708bcd43d
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 34e851d1f284da5afcfe449f349cf1eb5e962408
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit afdfa2a1b6d4b594e0ed345b32279d4a2fd5e188
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <johnlumby@hotmail.com>
(Cherry picked from radeon commit 7b01c10137aba24c8f61dd9b2a19ea257ad24371)
Acked-by: Alex Deucher <alexander.deucher@amd.com>
commit f6cd72e64e85896b6d155bee0930e59771dcb701
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 85cd8eef0cbed7b409b07f58d76dacd34aa3ddea
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit e52872da69ecc84dafb3355839e35b0383f0d228
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 739181c8d3334ff14b5a607895dfdeb29b0d9020
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 0148283984c77f7a6e97026edc3093497547e0a4
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 7f65a8c9e03bddf2378aaa928460632ed6b1a688
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 08c4d42f43f80baa4bbc2ff9d0a422202cdc3538
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 9b6782c821e0bdc53336d98f87ddde752faf7902
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 2989d40ef74d9966e8e8df2ef7727b2cc48d4960
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit f3b2ed37d683f8616a0a31ff63133ddb8fe1a4a3
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <slava.abramov@amd.com>
commit 5f06d6b8ba570b500956ad26fee711d5ac427818
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 46d87187c6a0b8f941cc6f30af1f53a98ff2e635
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit ae8e02c6fc4ef5d5340b8cd4739e66b19b9e3386
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <qiang.yu@amd.com>
Reviewed-by: Qiang Yu <Qiang.Yu@amd.com>
commit 1247be21704dd185ce26097e11b3685815ffac4f
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 9dfbae76b179285d142b97852211b900ebfae51d
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit ace6ea016ce0013a34e1d4637aeacbf4d0e83c79
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit c160302abcdb18eec35c377d80e34f5bd857df45
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 61040bdfa360975614fb47aa7ea1b3a1abac3427
Author: Keith Packard <keithp@keithp.com>
Date: Mon Feb 12 13:51:56 2018 -0800
Add RandR leases support
Signed-off-by: Keith Packard <keithp@keithp.com>
(Ported from xserver commit e4e3447603b5fd3a38a92c3f972396d1f81168ad)
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
commit ab7e39c5a03e24c3ce3ee2f22ada7572bc2d9aa7
Author: Keith Packard <keithp@keithp.com>
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 <ajax@nwnk.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
(Ported from xserver commit 023d4aba8d45e9e3630b944ecfb650c081799b96)
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
commit 14db71a606128c4a207f43298809af279b77e2a8
Author: Keith Packard <keithp@keithp.com>
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 <keithp@keithp.com>
(Ported from xserver commit b91c787c4cd2d20685db69426c539938c556128a)
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
commit baea4fa492f635cdfe746a84be2e337d9aeae8a9
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 19a40758be04e1d451a030f452efb49e8aaad541
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
Reviewed-by: Slava Abramov <slava.abramov@amd.com>
commit 8e98195e58f77fd1f354b2707360bd4445aef5b4
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 606075b852d8e1d40ed0a56b5a928abdd7012f95
Author: Leo Li (Sunpeng) <sunpeng.li@amd.com>
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 <sunpeng.li@amd.com>
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
commit e0a4c0e2155a5fcfad747ea5bddcf5b4b551f151
Author: Leo Li (Sunpeng) <sunpeng.li@amd.com>
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 <sunpeng.li@amd.com>
[ Michel Dänzer: Replace "crtc->funcs->gamma_set == NULL" with
!crtc->funcs->gamma_set ]
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
commit e1fe46013c281f4644ca49915ae0ff081582a5b9
Author: Leo Li (Sunpeng) <sunpeng.li@amd.com>
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 <sunpeng.li@amd.com>
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
commit 29de2859e296b4e9f0b4ae7564c353c5518f3f08
Author: Leo Li (Sunpeng) <sunpeng.li@amd.com>
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 <sunpeng.li@amd.com>
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
commit 639acf54b4de6f62000d12cc6dbf4f5e49cae888
Author: Leo Li (Sunpeng) <sunpeng.li@amd.com>
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 <sunpeng.li@amd.com>
[ 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 <michel.daenzer@amd.com>
commit 3cf5a281d8481c997029dae164d6fdeca66b9447
Author: Leo Li (Sunpeng) <sunpeng.li@amd.com>
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 <sunpeng.li@amd.com>
[ Michel Dänzer: Replace "drmmode_crtc->ctm == NULL" with
!drmmode_crtc->ctm ]
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
commit 810ed133cd67b3deb38d1af87e252a094e9ee8f2
Author: Leo Li (Sunpeng) <sunpeng.li@amd.com>
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 <sunpeng.li@amd.com>
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
commit 940c8b39f79789d4d5ddb8ab8d25a8ae05932756
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <michel.daenzer@amd.com>
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 <sunpeng.li@amd.com>
commit ceeacb455cd058492a493aac954deab8455804b5
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <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 <sunpeng.li@amd.com>
Reviewed-by: Leo (Sunpeng) Li <sunpeng.li@amd.com>
commit e8e688f3852fb06b0c34ed5bce47c9493bcd1613
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Wed May 16 16:49:20 2018 +0200
Replace 'foo == NULL' with '!foo'
Shorter and sweeter. :)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 103bd6f44cc5f1a6cd6cc9a5cb34d0419c4cece9
Author: Slava Grigorev <slava.grigorev@amd.com>
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 <slava.grigorev@amd.com>
[ Michel Dänzer:
* Fixed remaining preprocessor guards to work with xserver 1.13
* Touched up commit log ]
commit 04947b83cce3a7782e59dece2c7797cc396c1e05
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <Samuel.Li@amd.com>
commit fa30f4601de7a44edfb4a95873bd648946fd4292
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <Samuel.Li@amd.com>
commit 7db0c8e9d7586cff4312d4b93684d35de3e6376f
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 8e544b4a0de6717feb4abf00052d57c5b726b5ce
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 463477661c88cab3a87746499e5838c5b9f9a13b
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 72c3e9c7308fbcdf85708b72f9be14a5f2f8e7b5
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <michel.daenzer@amd.com>
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 <michel.daenzer@amd.com>
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 <michel.daenzer@amd.com>
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 <michel.daenzer@amd.com>
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 <emil.velikov@collabora.com>
Date: Wed Apr 4 15:29:51 2018 +0100
Remove set but unused amdgpu_dri2::pKernelDRMVersion
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit 7fb8b49895e225b3908c8bd186539de23afe91d1
Author: Emil Velikov <emil.velikov@collabora.com>
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 <emil.velikov@collabora.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit 00c128b45fc196c3a3a788ddb4453e7521be5860
Author: Emil Velikov <emil.velikov@collabora.com>
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 <emil.velikov@collabora.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit 9f6a8905611b5b1d8fcd31bebbc9af7ca1355cc3
Author: Jim Qu <Jim.Qu@amd.com>
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 <Jim.Qu@amd.com>
[ 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 <michel.daenzer@amd.com>
commit c6f1559eba551a5a3bf374c7e7e875928f3b138d
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Wed Apr 18 10:41:46 2018 +0200
Post-release version bump
commit 9f37a44473ded8c669897379acbc750362c15ec6
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Thu Mar 15 16:34:19 2018 +0100
Bump version for 18.0.1 release
commit 8af989546907ad9fb491d940e1936d3bfc89276b
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <michel.daenzer@amd.com>
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 <mario.kleiner.de@gmail.com>
commit b4a28bdcfa7089e1cf708490ddf048b7df4c7eed
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 5cfba7b6221779832be915993765cb128a561087
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Fri Mar 2 18:10:40 2018 +0100
Bump version for 18.0.0 release
commit 374cb8fef4fdbb648af089ee80803ec78321f1b2
Author: Keith Packard <keithp@keithp.com>
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 <keithp@keithp.com>
(Ported from xserver commit a12485ed846b852ca14d17d1e58c8b0f2399e577,
slightly modifying logic to reduce indentation depth)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 10054b6c3d9a755b30abb43020121b9631fa296d
Author: Daniel Martin <consume.noise@gmail.com>
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 <consume.noise@gmail.com>
(Ported from xserver commit 6804875662363764683a86c1614e4cf3cc70a20a)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit fb58e06acd6c6bd59de2dbdadbca27eb1dd0025b
Author: Daniel Martin <consume.noise@gmail.com>
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 <consume.noise@gmail.com>
(Ported from xserver commit f44935cdb7321af242ce9f242975f096807b97f7)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 7854ace03f12207600ec8159ef8b2c5a562c4aee
Author: Christoph Haag <haagch@frickel.club>
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 <michel.daenzer@amd.com>
commit e3aae7a24296f640c0153d1459f3e0820485468a
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
Acked-by: Harry Wentland <harry.wentland@amd.com>
commit 37c7260bdef3a53b0f0295a531f33938e9aad8cf
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 63b0c73a99fdf0eb7550a88df3a0052ce784e758
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 103b7285845b786929fb509083c57e074c48f9be
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit a23d1ff700d486138c624c2023d8d251c73709af
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit b3095710b7c240ddefce794033a77033806f639d
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <mario.kleiner.de@gmail.com>
(Ported from radeon commit 733f606dd6ca8350e6e7f0858bfff5454ddc98ed)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 6aee5770fb913713bb1b9a1af8f0d0892a66f21a
Author: Hawking Zhang <Hawking.Zhang@amd.com>
Date: Sat Jul 16 00:09:21 2016 +0800
Add 30bit RGB color format support
Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com>
[ 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 <alexander.deucher@amd.com>
commit ec397f7d3bfc89a5d8b8429c96e1b9572f6ee47d
Author: Qiang Yu <Qiang.Yu@amd.com>
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 <Qiang.Yu@amd.com>
[ Michel Dänzer: Align drmmode_pre_init change with radeon commit
1f1d4b1fa7d4b22dd8553f7e71251bf17ca7a7b1 ]
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit c849081e24377a81afc1a05f2a5634b1e60c67db
Author: Mario Kleiner <mario.kleiner.de@gmail.com>
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 <michel.daenzer@amd.com>
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
(Ported from radeon commit 21f6753462464acfd3c452393328c977a375ce26)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 348023cea43e0474352df0c2aa6345eb0b25c2f7
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <marek.olsak@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
commit 69e20839bfeb3ee0b0a732d72de0a32d6c5435fc
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit dfccaa7043ccb157a1f8be7313123792bb7e7001
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 1d65ac395971571094df21ca0408d5972c6b56ec
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 3a4f7422913093ed9e26b73ecd7f9e773478cb1e
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 875339c1064f666a2391b4a5a495eddda9407ab6
Author: Daniel Martin <consume.noise@gmail.com>
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 <consume.noise@gmail.com>
(Ported from xserver commit 8d7f7e24261e68459e6f0a865e243473f65fe7ad)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 91cd0ceab2cabba75e3552d0fbfcfc55f6d132ee
Author: Keith Packard <keithp@keithp.com>
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 <alexander.deucher@amd.com>
commit f6b39bcd45cb06976ba8a3600df77fc471c63995
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 84aad09f18fed6b52b0c073f0bbd675a6de07807
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit cfccf4c4e7e5c73fe4040fabeb1b43283cf29b33
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Thu Oct 19 17:41:44 2017 +0200
Free memory returned by xf86GetEntityInfo
We were leaking it.
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 9d84934309e4ccd9a43c73d958b8ff10ef2fc990
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit b67a2b62b20c17db7471f5bbea591ab55806cb29
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 55396cc45c9aae3b1985ced1044b6b93064667c3
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 2f72be038d22c54620e436af30121dd89f79a003
Author: Darren Salt <devspam@moreofthesa.me.uk>
Date: Wed Sep 13 03:22:19 2017 +0100
Clarify when TearFree is automatically enabled.
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit 2ce59dfa1c57655137fcc7ccdf15a341e51383ff
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Thu Oct 5 11:15:34 2017 +0200
Post-release version bump
commit cf1767a9a58a3ec95622a7b8ca661113e2148da9
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Fri Sep 8 16:19:48 2017 +0900
Bump version for 1.4.0 release
commit 114de91e3548cd30b709b19f1447f597e71175e0
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 456e5841233a8a79c23ad13649bbdaf8428b50f3
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 639076efb06cdf13a211a8df1acb00c3908992b9
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit c16ff42f927df805619a5255bc383841474daff8
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 19672625df0531c12acc05999ea09ea763e5db59
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 6b376c8d73b20c92755527edb0527a233886e4eb
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 5af396253f6a03fa3f8f92e81da231dd581b50c9
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 1afd4a526c97e77ec882988e35d4977880b9d16c
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 0de05767adb79d417284dae83e9a77857633fd80
Author: Martin Peres <martin.peres@linux.intel.com>
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 <harry.wentland@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit a2ee5c36c7d4fdcd067fdc1ef424be474f1ad2cb
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 828fb44cf953f78bd65d8f391bdabe2b1b3d53ae
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 22740f86d028cdd0f556543df7444516a86f923b
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 2692508ae8920ce62f488a9384444c1645964913
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 8c82878c6ef1b984ba289383dc17152192c916ee
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit d8e8f0107bb3e83a787917f4db16a7a54ce4768b
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit cc1dfb88eb6714fcdcb9b576a70f400a5d0d58ca
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit b82d1b6063a36facc9cdd0e0189fdb6932be94e2
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 2cbe7f2dff5eef159486f875b3ec67516c85862d
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit e8d0bfab276d47338c337955b9d2fcbff3af225f
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit fd5b78b7edff2021111bca37642b8b508f0c3328
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 24b2718992e4bbc859c07e5b29b571f53314045d
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 87a1f577f1de62f6b628bbe221cd8d551531e708
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit e15b23663cd1a6f85394253b3fb566b55828b1c5
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Tue Apr 18 18:21:24 2017 +0900
Adapt to PixmapDirtyUpdateRec::src being a DrawablePtr
commit 9caa9dd9cc5eb9882c4bb85275bc318948dab71f
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 4441c7c6dde2d71bd44c3031c5679ee3186ea8f9
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 3e08409344a2fd504429522507592f98555bec05
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 35106fc0a948957cbb7e1e9649c89993a3d5c95c
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit a47c0093338d80d84e7033ad15d051925d542ca0
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 842bad4b951296ca25f47b50cb358e502bf30ebb
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 227b399badaad9bbef0be5a776ce008d0d243449
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 4d36306bcebb8548455a21eae6a7216a9439d9e4
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 88147c1a532a9275eb57e14d8c11be41bf4c1fe1
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit e90721ba654d70db5eeb1cf552308c73151530ee
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 1b6ff5fd9933c00ec1ec90dfc62e0b531927749b
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit af7221e1c4d2dbdfd488eb0976a835584ea8441c
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 184d50e008b9b31f4dda1425e255af068b6ab068
Author: Adam Jackson <ajax@redhat.com>
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 <ajax@redhat.com>
Reviewed-and-Tested-by: Michel Dänzer <michel.daenzer@amd.com>
commit bbdac40e2af472d37aa0f4f26df77a0b1b12a830
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit b09fde0d81e07fbe96139289098b4d4b9f5e3c35
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 000e5eaeb20607508c5c5371654615a30a8a1b0b
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 2ea2d4d827f086098be198f110ca822ed2c290cd
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 8cb41b962eb06b9cb1b3a573a4087e4d89f733fb
Author: Eric Anholt <eric@anholt.net>
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 <eric@anholt.net>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
(Ported from radeon commit 2b7d77b90108911777a11ecaa63435552000c958)
commit e900e48a11a93cde7d8d2d7bdb4a15ec705c56b1
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 462ac3341e5bfbded9086d3d9043821d19352b3e
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Tue May 2 17:58:55 2017 +0900
Remove unused struct members from drmmode_display.h
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 82fa615f38137add75f9cd4bb49c48dd88de916f
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 981bac185cfd74ae50dffc28f57cf34623a9595f
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 51e17041cb89806c934c5cf795207940a6aaccfe
Author: Daniel Stone <daniels@collabora.com>
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 <daniels@collabora.com>
(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 <emil.l.velikov@gmail.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com> # v1
commit 67d155e62f5e09af242b0181527c162576dae02e
Author: Nicholas Molloy <nick.a.molloy@gmail.com>
Date: Sun Mar 26 02:38:40 2017 +1300
Fix a misspelling of 'acceleration' in amdgpu_kms.c
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit 165b51447643ce37f391f25ca6aecb8d76fabaa3
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <adf.lists@gmail.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 1b476d417f85fd1b97e813adbbf4970db07adf5c
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Thu Mar 23 18:03:56 2017 +0900
Post-release version bump
commit 804e30e14e51f94403a0721ef2aae28f1fa9e9f2
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Thu Mar 16 17:28:11 2017 +0900
Bump version for 1.3.0 release
commit 3a8582944ed3fef1b75f8871489e6e19963e2ea6
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 82b15a4da156e18da4c8fc0093500c32b549e487
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit fa85331f0ce27e16a9338516518433955133840e
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Tue Mar 7 18:02:29 2017 +0900
glamor: Use glamor_finish when available
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 7884e38e94c2cbd6c205f556f2b31ad59b4089b4
Author: Hans De Goede <hdegoede@redhat.com>
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 <hdegoede@redhat.com>
v2: Rebased on top of new patch 1.
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit a2c360fa1d33d6a5aa64c396197e119ff77d1379
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <hdegoede@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 947017194d07e32876a43ee0efc45fdc71385748
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 86907a5e4ce33154167b330570491f88218725d3
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 8d2b7d1758e3fcac520a18a0684c073f0ac62389
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <pali.rohar@gmail.com>
(Ported from radeon commit 80cc892ee1ce54fad3cb7dd11bd9df18c359136f)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit cd73100114a18642d9c40f1df33cef8311e96a8b
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 351baa89b9b0ecfb6c666af3a2d10c559a9224a9
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit ad53635af150cda9b8da413be5a011d74f972ac7
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 378bd05c849ad3092f138bdc8917d35d0b967389
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 8d4d73e05ce34eb353daec7b2c0e7c844113c7de
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 88725b68cad92418c9bb03cb7f20526ce238d64e
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit b31489c086b4bc50c824e85fa26d97c0f43afb20
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit f6a3c87c3097e8d5c1d2159bc90d6541a46ed8be
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 012ffffb45119059f3610fb8fd6ae103186b3e3c
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit f4719bb473df897012f8830f46e99cb781d67b6f
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit af0b24c1aca4cba2692d5aa410e63cb536478dbe
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 77853f02e5b879e7042f55c672cf2d8e6955309f
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit d25cc3b2b3b2d257aea247b85fea405d7e84e5b1
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit a6d363008e2b55f0aa6151be1a99f01b97870e91
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 53926db2355de0a324c205703a0377b498136f65
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 45a8ec6257c370eecf43b6b8010863e37b704872
Author: Mihail Konev <k.mvc@ya.ru>
Date: Thu Mar 2 17:04:36 2017 +0900
autogen: add default patch prefix
(Ported from radeon commit 8e6a4e96b7b27559e186f71b5547abb0a80b96dd)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit ba2aa0a8c12a2bea1e8be01ca3134b518d4cb0f2
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 7f3abf35a2e1225ffd6a777b23f6a7a6355c1691
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 03c2db3c67bf5ad3c0744add9e0bb611b6cd3df7
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 49b092563cb3958911d28a006f155b4f4e38ed73
Author: Emil Velikov <emil.l.velikov@gmail.com>
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 <emil.l.velikov@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
commit 457fcc5935c659aab5b88cf26d065180b47ed632
Author: Peter Hutterer <peter.hutterer@who-t.net>
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 <peter.hutterer@who-t.net>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
commit 5f712380883357d03c9934a753ef302e109aeb14
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit b5c189473dba2cffc9e4df310ce5c86ceca99a94
Author: Jammy Zhou <Jammy.Zhou@amd.com>
Date: Tue Dec 13 12:32:39 2016 +0900
Use render node for DRI3 if available
Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
[ Second attempt, let's see if there's any fallout this time... ]
commit edd276185d42962a13faf9ec9eeebc754ef284e7
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Thu Dec 15 12:42:44 2016 +0900
Simplify drmmode_handle_uevents
No functional change intended.
Reviewed-by: Jim Qu <Jim.Qu@amd.com>
commit 732cf4d3a248b288532ad0f3443da49e08dc7507
Author: jimqu <Jim.Qu@amd.com>
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 <Jim.Qu@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit d60ea478cf2215ded7e1acf5817a0dae07e54026
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit aea70298ef0d53fc81aa1fd22c8566920a856223
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 0f79c30619168c6845b143c6ed94ade307383068
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 082b6b8ca1878f4b7ab0b25d16b85ba40748ac57
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 82729b1f3b9d57f3002ac2689bfbf37ece0bc3f2
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 7fe2a8ed67ef82916a1eb5b241c5a602a26e10b2
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com> (v1)
commit ff31320644b4d17b9b3f0abd612c99769d3d9643
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit f9ba1e8fd48cd967a09c4e083b277505d08d3849
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit e8aa4e7ea59f00d5527654b7181a05aab8c78928
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Wed Oct 26 18:38:20 2016 +0900
Remove generated header files
No longer used.
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit d69fd22b6d13052d667929a0e3db61829ce1396e
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com> (v1)
commit 8a5ff54af32a75ae56d3369a828a50ae28dd1acd
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Wed Oct 26 18:09:18 2016 +0900
Stop using AMDGPUPciChipsets
Not actually used by Xorg.
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 298eaf58a57efa6acc53d374eea239b6bb55c0f8
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Wed Oct 26 18:05:58 2016 +0900
Remove amdpciids.h
Not useful anymore.
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit a0881d55fe80d639d31cdfeadd6014322c037791
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 40ddc52b2ae32b17ef7eea1602fdf59b63f06f17
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Wed Oct 26 17:42:36 2016 +0900
Use family information from libdrm_amdgpu / kernel
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 5c9d1c5097e326c69f1be4427c62a0d348e8a4a6
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit adf7dabdf9c8acd674190e25050b0885a05d0e92
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Mon Nov 21 17:50:22 2016 +0900
Post-release version bump
commit a00032050873fc99f3ceaa3293468dad1d94d4b1
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Thu Nov 17 15:17:10 2016 +0900
Bump version for 1.2.0 release
commit a446b3af9b055056e9fb0f37069b08b979eba277
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 257be5b0853814a557a5337878a4311acbc89856
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 1352a1d2f78cb0433d421ef86bfce2a5a1646807
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 5da43c5da8adc139d57d89975a52eef91a5595e1
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit dd4a740714e481b09312a04883aa6e0f5200ca81
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 3c1f4386ba7d0b6c16bdd2b2178f978f2f154ba8
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit c87dff3257e797cfd80d208c9a612b21978ff4eb
Author: Hans de Goede <hdegoede@redhat.com>
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 <hdegoede@redhat.com>
(Ported from xserver commit 94a1c77259ce39ba59ad87615df39b570ffab435)
(Ported from radeon commit 82d3c8f5500d2a6fb1495e217a0b79c396f1534c)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 9c4416422f2d07dbfa7c0b18beb1353f122fc1a1
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 0a91f11c03400e3f92a2b048505f39e7de7e87fc
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit b37f4774880bfd0cbe50273ac0d9c539d81995f9
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
(Cherry picked from radeon commit 49cf3b5032a7ce40afe514b7092440e3e19e05aa)
commit c8d9ad0e188d3da3a35006a00536d61e23305830
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 7cc04035c55788261cda89a915c433c2add6cad9
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit d42773eb45baff5933730e26878a0b45fcf07b65
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit bdee9f4dd4f21015e7696e06c4b485ab2b3a16dc
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 97d7386caf7ba53d2cf398b8a9bb65d0a2a4770a
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit aa8a3fa2468094cd37959179e8417ba7ba0a326c
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <tjaalton@debian.org>
Reviewed-by: Julien Cristau <jcristau@debian.org>
commit cd3acb75718dfd42dd25d58b4e7bd4db27b659d8
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit d6feed2cd78fe879aba4860a6d9bc2e388b9f135
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 4927b84ec84bc0cb5055686cca6be54390f82803
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 1c725f63961746258f6138b47037ec18bf508d78
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Thu Sep 8 17:45:32 2016 +0900
Factor out transform_region helper
(Ported from radeon commit 5a57005178fc13b6f7e513458ca6dae72a3e5783)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit c92842764f95fa09e145d81f80e9fa39ea8c453c
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 61ceefe17fe9e6ffbaaad0e216b2bd37fd39f47d
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 6d31fb124d4418e64c949bde9ed1facf95967762
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit b10ecdbd89b0a60a990c78c3e53bab6c4c96fe9f
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 9565981f751b0884cbfa885b8f3af3d41a965a2b
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit c7d27c94cb656899746898c2e55407c3e3d7cdc8
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 58773d1945cfa8155d8a6c5eb3f95097535604ef
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit d166d04f6951f6a48d7d5ce5d31bba857fe0cb06
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 6a1ba044c2b71081e6060d0c096917d6238f2145
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 7d050d15d49ef25e86e7abe88dafb52370715640
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit aa5492660958e359bdc2107cba9a211ff988c90e
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 73c8dc000ad6b2b53ba3aa7155f5e8f6b55623b7
Author: Qiang Yu <Qiang.Yu@amd.com>
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 <Qiang.Yu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit 5a4d3267ac3823fe58b51b0b9075b82375d7180c
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit c4364520691d18961f0a6b77071baeeffaa80a11
Author: Marek Olšák <marek.olsak@amd.com>
Date: Fri Aug 19 12:42:38 2016 +0200
Fix cursor size for SI
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Acked-by: Edward O'Callaghan <funfunctor@folklore1984.net>
commit 2eb5d77b841e55e7328df4b95c0d41fec30ce10f
Author: Ronie Salgado <roniesalg@gmail.com>
Date: Thu Feb 11 03:00:14 2016 -0300
Add SI PCI IDs
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit abd1a7901c95e4bc78415cf1b7923623b9177152
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 978242977e5dc905e1d5a46b1b0d34b356c7af26
Author: Qiang Yu <Qiang.Yu@amd.com>
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 <Qiang.Yu@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit fdd1209e26128b3e894f2867fac3a1b08fe1f29e
Author: Keith Packard <keithp@keithp.com>
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 <keithp@keithp.com>
commit 17c0cf49746a20fb25610c24a40c441f88c08365
Author: Adam Jackson <ajax@redhat.com>
Date: Tue Jul 19 10:03:56 2016 -0400
Adapt Block/WakeupHandler signature for ABI 23
Signed-off-by: Adam Jackson <ajax@redhat.com>
commit b5e2b964b7884c205a7c0fa578e05e867c176fcc
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 84496ebc89a9973347c774c13ff6f4667fcdbe69
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit a576430526cbc404de64b30e1377a356644e8024
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit ede7f2bcae63be65e05e3029bfe7c742e5978932
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit bf000ea7ef91f5ecb59fc3c1ab8ed9eddcc0841d
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit d96dabc71b1b32dc4b422a9633cdd4e0e95da052
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 1091f28e1fa239ee1a973d84a8376fa4a95d7247
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 4d506c23c9a628204fa23607931557b07ada3e31
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit decabd574f90d3df397c80ec931b3fde8a4afb49
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 3ed28ce7cd26f89969617ba901ff253091d0d469
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 9c3324715fd395fd486ea341654d78f4f298b97f
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 3bce0519a4008cf87c0e31a7a579e10f5dcdd2f3
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit a3ca1500703837cbb8d49c554199a25dea7d5e1e
Author: Hans de Goede <hdegoede@redhat.com>
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 <hdegoede@redhat.com>
(Ported from xserver commit 4313122dea0df9affc280ee698e929489061ccc6)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 9ca1c24235ff5ab2e028333fc326e2eff008c574
Author: Hans de Goede <hdegoede@redhat.com>
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 <hdegoede@redhat.com>
(Ported from xserver commit 877453212166fdc912e0d687cdecee11aba563b5)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 0d42082108c264568e2aadd15ace70e72388bc65
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit e7e71eabbbccdeabcae1bc6fffabc27c272090ab
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 7f7f9825caf3983902491da27c16d14cd8bf9b7d
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <qiang.yu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 397aedafee437c125b8ac1feafb1c3b466842aeb
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Mon Jun 13 18:34:11 2016 +0900
glamor: Fix leak of pixmap private when replacing BO
Reported-by: Qiang Yu <qiang.yu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 5b4a8a7a6ed70a50be252fa9b34d3b3a17cdf91a
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit c315c00e44afc91a7c8e2eab5af836d9643ebb88
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 74602c4221e3c84949fd69f690cbc66dcae384ea
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 0007c2f018ba663303d91d847e7c085269a23062
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <qiang.yu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Tested-by: Qiang Yu <qiang.yu@amd.com>
commit 5518bf5d793439b5bab369e5fc18de9a4a3b9dd6
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
Tested-by: Qiang Yu <qiang.yu@amd.com> (v1)
commit 641f4647b7f51dfd2da330376cd10fa9702b6423
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
Tested-by: Qiang Yu <qiang.yu@amd.com>
commit 8e40f190e4704c2802bf0f073f17e742786d0f18
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
Tested-by: Qiang Yu <qiang.yu@amd.com>
commit e7eeb6ad1133b6023d34b4489959ae330a8e15dd
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Wed Jun 8 15:42:01 2016 +0900
Remove amdgpu_share_pixmap_backing
Not used anymore.
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Tested-by: Qiang Yu <qiang.yu@amd.com>
commit b36c77695ba77b59a0ccd868454e3af4fc04d5ff
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <qiang.yu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Tested-by: Qiang Yu <qiang.yu@amd.com>
commit 60ced5026ebc34d9f32c7618430b6a7ef7c8eb4b
Author: Alex Deucher <alexander.deucher@amd.com>
Date: Tue May 17 16:59:41 2016 -0400
add missing bonaire pci id
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
commit 8e89448ee00da16e05e6777f34bb75d2dd6f7025
Author: Flora Cui <Flora.Cui@amd.com>
Date: Tue May 17 11:02:09 2016 +0800
Add more Polaris 11 PCI IDs
Signed-off-by: Flora Cui <Flora.Cui@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
commit a59b23d64285741a7a25e314343f6261046d980f
Author: Flora Cui <Flora.Cui@amd.com>
Date: Mon May 16 17:25:34 2016 +0800
Add more Polaris 10 PCI IDs
Signed-off-by: Flora Cui <Flora.Cui@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
commit 14606e127f4b6eb0b00fd42cec13d524a67e4c4a
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 861da1d5c243f51d6c1f76e5b13e5184aa608776
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 86f991838824494e68ac277fa27cbd88c23a5ee8
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 744ac5faff7f58e26fa76974b6bdc345ea4c7c79
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 4822ec7a23d2253c88bc403f17abb6d7a053528c
Author: Flora Cui <flora.cui@amd.com>
Date: Tue May 10 17:14:00 2016 +0900
add strato pci id
Signed-off-by: Flora Cui <flora.cui@amd.com>
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
commit b93006714b8de972060492cfa311320921a73773
Author: Tom St Denis <tom.stdenis@amd.com>
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 <tom.stdenis@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit a0bbb373f902e0ffc14570c85faec7e44134f62e
Author: Qiang Yu <Qiang.Yu@amd.com>
Date: Fri Apr 8 17:29:17 2016 +0800
Remove RR_Capability_SinkOutput for GPU without CRTC.
Signed-off-by: Qiang Yu <Qiang.Yu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit 1a29c4bcc0a286b14f37ab942eb0cad47bc4f337
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Mon Apr 11 16:27:40 2016 +0900
Post 1.1.0 release version bump
commit a04f4015d6afef20c2b79e2779f6555836ee2b07
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Thu Apr 7 16:47:25 2016 +0900
Bump version for 1.1.0 release
commit aed1c17c43b2c0c983f6fc0973a5224d0faf32d9
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit faf9d720b7d650f5f1ea657a874d08eac3972e60
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 5ba95c3abeb8df82aa8d33a47596eae6403ea7af
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 8ecfa69b5a833bd4c39e773a6acfd7eef9144d13
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit b2a2e114eec0967f7b67f030fbab8983cf980489
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit e31a2d668a1b5ebaf75d423c8123cbc8e0dcbae9
Author: Flora Cui <Flora.Cui@amd.com>
Date: Wed Nov 18 16:44:13 2015 +0800
add polaris10 pci id
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Flora Cui <Flora.Cui@amd.com>
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
commit 6e09b8deb77f76b9bb7d393cc1ad924ebba62eff
Author: Flora Cui <Flora.Cui@amd.com>
Date: Thu Nov 5 14:16:39 2015 +0800
add polaris11 pci id
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Flora Cui <Flora.Cui@amd.com>
Reviewed-By: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 7d32c43fff4c8df32cce150223094f793e036cf3
Author: Alex Deucher <alexander.deucher@amd.com>
Date: Wed Oct 28 17:28:23 2015 -0400
add Polaris chip families
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
commit fbf9ae18cd241b8b78936aa30441e5fbfd9ba1c5
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 912db5fbbc6b9b1121c8a03168cb4bd870474376
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 3fb6280ab3b104b02841c7cab8ed68c1d463c834
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 3177fe817a5f2de4ed10860866a0dd6d6c6ba816
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit a3dfce7b24e1ea01c1aa62926025a545312cbe13
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit ba9be8f32f0321689133e17c1681809dec8c6cf1
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 4a60b4b1851a3cbc2d8ad9048d68eeb6947cf132
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 37bd79652a8ec612b94a1863e8c580b1cfaf3960
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 6b930fb3285dea4a6440e31099c96f08da508d49
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 6889e091442b6ba1b9351e72bd067425e87d96e9
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit da4e0c66fcbcf63143372720e3d606a462332e3a
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 0bbf09dd7ef54133b3e534becb3ba15c0cf3eed2
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 3485ca0051a224d00135d4024a97a6c4e85a9644
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit b9d00fa7aaf946d985897380bfa42faafbf1b3fb
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit e0ed26151bfeadf309da53d001751c0a014dbd24
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit acd5da56f502d6ad115501e77bce06fe72b1895c
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit a58bfa98208cc092014d3f36a08714eb1e0d8814
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit e4888df6e32bb817bf0d6166a22b19c14e189a84
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 43af92ede0968f2108f9562aa4c2c861ac703617
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 5ec1797a2858d693d18d21326e2307d71555e1db
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit df60c635e1e632233de9dd4b01d63c2b963003f8
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit e463b849f3e9d7b69e64a65619a22e00e78d297b
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 1ee341f9d909f3b7ba2984fc912dabdb98c34b19
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit a36bbfd98b96426bbe0be3923c64da7ec0e565d0
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Mon Feb 15 18:41:51 2016 +0900
HAS_DIRTYTRACKING_ROTATION also supports multiple CRTCs
(ported from radeon commit ff9a6b6f079a8419f4e6fadfee778060618bf735)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit a37746ffceaed83e48e48fb05439be7e020dd2ea
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Mon Feb 15 18:35:54 2016 +0900
Load fb module before glamoregl/shadow modules
Fixes unresolved symbols on some systems.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93105
(ported from radeon commit 78fbca095ae9887a2d3de48bb07975e2d1126e68)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 59c0a6807110eca829c6708e16585a38f39a5c17
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Mon Feb 15 18:28:13 2016 +0900
Don't advertise any PRIME offloading capabilities without acceleration
Acceleration is required even for display offloading. Trying to enable
display offloading without acceleration resulted in a crash.
(ported from radeon commit b19417e2fddf4df725951aea5ad5e9558338f59e)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit a3eac85d812ecc605436e6bd5b9ee7ebf307e3d3
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Tue Jan 26 16:12:28 2016 +0900
Only map front buffer if glamor acceleration is disabled (v2)
Otherwise the front buffer may not be accessible by the CPU, because Mesa
sets the AMDGPU_GEM_CREATE_NO_CPU_ACCESS flag for tiled buffers, because
accessing tiled buffers with the CPU makes little sense.
v2: Also handle Option "AccelMethod" "none"
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 2fcb7dadd3c71cd405cbbaafc777697538ca9c29
Author: jimqu <Jim.Qu@amd.com>
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 <jim.qu@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit 5269a2228bff6023c1a7f3e8534027e1d7addc25
Author: jimqu <Jim.Qu@amd.com>
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 <jim.qu@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit 54c959c163288caa87f612911b70df73f87d29d6
Author: Tom St Denis <tom.stdenis@amd.com>
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 <tom.stdenis@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit 8853b07ae8169c409740c40d45cd335bd608f2a7
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit bd5c65daceaf633c36fcec86ff061df10c364bc0
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com> (v1)
commit 6e42c58375a4c3229da93c27bbd104af145c6163
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <tom.stdenis@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 8e09180798a06af5afa030d754938e4ca06e272f
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 4eb9cedca080b30c57ded349a397620ee7d0cd46
Author: Mykola Lysenko <Mykola.Lysenko@amd.com>
Date: Wed Jan 13 14:03:55 2016 +0800
Initialize drmmode_crtc dpms_mode to DPMSModeOff
This disables query of disabled pipes for drmWaitVBlank on X start
Signed-off-by: Mykola Lysenko <Mykola.Lysenko@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit 1d0b0c1794e65e581a48aa9fb19679d928d82a5d
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Thu Dec 10 18:08:12 2015 +0900
sync: Check if miSyncShmScreenInit symbol is resolved at runtime
It may be disabled in the Xorg build, either explicitly or because the
xshmfence library isn't available.
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit f4107f67f147e2500582fc36cf0f0f76bc1ef098
Author: Mykola Lysenko <Mykola.Lysenko@amd.com>
Date: Wed Dec 23 11:58:47 2015 -0500
Check for NULL koutput in drmmode_output_dpms
This situation happens whit start of usage of DRM DP MST framework,
when connectors created and destroyed dynamically.
Signed-off-by: Mykola Lysenko <Mykola.Lysenko@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit ea558e645786b08d75307716036045170e97b43e
Author: Jammy Zhou <Jammy.Zhou@amd.com>
Date: Fri Nov 20 17:03:05 2015 +0800
Use render node for DRI3 if available
Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit 43c2dc1aab682d5b6ad49d24983d6382c4f305bb
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 84cab5738a315e9825bd0864c4f0fc5b03eb81a1
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit a00c050c2e5667ed815c51979a3cadb5146136ff
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Thu Nov 19 17:55:53 2015 +0900
Post 1.0.0 release version bump
commit 755e6ff2337cf615e3ba0854ccd533baec7144db
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Thu Nov 19 17:28:19 2015 +0900
Bump version for 1.0.0 release
commit 49c7d2be99aaf6d040e553065bdc461ce8d4769a
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <cpaul@redhat.com>
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 <cpaul@redhat.com>
(ported from radeon commit 7186a8713ba004de4991f21c1a9fc4abc62aeff4)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit c8bddcf6c97b1338be3715f1fc5e0b17ce71c195
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 12815156f38ce3357f03901a78402db834577d11
Author: Emil Velikov <emil.l.velikov@gmail.com>
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 <emil.l.velikov@gmail.com>
(ported from radeon commit fcb32231a38f9461d12720cbf72f63502197a711)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit a02982b0ae0b79d2f183a1628edc05cafed8703a
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 0ddd20600d0046afd17aa47ffebe86dfd91a2215
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 83a47c0ebe17caa79d12a8b2f94b59cc945452f5
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 560b7fe6dc66405762020f00e9a05918a36f3a17
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit ad77ad32c4a723447d3191d527cfa6de9f54d7ce
Author: Adam Jackson <ajax@redhat.com>
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 <ajax@redhat.com>
(ported from radeon commit 851b2cf8714618843725f6d067915375485ade9d)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit f5ccea99c03b62acf3a25984aba617c665d80b7c
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 92e7c93d2f9c3036da1a17d7fccccb6f9e9eaa3d
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <Jammy.Zhou@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit c9bd1399a13cea2e1331af2c826ca054b88db071
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit fb8444e731765588c0ff1e9053c1c7b73f5f0907
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Mon Nov 2 18:20:41 2015 +0900
Don't use AMDGPUEntPriv in AMDGPUFreeRec
It crashes if info == NULL.
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 8e7ee03f55c2f3874f6e84daeb5700f8b8037a51
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <Jammy.Zhou@amd.com>
commit 6bab8fabb37eb131e131ce59446c214ded28f779
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <Jammy.Zhou@amd.com>
commit 0530e39cc6b7340163e7f6bb6d82719d102ee6e9
Author: Jammy Zhou <jammy.zhou@amd.com>
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 <michel.daenzer@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit edf72afee3a25eae9827b4de3a013b541b78e213
Author: Jammy Zhou <Jammy.Zhou@amd.com>
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 <Jammy.Zhou@amd.com>
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com> (v3)
commit cef725121eb0e56aa54d9c4665e36047373f4db7
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <Jammy.Zhou@amd.com>
commit 3b0a3c89b53b3ebe21a9d703a4dbff6e57c65a57
Author: Samuel Li <samuel.li@amd.com>
Date: Thu Oct 22 12:50:21 2015 -0400
Add Stoney support
(agd): rebase
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Samuel Li <samuel.li@amd.com>
commit 9c8b7ebe15eec7abd5dc10ad6ccecbc57225494a
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <darren.powell@amd.com>
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 <darren.powell@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit 175251645fec1a3d19f498e1cd1e655374c67801
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Thu Oct 15 16:35:51 2015 +0900
Handle RandR CRTC transforms properly
commit 6000aef4e2f0a121b94023484406fb6f04688f74
Author: Tom St Denis <tom.stdenis@amd.com>
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 <tom.stdenis@amd.com>
commit 21e72fb2418b5cc7fc849a9cf951186e209036b0
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 8da1d0c870e1081d77925807d6e3bbc61a23f54f
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit dc40582d5ff94d812cbc08f95cf14b80cd0f410d
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 460560502a1bdf26d06f3c30df46fa9f28ffb9e5
Author: Tom St Denis <tom.stdenis@amd.com>
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 <tom.stdenis@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit 56398d6651dfc4935cbd117ad861e1800077c73c
Author: Tom St Denis <tom.stdenis@amd.com>
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 <tom.stdenis@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit 4b92b960c7705be8b3a5dee17b2341864d7ca9bb
Author: Tom St Denis <tom.stdenis@amd.com>
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 <tom.stdenis@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit fe100fd6bf483228eaf64b959c56a68e8dac4447
Author: Tom St Denis <tom.stdenis@amd.com>
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 <tom.stdenis@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit bfa925a04815cee5fd57b99447cb2ee0e158036c
Author: Tom St Denis <tom.stdenis@amd.com>
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 <tom.stdenis@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit a1e47e76322619ed037ebce27974a4e3792940c2
Author: Tom St Denis <tom.stdenis@amd.com>
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 <tom.stdenis@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit bac21dfc8e60a07f08158b13fab1f3a9b9d27d1b
Author: Tom St Denis <tom.stdenis@amd.com>
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 <tom.stdenis@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit a5f7f2e68bad1935f5ad52286033237467f77302
Author: Tom St Denis <tom.stdenis@amd.com>
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 <tom.stdenis@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit e14e3560bff2537d3ad4c93d2b31442a122cde66
Author: Tom St Denis <tom.stdenis@amd.com>
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 <tom.stdenis@amd.com>
[ Michel Dänzer: fix up slightly to better match radeon formatting ]
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit e9621ec0e2400f62db320c560a739b29258edb87
Author: Tom St Denis <tom.stdenis@amd.com>
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 <tom.stdenis@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit db3bb2061b9ac16b0922d9afae99874820356a04
Author: Tom St Denis <tom.stdenis@amd.com>
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 <tom.stdenis@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit 94caf7ac777134b8396aa762a506053179bbb4c6
Author: Tom St Denis <tom.stdenis@amd.com>
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 <tom.stdenis@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit f035faec041cb5df65c78effa58eb50197cedf88
Author: Tom St Denis <tom.stdenis@amd.com>
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 <tom.stdenis@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit aee72b29210d79dbf41bde6eef16d7fe817e6cf4
Author: Tom St Denis <tom.stdenis@amd.com>
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 <tom.stdenis@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit 0846abeace649d27a5f2c17373e717f92d246797
Author: Tom St Denis <tom.stdenis@amd.com>
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 <tom.stdenis@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit 4ca8f957e0b417b099f625470db98a54531a731d
Author: Tom St Denis <tom.stdenis@amd.com>
Date: Thu Oct 1 13:16:15 2015 -0400
Silence type mismatch warning.
Signed-off-by: Tom St Denis <tom.stdenis@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit a79735ab1499c1f7814036d1b19ff465705c5f45
Author: Tom St Denis <tom.stdenis@amd.com>
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 <tom.stdenis@amd.com>
[ 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 <michel.daenzer@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit b93934a9ed5e92f3a6eac6554c5c4fa2967a6dd0
Author: Tom St Denis <tom.stdenis@amd.com>
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 <tom.stdenis@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit f5c3fd0b57cf9e392bf591110568637937a1d338
Author: Tom St Denis <tom.stdenis@amd.com>
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 <tom.stdenis@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit 3055724aef76a624718f26d5f0f9e9d567ffbcfb
Author: Tom St Denis <tom.stdenis@amd.com>
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 <tom.stdenis@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit 9945b4ae1664ab815b39ff07e7b66cfa7f942dfa
Author: Tom St Denis <tom.stdenis@amd.com>
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 <tom.stdenis@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> (cosmetic fixups)
commit 36b3faebdd1d2090a286616eeeb131d15e9a1386
Author: Tom St Denis <tom.stdenis@amd.com>
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 <tom.stdenis@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> (cosmetic fixups)
commit 8823c3d4c6db70cff7699b31088f2d92db8faaf4
Author: Tom St Denis <tom.stdenis@amd.com>
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 <tom.stdenis@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> (minor fixups)
commit 63948ea091a9b324327ade7ec4fc5d67ca7e6f6f
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 55a4461bd95698cb8d52f9f6c28583f8f81afb4e
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 4c425e9c5c038504a0f0498dd800ab1fb40bf0c5
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit bb989e173dc364a7d68e50d7e819d0e0ee133d2f
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit ebe2c020fbf2ef8de01fc50b201ab23ddb9fb13b
Author: Mario Kleiner <mario.kleiner.de@gmail.com>
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 <mario.kleiner.de@gmail.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit c9611a2aa0f8d3bb55c552353740d60f6e4f63a0
Author: Alex Deucher <alexander.deucher@amd.com>
Date: Tue Jul 7 22:46:34 2015 -0400
add fiji pci id
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
commit 2622ac1554761b8824bfbbb2e3051a632ee38ce7
Author: Alex Deucher <alexander.deucher@amd.com>
Date: Tue Jul 7 22:46:08 2015 -0400
Add fiji support
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
commit 7a49d8728d17875206a84fd1023f62b37c4a9f51
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 9f988bf1dc9d4cb92926c051ed8f15e9ba58a016
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 13cf61bd8d46b0059f26120a8902da6f86e6bd11
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 15050aabf256c17250d1fca0bfac97fc6707b195
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 96b5364496222f1b3afb9caad458f16f156b6c47
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 0fb45f2bba89379ba25d4c863091937b6384bda9
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit cac553d3b691d26eaad24fbdcba06097b6728a6d
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Thu Aug 6 17:20:22 2015 +0900
Add .dir-locals.el file with Emacs indentation settings
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit ea32253541959cc36a40fb0118200a8f493dc98a
Author: Jammy Zhou <Jammy.Zhou@amd.com>
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 <Jammy.Zhou@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit 3010d3259d3bc74263d526e54e02bc169c8d4b4d
Author: Mario Kleiner <mario.kleiner.de@gmail.com>
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 <mario.kleiner.de@gmail.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit 159c5d460a330cf0a24678f3c6c3e2fbaf23c571
Author: Dave Airlie <airlied@gmail.com>
Date: Tue Jul 14 17:04:14 2015 +0900
Adopt for new X server dirty tracking APIs.
Signed-off-by: Dave Airlie <airlied@redhat.com>
(Ported from radeon commit b6d871bf299c7d0f106c07ee4d8bd3b2337f53cc)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 7b3212e33cd36fb6f122774df27b56ec4e1a22b8
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <Jammy.Zhou@amd.com>
commit 5587a7b43d02d6371ed4675a6260427492ebad94
Author: Piotr Redlewski <predlewski@gmail.com>
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 <predlewski@gmail.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit b176e63df20b345cb378fe962afd14eed43421d3
Author: Piotr Redlewski <predlewski@gmail.com>
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 <predlewski@gmail.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit d94d4a609c593b46ab718544ee24c25530732f22
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit c57da33308a81fa575179238a0415abcb8b34908
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit bd0aca09770543fa77b934e1728a832c9c2dc90c
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit e5dfb6c2667994701ee451bf82c4142cbf343405
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <darren.powell@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 08da7b691d556735dcc22b1351c886a5079dfd3f
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 59bdb578266a2637fda8d11168b9332f6845157c
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 9a6eff506b6804481a6e8139d362355fc5ffdbfb
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Wed Jun 10 12:10:24 2015 +0900
Set AMDGPU_BO_FLAGS_GBM for cursor buffers allocated from GBM
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit d3ea8a69b02b308f8f23662be6e0c7bd81c1a2c9
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <darren.powell@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 895e4d73d5f042afa13065b64a78f5625ecb5612
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <darren.powell@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit cc5671c587d575b2a7d2802d17e8af0384a2cea5
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <darren.powell@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 21834953ee64920438dee1c94f3a1e53dc58b82d
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <darren.powell@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit e4e4f7b83e7d7e43993fa0793d666d6dec2980f8
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <darren.powell@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit edfff6b1a3a19953644b8052b30076f76f7dc337
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit d295b5b3310bc5c23d232c4be4170165a057c090
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com> [v1]
commit 03ad0fa0185d215f7d4234006e04406af1ab63ca
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <michel.daenzer@amd.com>
Signed-off-by: Darren Powell <darren.powell@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit fafb8c6ac925ad16073e5a60dbf60d5add11bb25
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 5b51f0e7e396ea946ef85429a8e9be5c1d5c39c3
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit a30060d22a42688371166a861e5050fdd5ce8f7b
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 9a554a683b970660b467566cf05b921393705a20
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit e6164ad340f65ff8ee6f6a6934302591af875a43
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 5419e13da7ec3cffd43510ac88106076ea81124c
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit f4c2b640be17ab1f8694b35d4cb74ccfce3d1385
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 13a7284e061081a12180b375d66f9b8394cf8753
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Mon Jun 1 16:58:00 2015 +0900
Add DRM event queue helpers
(Cherry picked from radeon commit b4af8a327ed8420f0ff4ea0f113f4a59406ed4d3)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit eb7c6958dff5cb8b0aad02d1d5673483dae4e3d4
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 69d161a54b4ea0d8033a0873210f2857c91ceae8
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 7363156b7c077def2aaf9a4573410817f5e92610
Author: Jammy Zhou <Jammy.Zhou@amd.com>
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 <Jammy.Zhou@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com> [v1]
commit e75e9f39c95b8b563885882bf29d776861cd6ca3
Author: Brian Paterni <bpaterni@gmail.com>
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 <bpaterni@gmail.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit 37b389ee9e13f065fb080d1269f9a6aed616c210
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
Date: Tue May 12 13:29:00 2015 -0400
add some new tonga pci ids
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
commit e71be4a22799ec4c02051b75c5fed16a3a953c7b
Author: Alex Deucher <alexander.deucher@amd.com>
Date: Tue May 12 13:25:02 2015 -0400
add new bonaire pci id
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
commit b795d1e137b34a314b4b41d025d96ca9251d6bbe
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Thu May 7 18:05:32 2015 +0900
Link against libgbm
Fixes unresolved symbol "gbm_create_device".
Reported-and-Tested-by: Brian Paterni <bpaterni@gmail.com>
commit 7e3b27390a03e423772717fca3c757cf5cc4d7b4
Author: Jammy Zhou <Jammy.Zhou@amd.com>
Date: Tue May 12 05:34:49 2015 +0800
Disable tiling for PRIME shared pixmap
Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit 4840f918ab7d61b4f55bcdff3afdac7b34e45d88
Author: Jammy Zhou <Jammy.Zhou@amd.com>
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 <Jammy.Zhou@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit b69c5b3cc2d7da3bb85acd687db9b5a021258914
Author: Marek Olšák <marek.olsak@amd.com>
Date: Fri Mar 27 22:56:37 2015 +0100
ddx: use amdgpu_query_crtc_from_id
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 91aa694a7da7b690a3e5d59a1a8fa42cbb3ebda4
Author: Marek Olšák <marek.olsak@amd.com>
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 <Jammy.Zhou@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit afc33040f862e2e13ba7f132bb363cf16fb6a1d7
Author: Marek Olšák <marek.olsak@amd.com>
Date: Fri Mar 27 22:14:37 2015 +0100
ddx: enable acceleration by default on Hawaii
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 8a34a8149860ac15e83ccdbd8d9a527d8d3e5997
Author: Jammy Zhou <Jammy.Zhou@amd.com>
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 <Jammy.Zhou@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
commit 9f61a5506b1028d30c99cb5866abcec35d5c9cb8
Author: Alex Deucher <alexander.deucher@amd.com>
Date: Fri Apr 24 11:47:32 2015 -0400
fixup README
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
commit a49ad11af18dad74506c2f69d7bbda07b67529d2
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit fa4aed6cf56048a6520eac57514e38db3685cd15
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Fri Apr 24 09:53:33 2015 +0900
Document Option "AccelMethod" in the manpage
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit fe4a4b6836252cc8caa642a32fb3910c8590076b
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <alexander.deucher@amd.com>
commit 84df3e7114fb71b5e10c1a6f7869ab1505fef5b0
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <christian.koenig@amd.com>
commit b947f4bf4efa8841bea4d306d0b0d21c7511c724
Author: Michel Dänzer <michel.daenzer@amd.com>
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 <christian.koenig@amd.com>
commit ff62bf6e9dce55dbde92baf4fa30193c7344ee8a
Author: Alex Deucher <alexander.deucher@amd.com>
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 <alexander.deucher@amd.com>