Commit Graph

237 Commits

Author SHA1 Message Date
Xiang, Haihao 70f884772a Xv: New shaders for Xv on Ivybridge
Redefine some M4 macros, also update the check for
intel-gen4asm to support Ivybridge

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
2011-06-24 09:42:10 +08:00
Jian Zhao 8fb98e22a6 configure: Define required_xorg_xserver_version later so it can make successfully. 2011-06-22 11:07:08 +01:00
Chris Wilson 585667c2f9 sna: Bump the required xserver version to 1.10
SNA requires some pending bug fixes to the xserver so it makes little
sense to conditionalise the code and deliberately cause broken
behaviour.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=3843
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-18 15:53:51 +01:00
Chris Wilson bcad5b21fe sna: Unbreak configure after last commit
I went a step too far... I still need some define in order to switch
between uxa/sna at compile time.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-10 21:29:59 +01:00
Chris Wilson d0d65940b4 sna: Remove the ability to disable chipset specific code
This was a fun little, but pointless, exercise.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-10 19:51:12 +01:00
Chris Wilson 6f59d7d190 sna: Use --enable-debug=full to enable extremely verbose debugging
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-09 12:59:59 +01:00
Chad Versace a62db5b050 dri: Add support for DRI2BufferStencil and DRI2BufferHiz
And bump configure.ac to require dri2proto >= 2.6, because
DRI2BufferStencil and DRI2BufferHiz were introduced in that version.

When a client requests DRI2BufferHiz or DRI2BufferStencil,
I830DRI2CreateBuffer() now returns a Y-tiled buffer. The stencil buffer is
handled as a special case due its quirky pitch requirements.

CC: Eric Anholt <eric@anholt.net>
CC: Ian Romanick <idr@freedesktop.org>
CC: Kristian Høgsberg <krh@bitplanet.net
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Chad Versace <chad@chad-versace.us>
2011-06-08 10:08:58 -07:00
Chris Wilson bcef98af56 sna: Introduce a new acceleration model.
The premise is that switching between rings (i.e. the BLT and
RENDER rings) on SandyBridge imposes a large latency overhead whilst
rendering. The cause is that in order to switch rings, we need to split
the batch earlier than is desired and to add serialisation between the
rings. Both of which incur large overhead.

By switching to using a pure 3D blit engine (ok, not so pure as the BLT
engine still has uses for the core drawing model which can not be easily
represented without a combinatorial explosion of shaders) we can take
advantage of additional efficiencies, such as relative relocations, that
have been incorporated into recent hardware advances. However, even
older hardware performs better from avoiding the implicit context
switches and from the batching efficiency of the 3D pipeline...

But this is X, and PolyGlyphBlt still exists and remains in use. So for
the operations that are not worth accelerating in hardware, we introduce a
shadow buffer mechanism through out and reintroduce pixmap migration.
Doing this efficiently is the cornerstone of ensuring that we do exploit
the increased potential of recent hardware for running old applications and
environments (i.e. so that the latest and greatest chip is actually faster
than gen2!)

For the curious, sna is SandyBridge's New Acceleration. If you are
running older chipsets and welcome the performance increase offered by
this patch, then you may choose to call it Snazzy instead.

Speedups
========
 gen3           firefox-fishtank  1203584.56 (1203842.75 0.01%) -> 85561.71 (125146.44 14.87%): 14.07x speedup
 gen5             grads-heat-map  3385.42 (3489.73 1.44%) -> 350.29 (350.75 0.18%):  9.66x speedup
 gen3          xfce4-terminal-a1  4179.02 (4180.09 0.06%) -> 503.90 (531.88 4.48%):  8.29x speedup
 gen4             grads-heat-map  2458.66 (2826.34 4.64%) -> 348.82 (349.20 0.29%):  7.05x speedup
 gen3             grads-heat-map  1443.33 (1445.32 0.09%) -> 298.55 (298.76 0.05%):  4.83x speedup
 gen3             swfdec-youtube  3836.14 (3894.14 0.95%) -> 889.84 (979.56 5.99%):  4.31x speedup
 gen6             grads-heat-map  742.11 (744.44 0.15%) -> 172.51 (172.93 0.20%):  4.30x speedup
 gen3          firefox-talos-svg  71740.44 (72370.13 0.59%) -> 21959.29 (21995.09 0.68%):  3.27x speedup
 gen5                       gvim  8045.51 (8071.47 0.17%) -> 2589.38 (3246.78 10.74%):  3.11x speedup
 gen6                    poppler  3800.78 (3817.92 0.24%) -> 1227.36 (1230.12 0.30%):  3.10x speedup
 gen6         gnome-terminal-vim  9106.84 (9111.56 0.03%) -> 3459.49 (3478.52 0.25%):  2.63x speedup
 gen5              midori-zoomed  9564.53 (9586.58 0.17%) -> 3677.73 (3837.02 2.02%):  2.60x speedup
 gen5         gnome-terminal-vim  38167.25 (38215.82 0.08%) -> 14901.09 (14902.28 0.01%):  2.56x speedup
 gen5                    poppler  13575.66 (13605.04 0.16%) -> 5554.27 (5555.84 0.01%):  2.44x speedup
 gen5         swfdec-giant-steps  8941.61 (8988.72 0.52%) -> 3851.98 (3871.01 0.93%):  2.32x speedup
 gen5          xfce4-terminal-a1  18956.60 (18986.90 0.07%) -> 8362.75 (8365.70 0.01%):  2.27x speedup
 gen5           firefox-fishtank  88750.31 (88858.23 0.14%) -> 39164.57 (39835.54 0.80%):  2.27x speedup
 gen3              midori-zoomed  2392.13 (2397.82 0.14%) -> 1109.96 (1303.10 30.35%):  2.16x speedup
 gen6                       gvim  2510.34 (2513.34 0.20%) -> 1200.76 (1204.30 0.22%):  2.09x speedup
 gen5       firefox-planet-gnome  40478.16 (40565.68 0.09%) -> 19606.22 (19648.79 0.16%):  2.06x speedup
 gen5       gnome-system-monitor  10344.47 (10385.62 0.29%) -> 5136.69 (5256.85 1.15%):  2.01x speedup
 gen3                    poppler  2595.23 (2603.10 0.17%) -> 1297.56 (1302.42 0.61%):  2.00x speedup
 gen6          firefox-talos-gfx  7184.03 (7194.97 0.13%) -> 3806.31 (3811.66 0.06%):  1.89x speedup
 gen5                  evolution  8739.25 (8766.12 0.27%) -> 4817.54 (5050.96 1.54%):  1.81x speedup
 gen3                  evolution  1684.06 (1696.88 0.35%) -> 1004.99 (1008.55 0.85%):  1.68x speedup
 gen3         gnome-terminal-vim  4285.13 (4287.68 0.04%) -> 2715.97 (3202.17 13.52%):  1.58x speedup
 gen5             swfdec-youtube  5843.94 (5951.07 0.91%) -> 3810.86 (3826.04 1.32%):  1.53x speedup
 gen4                    poppler  7496.72 (7558.83 0.58%) -> 5125.08 (5247.65 1.44%):  1.46x speedup
 gen4         gnome-terminal-vim  21126.24 (21292.08 0.85%) -> 14590.25 (15066.33 1.80%):  1.45x speedup
 gen5          firefox-talos-svg  99873.69 (100300.95 0.37%) -> 70745.66 (70818.86 0.05%):  1.41x speedup
 gen4       firefox-planet-gnome  28205.10 (28304.45 0.27%) -> 19996.11 (20081.44 0.56%):  1.41x speedup
 gen5          firefox-talos-gfx  93070.85 (93194.72 0.10%) -> 67687.93 (70374.37 1.30%):  1.37x speedup
 gen4                  evolution  6696.25 (6854.14 0.85%) -> 4958.62 (5027.73 0.85%):  1.35x speedup
 gen3         swfdec-giant-steps  2538.03 (2539.30 0.04%) -> 1895.71 (2050.62 62.43%):  1.34x speedup
 gen4                       gvim  4356.18 (4422.78 0.70%) -> 3276.31 (3281.69 0.13%):  1.33x speedup
 gen6                  evolution  1242.13 (1245.44 0.72%) -> 953.76 (954.54 0.07%):  1.30x speedup
 gen6       firefox-planet-gnome  4554.23 (4560.69 0.08%) -> 3758.76 (3768.97 0.28%):  1.21x speedup
 gen3          firefox-talos-gfx  6264.13 (6284.65 0.30%) -> 5261.56 (5370.87 1.28%):  1.19x speedup
 gen4              midori-zoomed  4771.13 (4809.90 0.73%) -> 4037.03 (4118.93 0.85%):  1.18x speedup
 gen6         swfdec-giant-steps  1557.06 (1560.13 0.12%) -> 1336.34 (1341.29 0.32%):  1.17x speedup
 gen4          firefox-talos-gfx  80767.28 (80986.31 0.17%) -> 69629.08 (69721.71 0.06%):  1.16x speedup
 gen6              midori-zoomed  1463.70 (1463.76 0.08%) -> 1331.45 (1336.56 0.22%):  1.10x speedup
Slowdowns
=========
 gen6          xfce4-terminal-a1  2030.25 (2036.23 0.25%) -> 2144.60 (2240.31 4.29%):  1.06x slowdown
 gen4             swfdec-youtube  3580.00 (3597.23 3.92%) -> 3826.90 (3862.24 0.91%):  1.07x slowdown
 gen4          firefox-talos-svg  66112.25 (66256.51 0.11%) -> 71433.40 (71584.31 0.14%):  1.08x slowdown
 gen4       gnome-system-monitor  5691.60 (5724.03 0.56%) -> 6707.56 (6747.83 0.33%):  1.18x slowdown
 gen3                  ocitysmap  3494.05 (3502.44 0.20%) -> 4321.99 (4524.42 2.78%):  1.24x slowdown
 gen4                  ocitysmap  3628.42 (3641.66 9.37%) -> 5177.16 (5828.74 8.38%):  1.43x slowdown
 gen5                  ocitysmap  4027.77 (4068.11 0.80%) -> 5748.26 (6282.25 7.38%):  1.43x slowdown
 gen6                  ocitysmap  1401.61 (1402.24 0.40%) -> 2365.74 (2379.14 4.12%):  1.69x slowdown

[Note the performance regression for ocitysmap comes from that we now
attempt to support rendering to and (more importantly) from large
surfaces. By enabling such operations is the only way to one day be
faster than purely using the CPU, in the meantime we suffer regression
due to the increased migration and aperture thrashing. The other couple
of regressions will be eliminated with improved span and shader support,
now that the framework for such is in place.]

The performance increase for Cairo completely overlooks the other
critical aspects of the architecture:

World of Padman:
gen3 (800x600):   57.5 ->  96.2
gen4 (800x600):   47.8 ->  74.6
gen6 (1366x768): 100.4 -> 140.3 [F15]
                 144.3 -> 146.4 [drm-intel-next]

x11perf (gen6);
aa10text:     3.47 -> 14.3 Mglyphs/s [unthrottled!]
copywinwin10: 1.66 -> 1.99 Mops/s
copywinpix10: 2.28 -> 2.98 Mops/s

And we do not have a good measure for how much improvement the reworking
of the fallback paths give, except that xterm is now over 4x faster...

PS: This depends upon the Xorg patchset "Remove the cacheing of the last
scratch PixmapRec" for correct invalidations of scratch Pixmaps (used by
the dix to implement SHM operations, used by chromium and gtk+ pixbufs.

PPS: ./configure --enable-sna

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-04 09:19:46 +01:00
Diego Elio Pettenò 340cfb7f52 build: do not use AC_CHECK_FILE to find the header files.
Using AC_CHECK_FILE will cause cross-builds to fail picking the right file;
instead use compile/preprocessor checks properly, and check for
xf86driproto earlier.

Reviewed-by: Rémi Cardona <remi@gentoo.org>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-05-30 09:21:47 +01:00
Chris Wilson 0e425b30e1 configure,NEWS: 2.15.0 release
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-04-14 10:16:40 +01:00
Chris Wilson 4fa35dd5e1 NEWS: version bump for 2.14.903 snapshot
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-04-11 10:44:55 +01:00
Chris Wilson a2c8442fcb configure: version bump for 2.14.902 snapshot
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-03-29 11:38:59 +01:00
Chris Wilson 34f9a3335f configure: Bump for 2.14.901 snapshot
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-03-02 17:46:19 +00:00
Javier Jardón 9184af921b Update autotools configuration
Use new libtool syntax and silent-rules to silent
the build output a bit (linux-like)
2011-02-09 11:46:19 +00:00
Chris Wilson 8bd6a7149f Enable conditional compilation of asserts
With '--disable-debug' we define NDEBUG and so disable the asserts, that
is we continue to default to compiling asserts into the code.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-01-29 12:06:59 +00:00
Chris Wilson 40a7bde914 configure: version bump for 2.14.0 2011-01-07 23:46:07 +00:00
Chris Wilson a7c7a9108f configure: version bump for 2.13.903 snapshot
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-01-04 10:53:30 +00:00
U. Artie Eoff 90538ecfff configure: suggest upstream to find macros in case they're missing.
added upstream suggestion to error message in case xorg macros or
xserver macros are missing. removed package manager references in
suggestion since these are 'user' and/or 'distribution' preferences.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-01-04 10:44:46 +00:00
Chris Wilson e8db77e019 Revert "Suggest where to find xorg-macros in case it's missing"
I failed my reading comprehension and didn't spot that the help strings
pointed to two separate downstream packages.

Thanks to Carl Worth for pointing out my mistake.

This reverts commit ebb7aca667.
2010-12-21 23:03:21 +00:00
Chris Wilson ebb7aca667 Suggest where to find xorg-macros in case it's missing
[Modified version of U. Artie Eoff's commit to remove the duplicated
string. The paraphrased commit message is repeated below for clarity.]

xorg-macros is often package under an unusual name, so provide some
clues as to what name to try on the user's distribution. Installing
build-deps would be just too easy...

Also include a check for the existence of the XORG_DRIVER_CHECK_EXT
macro, otherwise configure might continue in spite of the missing macro
and cause obtuse syntax errors.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-12-21 22:35:49 +00:00
U. Artie Eoff 90576f95f3 configure: updated m4 macro check in configure.ac
Added m4 check for XORG_DRIVER_CHECK_EXT macro definition.  Updated m4 fatal messages to give better hint on how to resolve error when xorg macros are missing.  Previously, configure would continue in spite of the missing macros and the build would fail for syntax errors.
2010-12-21 14:19:13 -08:00
Chris Wilson 556331a221 configure: version bump for 2.13.902
This is actually the first release candidate for 2.14.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-12-10 15:28:37 +00:00
Chris Wilson 8df6f0a608 configure: Bump required libdrm to 2.4.23
To pull in the required headers for BLT and relaxed fencing support.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-12-10 12:26:16 +00:00
Carl Worth 861ee17ae6 Update version number to 2.13.901
In preparation for a snapshot.
2010-11-05 12:55:02 -07:00
Carl Worth 6b66b45b1f Merge commit '2.13.0'
This changes the version number and adds the 2.13.0 release notes,
(which were otherwise missing from the master branch).
2010-11-05 12:52:02 -07:00
Xiang, Haihao 9e4dd27aa8 Xv: fragments for xv on Sandybridge.
Need to update intel-gen4asm to build these fragments

Signed--off-by: Xiang, Haihao <haihao.xiang@intel.com>
2010-11-01 08:46:14 +08:00
Adam Jackson b066ddda31 intel: Listen for hotplug uevents (V3)
This connects the kernel uevent indicating monitor hotplugging to the
RandR notification events so that X applications can be notified
automatically when monitors are connected or disconnected.

This also adds a configuration option to disable hotplug events.

V2: missed a #ifdef HAVE_UDEV around some udev-specific declarations

V3: document Hotplug option in man page

Signed-off-by: Keith Packard <keithp@keithp.com>
2010-10-22 08:35:29 -07:00
Carl Worth 9f232ad67c Increment version to 2.13.0
For the new, major release.
2010-09-30 08:45:49 -07:00
Carl Worth d4c013cb9d Increment version to 2.12.902
Just before making the 2.12.902 (2.13-rc2) snapshot.
2010-09-28 20:49:52 -07:00
Carl Worth 5704955538 Fix to depend on the (just-released) libdrm >= 2.4.22
With libdrm < 2.4.22, the compilation of xf86-video-intel would fail
due to an undefined DRM_MODE_CONNECTOR_eDP. We now ensure that a
sufficiently new libdrm is available before compiling.
2010-09-28 20:44:40 -07:00
Carl Worth 4ba27e1f21 Bump version to 2.12.901
Just prior to pushing out this new snapshot.
2010-09-21 17:43:01 -07:00
Kristian Høgsberg 938ef4eaec legacy: Remove long gone use of GlxSetVisualConfigs()
This removes the last dependeny on anything GL/GLX in the driver.
2010-07-28 07:58:02 -04:00
Jesse Barnes 34b9d45be6 Revert "configure.ac: add xi and gl requirements"
This reverts commit d580fa82a1.

Oops, these should be server or other package dependencies, we don't
actually need them for xf86-video-intel.
2010-07-27 09:10:04 -07:00
Jesse Barnes d580fa82a1 configure.ac: add xi and gl requirements
Could probably be earlier versions, but having these here makes packaging
easier.
2010-07-26 16:44:19 -07:00
Gaetan Nadon 68df6b2790 simplify Makefile as per-target compilation flags are not needed
Per-target compilation flags (libIntelXvMC_la_CFLAGS) are required
when multiple targets which require different compiler flags,
are build in the same makefile.

Automake issues a command with -c and -o flags which not all compilers
support. The object fles are prefixed with libIntelXvMC_la.
The macro AM_PROG_CC_C_O must then be used to provide this feature
on compilers that do not have it. If not, a warning is issued at make time.

This macros checks for compiler support and if missing, uses a "compile"
script it generates in the package root directory.

Currently the driver uses per-target flags but the macro is missing.
Rather than adding the macro, this patch stops using per-target flags
by using the AM_CFLAGS variable for all targets in the makefile, as
there is only one.

Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2010-07-24 09:21:02 -04:00
Gaetan Nadon 0ae30b6d1f config: add comments for main statements 2010-07-22 15:22:11 -04:00
Gaetan Nadon b12b221967 config: replace deprecated use of AC_OUTPUT with AC_CONFIG_FILES
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2010-07-22 15:22:11 -04:00
Gaetan Nadon 8b2d65da41 config: replace deprecated AC_HELP_STRING with AS_HELP_STRING
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2010-07-22 15:22:11 -04:00
Gaetan Nadon 3feeef5294 config: replace deprecated AM_CONFIG_HEADER with AC_CONFIG_HEADERS
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2010-07-22 15:22:11 -04:00
Gaetan Nadon 74a828e286 config: complete AC_INIT m4 quoting
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2010-07-22 15:22:11 -04:00
Gaetan Nadon 33ec66d700 config: remove unrequired AC_SUBST([DRI_CFLAGS])
This macro is called by PKG_CHECK_MODULES

Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2010-07-22 15:22:11 -04:00
Gaetan Nadon b20b8ac937 config: remove unrequired AC_HEADER_STDC
Autoconf says:
"This macro is obsolescent, as current systems have conforming
header files. New programs need not use this macro".

Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2010-07-22 15:22:11 -04:00
Gaetan Nadon 9fe5169fff config: remove AC_PROG_CC as it overrides AC_PROG_C_C99
XORG_STRICT_OPTION from XORG_DEFAULT_OPTIONS calls
AC_PROG_C_C99. This sets gcc with -std=gnu99.
If AC_PROG_CC macro is called afterwards, it resets CC to gcc.

Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2010-07-22 15:22:11 -04:00
Gaetan Nadon e6b8811e5b config: update AC_PREREQ statement to 2.60
Unrelated to the previous patches, the new value simply reflects
the reality that the minimum level for autoconf to configure
all x.org modules is 2.60 dated June 2006.

ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.60.tar.gz

Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2010-07-22 15:22:10 -04:00
Gaetan Nadon 2d85efaa36 config: upgrade to util-macros 1.8 for additional man page support
Use MAN_SUBST now supplied in XORG_MANPAGE_SECTIONS
The value of MAN_SUBST is the same for all X.Org packages.
2010-07-22 15:22:10 -04:00
Chris Wilson 28c0ca676c Remove unused inclusion of <sys/mman.h>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-06-25 13:40:22 +01:00
Chris Wilson 2306e675c4 configure: Remove check for unused function, mprotect
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-06-25 13:32:02 +01:00
Chris Wilson 6695296ca2 configure: Remove unused checks for xext
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-06-25 13:31:11 +01:00
Chris Wilson 797d173a9a i810: Move into a legacy directory.
The driver is still built but is no longer under active development so
move it and supporting files to a new directory.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-06-25 13:18:01 +01:00
Chris Wilson cd61531a78 Remove unused configure option: --enable-video-debug
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-06-25 12:44:25 +01:00