[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xserver-xorg-video-intel: Changes to 'upstream-unstable'



 .gitignore                                                  |   83 
 COPYING                                                     |  169 
 Makefile.am                                                 |   14 
 NEWS                                                        |  356 
 README                                                      |    2 
 configure.ac                                                |  161 
 m4/dolt.m4                                                  |  178 
 m4/shave.m4                                                 |   73 
 man/Makefile.am                                             |   41 
 man/intel.man                                               |  257 
 shave-libtool.in                                            |   69 
 shave.in                                                    |   76 
 src/.gitignore                                              |    6 
 src/Makefile.am                                             |  102 
 src/bios_reader/.gitignore                                  |    3 
 src/bios_reader/Makefile.am                                 |   16 
 src/bios_reader/bios_dumper.c                               |  104 
 src/bios_reader/bios_reader.c                               |  565 -
 src/bios_reader/swf_dumper.c                                |  110 
 src/ch7017/Makefile.am                                      |   16 
 src/ch7017/ch7017.c                                         |  330 
 src/ch7017/ch7017_module.c                                  |   36 
 src/ch7017/ch7017_reg.h                                     |  162 
 src/ch7xxx/Makefile.am                                      |   17 
 src/ch7xxx/ch7xxx.c                                         |  323 
 src/ch7xxx/ch7xxx.h                                         |   31 
 src/ch7xxx/ch7xxx_module.c                                  |   35 
 src/ch7xxx/ch7xxx_reg.h                                     |   80 
 src/common.h                                                |  240 
 src/drmmode_display.c                                       |  613 -
 src/i2c_vid.h                                               |  132 
 src/i810.h                                                  |  341 
 src/i810_accel.c                                            |  617 -
 src/i810_common.h                                           |  191 
 src/i810_cursor.c                                           |  266 
 src/i810_dga.c                                              |  282 
 src/i810_dri.c                                              | 1541 ----
 src/i810_dri.h                                              |  131 
 src/i810_driver.c                                           | 2430 ------
 src/i810_hwmc.c                                             |  419 -
 src/i810_io.c                                               |  133 
 src/i810_memory.c                                           |  428 -
 src/i810_reg.h                                              | 3443 ---------
 src/i810_ring.h                                             |   90 
 src/i810_video.c                                            | 1424 ---
 src/i810_wmark.c                                            |  313 
 src/i830.h                                                  |  985 --
 src/i830_3d.c                                               |  403 -
 src/i830_accel.c                                            |  237 
 src/i830_batchbuffer.c                                      |  241 
 src/i830_batchbuffer.h                                      |  167 
 src/i830_bios.c                                             |  401 -
 src/i830_bios.h                                             |  632 -
 src/i830_common.h                                           |  241 
 src/i830_crt.c                                              |  557 -
 src/i830_cursor.c                                           |  307 
 src/i830_debug.c                                            | 2540 ------
 src/i830_debug.h                                            |   34 
 src/i830_display.c                                          | 2367 ------
 src/i830_display.h                                          |   43 
 src/i830_dri.c                                              |  443 -
 src/i830_dri.h                                              |   61 
 src/i830_driver.c                                           | 3222 --------
 src/i830_dvo.c                                              |  521 -
 src/i830_hdmi.c                                             |  368 
 src/i830_hwmc.c                                             |  177 
 src/i830_hwmc.h                                             |  114 
 src/i830_i2c.c                                              |  392 -
 src/i830_io.c                                               |   35 
 src/i830_lvds.c                                             | 1627 ----
 src/i830_memory.c                                           | 1721 ----
 src/i830_modes.c                                            |   69 
 src/i830_quirks.c                                           |  430 -
 src/i830_reg.h                                              |  100 
 src/i830_render.c                                           | 1302 +--
 src/i830_ring.h                                             |   93 
 src/i830_sdvo.c                                             | 2440 ------
 src/i830_sdvo.h                                             |   29 
 src/i830_sdvo_regs.h                                        |  726 -
 src/i830_tv.c                                               | 2042 -----
 src/i830_uxa.c                                              |  766 --
 src/i830_video.c                                            | 2945 -------
 src/i830_video.h                                            |   93 
 src/i915_3d.c                                               |  147 
 src/i915_3d.h                                               |  864 +-
 src/i915_hwmc.c                                             |  884 --
 src/i915_hwmc.h                                             |   61 
 src/i915_reg.h                                              |  185 
 src/i915_render.c                                           | 1709 ++--
 src/i915_video.c                                            |  819 +-
 src/i965_hwmc.c                                             |  292 
 src/i965_hwmc.h                                             |   28 
 src/i965_reg.h                                              |  241 
 src/i965_render.c                                           | 3046 ++++----
 src/i965_video.c                                            | 1948 ++---
 src/intel.h                                                 |  662 +
 src/intel_batchbuffer.c                                     |  280 
 src/intel_batchbuffer.h                                     |  210 
 src/intel_dri.c                                             | 1083 ++
 src/intel_driver.c                                          | 1266 +++
 src/intel_driver.h                                          |  262 
 src/intel_hwmc.c                                            |  260 
 src/intel_hwmc.h                                            |   75 
 src/intel_memory.c                                          |  299 
 src/intel_module.c                                          |  475 +
 src/intel_transform.c                                       |   92 
 src/intel_transform.h                                       |   14 
 src/intel_uxa.c                                             | 1133 +++
 src/intel_video.c                                           | 1769 ++++
 src/intel_video.h                                           |   87 
 src/ivch/Makefile.am                                        |   16 
 src/ivch/ivch.c                                             |  373 
 src/ivch/ivch_module.c                                      |   64 
 src/ivch/ivch_reg.h                                         |  291 
 src/legacy/Makefile.am                                      |   18 
 src/legacy/README                                           |    6 
 src/legacy/i810/Makefile.am                                 |   35 
 src/legacy/i810/i810.h                                      |  335 
 src/legacy/i810/i810_accel.c                                |  617 +
 src/legacy/i810/i810_common.h                               |  323 
 src/legacy/i810/i810_cursor.c                               |  266 
 src/legacy/i810/i810_dga.c                                  |  258 
 src/legacy/i810/i810_dri.c                                  | 1544 ++++
 src/legacy/i810/i810_dri.h                                  |  131 
 src/legacy/i810/i810_driver.c                               | 2117 +++++
 src/legacy/i810/i810_hwmc.c                                 |  419 +
 src/legacy/i810/i810_io.c                                   |  133 
 src/legacy/i810/i810_memory.c                               |  428 +
 src/legacy/i810/i810_reg.h                                  | 3194 ++++++++
 src/legacy/i810/i810_ring.h                                 |   90 
 src/legacy/i810/i810_video.c                                | 1423 +++
 src/legacy/i810/i810_wmark.c                                |  313 
 src/legacy/i810/xvmc/I810XvMC.c                             | 4509 ++++++++++++
 src/legacy/i810/xvmc/I810XvMC.h                             |  366 
 src/legacy/i810/xvmc/Makefile.am                            |   11 
 src/legacy/legacy.h                                         |    7 
 src/legacy/ums/Makefile.am                                  |  161 
 src/legacy/ums/brw_defines.h                                |  874 ++
 src/legacy/ums/brw_structs.h                                | 1469 +++
 src/legacy/ums/ch7017/Makefile.am                           |   10 
 src/legacy/ums/ch7017/ch7017.c                              |  324 
 src/legacy/ums/ch7017/ch7017_module.c                       |   36 
 src/legacy/ums/ch7017/ch7017_reg.h                          |  162 
 src/legacy/ums/ch7xxx/Makefile.am                           |   11 
 src/legacy/ums/ch7xxx/ch7xxx.c                              |  317 
 src/legacy/ums/ch7xxx/ch7xxx.h                              |   31 
 src/legacy/ums/ch7xxx/ch7xxx_module.c                       |   35 
 src/legacy/ums/ch7xxx/ch7xxx_reg.h                          |   80 
 src/legacy/ums/i965_hwmc.h                                  |   25 
 src/legacy/ums/ivch/Makefile.am                             |   10 
 src/legacy/ums/ivch/ivch.c                                  |  368 
 src/legacy/ums/ivch/ivch_module.c                           |   64 
 src/legacy/ums/ivch/ivch_reg.h                              |  291 
 src/legacy/ums/render_programs/exa_sf.g4a                   |  107 
 src/legacy/ums/render_programs/exa_sf.g4b                   |   15 
 src/legacy/ums/render_programs/exa_sf_mask.g4a              |  107 
 src/legacy/ums/render_programs/exa_sf_mask.g4b              |   15 
 src/legacy/ums/render_programs/exa_wm.g4i                   |  156 
 src/legacy/ums/render_programs/exa_wm_affine.g4i            |   44 
 src/legacy/ums/render_programs/exa_wm_ca.g4a                |   38 
 src/legacy/ums/render_programs/exa_wm_ca.g4b                |    4 
 src/legacy/ums/render_programs/exa_wm_ca_srcalpha.g4a       |   37 
 src/legacy/ums/render_programs/exa_wm_ca_srcalpha.g4b       |    4 
 src/legacy/ums/render_programs/exa_wm_mask_affine.g4a       |   41 
 src/legacy/ums/render_programs/exa_wm_mask_affine.g4b       |    8 
 src/legacy/ums/render_programs/exa_wm_mask_projective.g4a   |   53 
 src/legacy/ums/render_programs/exa_wm_mask_projective.g4b   |   16 
 src/legacy/ums/render_programs/exa_wm_mask_sample_a.g4a     |   48 
 src/legacy/ums/render_programs/exa_wm_mask_sample_a.g4b     |    2 
 src/legacy/ums/render_programs/exa_wm_mask_sample_argb.g4a  |   48 
 src/legacy/ums/render_programs/exa_wm_mask_sample_argb.g4b  |    2 
 src/legacy/ums/render_programs/exa_wm_noca.g4a              |   38 
 src/legacy/ums/render_programs/exa_wm_noca.g4b              |    4 
 src/legacy/ums/render_programs/exa_wm_nomask.g4a            |  143 
 src/legacy/ums/render_programs/exa_wm_projective.g4i        |   51 
 src/legacy/ums/render_programs/exa_wm_src_affine.g4a        |   45 
 src/legacy/ums/render_programs/exa_wm_src_affine.g4b        |    8 
 src/legacy/ums/render_programs/exa_wm_src_projective.g4a    |   49 
 src/legacy/ums/render_programs/exa_wm_src_projective.g4b    |   16 
 src/legacy/ums/render_programs/exa_wm_src_sample_a.g4a      |   47 
 src/legacy/ums/render_programs/exa_wm_src_sample_a.g4b      |    2 
 src/legacy/ums/render_programs/exa_wm_src_sample_argb.g4a   |   47 
 src/legacy/ums/render_programs/exa_wm_src_sample_argb.g4b   |    2 
 src/legacy/ums/render_programs/exa_wm_src_sample_planar.g4a |   65 
 src/legacy/ums/render_programs/exa_wm_src_sample_planar.g4b |    4 
 src/legacy/ums/render_programs/exa_wm_write.g4a             |   74 
 src/legacy/ums/render_programs/exa_wm_write.g4b             |   18 
 src/legacy/ums/render_programs/exa_wm_xy.g4a                |   52 
 src/legacy/ums/render_programs/exa_wm_xy.g4b                |    4 
 src/legacy/ums/render_programs/exa_wm_yuv_rgb.g4a           |   98 
 src/legacy/ums/render_programs/exa_wm_yuv_rgb.g4b           |   12 
 src/legacy/ums/render_programs/packed_yuv_sf.g4a            |   45 
 src/legacy/ums/render_programs/packed_yuv_sf.g4b            |   17 
 src/legacy/ums/render_programs/packed_yuv_wm.g4a            |  221 
 src/legacy/ums/render_programs/packed_yuv_wm.g4b            |   79 
 src/legacy/ums/sil164/Makefile.am                           |   11 
 src/legacy/ums/sil164/sil164.c                              |  264 
 src/legacy/ums/sil164/sil164.h                              |   31 
 src/legacy/ums/sil164/sil164_module.c                       |   38 
 src/legacy/ums/sil164/sil164_reg.h                          |   60 
 src/legacy/ums/tfp410/Makefile.am                           |   11 
 src/legacy/ums/tfp410/tfp410.c                              |  286 
 src/legacy/ums/tfp410/tfp410.h                              |   33 
 src/legacy/ums/tfp410/tfp410_module.c                       |   38 
 src/legacy/ums/tfp410/tfp410_reg.h                          |   91 
 src/legacy/ums/ums.h                                        | 1021 ++
 src/legacy/ums/ums_accel.c                                  |  284 
 src/legacy/ums/ums_batchbuffer.c                            |  204 
 src/legacy/ums/ums_batchbuffer.h                            |  160 
 src/legacy/ums/ums_bios.c                                   |  406 +
 src/legacy/ums/ums_bios.h                                   |  632 +
 src/legacy/ums/ums_common.h                                 |  190 
 src/legacy/ums/ums_crt.c                                    |  557 +
 src/legacy/ums/ums_cursor.c                                 |  321 
 src/legacy/ums/ums_debug.c                                  | 1903 +++++
 src/legacy/ums/ums_debug.h                                  |   33 
 src/legacy/ums/ums_display.c                                | 2428 ++++++
 src/legacy/ums/ums_display.h                                |   42 
 src/legacy/ums/ums_dri.c                                    | 1441 +++
 src/legacy/ums/ums_dri.h                                    |   63 
 src/legacy/ums/ums_driver.c                                 | 3096 ++++++++
 src/legacy/ums/ums_drmmode_display.c                        | 1364 +++
 src/legacy/ums/ums_dvo.c                                    |  521 +
 src/legacy/ums/ums_exa.c                                    |  468 +
 src/legacy/ums/ums_hdmi.c                                   |  368 
 src/legacy/ums/ums_hwmc.c                                   |  159 
 src/legacy/ums/ums_hwmc.h                                   |  113 
 src/legacy/ums/ums_i2c.c                                    |  392 +
 src/legacy/ums/ums_i2c_vid.h                                |  132 
 src/legacy/ums/ums_i810_reg.h                               | 3444 +++++++++
 src/legacy/ums/ums_i830_3d.c                                |  251 
 src/legacy/ums/ums_i830_common.h                            |  242 
 src/legacy/ums/ums_i830_reg.h                               |  747 +
 src/legacy/ums/ums_i830_render.c                            |  807 ++
 src/legacy/ums/ums_i915_3d.c                                |  111 
 src/legacy/ums/ums_i915_3d.h                                |  435 +
 src/legacy/ums/ums_i915_hwmc.c                              |  890 ++
 src/legacy/ums/ums_i915_reg.h                               |  873 ++
 src/legacy/ums/ums_i915_render.c                            |  722 +
 src/legacy/ums/ums_i915_video.c                             |  417 +
 src/legacy/ums/ums_i965_hwmc.c                              |  320 
 src/legacy/ums/ums_i965_render.c                            | 1725 ++++
 src/legacy/ums/ums_i965_video.c                             | 1180 +++
 src/legacy/ums/ums_io.c                                     |  131 
 src/legacy/ums/ums_lvds.c                                   | 1513 ++++
 src/legacy/ums/ums_memory.c                                 | 1717 ++++
 src/legacy/ums/ums_modes.c                                  |   69 
 src/legacy/ums/ums_quirks.c                                 |  424 +
 src/legacy/ums/ums_ring.h                                   |   93 
 src/legacy/ums/ums_sdvo.c                                   | 2443 ++++++
 src/legacy/ums/ums_sdvo.h                                   |   29 
 src/legacy/ums/ums_sdvo_regs.h                              |  726 +
 src/legacy/ums/ums_tv.c                                     | 2042 +++++
 src/legacy/ums/ums_video.c                                  | 2970 +++++++
 src/legacy/ums/ums_video.h                                  |   93 
 src/legacy/ums/ums_xaa.c                                    |  230 
 src/reg_dumper/.gitignore                                   |    7 
 src/reg_dumper/Makefile.am                                  |   62 
 src/reg_dumper/audio.c                                      |  454 -
 src/reg_dumper/gtt.c                                        |  118 
 src/reg_dumper/hotplug.c                                    |  148 
 src/reg_dumper/idle.c                                       |  227 
 src/reg_dumper/lid.c                                        |  146 
 src/reg_dumper/main.c                                       |  107 
 src/reg_dumper/reg_dumper.h                                 |   87 
 src/reg_dumper/statuspage.c                                 |   81 
 src/reg_dumper/stepping.c                                   |  137 
 src/reg_dumper/util.c                                       |   83 
 src/reg_dumper/xprintf.c                                    |   60 
 src/sil164/Makefile.am                                      |   17 
 src/sil164/sil164.c                                         |  270 
 src/sil164/sil164.h                                         |   31 
 src/sil164/sil164_module.c                                  |   38 
 src/sil164/sil164_reg.h                                     |   60 
 src/tfp410/Makefile.am                                      |   17 
 src/tfp410/tfp410.c                                         |  292 
 src/tfp410/tfp410.h                                         |   33 
 src/tfp410/tfp410_module.c                                  |   38 
 src/tfp410/tfp410_reg.h                                     |   91 
 src/xvmc/.gitignore                                         |    6 
 src/xvmc/I810XvMC.c                                         | 4509 ------------
 src/xvmc/I810XvMC.h                                         |  366 
 src/xvmc/Makefile.am                                        |   16 
 src/xvmc/dri2.c                                             |  301 
 src/xvmc/dri2.h                                             |   70 
 src/xvmc/i915_program.h                                     |  146 
 src/xvmc/i915_structs.h                                     | 1406 +--
 src/xvmc/i915_xvmc.c                                        | 3460 ++-------
 src/xvmc/i915_xvmc.h                                        |   66 
 src/xvmc/i965_xvmc.c                                        | 1185 +--
 src/xvmc/i965_xvmc.h                                        |    2 
 src/xvmc/intel_batchbuffer.c                                |  174 
 src/xvmc/intel_batchbuffer.h                                |    5 
 src/xvmc/intel_xvmc.c                                       | 1306 +--
 src/xvmc/intel_xvmc.h                                       |  271 
 src/xvmc/intel_xvmc_dump.c                                  |  211 
 src/xvmc/shader/mc/Makefile.am                              |    1 
 src/xvmc/shader/vld/Makefile.am                             |    6 
 src/xvmc/xvmc_vld.c                                         | 1719 ++--
 src/xvmc/xvmc_vld.h                                         |    1 
 uxa/Makefile.am                                             |    5 
 uxa/uxa-accel.c                                             | 1977 ++---
 uxa/uxa-glyphs.c                                            | 1752 ++--
 uxa/uxa-priv.h                                              |  462 -
 uxa/uxa-render.c                                            | 2718 ++++---
 uxa/uxa-unaccel.c                                           |  572 -
 uxa/uxa.c                                                   |  674 -
 uxa/uxa.h                                                   |  939 +-
 308 files changed, 89007 insertions(+), 66680 deletions(-)

New commits:
commit 352016d2da69bfc998a642132ab722940899ad2e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Jul 24 23:08:20 2010 +0100

    legacy/ums: Don't use uninitialised methods for synchronisation
    
    Fixes https://bugs.freedesktop.org/show_bug.cgi?id=29153

diff --git a/src/legacy/ums/ums_accel.c b/src/legacy/ums/ums_accel.c
index 821593e..b663312 100644
--- a/src/legacy/ums/ums_accel.c
+++ b/src/legacy/ums/ums_accel.c
@@ -158,35 +158,7 @@ ums_I830Sync(ScrnInfoPtr pScrn)
    ums_I830EmitFlush(pScrn);
 
    ums_batch_flush(pScrn, TRUE);
-
-   if (pI830->directRenderingType > DRI_NONE) {
-       struct drm_i915_irq_emit emit;
-       struct drm_i915_irq_wait wait;
-       int ret;
-
-       /* Most of the uses of I830Sync while using GEM should actually be
-	* using set_domain on a specific buffer.  We're not there yet, so fake
-	* it up using irq_emit/wait.  It's still better than spinning on
-	* register reads for idle.
-	*/
-       emit.irq_seq = &wait.irq_seq;
-       ret = drmCommandWriteRead(pI830->drmSubFD, DRM_I830_IRQ_EMIT, &emit,
-			    sizeof(emit));
-       if (ret != 0)
-	   FatalError("Failure to emit IRQ: %s\n", strerror(-ret));
-
-       do {
-	   ret = drmCommandWrite(pI830->drmSubFD, DRM_I830_IRQ_WAIT, &wait,
-				 sizeof(wait));
-       } while (ret == -EINTR);
-
-       if (ret != 0)
-	   FatalError("Failure to wait for IRQ: %s\n", strerror(-ret));
-
-       ums_refresh_ring(pScrn);
-   } else {
-       ums_wait_ring_idle(pScrn);
-   }
+   ums_wait_ring_idle(pScrn);
 
    pI830->nextColorExpandBuf = 0;
 }

commit e90446967b34013cf74bc9c6aa502261dddf1933
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jul 15 11:31:32 2010 +0100

    legacy/ums: #include <drm.h>

diff --git a/src/legacy/ums/ums.h b/src/legacy/ums/ums.h
index f831da3..76c0af8 100644
--- a/src/legacy/ums/ums.h
+++ b/src/legacy/ums/ums.h
@@ -66,7 +66,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include "GL/glxint.h"
 #include "ums_dri.h"
 #endif
-#include <drm/drm.h>
+#include <drm.h>
 #include "intel_bufmgr.h"
 #include "i915_drm.h"
 

commit 7865828182d094b0e9b3706dc4a6ea17e3b09ba7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jul 13 17:50:59 2010 +0100

    legacy/ums/dri: Enable framebuffer mapping for dri

diff --git a/src/legacy/ums/ums_dri.c b/src/legacy/ums/ums_dri.c
index 2603883..30de483 100644
--- a/src/legacy/ums/ums_dri.c
+++ b/src/legacy/ums/ums_dri.c
@@ -67,6 +67,13 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #include "ums.h"
 
+#if (DRIINFO_MAJOR_VERSION > 5 || \
+     (DRIINFO_MAJOR_VERSION == 5 && DRIINFO_MINOR_VERSION >= 4))
+#define DRI_DRIVER_FRAMEBUFFER_MAP 1
+#else
+#define DRI_DRIVER_FRAMEBUFFER_MAP 0
+#endif
+
 extern void GlxSetVisualConfigs(int nconfigs,
 				__GLXvisualConfig * configs,
 				void **configprivs);

commit 381a69364cd74e66554454567efb8b71ceb50819
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jul 13 08:57:13 2010 +0100

    legacy/ums/i965: we do not handle SourcePictures
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

diff --git a/src/legacy/ums/ums_i965_render.c b/src/legacy/ums/ums_i965_render.c
index caa5f07..b7e8322 100644
--- a/src/legacy/ums/ums_i965_render.c
+++ b/src/legacy/ums/ums_i965_render.c
@@ -186,11 +186,16 @@ static Bool i965_get_dest_format(PicturePtr pDstPicture, uint32_t *dst_format)
 
 static Bool i965_check_composite_texture(PicturePtr pPict, int unit)
 {
-    ScrnInfoPtr pScrn = xf86Screens[pPict->pDrawable->pScreen->myNum];
-    int w = pPict->pDrawable->width;
-    int h = pPict->pDrawable->height;
-    int i;
+    ScrnInfoPtr pScrn;
+    int w, h, i;
+
+    if (!pPict->pDrawable)
+	    return FALSE;
 
+    pScrn = xf86Screens[pPict->pDrawable->pScreen->myNum];
+
+    w = pPict->pDrawable->width;
+    h = pPict->pDrawable->height;
     if ((w > 8192) || (h > 8192))
         I830FALLBACK("Picture w/h too large (%dx%d)\n", w, h);
 
@@ -240,7 +245,7 @@ ums_i965_check_composite(int op, PicturePtr pSrcPicture, PicturePtr pMaskPicture
 	    I830FALLBACK("Component alpha not supported with source "
 			 "alpha and source value blending.\n");
 	}
-    } 
+    }
 
     if (!i965_check_composite_texture(pSrcPicture, 0))
         I830FALLBACK("Check Src picture texture\n");

commit cc6467a4fce031143a5be5500c25d8210bc4d29e
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date:   Tue Jul 13 17:36:25 2010 +1000

    legacy/ums: Fix build with DRI disabled

diff --git a/configure.ac b/configure.ac
index a9c82c7..2bdf83b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -119,9 +119,12 @@ if test "x$DRI" != xno; then
   CFLAGS="$save_CFLAGS $DEBUGFLAGS"
 fi
 
+dnl This could be removed by open-coding DRICreatePCIBusID for
+dnl intel_kernel_mode_enabled
+PKG_CHECK_MODULES(DRI, [xf86driproto glproto])
+
 AM_CONDITIONAL(DRI, test x$DRI = xyes)
 if test "$DRI" = yes; then
-        PKG_CHECK_MODULES(DRI, [xf86driproto glproto])
         AC_DEFINE(BUILD_DRI,1,[Enable DRI driver support])
         AC_DEFINE(BUILD_DRI_DEVEL,1,[Enable developmental DRI driver support])
 fi
diff --git a/src/legacy/ums/ums.h b/src/legacy/ums/ums.h
index 9cbabe4..f831da3 100644
--- a/src/legacy/ums/ums.h
+++ b/src/legacy/ums/ums.h
@@ -66,6 +66,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include "GL/glxint.h"
 #include "ums_dri.h"
 #endif
+#include <drm/drm.h>
 #include "intel_bufmgr.h"
 #include "i915_drm.h"
 
diff --git a/src/legacy/ums/ums_driver.c b/src/legacy/ums/ums_driver.c
index 0bb6e21..6c8b9fc 100644
--- a/src/legacy/ums/ums_driver.c
+++ b/src/legacy/ums/ums_driver.c
@@ -2066,8 +2066,10 @@ ums_try_memory_allocation(ScrnInfoPtr pScrn)
 	if (!ums_allocate_pwrctx(pScrn))
 	    goto failed;
 
+#if BUILD_DRI
     if (xf86dri && !ums_allocate_3d_memory(pScrn))
 	goto failed;
+#endif
 
     xf86DrvMsg(pScrn->scrnIndex, X_INFO, "%siled allocation successful.\n",
 	    tiled ? "T" : "Unt");
diff --git a/src/legacy/ums/ums_memory.c b/src/legacy/ums/ums_memory.c
index fcf4595..2992fce 100644
--- a/src/legacy/ums/ums_memory.c
+++ b/src/legacy/ums/ums_memory.c
@@ -1174,6 +1174,24 @@ ums_allocate_2d_memory(ScrnInfoPtr pScrn)
     return TRUE;
 }
 
+Bool
+ums_allocate_pwrctx(ScrnInfoPtr pScrn)
+{
+    I830Ptr pI830 = I830PTR(pScrn);
+
+    pI830->power_context = ums_allocate_memory(pScrn, "power context",
+						PWRCTX_SIZE, PITCH_NONE,
+						GTT_PAGE_SIZE,
+						NEED_LIFETIME_FIXED,
+						TILE_NONE);
+    if (!pI830->power_context) {
+	xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+		"Failed to allocate power context.\n");
+	return FALSE;
+    }
+    return TRUE;
+}
+
 #ifdef BUILD_DRI
 static unsigned int
 myLog2(unsigned int n)
@@ -1336,24 +1354,6 @@ ums_allocate_hwstatus(ScrnInfoPtr pScrn)
 }
 
 Bool
-ums_allocate_pwrctx(ScrnInfoPtr pScrn)
-{
-    I830Ptr pI830 = I830PTR(pScrn);
-
-    pI830->power_context = ums_allocate_memory(pScrn, "power context",
-						PWRCTX_SIZE, PITCH_NONE,
-						GTT_PAGE_SIZE,
-						NEED_LIFETIME_FIXED,
-						TILE_NONE);
-    if (!pI830->power_context) {
-	xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
-		"Failed to allocate power context.\n");
-	return FALSE;
-    }
-    return TRUE;
-}
-
-Bool
 ums_allocate_3d_memory(ScrnInfoPtr pScrn)
 {
     I830Ptr pI830 = I830PTR(pScrn);

commit 3c28c879e2f26265a50129d558b3aee261956f77
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date:   Tue Jul 13 17:15:00 2010 +1000

    legacy/ums: Re-add missing HWS initialisation

diff --git a/src/legacy/ums/ums_dri.c b/src/legacy/ums/ums_dri.c
index cceac67..2603883 100644
--- a/src/legacy/ums/ums_dri.c
+++ b/src/legacy/ums/ums_dri.c
@@ -738,6 +738,24 @@ ums_I830SetParam(ScrnInfoPtr pScrn, int param, int value)
    return TRUE;
 }
 
+Bool
+ums_I830DRISetHWS(ScrnInfoPtr pScrn)
+{
+   I830Ptr pI830 = I830PTR(pScrn);
+   drmI830HWS hws;
+
+   hws.addr = pI830->hw_status->offset;
+
+   if (drmCommandWrite(pI830->drmSubFD, DRM_I830_HWS_PAGE_ADDR,
+		       &hws, sizeof(drmI830HWS))) {
+      xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+		 "hw status page initialization Failed\n");
+      return FALSE;
+   }
+   return TRUE;
+}
+
+
 static void
 ums_I830InitTextureHeap(ScrnInfoPtr pScrn)
 {

commit 8ea8567cb2d45c8b2f2ba8b8893a112c1068e753
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date:   Mon Jul 12 14:33:46 2010 +1000

    ums: ChangeGC changed prototype in 1.8.99, not 1.7.98

diff --git a/src/legacy/ums/ums_video.c b/src/legacy/ums/ums_video.c
index e8adf23..6623e8a 100644
--- a/src/legacy/ums/ums_video.c
+++ b/src/legacy/ums/ums_video.c
@@ -2184,7 +2184,7 @@ ums_clip_video_helper (ScrnInfoPtr pScrn,
     return ret;
 }
 
-#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,7,99,0,0)
+#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,8,99,0,0)
 #define ChangeGC(gc, flags, val) ChangeGC(NullClient, gc, flags, val)
 #define SetVal(v, x) v.val = x
 #else

commit b0f7f8744aea54086d86936031d14c47b92854da
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Jun 20 19:18:04 2010 +0100

    Reintegrate legacy UMS.
    
    As downstream still carries our old UMS driver in order to workaround
    the catastrophic incoherency issues that currently plague the earlier
    i8xx chipsets when trying to use GEM, it makes sense to integrate their
    work into the main repository so that their fixes are shared and
    available for all users.
    
    This combines the EXA code from 2.6 with the most recent updates through
    to 2.9 when the UMS code was removed and the distributions were forced
    to fork.

diff --git a/configure.ac b/configure.ac
index ad0a46b..a9c82c7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -87,36 +87,43 @@ PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10])
 
 sdkdir=`$PKG_CONFIG --variable=sdkdir xorg-server`
 
-save_CFLAGS="$CFLAGS"
-CFLAGS="$XORG_CFLAGS $DRI_CFLAGS $DRM_CFLAGS"
-CPPFLAGS="$XORG_CFLAGS $DRI_CFLAGS $DRM_CFLAGS"
-AC_MSG_CHECKING([whether to include DRI support])
-if test x$DRI != xno; then
-        AC_CHECK_FILE([${sdkdir}/dri.h],
-                      [have_dri_h="yes"], [have_dri_h="no"])
-        AC_CHECK_FILE([${sdkdir}/sarea.h],
-                      [have_sarea_h="yes"], [have_sarea_h="no"])
-        AC_CHECK_FILE([${sdkdir}/dristruct.h],
-                      [have_dristruct_h="yes"], [have_dristruct_h="no"])
+if test "x$DRI" != xno; then
+  save_CFLAGS="$CFLAGS"
+  CFLAGS="$XORG_CFLAGS $DRI_CFLAGS $DRM_CFLAGS"
+  CPPFLAGS="$XORG_CFLAGS $DRI_CFLAGS $DRM_CFLAGS"
+  AC_CHECK_FILE([${sdkdir}/dri.h],
+		[have_dri_h="yes"], [have_dri_h="no"])
+  AC_CHECK_FILE([${sdkdir}/sarea.h],
+		[have_sarea_h="yes"], [have_sarea_h="no"])
+  AC_CHECK_FILE([${sdkdir}/dristruct.h],
+		[have_dristruct_h="yes"], [have_dristruct_h="no"])
+  AC_MSG_CHECKING([whether to include DRI support])
+  if test x$DRI = xauto; then
+	  if test "$have_dri_h" = yes -a \
+		  "$have_sarea_h" = yes -a \
+		  "$have_dristruct_h" = yes; then
+		  DRI="yes"
+	  else
+		  DRI="no"
+	  fi
+  else
+      if test x$DRI = xyes; then
+	  if test "$have_dri_h" != yes -o \
+		  "$have_sarea_h" != yes -o \
+		  "$have_dristruct_h" != yes; then
+		  AC_MSG_ERROR([no])
+	  fi
+      fi
+  fi
+  AC_MSG_RESULT([$DRI])
+  CFLAGS="$save_CFLAGS $DEBUGFLAGS"
 fi
-AC_MSG_CHECKING([whether to include DRI support])
-if test x$DRI = xauto; then
-        if test "$have_dri_h" = yes -a \
-                "$have_sarea_h" = yes -a \
-                "$have_dristruct_h" = yes; then
-                DRI="yes"
-        else
-                DRI="no"
-        fi
-fi
-AC_MSG_RESULT([$DRI])
-CFLAGS="$save_CFLAGS $DEBUGFLAGS"
 
 AM_CONDITIONAL(DRI, test x$DRI = xyes)
 if test "$DRI" = yes; then
         PKG_CHECK_MODULES(DRI, [xf86driproto glproto])
-        AC_DEFINE(XF86DRI,1,[Enable DRI driver support])
-        AC_DEFINE(XF86DRI_DEVEL,1,[Enable developmental DRI driver support])
+        AC_DEFINE(BUILD_DRI,1,[Enable DRI driver support])
+        AC_DEFINE(BUILD_DRI_DEVEL,1,[Enable developmental DRI driver support])
 fi
 
 if test "$XVMC" = yes; then
@@ -153,6 +160,12 @@ AC_OUTPUT([
 	src/legacy/Makefile
 	src/legacy/i810/Makefile
 	src/legacy/i810/xvmc/Makefile
+	src/legacy/ums/Makefile
+	src/legacy/ums/ch7017/Makefile
+	src/legacy/ums/ch7xxx/Makefile
+	src/legacy/ums/ivch/Makefile
+	src/legacy/ums/sil164/Makefile
+	src/legacy/ums/tfp410/Makefile
 	man/Makefile
 	src/render_program/Makefile
 ])
diff --git a/src/Makefile.am b/src/Makefile.am
index fbccf0b..1b0ae41 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -51,6 +51,8 @@ intel_drv_la_SOURCES = \
 	 intel_uxa.c \
          intel_video.c \
          intel_video.h \
+	 intel_transform.c \
+	 intel_transform.h \
 	 i830_3d.c \
 	 i830_render.c \
 	 i830_reg.h \
diff --git a/src/i830_render.c b/src/i830_render.c
index 4bc582c..c6d85ed 100644
--- a/src/i830_render.c
+++ b/src/i830_render.c
@@ -244,7 +244,6 @@ static uint32_t i8xx_get_card_format(intel_screen_private *intel,
 
 static void i830_texture_setup(PicturePtr picture, PixmapPtr pixmap, int unit)
 {
-
 	ScrnInfoPtr scrn = xf86Screens[picture->pDrawable->pScreen->myNum];
 	intel_screen_private *intel = intel_get_screen_private(scrn);
 	uint32_t format, tiling_bits, pitch, filter;
diff --git a/src/intel.h b/src/intel.h
index 5342dca..30e9199 100644
--- a/src/intel.h
+++ b/src/intel.h
@@ -61,13 +61,16 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include <pciaccess.h>
 
 #include "xf86drm.h"
+#include "intel_bufmgr.h"
+#include "i915_drm.h"
+
+#ifdef BUILD_DRI
 #include "sarea.h"
 #define _XF86DRI_SERVER_
 #include "dri.h"
 #include "dri2.h"
 #include "GL/glxint.h"
-#include "intel_bufmgr.h"
-#include "i915_drm.h"
+#endif
 
 #include "intel_driver.h"
 
diff --git a/src/intel_batchbuffer.h b/src/intel_batchbuffer.h
index bf9b279..02997ba 100644
--- a/src/intel_batchbuffer.h
+++ b/src/intel_batchbuffer.h
@@ -51,7 +51,7 @@ static inline int intel_vertex_space(intel_screen_private *intel)
 }
 
 static inline void
-intel_batch_require_space(ScrnInfoPtr scrn, intel_screen_private *intel, GLuint sz)
+intel_batch_require_space(ScrnInfoPtr scrn, intel_screen_private *intel, unsigned int sz)
 {
 	assert(sz < intel->batch_bo->size - 8);
 	if (intel_batch_space(intel) < sz)
diff --git a/src/intel_driver.c b/src/intel_driver.c
index 2ced844..04ca197 100644
--- a/src/intel_driver.c
+++ b/src/intel_driver.c
@@ -77,8 +77,9 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include "legacy/legacy.h"
 
 #include <sys/ioctl.h>
-#include "i915_drm.h"
 #include <xf86drmMode.h>
+#include <i915_drm.h>
+#include <dri.h> /* DRICreatePCIBusID() */
 
 #define BIT(x) (1 << (x))
 #define MAX(a,b) ((a) > (b) ? (a) : (b))
@@ -276,6 +277,7 @@ static void PreInitCleanup(ScrnInfoPtr scrn)
 	I830FreeRec(scrn);
 }
 
+
 /*
  * DRM mode setting Linux only at this point... later on we could
  * add a wrapper here.
diff --git a/src/intel_driver.h b/src/intel_driver.h
index c0b1c57..d5180d1 100644
--- a/src/intel_driver.h
+++ b/src/intel_driver.h
@@ -198,9 +198,9 @@
 #define IS_845G(pI810) (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_845_G)
 #define IS_I85X(pI810)  (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I855_GM || \
 			 DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I854)
-#define IS_I852(pI810)  (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I855_GM && (pI810->variant == I852_GM || pI810->variant == I852_GME))
+#define IS_I852(pI810)  (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I855_GM && (pI810->chipset.variant == I852_GM || pI810->chipset.variant == I852_GME))
 #define IS_I854(pI810)  (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I854)
-#define IS_I855(pI810)  (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I855_GM && (pI810->variant == I855_GM || pI810->variant == I855_GME))
+#define IS_I855(pI810)  (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I855_GM && (pI810->chipset.variant == I855_GM || pI810->chipset.variant == I855_GME))
 #define IS_I865G(pI810) (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I865_G)
 #define IS_I8XX(pI810)	(IS_I830(pI810) || IS_845G(pI810) || IS_I85X(pI810) || IS_I865G(pI810))
 
diff --git a/src/intel_module.c b/src/intel_module.c
index 5e64989..5ec80ba 100644
--- a/src/intel_module.c
+++ b/src/intel_module.c
@@ -37,6 +37,10 @@
 #include "intel_driver.h"
 #include "legacy/legacy.h"
 
+#include <xf86drmMode.h>
+
+#include "unistd.h"
+
 static const SymTabRec _intel_chipsets[] = {
     {PCI_CHIP_I810,		"i810"},
     {PCI_CHIP_I810_DC100,	"i810-dc100"},
@@ -332,6 +336,21 @@ static Bool intel_driver_func(ScrnInfoPtr pScrn,
     }
 }
 
+static Bool intel_has_kms(struct pci_device *dev)
+{
+	char busid[120];
+	int ret;
+
+	snprintf(busid, sizeof(busid),
+		 "pci:%04x:%02x:%02x.%d",
+		 dev->domain, dev->bus, dev->dev, dev->func);
+	ret = drmCheckModesettingSupported(busid);
+	if (ret && xf86LoadKernelModule("i915"))
+	    ret = drmCheckModesettingSupported(busid);
+
+	return ret == 0;
+}
+
 /*
  * intel_pci_probe --
  *
@@ -339,10 +358,10 @@ static Bool intel_driver_func(ScrnInfoPtr pScrn,
  * Setup the dispatch table for the rest of the driver functions.
  *
  */
-static Bool intel_pci_probe (DriverPtr		driver,
-			     int		entity_num,
-			     struct pci_device	*device,
-			     intptr_t		match_data)
+static Bool intel_pci_probe(DriverPtr		driver,
+			    int		entity_num,
+			    struct pci_device	*device,
+			    intptr_t		match_data)
 {
     ScrnInfoPtr scrn = NULL;
 
@@ -367,7 +386,10 @@ static Bool intel_pci_probe (DriverPtr		driver,
 	    break;
 
 	default:
-	    intel_init_scrn(scrn);
+	    if (intel_has_kms(device))
+		intel_init_scrn(scrn);
+	    else
+		lg_ums_init(scrn);
 	    break;
 	}
 #endif
diff --git a/src/intel_transform.c b/src/intel_transform.c
new file mode 100644
index 0000000..db66ba8
--- /dev/null
+++ b/src/intel_transform.c
@@ -0,0 +1,92 @@
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "xf86.h"
+
+#include "intel.h"
+#include "intel_transform.h"
+
+#define xFixedToFloat(val) \
+	((float)xFixedToInt(val) + ((float)xFixedFrac(val) / 65536.0))
+
+static Bool
+_intel_transform_point(PictTransformPtr transform,
+		       float x, float y, float result[3])
+{
+	int j;
+
+	for (j = 0; j < 3; j++) {
+		result[j] = (xFixedToFloat(transform->matrix[j][0]) * x +
+			     xFixedToFloat(transform->matrix[j][1]) * y +
+			     xFixedToFloat(transform->matrix[j][2]));
+	}
+	if (!result[2])
+		return FALSE;
+	return TRUE;
+}
+
+/**
+ * Returns the floating-point coordinates transformed by the given transform.
+ *
+ * transform may be null.
+ */
+Bool
+intel_get_transformed_coordinates(int x, int y, PictTransformPtr transform,
+				  float *x_out, float *y_out)
+{
+	if (transform == NULL) {
+		*x_out = x;
+		*y_out = y;
+	} else {
+		float result[3];
+
+		if (!_intel_transform_point(transform,
+					    x, y,
+					    result))
+			return FALSE;
+		*x_out = result[0] / result[2];
+		*y_out = result[1] / result[2];
+	}
+	return TRUE;
+}
+
+/**
+ * Returns the un-normalized floating-point coordinates transformed by the given transform.
+ *
+ * transform may be null.
+ */
+Bool
+intel_get_transformed_coordinates_3d(int x, int y, PictTransformPtr transform,
+				     float *x_out, float *y_out, float *w_out)
+{
+	if (transform == NULL) {
+		*x_out = x;
+		*y_out = y;
+		*w_out = 1;
+	} else {
+		float result[3];
+
+		if (!_intel_transform_point(transform,
+					    x, y,
+					    result))
+			return FALSE;
+		*x_out = result[0];
+		*y_out = result[1];
+		*w_out = result[2];
+	}
+	return TRUE;
+}
+
+/**
+ * Returns whether the provided transform is affine.
+ *
+ * transform may be null.
+ */
+Bool intel_transform_is_affine(PictTransformPtr t)
+{
+	if (t == NULL)
+		return TRUE;
+	return t->matrix[2][0] == 0 && t->matrix[2][1] == 0;
+}
+
diff --git a/src/intel_transform.h b/src/intel_transform.h
new file mode 100644
index 0000000..bfc90d1
--- /dev/null
+++ b/src/intel_transform.h
@@ -0,0 +1,14 @@
+#ifndef INTEL_TRANSFORM_H
+#define INTEL_TRANSFORM_H
+
+Bool
+intel_get_transformed_coordinates(int x, int y, PictTransformPtr transform,
+				  float *x_out, float *y_out);
+
+Bool
+intel_get_transformed_coordinates_3d(int x, int y, PictTransformPtr transform,
+				     float *x_out, float *y_out, float *w_out);
+
+Bool intel_transform_is_affine(PictTransformPtr t);
+
+#endif
diff --git a/src/intel_uxa.c b/src/intel_uxa.c
index b75fe55..fb6dac5 100644
--- a/src/intel_uxa.c
+++ b/src/intel_uxa.c
@@ -487,89 +487,6 @@ static void i830_done_composite(PixmapPtr dest)


Reply to: