summaryrefslogtreecommitdiff
path: root/hw/xfree86
AgeCommit message (Collapse)AuthorFilesLines
2017-02-17xfree86: Take input_lock() for xf86ScreenCheckHWCursorChris Wilson1-7/+20
(cherry picked from commit 3eb964e25243056dd998f52d3b00171b71c89189)
2017-02-17xfree86: Take input lock for xf86TransparentCursorChris Wilson1-0/+4
(cherry picked from commit cfddd919cce4178baba07959e5e862d02e166522)
2017-02-17xfree86: Take the input lock for xf86RecolorCursorChris Wilson1-6/+18
xf86RecolorCursor() may be called directly from XRecolorCursor as well as from xf86ScreenSetCursor(). In the latter case, the input lock is already held, but not for the former and so we need to add a wrapper function that acquires the input lock before performing xf86RecolorCursor() References: https://bugs.freedesktop.org/show_bug.cgi?id=99358 (cherry picked from commit 7198a6d4e74f684cb383b3e0f70dd2bae405e6e7)
2017-01-11xfree86: fix wrong usage of xf86optionListMergeQiang Yu1-1/+1
Signed-off-by: Qiang Yu <Qiang.Yu@amd.com> Reviewed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit 1012510620de7dadd0ab18b19a8e11facd884601)
2017-01-11edid: Add quirk for ADA 1024x600 7" display.Kai-Heng Feng1-0/+5
Detailed mode reports 108 mm x 68 mm which is for smaller display. Maximum image size reports 15 cm x 10 cm which aligns with its physical size, use this size instead. Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com> Acked-by: Alex Deucher <alexander.deucher@amd.com> (cherry picked from commit 9874f73e88678c9eacbcba05e52336fc63a32712)
2017-01-11Fix a segfault that occurs if xorg.conf.d is absent:Ben Crocker3-1/+25
In InitOutput, if xf86HandleConfigFile returns CONFIG_NOFILE (which it does if no config file or directory is present), the autoconfig flag is set, causing xf86AutoConfig to be called later on. xf86AutoConfig calls xf86OutputClassDriverList via the call tree: xf86AutoConfig => listPossibleVideoDrivers => xf86PlatformMatchDriver => xf86OutputClassDriverList and xf86OutputClassDriverList attempts to traverse a linked list that is a member of the XF86ConfigRec struct pointed to by the global xf86configptr, which is NULL at this point because the XF86ConfigRec struct is only allocated (by xf86readConfigFile) AFTER the config file and directory have been successfully opened; the CONFIG_NOFILE return from xf86HandleConfigFile occurs BEFORE the call to xf86readConfigFile which allocates the XF86ConfigRec struct. Rx: In read.c (for symmetry with xf86freeConfig, which already appears in this file), add a new function xf86allocateConfig which tests the value of xf86configptr and, if it's NULL, allocates the XF86ConfigRec struct and deposits the pointer in xf86configptr. In xf86Parser.h, add a prototype for the new xf86allocateConfig function. Back in read.c, #include "xf86Config.h". In xf86readConfigFile, change the open-code call to calloc to a call to the new xf86allocateConfig function. In xf86AutoConfig.c, add a call to the new xf86allocateConfig function to the beginning of xf86AutoConfig to make sure the XF86ConfigRec struct is allocated. Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Ben Crocker <bcrocker@redhat.com> (cherry picked from commit 8b335d9068fe4e1f1423a4d86c22b69ffcb819a5)
2016-11-02dri2: Sync i965_pci_ids.h from mesaTimo Aaltonen1-15/+17
Import changes from these mesa commits: 85ea8deb26da420 i965: Removing PCI IDs that are no longer listed as Kabylake. bdff2e554735ed9 i956: Add more Kabylake PCI IDs. f1fa8b4a1ca73fa i965/bxt: Add 2x6 variant d1ab544bb883d04 i965/chv: Display proper branding 20e8ee36627f874 i965/skl: Update Skylake renderer strings 644c8a515192d28 i965/skl: Add two missing device IDs Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Timo Aaltonen <tjaalton@ubuntu.com>
2016-10-28Merge remote-tracking branch 'jturney/master'Keith Packard1-0/+2
2016-10-28ramdac: Check sPriv != NULL in xf86CheckHWCursor()Alex Goins1-0/+4
xf86CheckHWCursor() would dereference sPriv without NULL checking it. If Option "SWCursor" is specified, sPriv == NULL. In this case we should assume that HW cursors are not supported. Signed-off-by: Alex Goins <agoins@nvidia.com> Reviewed-by: Andy Ritger <aritger@nvidia.com> Signed-off-by: Keith Packard <keithp@keithp.com>
2016-10-27glx/dri2: Don't build DRI loader if DRI2 isn't enabledJon Turney1-0/+2
This partially reverts 501d8e2b. Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
2016-10-26modesetting: unifdef MODESETTING_OUTPUT_SLAVE_SUPPORTNikhil Mahale1-2/+0
Commit c7e8d4a6ee9542f56cd241cf7a960fb8223a6b22 had already unifdef MODESETTING_OUTPUT_SLAVE_SUPPORT but commit 9257b1252da9092ddc676fec9aabe2b33dfad272 didn't notice that. Signed-off-by: Nikhil Mahale <nmahale@nvidia.com> Reviewed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2016-10-26xfree86: Xorg.wrap: Do not require root rights for cards with 0 outputsHans de Goede1-1/+1
Prior to this commit the Xorg.wrap code to detect if root rights are necessary checked for DRM_IOCTL_MODE_GETRESOURCES succeeding *and* reporting more then 0 output connectors. DRM_IOCTL_MODE_GETRESOURCES succeeding alone is enough to differentiate between old drm only cards (which need ums and thus root) and kms capable cards. Some hybrid gfx laptops have 0 output connectors on one of their 2 GPUs, resulting in Xorg needlessly running as root. This commits removes the res.count_connectors > 0 check, fixing this. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2016-10-26DRI2: Sync radeonsi_pci_ids.h from MesaMichel Dänzer1-0/+12
Fixes DRI2 client driver name mapping for newer AMD GPUs with the modesetting driver, allowing the DRI2 extension to initialize. Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2016-10-26modesetting: fix glamor ifdefMihail Konev1-0/+2
Add a missing ifdef needed for --disable-glamor. Signed-off-by: Mihail Konev <k.mvc@ya.ru> Reviewed-by: Jon Turney <jon.turney@dronecode.org.uk> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2016-10-26ddx: add new call to purge input devices that weren't addedPeter Hutterer1-0/+15
Special case for the systemd-logind case in xfree86: when we're vt-switched away and a device is plugged in, we get a paused fd from logind. Since we can't probe the device or do anything with it, we store that device in the xfree86 and handle it later when we vt-switch back. The device is not added to inputInfo.devices until that time. When the device is removed while still vt-switched away, the the config system never notifies the DDX. It only runs through inputInfo.devices and our device was never added to that. When a device is plugged in, removed, and plugged in again while vt-switched away, we have two entries in the xfree86-specific list that refer to the same device node, both pending for addition later. On VT switch back, the first one (the already removed one) will be added successfully, the second one (the still plugged-in one) fails. Since the fd is correct, the device works until it is removed again. The removed devices' config_info (i.e. the syspath) doesn't match the actual device we addded tough (the input number increases with each plug), it doesn't get removed, the fd remains open and we lose track of the fd count. Plugging the device in again leads to a dead device. Fix this by adding a call to notify the DDX to purge any remainders of devices with the given config_info, that's the only identifiable bit we have at this point. https://bugs.freedesktop.org/show_bug.cgi?id=97928 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-10-26xfree86: swap the list of paused devices to an xorg_listPeter Hutterer1-11/+20
No functional changes but it makes it easier to remove elements from the middle of the list (future patch). We don't have an init call into this file, so the list is manually initialized. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-10-26xfree86: use the right option traversal list to search for an optionPeter Hutterer1-11/+7
They're identically laid-out structs but let's use the right type to search for our desired value. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-10-13xf86Cursor: Take the input lock in xf86Set/MoveCursorMichel Dänzer1-3/+14
Prevents the HW cursor from intermittently jumping around when the cursor image is changed while the cursor is being moved. This is hardly noticeable in normal operation but can be quite confusing when stepping through these codepaths in a debugger. Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-10-13xf86Cursor: Use PRIME master xf86CursorScreenRec::HotX/Y for slavesMichel Dänzer1-4/+16
xf86CursorScreenRec::HotX/Y contain 0 for PRIME slave screens. Fixes incorrect HW cursor position on PRIME slave screens. Also hoist the hotspot translation out from xf86ScreenSet/MoveCursor to xf86Set/MoveCursor, since the hotspot position is a property of the cursor, not the screen. v2: * Squash patches 1 & 2 of the v1 series, since it's basically the same problem * Use the master screen's xf86CursorScreenRec::HotX/Y instead of CursorRec::bits->x/yhot, since CursorRec::bits can be NULL (Hans de Goede) Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2016-10-05xfree86/dri: remove libdrm runtime checksEmil Velikov1-21/+1
As of last commit all the places in our configure.ac require version 2.3.1 (released back in 2007) or later. With the latter introducing the 1.3.0 version, as returned by drmGetLibVersion. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
2016-10-05configure.ac: remove --enable-aiglx optionEmil Velikov1-2/+0
Presently the option guards both direct and accelerated indirect GLX. As such when one toggles it off they end up without any acceleration. Remove the option all together until we have the time to split/rework things. Cc: Jon Turney <jon.turney@dronecode.org.uk> Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2016-10-05xfree86: remove aiglx cmd/xorg.conf optionEmil Velikov4-21/+3
The option is misleading and using it leads to disabling both direct and accelerated indirect GLX. In such cases the xserver GLX attempts to match DRISW (IGLX) configs with the DRI2/3 ones (direct GLX) leading to all sorts of fun experience. Remove the option until we get a clear split and control over direct vs indirect GLX. Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2016-09-28modesetting: only fall back to drmModeSetCursor() on -EINVALMichael Thayer1-4/+8
This change effectively reverts commit 074cf58. We were falling back from drmModeSetCursor2() to drmModeSetCursor() whenever the first failed. This fall-back only makes sense on pre-mid-2013 kernels which implemented the cursor_set hook but not cursor_set2, and in this case the call to drmModeSetCursor2() will always return -EINVAL. Specifically, a return value of -ENXIO usually means that neither are supported. Signed-off-by: Michael Thayer <michael.thayer@oracle.com> [hdegoede@redhat.com: initialize ret to -EINVAL] Reviewed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2016-09-28modesetting: Consume all available udev events at onceDaniel Martin1-4/+6
We get multiple udev events for actions like docking a laptop into its station or plugging a monitor to the station. By consuming as much events as we can, we reduce the number of output re-evalutions. I.e. having a Lenovo X250 in a ThinkPad Ultra Dock and plugging a monitor to the station generates 5 udev events. Or having 2 monitors attached to the station and docking the laptop generates 7 events. It depends on the timing how many events can consumed at once. Signed-off-by: Daniel Martin <consume.noise@gmail.com> [hdegoede@redhat.com: Keep goto out so that we always call RRGetInfo()] Reviewed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2016-09-28config: fix GPUDevice fail when AutoAddGPU off + BusIDQiang Yu1-3/+15
This fix is for the following xorg.conf can work: Section "ServerFlags" Option "AutoAddGPU" "off" EndSection Section "Device" Identifier "Amd" Driver "ati" BusID "PCI:1:0:0" EndSection Section "Device" Identifier "Intel" Driver "modesetting" BusID "pci:0:2:0" EndSection Section "Screen" Identifier "Screen0" Device "Intel" GPUDevice "Amd" EndSection Without AutoAddGPU off, modesetting DDX will also be loaded for GPUDevice. Signed-off-by: Qiang Yu <Qiang.Yu@amd.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2016-09-28xfree86: recognize primary BUS_PCI device in xf86IsPrimaryPlatform()Laszlo Ersek1-1/+9
The new platform bus code and the old PCI bus code overlap. Platform bus can handle any type of device, including PCI devices, whereas the PCI code can only handle PCI devices. Some drivers only support the old style PCI-probe methods, but the primary device detection code is server based, not driver based; so we might end up with a primary device which only has a PCI bus-capable driver, but was detected as primary by the platform code, or the other way around. (The above paragraph was shamelessly stolen from Hans de Goede, and customized.) The latter case applies to QEMU's virtio-gpu-pci device: it is detected as a BUS_PCI primary device, but we actually probe it first (with the modesetting driver) through xf86platformProbeDev(). The xf86IsPrimaryPlatform() function doesn't recognize the device as primary (it bails out as soon as it sees BUS_PCI); instead, we add the device as a secondary graphics card under "autoAddGPU". In turn, the success of this automatic probing-as-GPU prevents xf86CallDriverProbe() from proceeding to the PCI probing. The result is that the server exits with no primary devices detected. Commit cf66471353ac ("xfree86: use udev to provide device enumeration for kms devices (v10)") added "cross-bus" matching to xf86IsPrimaryPci(). Port that now to xf86IsPrimaryPlatform(), so that we can probe virtio-gpu-pci as a primary card in platform bus code. Cc: Adam Jackson <ajax@redhat.com> Cc: Dave Airlie <airlied@redhat.com> Cc: Hans de Goede <hdegoede@redhat.com> Cc: Keith Packard <keithp@keithp.com> Cc: Marcin Juszkiewicz <mjuszkiewicz@redhat.com> Signed-off-by: Laszlo Ersek <lersek@redhat.com> Tested-By: Marcin Juszkiewicz <mjuszkiewicz@redhat.com> Reviewed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2016-09-28xfree86: Fix null pointer dereferenceKyle Guinn1-4/+4
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=93675 Signed-off-by: Kyle Guinn <elyk03@gmail.com> [hdegoede@redhat.com: Simplify by adding 2 if conds together with &&] Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2016-09-28xfree86: small memory leaks fixesDavid CARLIER3-2/+5
A couple of memory leaks fixes and avoiding bit shifting on an unitialized value. [hdegoede@redhat.com: Split out some non free fixes in separate patches] [hdegoede@redhat.com: Don't touch ancient (and weird) os/rpcauth.c code] Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2016-09-28xf86RandR12: Fix XF86VidModeSetGamma triggering a BadImplementation errorHans de Goede1-0/+30
Commit b4e46c0444bb ("xfree86: Hook up colormaps and RandR 1.2 gamma code") dropped the providing of a pScrn->ChangeGamma callback from the xf86RandR12 code. Leaving pScrn->ChangeGamma NULL in most cases. This triggers the BadImplementation error in xf86ChangeGamma() : if (pScrn->ChangeGamma) return (*pScrn->ChangeGamma) (pScrn, gamma); return BadImplementation; Which causes X-apps using XF86VidModeSetGamma to crash with a X protocol error. This commit fixes this by re-introducing the xf86RandR12ChangeGamma helper removed by the commit and adjusting it to work with the new combined palette / gamma code. Fixes: b4e46c0444bb ("xfree86: Hook up colormaps and RandR 1.2 gamma code") Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
2016-09-28xf86RandR12: Move calculating of shift inside init_one_componentHans de Goede1-7/+8
This is a preparation patch to allow easier usage of init_one_component outside of xf86RandR12CrtcInitGamma. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
2016-09-28modesetting: Fix reverse prime update lagging on secondary GPU outputsHans de Goede1-5/+8
When using secondary GPU outputs the primary GPU's blockhandler will copy changes from its framebuffer to a pixmap shared with the secondary GPU. In reverse prime setups the secondary GPU's blockhandler will do another copy from the shared pixmap to its own framebuffer. Before this commit, if the primary GPU's blockhandler would run after the secondary GPU's blockhandler and no events were pending, then the secondary GPU's blockhandler would not run until some events came in (WaitForSomething() would block in the poll call), resulting in the secondary GPU output sometimes showing stale contents (e.g. a just closed window) for easily up to 10 seconds. This commit fixes this by setting the timeout passed into the blockhandler to 0 if any shared pixmaps were updated by the primary GPU, forcing an immediate re-run of all blockhandlers. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Dave Airlie <airlied@redhat.com>
2016-09-28modesetting: Fix reverse prime partial update issues on secondary GPU outputsHans de Goede1-1/+12
When using reverse prime we do 2 copies, 1 from the primary GPU's framebuffer to a shared pixmap and 1 from the shared pixmap to the secondary GPU's framebuffer. This means that on the primary GPU side the copy MUST be finished, before we start the second copy (before the secondary GPU's driver starts processing the damage on the shared pixmap). This fixes secondary outputs sometimes showning (some) old fb contents, because of the 2 copies racing with each other, for an example of what this looks like see: https://fedorapeople.org/~jwrdegoede/IMG_20160915_130555.jpg Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Dave Airlie <airlied@redhat.com> Reviewed-by: Eric Anholt <eric@anholt.net>
2016-09-16xfree86/modes: Set RandR primary output from CreateScreenResourcesMichel Dänzer1-0/+8
Fixes XRRGetOutputPrimary and xrandr not reporting a primary output after startup. This was especially confusing when an output was explicitly marked as primary using Option "Primary" in Section "Monitor". Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Keith Packard <keithp@keithp.com>
2016-09-16modesetting: fix compile error when --disable-glamorQiang Yu2-36/+36
Move ms_flush_drm_events out of GLAMOR ifdef. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97586 Signed-off-by: Qiang Yu <Qiang.Yu@amd.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Signed-off-by: Keith Packard <keithp@keithp.com>
2016-09-13modesetting: Fall back to primary crtc for vblank for drawables on slave outputsHans de Goede1-0/+26
This fixes glxgears running at 1 fps when fully covering a slave-output and the modesetting driver is used for the master gpu. Reported-by: Peter Wu <peter@lekensteyn.nl> Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2016-09-13modesetting: ms_covering_crtc: Allow calling on non modesetting ScreensHans de Goede1-3/+9
99% of the code in ms_covering_crtc is video-driver agnostic. Add a screen_is_ms parameter when when FALSE skips the one ms specific check, this will allow calling ms_covering_crtc on slave GPUs. Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2016-09-13modesetting: Implement DRI2InfoRec version 9 callbacksHans de Goede1-9/+55
Implement the CreateBuffer2 / DestroyBuffer2 / CopyRegion2 DRI2InfoRec version 9 callbacks, this is necessary for being an offload source provider with DRI2. Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2016-09-13modesetting: ms_dri2_create_buffer: check screen of existing front buffersHans de Goede1-13/+7
If a frontbuffer drawable already has a pixmap, make sure it was created on the right screen. Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2016-09-13xf86Cursor: Add hw cursor support for primeDave Airlie2-6/+78
Currently with PRIME if we detect a secondary GPU, we switch to using SW cursors, this isn't optimal, esp for the intel/nvidia combinations, we have no choice for the USB offload devices. This patch checks on each slave screen if hw cursors are enabled, and also calls set cursor and move cursor on all screens. Cc: Aaron Plattner <aplattner@nvidia.com> Signed-off-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Keith Packard <keithp@keithp.com>
2016-09-13xf86Cursor: Deal with rotation on GPU screens using a hw-cursorHans de Goede1-11/+40
When a slave-output is rotated the transformation is done on the blit from master to slave GPU, so crtc->transform_in_use is not set, but we still need to adjust the mouse position for things to work. This commit modifies xf86_crtc_transform_cursor_position to not rely on crtc->f_framebuffer_to_crtc, so that it can be used with GPU screens too and always calls it for crtcs with any form of rotation. Note not using crtc->f_framebuffer_to_crtc means that crtc->transform will not be taken into account, that is ok, because when we've a transform active hw-cursors are not used and xf86_crtc_transform_cursor_position will never get called. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-and-Tested-by: Michel Dänzer <michel.daenzer@amd.com>
2016-09-13xf86Cursor: Fix xf86_crtc_rotate_coord using width/height wronglyHans de Goede1-2/+2
xf86_crtc_rotate_coord should be the exact inverse operation of xf86_crtc_rotate_coord_back, but when calculating x / y for 90 / 270 degrees rotation it was using height to calculate x / width to calculate y, instead of the otherway around. This was likely not noticed before since xf86_crtc_rotate_coord until now was only used with cursor_info->MaxWidth and cursor_info->MaxHeight, which are usally the same. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2016-09-13xf86Cursor: Fix xf86CurrentCursor to work on slave GPU ScreensHans de Goede1-3/+6
The CurrentCursor is always attached to the master GPU. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2016-09-13xf86Cursor: Add xf86CheckHWCursor() helper functionDave Airlie3-8/+14
This is a preparation patch for adding prime hw-cursor support. Signed-off-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2016-09-13modesetting: Remove some dead codeHans de Goede1-2/+0
The "if (pixmap) ..." block this commit removes is inside an "if (pixmap == NULL) ..." block, so it will never execute. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Aaron Plattner <aplattner@nvidia.com>
2016-09-13modesetting: ms_covering_crtc: Remove unused arguments, make staticHans de Goede2-19/+6
Remove unused arguments from ms_covering_crtc, make it static as it is only used in vblank.c. While at it also change its first argument from a ScrnInfoPtr to a ScreenPtr, this makes the next patch in this patch-set cleaner. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Keith Packard <keithp@keithp.com>
2016-09-13modesetting: Fix msSharePixmapBacking returning a non-linear boHans de Goede1-1/+2
glamor_fd_from_pixmap() may return a tiled bo, which is not suitable for sharing with another GPU as tiling usually is GPU specific. Switch to glamor_shareable_fd_from_pixmap(), which always returns a linear bo. This fixes mis-rendering when running the mode setting driver on the master gpu in a dual-gpu setup and running an opengl app with DRI_PRIME=1. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Keith Packard <keithp@keithp.com>
2016-09-02modesetting: add DRI2 page flip supportQiang Yu5-15/+257
Signed-off-by: Qiang Yu <Qiang.Yu@amd.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2016-09-02modesetting: move common page flip handle to pageflip.cQiang Yu3-87/+105
The common page flip handle framework can be shared with DRI2 page flip. Signed-off-by: Qiang Yu <Qiang.Yu@amd.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2016-09-02modesetting: move ms_do_pageflip to pageflip.cQiang Yu4-252/+300
Signed-off-by: Qiang Yu <Qiang.Yu@amd.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2016-09-02modesetting: make ms_do_pageflip generic for share with DRI2Qiang Yu1-14/+25
Signed-off-by: Qiang Yu <Qiang.Yu@amd.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>