Commit Graph

300 Commits

Author SHA1 Message Date
Chris Wilson a192f8cbc2 2.20.9 release
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-09-29 10:51:59 +01:00
Chris Wilson 9326acc291 Allow compilation of a separate i810 driver
Allow --enable-ums-only as a counter-option to --enable-kms-only in case
the distribution wishes to enable a non-root KMS driver but also offer
a separate UMS driver for i81x.

On the second pass, use "--enable-ums-only --disable-uxa --disable-sna"
to get the trimmed down unaccelerated i810 support.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-09-23 13:41:55 +01:00
Chris Wilson 88502b32d5 2.20.8 release
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-09-16 09:02:46 +01:00
Ian Stakenvicius 3b9259f7ce configure: Make udev dependency optional
In order to support buildbots where the udev headers may exist on the
build system but not the target, we need explicit control over optional
dependencies.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54942
2012-09-14 21:04:42 +01:00
Chris Wilson 0659711dfa 2.20.7 release
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-09-08 20:02:32 +01:00
Chris Wilson d933f3a796 2.20.6 release
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-09-02 10:30:13 +01:00
Chris Wilson b5c77a6aaf 2.20.5 release
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-08-26 12:48:18 +01:00
Chris Wilson 5ff6198c93 2.20.4 release
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-08-18 11:59:56 +01:00
Chris Wilson 5833ef173a 2.20.3 release
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-08-04 09:32:35 +01:00
Chris Wilson 8ebafa0493 sna: Add the brw assembler
In order to construct programs on the fly to cater for the combinatorial
number of possible shaders, we need an assembler, whilst also taking the
opportunity to remove some of the inefficiencies and mistakes from the
current shaders.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-30 12:57:13 +01:00
Chris Wilson a8ee140624 2.20.2 release
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-27 09:07:16 +01:00
Chris Wilson 83f683b470 2.20.1 release
A good brown paper bag bug release for SNA.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-22 23:20:23 +01:00
Chris Wilson 83ad661bc7 sna: Change the vmap interface name to userptr
This is in common with the other drivers and avoids the conflict with
'vmalloc/vmap' used by the kernel for allocation of contiguous virtual
mappings.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-21 12:53:34 +01:00
Chris Wilson 267429bbb1 sna: Enable runtime detection of set-cacheing ioctl
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-18 21:36:26 +01:00
Chris Wilson 6a18a0936e configure: version bump for 2.20.0 release
The day SNA hits mainstream...

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-15 20:26:30 +01:00
Chris Wilson 95fdd9af5c sna: Enable pixman_glyphs if available
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-14 14:15:11 +01:00
Chris Wilson b5d6a57f12 Enable compilation of SNA by default
But only if we meet the required versions of Xorg and leave UXA as the
default AccelMethod for the time being.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-12 22:16:55 +01:00
Chris Wilson 6c2975ab29 Fix the reporting of whether SNA is configured
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-12 22:14:59 +01:00
Chris Wilson fd15ce65ab sna: Fix build without DRI2
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-12 22:13:50 +01:00
Chris Wilson d25000e1f3 i810: Tidy configure detection for XAA/DGA
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-12 11:59:44 +01:00
Daniel Stone 232217eef8 i810: Make DGA optional
Don't build DGA when it's not available, or when we don't want it.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-10 09:36:40 +01:00
Daniel Stone 78dc0c0474 i810: Make XAA optional
Don't build XAA when it's not available, or when we don't want it.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-07-10 09:32:01 +01:00
Chris Wilson 8a9a17cd09 sna: Improve the check for assertions
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-09 11:41:17 +01:00
Chris Wilson b11bc37684 sna: Simplify the DBG incarnation
It was only ever used in conjunction with HAS_DEBUG_FULL. For debug
purposes it is as easy to redefine DBG locally. By simplifying the DBG
macro we can create it consistently and so reduce the number of compiler
warnings.

Long term, this has to be dynamic. Sigh.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-09 11:41:17 +01:00
Chris Wilson e3e58123d3 sna: Fixup fb wrapper
To accommodate changes in the Xserver and avoid breakage; would have been
much easier had the fb been exported in the first place.
2012-07-08 21:34:21 +01:00
Chris Wilson 9e2ac8a413 sna: Use set-cache-level ioctl to create CPU bo
As an alternative to vmap, we can use the kernel for all memory
management through bo, which is much preferred for its simplicity (i.e.
avoiding introducing even more vm complexity).

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-03 20:08:02 +01:00
Chris Wilson 92e1693e5f sna: Validate cpu/gpu damage never overlaps
References: https://bugs.freedesktop.org/show_bug.cgi?id=50477
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-06-18 21:29:51 +01:00
Chris Wilson 392e33a62d sna: Instrument memory/bo allocations for monitoring over time
Hide it behind --enable-debug=memory to avoid incurring the cost for
everybody.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-06-11 12:19:57 +01:00
Chris Wilson 4e984b79cc configure: Correct the help string for --with-default-accel
Prior to finalizing the defaults I changed my mind and realised that the
default had to reflect the current behaviour of someone enabling SNA for
the first time, and not the previous behaviour of --enable-sna to
override UXA. This is so that distro's could offer an SNA enabled DDX
for the brave whilst not affecting their typical no-xorg.conf users.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-06-11 09:02:03 +01:00
Chris Wilson 7614a54188 configure: Harden --with-default-accel against simple mistakes
If the user specifies no options, assume automatic selection. Then
double check we found a valid backend and so avoid later breaking the
build.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-06-10 09:38:32 +01:00
Chris Wilson 318982566b sna/dri: Disable experimental code by default
Since these require non-upstream patches to other components, we don't
want it enabled by default and randomly breaking builds.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-06-07 23:12:21 +01:00
Chris Wilson e456291350 Allow runtime switching of AccelMethod between uxa/sna and even glamor
Section "Device"
  Option "AccelMethod" "uxa/glamor/sna"
EndSection

The appropriate backend must also be enabled at compile time for the
runtime option to be available (i.e. --enable-uxa (default) --enable-sna
--enable-glamor)

Demanded-by: Adam Jackson <ajax@redhat.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50290
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-05-24 19:01:22 +01:00
Chris Wilson 2c801c45db sna: Replace timerfd with OsTimer
As timerfd is linux-specific, and OsTimer an OS-agnostic abraction,
replace the former with the later. Arguably this has slightly better
performance characteristics in select-bound loops.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-05-06 21:55:04 +01:00
Chris Wilson 444da84c47 configure: Version bump for 2.19.0 release 2012-04-29 21:49:04 +01:00
Chris Wilson a78b1d71a3 sna: Declare AC_SYS_LARGEFILE for mmap64
In order to use the full 32-bits of mmap address space on small
platforms we need to use mmap64().

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-04-12 15:37:25 +01:00
Chris Wilson 4460c6d0d3 configure: Stop the debug build erroring out if it cannot find valgrind
Another case where I passed an empty string believing that would be
sufficient to replace the error path...

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-03-23 11:05:55 +00:00
Thierry Reding 64ccc6698d configure: Keep passed-in CFLAGS for DRI tests
When the user passes extra CFLAGS and CPPFLAGS to the configure script,
they should be kept when performing subsequent checks with additional
flags. This is required to properly build in cross-compilation setups
where the user may pass in flags like --sysroot in order to pick up the
cross-built dependencies.

Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
2012-03-15 12:42:46 +00:00
Chris Wilson 85e48d2e5e legacy: Rename XF86DRI to HAVE_DRI1 to avoid conflicts with xorg-server.h
We use the XF86DRI as a user configurable option to control whether to
build DRI support for i810, but it is also used internally within xorg
and there exists a public define in xorg-server.h which overrides our
configure option. So rename our define to HAVE_DRI1 to avoid the
conflict.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=46590
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-02-24 21:40:44 +00:00
Chris Wilson 96db90e819 legacy: Delete unused XF86DRI_DEVEL #define
References: https://bugs.freedesktop.org/show_bug.cgi?id=46590
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-02-24 21:36:30 +00:00
Chris Wilson b870a3e5cd configure, NEWS: Bump version to 2.18.0 for release
Another quarter, a bit late as I was debugging a few regressions,
another release.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-02-24 11:27:01 +00:00
Gaetan Nadon f8ca50818c Revert "Update autotools configuration"
This reverts commit 9184af921b.

All X.Org modules must be able to be configured with autoconf 2.60.
In addition, version 2.63 has GPL licensing issues which prevents
some vendor to release software based on it.

The AM_SILENT_RULES are already handled by XORG_DEFAULT_OPTIONS.

All X.Org modules must be able to be configured with libtool 1.5.

AM_MAINTAINER_MODE default value is "enabled" already.

We use the same autogen script for all x.org modules.
There are proposals for changes which should be reviewed and eventually
applied to all modules together.

The lt*.m4 patterns are already included in the root .gitignore file.
This can be proposed as a change to all modules, but it invloves
changing the topvel .gitignore, the m4/.gitignore, the ACLOCAL_AMFLAGS
and the AC_CONFIG_MACRO_DIR together.

For more information on project wide configuration guidelines,
consult http://www.x.org/wiki/ModularDevelopersGuide
and http://www.x.org/wiki/NewModuleGuidelines.

Acked-by: Matthieu Herrb <matthieu.herrb@laas.fr>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2012-02-23 14:43:34 -05:00
Zhigang Gong 1e0d702c3a uxa/glamor/dri: Enable the pageflip support on glamor.
To support easy buffer exchange at glamor layer, glamor
added a new API glamor_egl_exchange_buffers() to exchange
two pixmaps' EGL image and fbos and textures without
recreating any of them. But this simple method's requirement
is that there are two pixmaps. A exceptional case is:
If we are using triple buffer when do page flipping, we
will have an extra back_buffer which doesn't have a pixmap
attached to it. Then each time we set that buffer to a
pixmap, we will have to call the create_egl_textured_pixmap
to create the corresponding EGL image and fbo and texture
for it. This is not efficient.

To fix this issue, this commit introduces a new back_pixmap
to intel structure to hold the back buffer and corresponding
glamor resources. Then we will just need to do the light
weight buffer exchanging at both DDX and glamor layer.

As the new back pixmap is similar to the screen pixmap
and need to be handled carefully when close screen. As the
glamor data structure is a per screen data, and will be
released at its close screen method. The glamor's close
screen method must cleanup the screen pixmap and back
pixmap's glamor resources. screen pixmap is easy to get,
but there is no good way to store the back pixmap.

So the glamor add a new API glamor_egl_create_textured_screen_ext
function to pass the back pixmap's pointer to glamor layer.

This commit make us depend on glamor commit: 4e58c4f.
And we increased the required glamor version from 0.3.0 to 0.3.1

Signed-off-by: Zhigang Gong <zhigang.gong@linux.intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-02-21 08:42:12 +00:00
Zhigang Gong 70092bfbc5 uxa/glamor: Refine CloseScreen and InitScreen process.
The previous version calls glamor_egl_close_screen and
glamor_egl_free_screen manually which is not align with
standard process. Now glamor change the way to follow
standard method:

glamor layer and glamor egl layer both have their internal
CloseScreens. The correct sequence is after the I830CloseScreen
is registered, then register glamor_egl_close_screen and
the last one is glamor_close_screen. So we move out the
intel_glamor_init from the intel_uxa_init to I830ScreenInit
and just after the registration of I830CloseScreen.

As the glamor interfaces changed, we need to check the
glamor version when load the glamor egl module to make
sure we are loading the right glamor module. If
failed, it will switch back to UXA path.

This depends upon glamor commit 1bc8bf tagged with version 0.3.0.

Signed-off-by: Zhigang Gong <zhigang.gong@linux.intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-02-08 09:07:42 +00:00
Chris Wilson ed1c1a7468 sna: Track large objects and limit prefer-gpu hint to small objects
As the GATT is irrespective of actual RAM size, we need to be careful
not to be too generous when allocating GPU bo and their shadows. So
first of all we limit default render targets to those small enough to
fit comfortably in RAM alongside others, and secondly we try to only
keep a single copy of large objects in memory.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-01-30 15:44:44 +00:00
Chris Wilson d53b1b2895 configure: Bump the required pixman version
UXA now also uses pixman_triangle_t in order for its fallback, so we
need to bump the required pixman version for UXA as well as SNA.

Reported-by: Fabio Pedretti <fabio.ped@libero.it>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=43946
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-19 15:39:06 +00:00
Chris Wilson 8ef5d8c195 sna: Map the upload buffer using an LLC bo
In order to avoid having to perform a copy of the cacheable buffer into
GPU space, we can map a bo as cacheable and write directly to its
contents. This is only a win on systems that can avoid the clflush, and
also we have to go to greater measures to avoid unnecessary
serialisation upon that CPU bo. Sadly, we do not yet go to enough length
to avoid negatively impacting ShmPutImage, but that does not appear to
be a artefact of stalling upon a CPU buffer.

Note, LLC is a SandyBridge feature enabled by default in kernel 3.1 and
later. In time, we should be able to expose similar support for
snoopable buffers for other generations.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-17 21:26:35 +00:00
Chris Wilson a8fe50ab65 uxa: Explicitly check for libdrm_intel in configure
And remove the excess dependencies from the common files.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-17 21:26:34 +00:00
Chris Wilson 5d5b2b8ee2 uxa: Cap the maximum number of VMA cached
Since we can not keep an unlimited number of vma cached due to the hard
per-process limits on the number of mappings and recreating mappings is
slow due to excruciatingly slow GTT pagefaults, we need to compromise
and keep a small MRU cache of inactive mmaps.

This uses the new API in libdrm-2.4.29 to specify the limit upon the VMA
cache maintained by libdrm.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-13 11:30:05 +00:00
Chris Wilson db7c9e8561 configure: Link the extra valgrind debugging to --enable-debug
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-13 10:05:25 +00:00
Chris Wilson 2674ef864c sna: Enable hooking up of valgrind during debugging
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-11 16:23:13 +00:00