| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
| |
|
|
|
|
| |
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
|
|
|
|
| |
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
|
|
|
|
|
|
|
|
| |
Only the NVA3/5/8/F tesla chips have a copy engine. Don't bother trying
to create one on earlier tesla chips (and thus printing an error on
failure).
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Highlights:
- Support for server managed fd's.
- Glamor support.
- Maxwell support.
- DRI3 and initial Present support.
- vsync'ed kms pageflip performance fixes when running on Linux 3.13+
- Multi-display vsync, vblank, swap scheduling, timestamping fixes.
- Multi x-screen support fixes.
- ZaphodHead support on for multiple outputs per x-screen.
- EXA nv-10 fixes.
- Enable sync of swaps to vblank by default (Option GLXVblank "on").
- Disable pseudo-triplebuffering by default (Option SwapLimit "1").
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This used to be 2 for pseudo-triplebuffering on XOrg 1.12+.
However, it caused problems like unthrottled swapping
at up to twice the video refresh rate for redirected
windows under desktop composition, which can't be easily
fixed under dri2.
Default to double-buffering. Users can override this, but
dri3 provides better solutions for this.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make crtc selection consistent with ati and intel ddx.
Pick the crtc to use for vblank events, swap scheduling and
kms-pageflip completion events as the one with maximum pixel area
intersection between its viewport and the drawable. If multiple
crtc's viewports display the same amount of area of a drawable,
select the crtc whose output is the designated "primary output"
for the x-screen. The latter allows, e.g., in a clone display
setup, to select the important output on which tearing should be
minimized. The former makes sure to minimize or avoid tearing on
the display which shows the largest part of the drawable.
This method is transplanted from the ati ddx.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
|
|
|
| |
Some auto-generated file by new make systems to deal with some
old compilers.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Only register the wakeup handler and event socket
once per card fd and server generation, as the fd
and device file is shared between all x-screens for
a given card during a given server generation.
Without this fix, vblank and kms-pageflip completion
event processing don't work properly, as the server
doesn't kick the wakeup handler for gpu events, and
therefore the desktop will freeze, unless the user
manually kicks the wakeup handler by moving the mouse
or hitting the keyboard.
Add proper reference counting and checks to make it so.
This fix is derived from a similar and proven fix in
the ati ddx for the same problem.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
|
|
|
| |
Reset the mask of already assigned crtc's at start
of each new server generation.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
|
|
|
| |
Use helper function drmmode_head() to choose proper hw-crtc
to sync to. Fixes xv blits, and dri2 Copy-Swaps.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
| |
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
| |
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
Tested on a triple display setup with different combos
of one, two or three ZaphodHeads per one, two or three
x-screens.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Old mapping of xf86Crtc -> display head index was
too simple and only worked on a single x-screen config.
Introduce a new helper function drmmode_hw_head_index()
which returns proper mapping also for multi x-screens per
gpu and ZaphodHeads setups and other non-standard multi-
display configurations.
Tested on triple-head setup with various ZaphodHead and
server layout combos.
This helper will be also needed for dri3/present code.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
|
|
|
|
|
|
|
| |
Doesn't actually end up mattering.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
| |
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
| |
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
The higher 0x800 was getting overwritten by the 0x7ff anyways, so it
wasn't doing any good. The mesa driver just uses 0x800 for the low
portion and doesn't set the 8 bit in the higher portion, so do the same
thing here.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
...when building against pre 1.12 x.
The build will fail as earlier versions of X were missing the xorg_
prefix of the symbols - struct and util functions.
Reported-by: Pali Rohár <pali.rohar@gmail.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
|
|
| |
fdo#80738
Reported-by: Paulo Sérgio Travaglia <pstglia@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Need to use the DRM_VBLANK_HIGH_CRTC bits to allow
selecting crtc's with id > 1 on latest gpu's with
up to four display engines.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
|
|
|
| |
nouveau_present_flip_exec references glamor_fd_from_pixmap,
which do not exist when glamor is disabled
Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
xorg-server can be built without glamor, which leads to:
CC nouveau_xv.lo
In file included from nouveau_xv.c:41:0:
nouveau_glamor.h:12:20: fatal error: glamor.h: No such file or directory
compilation terminated.
Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
|
|
| |
Make this consistent with other drivers default behaviour.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
| |
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Query if kernel supports the async_flip cap, thereby needs the
new sync behavior. Linux 3.13+ nouveau-kms have this cap and
need this fix.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Linux 3.13 and later sync kms pageflips to vblank in the kms
driver, so we must not emit a sync to vblank pushbuf in the ddx
on such kernels, or maximum framerate will be cut into half!
A sync-to-vblank-pushbuf is emitted for copyswaps as in the past,
also for older kernels which don't support async_pageflip's and
don't sync by themselves.
This adds the implementation, but not the detection logic for
async_pageflip support in the kernel.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
| |
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
| |
|
|
|
|
|
|
| |
Until glamor grows its own implementation.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
|
| |
Present wants to use this too.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
|
|
| |
Nothing to see here... This is to (hopefully) avoid busting DRI2 while
implementing Present support.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
| |
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
|
| |
Nothing to see here...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
| |
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
| |
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
| |
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
|
| |
We have no RENDER/Xv acceleration in EXA for Maxwell.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
| |
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
| |
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
|
|
|
| |
More extensive acceleration will be via glamor, at least to begin with. It
seems to make sense to jump on the bandwagon now, and deal with any issues
that arise before it it becomes the standard for XWayland.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
| |
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
| |
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
|
| |
As a side-effect, we now allow Kepler to use async copies too.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
| |
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
| |
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
| |
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|