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

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



 Makefile.am                                    |    7 
 NEWS                                           |  152 +
 configure.ac                                   |  591 +++-
 man/intel.man                                  |   34 
 src/Makefile.am                                |   78 
 src/brw_defines.h                              |  881 -------
 src/brw_structs.h                              | 1723 --------------
 src/common.h                                   |   73 
 src/compat-api.h                               |    4 
 src/i830_3d.c                                  |  225 -
 src/i830_reg.h                                 |  805 ------
 src/i830_render.c                              |  876 -------
 src/i915_3d.c                                  |  110 
 src/i915_3d.h                                  |  619 -----
 src/i915_pciids.h                              |  211 +
 src/i915_reg.h                                 |  844 -------
 src/i915_render.c                              | 1010 --------
 src/i915_video.c                               |  486 ----
 src/i965_3d.c                                  |  443 ---
 src/i965_reg.h                                 |  476 ----
 src/i965_render.c                              | 2962 ------------------------
 src/i965_video.c                               | 1939 ----------------
 src/intel.h                                    |  663 -----
 src/intel_batchbuffer.c                        |  314 --
 src/intel_batchbuffer.h                        |  226 -
 src/intel_device.c                             |   90 
 src/intel_display.c                            | 2124 -----------------
 src/intel_dri.c                                | 1639 -------------
 src/intel_driver.c                             | 1310 -----------
 src/intel_driver.h                             |  239 --
 src/intel_glamor.c                             |  254 --
 src/intel_glamor.h                             |   67 
 src/intel_hwmc.c                               |  260 --
 src/intel_hwmc.h                               |   75 
 src/intel_memory.c                             |  286 --
 src/intel_module.c                             |  394 +--
 src/intel_options.c                            |    5 
 src/intel_options.h                            |    4 
 src/intel_uxa.c                                | 1420 -----------
 src/intel_video.c                              | 1776 --------------
 src/intel_video.h                              |   95 
 src/legacy/Makefile.am                         |    2 
 src/legacy/i810/Makefile.am                    |    4 
 src/legacy/i810/i810_accel.c                   |    1 
 src/legacy/i810/i810_cursor.c                  |    1 
 src/legacy/i810/i810_dga.c                     |    1 
 src/legacy/i810/i810_dri.c                     |    3 
 src/legacy/i810/i810_driver.c                  |    1 
 src/legacy/i810/i810_hwmc.c                    |    1 
 src/legacy/i810/i810_memory.c                  |    1 
 src/legacy/i810/i810_video.c                   |    1 
 src/legacy/i810/i810_wmark.c                   |    1 
 src/legacy/i810/i810_xaa.c                     |    1 
 src/legacy/i810/xvmc/Makefile.am               |    4 
 src/sna/Makefile.am                            |    7 
 src/sna/blt.c                                  |   10 
 src/sna/brw/Makefile.am                        |    1 
 src/sna/compiler.h                             |   10 
 src/sna/fb/Makefile.am                         |    2 
 src/sna/fb/fbclip.c                            |    2 
 src/sna/fb/fbclip.h                            |    7 
 src/sna/fb/fbpict.h                            |    1 
 src/sna/gen2_render.c                          |    3 
 src/sna/gen3_render.c                          |   61 
 src/sna/gen4_render.c                          |   47 
 src/sna/gen4_vertex.c                          |   85 
 src/sna/gen5_render.c                          |   75 
 src/sna/gen6_render.c                          |  158 +
 src/sna/gen7_render.c                          |  280 +-
 src/sna/kgem.c                                 |  675 +++--
 src/sna/kgem.h                                 |   48 
 src/sna/sna.h                                  |  118 
 src/sna/sna_accel.c                            | 1695 +++++++++-----
 src/sna/sna_acpi.c                             |  223 +
 src/sna/sna_blt.c                              |   47 
 src/sna/sna_composite.c                        |  312 +-
 src/sna/sna_cpu.c                              |   20 
 src/sna/sna_cpuid.h                            |   86 
 src/sna/sna_damage.c                           |   10 
 src/sna/sna_damage.h                           |   13 
 src/sna/sna_display.c                          |  805 ++++--
 src/sna/sna_display_fake.c                     |  199 +
 src/sna/sna_dri.c                              |  959 ++++----
 src/sna/sna_driver.c                           |  283 +-
 src/sna/sna_glyphs.c                           |  538 +++-
 src/sna/sna_io.c                               |  158 -
 src/sna/sna_render.c                           |  116 
 src/sna/sna_render.h                           |   11 
 src/sna/sna_render_inline.h                    |    2 
 src/sna/sna_stream.c                           |    4 
 src/sna/sna_threads.c                          |   11 
 src/sna/sna_tiling.c                           |   30 
 src/sna/sna_trapezoids.c                       |   83 
 src/sna/sna_vertex.c                           |    4 
 src/sna/sna_video.c                            |   64 
 src/sna/sna_video.h                            |   40 
 src/sna/sna_video_hwmc.c                       |    4 
 src/sna/sna_video_overlay.c                    |  118 
 src/sna/sna_video_sprite.c                     |  132 -
 src/sna/sna_video_textured.c                   |   27 
 src/uxa/Makefile.am                            |   88 
 src/uxa/brw_defines.h                          |  881 +++++++
 src/uxa/brw_structs.h                          | 1723 ++++++++++++++
 src/uxa/common.h                               |   71 
 src/uxa/i830_3d.c                              |  226 +
 src/uxa/i830_reg.h                             |  805 ++++++
 src/uxa/i830_render.c                          |  877 +++++++
 src/uxa/i915_3d.c                              |  111 
 src/uxa/i915_3d.h                              |  619 +++++
 src/uxa/i915_reg.h                             |  844 +++++++
 src/uxa/i915_render.c                          | 1011 ++++++++
 src/uxa/i915_video.c                           |  487 ++++
 src/uxa/i965_3d.c                              |  443 +++
 src/uxa/i965_reg.h                             |  503 ++++
 src/uxa/i965_render.c                          | 2963 +++++++++++++++++++++++++
 src/uxa/i965_video.c                           | 1940 ++++++++++++++++
 src/uxa/intel.h                                |  690 +++++
 src/uxa/intel_batchbuffer.c                    |  315 ++
 src/uxa/intel_batchbuffer.h                    |  226 +
 src/uxa/intel_display.c                        | 2133 +++++++++++++++++
 src/uxa/intel_dri.c                            | 1649 +++++++++++++
 src/uxa/intel_driver.c                         | 1315 +++++++++++
 src/uxa/intel_glamor.c                         |  255 ++
 src/uxa/intel_glamor.h                         |   67 
 src/uxa/intel_hwmc.c                           |  260 ++
 src/uxa/intel_memory.c                         |  287 ++
 src/uxa/intel_uxa.c                            | 1421 +++++++++++
 src/uxa/intel_video.c                          | 1782 +++++++++++++++
 src/uxa/intel_video.h                          |   95 
 src/uxa/uxa-accel.c                            | 1296 ++++++++++
 src/uxa/uxa-glamor.h                           |   65 
 src/uxa/uxa-glyphs.c                           | 1053 ++++++++
 src/uxa/uxa-priv.h                             |  440 +++
 src/uxa/uxa-render.c                           | 2074 +++++++++++++++++
 src/uxa/uxa-unaccel.c                          |  454 +++
 src/uxa/uxa.c                                  |  590 ++++
 src/uxa/uxa.h                                  |  599 +++++
 src/uxa/uxa_module.h                           |    6 
 src/xvmc/Makefile.am                           |   24 
 src/xvmc/i915_program.h                        |  274 --
 src/xvmc/i915_structs.h                        |  926 -------
 src/xvmc/i915_xvmc.c                           | 1225 ----------
 src/xvmc/i915_xvmc.h                           |   83 
 src/xvmc/i965_xvmc.c                           |  882 -------
 src/xvmc/intel_batchbuffer.c                   |  139 -
 src/xvmc/intel_batchbuffer.h                   |   57 
 src/xvmc/intel_xvmc.c                          | 1075 ---------
 src/xvmc/intel_xvmc.h                          |  263 --
 src/xvmc/intel_xvmc_dump.c                     |  158 -
 src/xvmc/shader/Makefile.am                    |    1 
 src/xvmc/shader/mc/Makefile.am                 |  121 -
 src/xvmc/shader/mc/addidct.g4i                 |  152 -
 src/xvmc/shader/mc/addidct_igd.g4i             |  117 
 src/xvmc/shader/mc/block_clear.g4i             |  140 -
 src/xvmc/shader/mc/dual_prime.g4a              |  223 -
 src/xvmc/shader/mc/dual_prime.g4b              | 2486 --------------------
 src/xvmc/shader/mc/dual_prime.g4b.gen5         | 2486 --------------------
 src/xvmc/shader/mc/dual_prime_igd.g4a          |  223 -
 src/xvmc/shader/mc/dual_prime_igd.g4b          | 1234 ----------
 src/xvmc/shader/mc/dual_prime_igd.g4b.gen5     | 1234 ----------
 src/xvmc/shader/mc/field_backward.g4a          |  124 -
 src/xvmc/shader/mc/field_backward.g4b          | 1341 -----------
 src/xvmc/shader/mc/field_backward.g4b.gen5     | 1341 -----------
 src/xvmc/shader/mc/field_backward_igd.g4a      |   86 
 src/xvmc/shader/mc/field_backward_igd.g4b      |   62 
 src/xvmc/shader/mc/field_backward_igd.g4b.gen5 |   62 
 src/xvmc/shader/mc/field_f_b.g4a               |  223 -
 src/xvmc/shader/mc/field_f_b.g4b               | 2486 --------------------
 src/xvmc/shader/mc/field_f_b.g4b.gen5          | 2486 --------------------
 src/xvmc/shader/mc/field_f_b_igd.g4a           |  159 -
 src/xvmc/shader/mc/field_f_b_igd.g4b           |  121 -
 src/xvmc/shader/mc/field_f_b_igd.g4b.gen5      |  121 -
 src/xvmc/shader/mc/field_forward.g4a           |  121 -
 src/xvmc/shader/mc/field_forward.g4b           | 1340 -----------
 src/xvmc/shader/mc/field_forward.g4b.gen5      | 1340 -----------
 src/xvmc/shader/mc/field_forward_igd.g4a       |   86 
 src/xvmc/shader/mc/field_forward_igd.g4b       |   62 
 src/xvmc/shader/mc/field_forward_igd.g4b.gen5  |   62 
 src/xvmc/shader/mc/frame_backward.g4a          |   69 
 src/xvmc/shader/mc/frame_backward.g4b          |  716 ------
 src/xvmc/shader/mc/frame_backward.g4b.gen5     |  716 ------
 src/xvmc/shader/mc/frame_backward_igd.g4a      |   50 
 src/xvmc/shader/mc/frame_backward_igd.g4b      |   15 
 src/xvmc/shader/mc/frame_backward_igd.g4b.gen5 |   15 
 src/xvmc/shader/mc/frame_f_b.g4a               |  131 -
 src/xvmc/shader/mc/frame_f_b.g4b               | 1257 ----------
 src/xvmc/shader/mc/frame_f_b.g4b.gen5          | 1257 ----------
 src/xvmc/shader/mc/frame_f_b_igd.g4a           |   96 
 src/xvmc/shader/mc/frame_f_b_igd.g4b           |   51 
 src/xvmc/shader/mc/frame_f_b_igd.g4b.gen5      |   51 
 src/xvmc/shader/mc/frame_forward.g4a           |   65 
 src/xvmc/shader/mc/frame_forward.g4b           |  715 ------
 src/xvmc/shader/mc/frame_forward.g4b.gen5      |  715 ------
 src/xvmc/shader/mc/frame_forward_igd.g4a       |   30 
 src/xvmc/shader/mc/frame_forward_igd.g4b       |   15 
 src/xvmc/shader/mc/frame_forward_igd.g4b.gen5  |   15 
 src/xvmc/shader/mc/ipicture.g4a                |  166 -
 src/xvmc/shader/mc/ipicture.g4b                |  125 -
 src/xvmc/shader/mc/ipicture.g4b.gen5           |  125 -
 src/xvmc/shader/mc/ipicture_igd.g4a            |  105 
 src/xvmc/shader/mc/ipicture_igd.g4b            |   75 
 src/xvmc/shader/mc/ipicture_igd.g4b.gen5       |   75 
 src/xvmc/shader/mc/lib_igd.g4a                 |  133 -
 src/xvmc/shader/mc/lib_igd.g4b                 |  558 ----
 src/xvmc/shader/mc/lib_igd.g4b.gen5            |  558 ----
 src/xvmc/shader/mc/motion_field_uv.g4i         |   46 
 src/xvmc/shader/mc/motion_field_uv_igd.g4i     |   46 
 src/xvmc/shader/mc/motion_field_y.g4i          |   45 
 src/xvmc/shader/mc/motion_field_y_igd.g4i      |   45 
 src/xvmc/shader/mc/motion_frame_uv.g4i         |   29 
 src/xvmc/shader/mc/motion_frame_uv_igd.g4i     |   30 
 src/xvmc/shader/mc/motion_frame_y.g4i          |   57 
 src/xvmc/shader/mc/motion_frame_y_igd.g4i      |   58 
 src/xvmc/shader/mc/null.g4a                    |   57 
 src/xvmc/shader/mc/null.g4b                    |   17 
 src/xvmc/shader/mc/null.g4b.gen5               |   17 
 src/xvmc/shader/mc/read_field_x0y0_uv.g4i      |   74 
 src/xvmc/shader/mc/read_field_x0y0_uv_igd.g4i  |   30 
 src/xvmc/shader/mc/read_field_x0y0_y.g4i       |   83 
 src/xvmc/shader/mc/read_field_x0y0_y_igd.g4i   |   35 
 src/xvmc/shader/mc/read_field_x0y1_uv.g4i      |   78 
 src/xvmc/shader/mc/read_field_x0y1_uv_igd.g4i  |   42 
 src/xvmc/shader/mc/read_field_x0y1_y.g4i       |   86 
 src/xvmc/shader/mc/read_field_x0y1_y_igd.g4i   |   42 
 src/xvmc/shader/mc/read_field_x1y0_uv.g4i      |   75 
 src/xvmc/shader/mc/read_field_x1y0_uv_igd.g4i  |   33 
 src/xvmc/shader/mc/read_field_x1y0_y.g4i       |   83 
 src/xvmc/shader/mc/read_field_x1y0_y_igd.g4i   |   35 
 src/xvmc/shader/mc/read_field_x1y1_uv.g4i      |  172 -
 src/xvmc/shader/mc/read_field_x1y1_uv_igd.g4i  |   66 
 src/xvmc/shader/mc/read_field_x1y1_y.g4i       |  166 -
 src/xvmc/shader/mc/read_field_x1y1_y_igd.g4i   |   64 
 src/xvmc/shader/mc/read_frame_x0y0_uv.g4i      |   73 
 src/xvmc/shader/mc/read_frame_x0y0_uv_igd.g4i  |   28 
 src/xvmc/shader/mc/read_frame_x0y0_y.g4i       |  109 
 src/xvmc/shader/mc/read_frame_x0y0_y_igd.g4i   |   35 
 src/xvmc/shader/mc/read_frame_x0y1_uv.g4i      |   79 
 src/xvmc/shader/mc/read_frame_x0y1_uv_igd.g4i  |   44 
 src/xvmc/shader/mc/read_frame_x0y1_y.g4i       |  113 
 src/xvmc/shader/mc/read_frame_x0y1_y_igd.g4i   |   49 
 src/xvmc/shader/mc/read_frame_x1y0_uv.g4i      |   75 
 src/xvmc/shader/mc/read_frame_x1y0_uv_igd.g4i  |   41 
 src/xvmc/shader/mc/read_frame_x1y0_y.g4i       |  110 
 src/xvmc/shader/mc/read_frame_x1y0_y_igd.g4i   |   43 
 src/xvmc/shader/mc/read_frame_x1y1_uv.g4i      |  159 -
 src/xvmc/shader/mc/read_frame_x1y1_uv_igd.g4i  |   71 
 src/xvmc/shader/mc/read_frame_x1y1_y.g4i       |  264 --
 src/xvmc/shader/mc/read_frame_x1y1_y_igd.g4i   |   92 
 src/xvmc/shader/vld/Makefile.am                |   74 
 src/xvmc/shader/vld/addidct.g4i                |  152 -
 src/xvmc/shader/vld/do_iq_intra.g4i            |   64 
 src/xvmc/shader/vld/do_iq_non_intra.g4i        |   59 
 src/xvmc/shader/vld/field_backward.g4a         |  126 -
 src/xvmc/shader/vld/field_backward.g4b         |  553 ----
 src/xvmc/shader/vld/field_backward.g4b.gen5    |  553 ----
 src/xvmc/shader/vld/field_f_b.g4a              |  213 -
 src/xvmc/shader/vld/field_f_b.g4b              | 1007 --------
 src/xvmc/shader/vld/field_f_b.g4b.gen5         | 1007 --------
 src/xvmc/shader/vld/field_forward.g4a          |  130 -
 src/xvmc/shader/vld/field_forward.g4b          |  555 ----
 src/xvmc/shader/vld/field_forward.g4b.gen5     |  555 ----
 src/xvmc/shader/vld/frame_backward.g4a         |   61 
 src/xvmc/shader/vld/frame_backward.g4b         |  369 ---
 src/xvmc/shader/vld/frame_backward.g4b.gen5    |  369 ---
 src/xvmc/shader/vld/frame_f_b.g4a              |  120 -
 src/xvmc/shader/vld/frame_f_b.g4b              |  675 -----
 src/xvmc/shader/vld/frame_f_b.g4b.gen5         |  675 -----
 src/xvmc/shader/vld/frame_forward.g4a          |   61 
 src/xvmc/shader/vld/frame_forward.g4b          |  369 ---
 src/xvmc/shader/vld/frame_forward.g4b.gen5     |  369 ---
 src/xvmc/shader/vld/idct.g4i                   |  147 -
 src/xvmc/shader/vld/ipicture.g4a               |  209 -
 src/xvmc/shader/vld/ipicture.g4b               |  313 --
 src/xvmc/shader/vld/ipicture.g4b.gen5          |  313 --
 src/xvmc/shader/vld/iq_intra.g4i               |  131 -
 src/xvmc/shader/vld/iq_non_intra.g4i           |  150 -
 src/xvmc/shader/vld/lib.g4a                    |  190 -
 src/xvmc/shader/vld/lib.g4b                    |  307 --
 src/xvmc/shader/vld/lib.g4b.gen5               |  307 --
 src/xvmc/shader/vld/motion_field_uv.g4i        |   46 
 src/xvmc/shader/vld/motion_field_y.g4i         |   45 
 src/xvmc/shader/vld/motion_frame_uv.g4i        |   45 
 src/xvmc/shader/vld/motion_frame_y.g4i         |   57 
 src/xvmc/shader/vld/read_field_x0y0_uv.g4i     |   50 
 src/xvmc/shader/vld/read_field_x0y0_y.g4i      |   57 
 src/xvmc/shader/vld/read_field_x0y1_uv.g4i     |   28 
 src/xvmc/shader/vld/read_field_x0y1_y.g4i      |   60 
 src/xvmc/shader/vld/read_field_x1y0_uv.g4i     |   24 
 src/xvmc/shader/vld/read_field_x1y0_y.g4i      |   57 
 src/xvmc/shader/vld/read_field_x1y1_uv.g4i     |   53 
 src/xvmc/shader/vld/read_field_x1y1_y.g4i      |   87 
 src/xvmc/shader/vld/read_frame_x0y0_uv.g4i     |   49 
 src/xvmc/shader/vld/read_frame_x0y0_y.g4i      |   58 
 src/xvmc/shader/vld/read_frame_x0y1_uv.g4i     |   56 
 src/xvmc/shader/vld/read_frame_x0y1_y.g4i      |   61 
 src/xvmc/shader/vld/read_frame_x1y0_uv.g4i     |   42 
 src/xvmc/shader/vld/read_frame_x1y0_y.g4i      |   58 
 src/xvmc/shader/vld/read_frame_x1y1_uv.g4i     |   74 
 src/xvmc/shader/vld/read_frame_x1y1_y.g4i      |  112 
 src/xvmc/xvmc_vld.c                            | 1225 ----------
 test/.gitignore                                |    3 
 test/Makefile.am                               |   15 
 test/dri2-test.c                               |  234 +
 test/dri2.c                                    |    3 
 test/virtual.conf                              |   36 
 tools/.gitignore                               |    1 
 tools/Makefile.am                              |   44 
 tools/intel-virtual-output.man                 |   27 
 tools/virtual.c                                | 2727 +++++++++++++++++++++++
 uxa/Makefile.am                                |   23 
 uxa/uxa-accel.c                                | 1296 ----------
 uxa/uxa-glamor.h                               |   65 
 uxa/uxa-glyphs.c                               | 1053 --------
 uxa/uxa-priv.h                                 |  440 ---
 uxa/uxa-render.c                               | 2074 -----------------
 uxa/uxa-unaccel.c                              |  454 ---
 uxa/uxa.c                                      |  590 ----
 uxa/uxa.h                                      |  599 -----
 xvmc/Makefile.am                               |   32 
 xvmc/brw_defines.h                             |  881 +++++++
 xvmc/brw_structs.h                             | 1723 ++++++++++++++
 xvmc/i830_reg.h                                |  805 ++++++
 xvmc/i915_program.h                            |  274 ++
 xvmc/i915_reg.h                                |  844 +++++++
 xvmc/i915_structs.h                            |  926 +++++++
 xvmc/i915_xvmc.c                               | 1225 ++++++++++
 xvmc/i915_xvmc.h                               |   82 
 xvmc/i965_reg.h                                |  476 ++++
 xvmc/i965_xvmc.c                               |  880 +++++++
 xvmc/intel_batchbuffer.c                       |  139 +
 xvmc/intel_batchbuffer.h                       |   57 
 xvmc/intel_xvmc.c                              | 1075 +++++++++
 xvmc/intel_xvmc.h                              |   75 
 xvmc/intel_xvmc_dump.c                         |  158 +
 xvmc/intel_xvmc_private.h                      |  264 ++
 xvmc/shader/Makefile.am                        |    1 
 xvmc/shader/mc/Makefile.am                     |  121 +
 xvmc/shader/mc/addidct.g4i                     |  152 +
 xvmc/shader/mc/addidct_igd.g4i                 |  117 
 xvmc/shader/mc/block_clear.g4i                 |  140 +
 xvmc/shader/mc/dual_prime.g4a                  |  223 +
 xvmc/shader/mc/dual_prime.g4b                  | 2486 ++++++++++++++++++++
 xvmc/shader/mc/dual_prime.g4b.gen5             | 2486 ++++++++++++++++++++
 xvmc/shader/mc/dual_prime_igd.g4a              |  223 +
 xvmc/shader/mc/dual_prime_igd.g4b              | 1234 ++++++++++
 xvmc/shader/mc/dual_prime_igd.g4b.gen5         | 1234 ++++++++++
 xvmc/shader/mc/field_backward.g4a              |  124 +
 xvmc/shader/mc/field_backward.g4b              | 1341 +++++++++++
 xvmc/shader/mc/field_backward.g4b.gen5         | 1341 +++++++++++
 xvmc/shader/mc/field_backward_igd.g4a          |   86 
 xvmc/shader/mc/field_backward_igd.g4b          |   62 
 xvmc/shader/mc/field_backward_igd.g4b.gen5     |   62 
 xvmc/shader/mc/field_f_b.g4a                   |  223 +
 xvmc/shader/mc/field_f_b.g4b                   | 2486 ++++++++++++++++++++
 xvmc/shader/mc/field_f_b.g4b.gen5              | 2486 ++++++++++++++++++++
 xvmc/shader/mc/field_f_b_igd.g4a               |  159 +
 xvmc/shader/mc/field_f_b_igd.g4b               |  121 +
 xvmc/shader/mc/field_f_b_igd.g4b.gen5          |  121 +
 xvmc/shader/mc/field_forward.g4a               |  121 +
 xvmc/shader/mc/field_forward.g4b               | 1340 +++++++++++
 xvmc/shader/mc/field_forward.g4b.gen5          | 1340 +++++++++++
 xvmc/shader/mc/field_forward_igd.g4a           |   86 
 xvmc/shader/mc/field_forward_igd.g4b           |   62 
 xvmc/shader/mc/field_forward_igd.g4b.gen5      |   62 
 xvmc/shader/mc/frame_backward.g4a              |   69 
 xvmc/shader/mc/frame_backward.g4b              |  716 ++++++
 xvmc/shader/mc/frame_backward.g4b.gen5         |  716 ++++++
 xvmc/shader/mc/frame_backward_igd.g4a          |   50 
 xvmc/shader/mc/frame_backward_igd.g4b          |   15 
 xvmc/shader/mc/frame_backward_igd.g4b.gen5     |   15 
 xvmc/shader/mc/frame_f_b.g4a                   |  131 +
 xvmc/shader/mc/frame_f_b.g4b                   | 1257 ++++++++++
 xvmc/shader/mc/frame_f_b.g4b.gen5              | 1257 ++++++++++
 xvmc/shader/mc/frame_f_b_igd.g4a               |   96 
 xvmc/shader/mc/frame_f_b_igd.g4b               |   51 
 xvmc/shader/mc/frame_f_b_igd.g4b.gen5          |   51 
 xvmc/shader/mc/frame_forward.g4a               |   65 
 xvmc/shader/mc/frame_forward.g4b               |  715 ++++++
 xvmc/shader/mc/frame_forward.g4b.gen5          |  715 ++++++
 xvmc/shader/mc/frame_forward_igd.g4a           |   30 
 xvmc/shader/mc/frame_forward_igd.g4b           |   15 
 xvmc/shader/mc/frame_forward_igd.g4b.gen5      |   15 
 xvmc/shader/mc/ipicture.g4a                    |  166 +
 xvmc/shader/mc/ipicture.g4b                    |  125 +
 xvmc/shader/mc/ipicture.g4b.gen5               |  125 +
 xvmc/shader/mc/ipicture_igd.g4a                |  105 
 xvmc/shader/mc/ipicture_igd.g4b                |   75 
 xvmc/shader/mc/ipicture_igd.g4b.gen5           |   75 
 xvmc/shader/mc/lib_igd.g4a                     |  133 +
 xvmc/shader/mc/lib_igd.g4b                     |  558 ++++
 xvmc/shader/mc/lib_igd.g4b.gen5                |  558 ++++
 xvmc/shader/mc/motion_field_uv.g4i             |   46 
 xvmc/shader/mc/motion_field_uv_igd.g4i         |   46 
 xvmc/shader/mc/motion_field_y.g4i              |   45 
 xvmc/shader/mc/motion_field_y_igd.g4i          |   45 
 xvmc/shader/mc/motion_frame_uv.g4i             |   29 
 xvmc/shader/mc/motion_frame_uv_igd.g4i         |   30 
 xvmc/shader/mc/motion_frame_y.g4i              |   57 
 xvmc/shader/mc/motion_frame_y_igd.g4i          |   58 
 xvmc/shader/mc/null.g4a                        |   57 
 xvmc/shader/mc/null.g4b                        |   17 
 xvmc/shader/mc/null.g4b.gen5                   |   17 
 xvmc/shader/mc/read_field_x0y0_uv.g4i          |   74 
 xvmc/shader/mc/read_field_x0y0_uv_igd.g4i      |   30 
 xvmc/shader/mc/read_field_x0y0_y.g4i           |   83 
 xvmc/shader/mc/read_field_x0y0_y_igd.g4i       |   35 
 xvmc/shader/mc/read_field_x0y1_uv.g4i          |   78 
 xvmc/shader/mc/read_field_x0y1_uv_igd.g4i      |   42 
 xvmc/shader/mc/read_field_x0y1_y.g4i           |   86 
 xvmc/shader/mc/read_field_x0y1_y_igd.g4i       |   42 
 xvmc/shader/mc/read_field_x1y0_uv.g4i          |   75 
 xvmc/shader/mc/read_field_x1y0_uv_igd.g4i      |   33 
 xvmc/shader/mc/read_field_x1y0_y.g4i           |   83 
 xvmc/shader/mc/read_field_x1y0_y_igd.g4i       |   35 
 xvmc/shader/mc/read_field_x1y1_uv.g4i          |  172 +
 xvmc/shader/mc/read_field_x1y1_uv_igd.g4i      |   66 
 xvmc/shader/mc/read_field_x1y1_y.g4i           |  166 +
 xvmc/shader/mc/read_field_x1y1_y_igd.g4i       |   64 
 xvmc/shader/mc/read_frame_x0y0_uv.g4i          |   73 
 xvmc/shader/mc/read_frame_x0y0_uv_igd.g4i      |   28 
 xvmc/shader/mc/read_frame_x0y0_y.g4i           |  109 
 xvmc/shader/mc/read_frame_x0y0_y_igd.g4i       |   35 
 xvmc/shader/mc/read_frame_x0y1_uv.g4i          |   79 
 xvmc/shader/mc/read_frame_x0y1_uv_igd.g4i      |   44 
 xvmc/shader/mc/read_frame_x0y1_y.g4i           |  113 
 xvmc/shader/mc/read_frame_x0y1_y_igd.g4i       |   49 
 xvmc/shader/mc/read_frame_x1y0_uv.g4i          |   75 
 xvmc/shader/mc/read_frame_x1y0_uv_igd.g4i      |   41 
 xvmc/shader/mc/read_frame_x1y0_y.g4i           |  110 
 xvmc/shader/mc/read_frame_x1y0_y_igd.g4i       |   43 
 xvmc/shader/mc/read_frame_x1y1_uv.g4i          |  159 +
 xvmc/shader/mc/read_frame_x1y1_uv_igd.g4i      |   71 
 xvmc/shader/mc/read_frame_x1y1_y.g4i           |  264 ++
 xvmc/shader/mc/read_frame_x1y1_y_igd.g4i       |   92 
 xvmc/shader/vld/Makefile.am                    |   74 
 xvmc/shader/vld/addidct.g4i                    |  152 +
 xvmc/shader/vld/do_iq_intra.g4i                |   64 
 xvmc/shader/vld/do_iq_non_intra.g4i            |   59 
 xvmc/shader/vld/field_backward.g4a             |  126 +
 xvmc/shader/vld/field_backward.g4b             |  553 ++++
 xvmc/shader/vld/field_backward.g4b.gen5        |  553 ++++
 xvmc/shader/vld/field_f_b.g4a                  |  213 +
 xvmc/shader/vld/field_f_b.g4b                  | 1007 ++++++++
 xvmc/shader/vld/field_f_b.g4b.gen5             | 1007 ++++++++
 xvmc/shader/vld/field_forward.g4a              |  130 +
 xvmc/shader/vld/field_forward.g4b              |  555 ++++
 xvmc/shader/vld/field_forward.g4b.gen5         |  555 ++++
 xvmc/shader/vld/frame_backward.g4a             |   61 
 xvmc/shader/vld/frame_backward.g4b             |  369 +++
 xvmc/shader/vld/frame_backward.g4b.gen5        |  369 +++
 xvmc/shader/vld/frame_f_b.g4a                  |  120 +
 xvmc/shader/vld/frame_f_b.g4b                  |  675 +++++
 xvmc/shader/vld/frame_f_b.g4b.gen5             |  675 +++++
 xvmc/shader/vld/frame_forward.g4a              |   61 
 xvmc/shader/vld/frame_forward.g4b              |  369 +++
 xvmc/shader/vld/frame_forward.g4b.gen5         |  369 +++
 xvmc/shader/vld/idct.g4i                       |  147 +
 xvmc/shader/vld/ipicture.g4a                   |  209 +
 xvmc/shader/vld/ipicture.g4b                   |  313 ++
 xvmc/shader/vld/ipicture.g4b.gen5              |  313 ++
 xvmc/shader/vld/iq_intra.g4i                   |  131 +
 xvmc/shader/vld/iq_non_intra.g4i               |  150 +
 xvmc/shader/vld/lib.g4a                        |  190 +
 xvmc/shader/vld/lib.g4b                        |  307 ++
 xvmc/shader/vld/lib.g4b.gen5                   |  307 ++
 xvmc/shader/vld/motion_field_uv.g4i            |   46 
 xvmc/shader/vld/motion_field_y.g4i             |   45 
 xvmc/shader/vld/motion_frame_uv.g4i            |   45 
 xvmc/shader/vld/motion_frame_y.g4i             |   57 
 xvmc/shader/vld/read_field_x0y0_uv.g4i         |   50 
 xvmc/shader/vld/read_field_x0y0_y.g4i          |   57 
 xvmc/shader/vld/read_field_x0y1_uv.g4i         |   28 
 xvmc/shader/vld/read_field_x0y1_y.g4i          |   60 
 xvmc/shader/vld/read_field_x1y0_uv.g4i         |   24 
 xvmc/shader/vld/read_field_x1y0_y.g4i          |   57 
 xvmc/shader/vld/read_field_x1y1_uv.g4i         |   53 
 xvmc/shader/vld/read_field_x1y1_y.g4i          |   87 
 xvmc/shader/vld/read_frame_x0y0_uv.g4i         |   49 
 xvmc/shader/vld/read_frame_x0y0_y.g4i          |   58 
 xvmc/shader/vld/read_frame_x0y1_uv.g4i         |   56 
 xvmc/shader/vld/read_frame_x0y1_y.g4i          |   61 
 xvmc/shader/vld/read_frame_x1y0_uv.g4i         |   42 
 xvmc/shader/vld/read_frame_x1y0_y.g4i          |   58 
 xvmc/shader/vld/read_frame_x1y1_uv.g4i         |   74 
 xvmc/shader/vld/read_frame_x1y1_y.g4i          |  112 
 xvmc/xvmc_vld.c                                | 1224 ++++++++++
 486 files changed, 93195 insertions(+), 82494 deletions(-)

New commits:
commit 36d142153b45f4c95d606d14bbbb51d8fdec5d2e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Sep 28 18:38:12 2013 +0100

    2.99.903 snapshot

diff --git a/NEWS b/NEWS
index f716bc6..159c67c 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,41 @@
+Snapshot 2.99.903 (2013-09-28)
+==============================
+Lots more stabilization work, not yet peaceful enough to christen 3.0. We
+have everything ranging from build fixes for systems like Suse Linux
+Enterprise Desktop that like to backport hardware enablement to ancient
+packages, to fixes for hardware enabling, and some more performance tuning.
+
+ * Fix VSync on Haswell.
+   https://bugs.freedesktop.org/show_bug.cgi?id=69119
+
+ * Disable Y-tiling on gen4 - it too frequently leads to instability.
+   https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1222203
+
+ * Disable same EDID detection based on property id - the kernel likes
+   to reuse ids leading to a failure to detect the right modes on a monitor
+   change.
+
+ * Avoid issuing multiple DPMS requests to the same encoder (alised to
+   multiple connectors) to avoid upsetting Haswell and leaving the
+   screens blank.
+
+ * Honour the user preferrence for the initial mode, even if they are
+   being silly
+   https://bugzilla.novell.com/show_bug.cgi?id=841696
+
+ * Clear the clear hint when apply DRI updates - to prevent some
+   screenshots from GL windows being left blank.
+   https://bugs.freedesktop.org/show_bug.cgi?id=69730
+
+ * Prevent a NULL dereference from trying to undo an non-existent buffer
+   https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1228677
+
+ * Handle out-of-memory conditions far more gracefully. If the system is
+   hard against the memory wall, then the kernel will start issuing
+   SIGBUS even for CPU mmaps. Untrapped these will cause X to die.
+   https://bugs.freedesktop.org/show_bug.cgi?id=67889
+
+
 Snapshot 2.99.902 (2013-09-07)
 ==============================
 We do not condone or support Canonical in the course of action they have
diff --git a/configure.ac b/configure.ac
index 7f4ba46..5484c86 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-video-intel],
-        [2.99.902],
+        [2.99.903],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-video-intel])
 AC_CONFIG_SRCDIR([Makefile.am])

commit 2c67e9da5fc4c47f3f67082bd4adaf80d9e7399f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Sep 28 10:13:25 2013 +0100

    sna: Avoid reads from a GTT mmapped upload buffer
    
    We now allow LLC machines to also use GTT upload buffers, so we need to
    be cache when scanning the cache to look for suitable buffers.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index 2a5820c..4bd12f6 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -5658,7 +5658,7 @@ struct kgem_bo *kgem_create_buffer(struct kgem *kgem,
 			assert(bo->mmapped);
 			assert(bo->mmapped == MMAPPED_GTT || kgem->has_llc || bo->base.snoop);
 
-			if (!kgem->has_llc && (bo->write & ~flags) & KGEM_BUFFER_INPLACE) {
+			if ((bo->write & ~flags) & KGEM_BUFFER_INPLACE && !bo->base.snoop) {
 				DBG(("%s: skip write %x buffer, need %x\n",
 				     __FUNCTION__, bo->write, flags));
 				continue;

commit 5a5f9b2812a04721f9dbd67552a39c278cdde18b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Sep 28 08:12:22 2013 +0100

    sna: OsSigHandler expects 0 on handled
    
    Returning 0 from sigtrap_handler() when we wish to fallback to the core
    OsSigHandler was precisely the wrong thing to do.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index fd77164..6f56a9e 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -408,7 +408,7 @@ static int sigtrap_handler(int sig)
 		siglongjmp(sigjmp, sig);
 	}
 
-	return 0;
+	return -1;
 }
 
 static void sigtrap_init(void)

commit 2893d2b51653cc254000454ad054cd9f0afb1291
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Sep 27 19:52:30 2013 +0100

    sna: Fix regression in picture extraction
    
    This is a little helper function, that just returns a bool, not the
    error code used by the render backends. Instead the caller tries an
    alternative method of extraction before giving up.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

diff --git a/src/sna/gen2_render.c b/src/sna/gen2_render.c
index 385a5fd..9ae8352 100644
--- a/src/sna/gen2_render.c
+++ b/src/sna/gen2_render.c
@@ -264,6 +264,8 @@ gen2_emit_texture(struct sna *sna,
 	uint32_t texcoordtype;
 	uint32_t filter;
 
+	assert(channel->bo);
+
 	if (channel->is_affine)
 		texcoordtype = TEXCOORDTYPE_CARTESIAN;
 	else
@@ -2569,6 +2571,7 @@ gen2_render_composite_spans(struct sna *sna,
 	case 1:
 		break;
 	}
+	assert(tmp->base.src.bo || tmp->base.src.is_solid);
 
 	tmp->prim_emit = gen2_emit_composite_spans_primitive;
 	tmp->base.floats_per_vertex = 3;
diff --git a/src/sna/sna_dri.c b/src/sna/sna_dri.c
index a009d3e..00a65a9 100644
--- a/src/sna/sna_dri.c
+++ b/src/sna/sna_dri.c
@@ -1148,8 +1148,8 @@ can_flip(struct sna * sna,
 
 	pixmap = get_window_pixmap(win);
 	if (pixmap != sna->front) {
-		DBG(("%s: no, window is not attached to the front buffer\n",
-		     __FUNCTION__));
+		DBG(("%s: no, window (pixmap=%ld) is not attached to the front buffer (pixmap=%ld)\n",
+		     __FUNCTION__, pixmap->drawable.serialNumber, sna->front->drawable.serialNumber));
 		return false;
 	}
 
diff --git a/src/sna/sna_render.c b/src/sna/sna_render.c
index 73d53ba..c023629 100644
--- a/src/sna/sna_render.c
+++ b/src/sna/sna_render.c
@@ -897,8 +897,10 @@ sna_render_pixmap_partial(struct sna *sna,
 	DBG(("%s (%d, %d)x(%d, %d), pitch %d, max %d\n",
 	     __FUNCTION__, x, y, w, h, bo->pitch, sna->render.max_3d_pitch));
 
-	if (bo->pitch > sna->render.max_3d_pitch)
+	if (bo->pitch > sna->render.max_3d_pitch) {
+		DBG(("%s: pitch too great %d > %d\n", __FUNCTION__, bo->pitch, sna->render.max_3d_pitch));
 		return false;
+	}
 
 	box.x1 = x;
 	box.y1 = y;
@@ -981,7 +983,7 @@ sna_render_pixmap_partial(struct sna *sna,
 	return true;
 }
 
-static int
+static bool
 sna_render_picture_partial(struct sna *sna,
 			   PicturePtr picture,
 			   struct sna_composite_channel *channel,
@@ -1033,14 +1035,14 @@ sna_render_picture_partial(struct sna *sna,
 		priv = sna_pixmap_force_to_gpu(pixmap,
 					       MOVE_READ | MOVE_SOURCE_HINT);
 		if (priv == NULL)
-			return 0;
+			return false;
 
 		bo = priv->gpu_bo;
 	}
 
 	if (bo->pitch > sna->render.max_3d_pitch) {
 		DBG(("%s: pitch too great %d > %d\n", __FUNCTION__, bo->pitch, sna->render.max_3d_pitch));
-		return -1;
+		return false;
 	}
 
 	if (bo->tiling) {
@@ -1076,14 +1078,14 @@ sna_render_picture_partial(struct sna *sna,
 	if (w <= 0 || h <= 0 ||
 	    w > sna->render.max_3d_size ||
 	    h > sna->render.max_3d_size)
-		return 0;
+		return false;
 
 	/* How many tiles across are we? */
 	channel->bo = kgem_create_proxy(&sna->kgem, bo,
 					box.y1 * bo->pitch + offset,
 					h * bo->pitch);
 	if (channel->bo == NULL)
-		return 0;
+		return false;
 
 	if (channel->transform) {
 		memset(&channel->embedded_transform,
@@ -1109,7 +1111,7 @@ sna_render_picture_partial(struct sna *sna,
 	channel->scale[1] = 1.f/h;
 	channel->width  = w;
 	channel->height = h;
-	return 1;
+	return true;
 }
 
 int

commit 4c9265ebff496a4d4f974768e264bd65babff97e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Sep 27 10:46:40 2013 +0100

    sna: Only flush the scanout if we successfully upload it to the GPU
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 9a6f50b..fd77164 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -15476,9 +15476,9 @@ static void sna_accel_flush(struct sna *sna)
 		sna_accel_disarm_timer(sna, FLUSH_TIMER);
 	sna->kgem.busy = busy;
 
-	if (priv) {
-		sna_pixmap_force_to_gpu(priv->pixmap,
-					MOVE_READ | MOVE_ASYNC_HINT);
+	if (priv &&
+	    sna_pixmap_force_to_gpu(priv->pixmap,
+				    MOVE_READ | MOVE_ASYNC_HINT)) {
 		kgem_scanout_flush(&sna->kgem, priv->gpu_bo);
 		assert(!priv->cpu);
 	}

commit 47ac44159c0e3ea0c84510f1d58ac140344b5e69
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Sep 27 10:19:47 2013 +0100

    sna: Make sure we do not try to upload indirectly if the GPU is wedged
    
    Otherwise we trigger assertions and may end up with corruption.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

diff --git a/src/sna/sna_io.c b/src/sna/sna_io.c
index d66668c..0988d3d 100644
--- a/src/sna/sna_io.c
+++ b/src/sna/sna_io.c
@@ -729,6 +729,9 @@ bool sna_write_boxes(struct sna *sna, PixmapPtr dst,
 				box, nbox))
 		return true;
 
+	if (wedged(sna))
+		return false;
+
 	can_blt = kgem_bo_can_blt(kgem, dst_bo) &&
 		(box[0].x2 - box[0].x1) * dst->drawable.bitsPerPixel < 8 * (MAXSHORT - 4);
 	extents = box[0];

commit 7206d0bb916fa69690a5f4fdcc5e7e81787c6c16
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Sep 27 10:01:34 2013 +0100

    sna: Disable the promotion of large bo as flush
    
    We can rely on our aperture and idleness tracking to appropriate flush
    batches. Marking the large bo as flush interferes with the treatment of
    flush for externally named bo, such as DRI/PRIME.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index 4a82d4a..2a5820c 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -4019,7 +4019,6 @@ struct kgem_bo *kgem_create_2d(struct kgem *kgem,
 			assert(bo->pitch*kgem_aligned_height(kgem, height, bo->tiling) <= kgem_bo_size(bo));
 			assert_tiling(kgem, bo);
 			bo->refcnt = 1;
-			bo->flush = true;
 			return bo;
 		}
 
@@ -4387,12 +4386,6 @@ create:
 		return NULL;
 	}
 
-	if (bucket >= NUM_CACHE_BUCKETS) {
-		DBG(("%s: marking large bo for automatic flushing\n",
-		     __FUNCTION__));
-		bo->flush = true;
-	}
-
 	bo->unique_id = kgem_get_unique_id(kgem);
 	if (tiling == I915_TILING_NONE ||
 	    gem_set_tiling(kgem->fd, handle, tiling, pitch)) {

commit 6ac1ac98c28d38b539f465c5ac488d879f1c2ab6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Sep 26 23:23:47 2013 +0000

    sna: Catch SIGBUS to prevent X death
    
    We know that when we access either a CPU or GTT mmap we are vulernable
    to receiving a SIGBUS. In fact, we can catch these and abort the
    operation preventing X and all of its clients from randomly dieing.
    
    This helps for instance if you try and use a 1GiB frontbuffer on a 2GiB
    machine...
    
    For complete protection, we also need to catch signals for all GTT maps,
    such as VBO and staging buffers. (TBD)
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

diff --git a/src/sna/sna.h b/src/sna/sna.h
index d389026..f7c5315 100644
--- a/src/sna/sna.h
+++ b/src/sna/sna.h
@@ -69,6 +69,9 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include <libudev.h>
 #endif
 
+#include <signal.h>
+#include <setjmp.h>
+
 #include "compiler.h"
 
 #if HAS_DEBUG_FULL
@@ -973,4 +976,16 @@ void sna_image_composite(pixman_op_t        op,
 			 uint16_t           width,
 			 uint16_t           height);
 
+extern jmp_buf sigjmp;
+extern volatile sig_atomic_t sigtrap;
+
+#define sigtrap_assert() assert(sigtrap == 0)
+#define sigtrap_get() sigsetjmp(sigjmp, ++sigtrap)
+
+static inline void sigtrap_put(void)
+{
+	--sigtrap;
+	sigtrap_assert();
+}
+
 #endif /* _SNA_H */
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index d7a0828..9a6f50b 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -397,6 +397,25 @@ static void assert_pixmap_damage(PixmapPtr p)
 #endif
 #endif
 
+jmp_buf sigjmp;
+volatile sig_atomic_t sigtrap;
+
+static int sigtrap_handler(int sig)
+{
+	if (sigtrap) {
+		/* XXX rate-limited squawk? */
+		sigtrap = 0;
+		siglongjmp(sigjmp, sig);
+	}
+
+	return 0;
+}
+
+static void sigtrap_init(void)
+{
+	OsRegisterSigWrapper(sigtrap_handler);
+}
+
 inline static bool
 sna_fill_init_blt(struct sna_fill_op *fill,
 		  struct sna *sna,
@@ -1837,6 +1856,7 @@ _sna_pixmap_move_to_cpu(PixmapPtr pixmap, unsigned int flags)
 
 	assert(flags & (MOVE_READ | MOVE_WRITE));
 	assert_pixmap_damage(pixmap);
+	sigtrap_assert();
 
 	priv = sna_pixmap(pixmap);
 	if (priv == NULL) {
@@ -2126,6 +2146,7 @@ done:
 	assert(pixmap->devKind);
 	assert_pixmap_damage(pixmap);
 	assert(has_coherent_ptr(sna, sna_pixmap(pixmap)));
+	sigtrap_assert();
 	return true;
 }
 
@@ -2256,6 +2277,7 @@ sna_drawable_move_region_to_cpu(DrawablePtr drawable,
 		assert_drawable_contains_box(drawable, &region->extents);
 	}
 	assert(flags & (MOVE_WRITE | MOVE_READ));
+	sigtrap_assert();
 
 	if (box_empty(&region->extents))
 		return true;
@@ -2744,6 +2766,7 @@ out:
 	assert(pixmap->devKind);
 	assert_pixmap_damage(pixmap);
 	assert(has_coherent_ptr(sna, sna_pixmap(pixmap)));
+	sigtrap_assert();
 	return true;
 }
 
@@ -2766,6 +2789,8 @@ sna_drawable_move_to_cpu(DrawablePtr drawable, unsigned flags)
 	     drawable->width, drawable->height,
 	     dx, dy, flags));
 
+	sigtrap_assert();
+
 	region.extents.x1 = drawable->x + dx;
 	region.extents.y1 = drawable->y + dy;
 	region.extents.x2 = region.extents.x1 + drawable->width;
@@ -2841,6 +2866,7 @@ static inline struct sna_pixmap *
 sna_pixmap_mark_active(struct sna *sna, struct sna_pixmap *priv)
 {
 	assert(priv->gpu_bo);
+	sigtrap_assert();
 	DBG(("%s: pixmap=%ld, handle=%u\n", __FUNCTION__,
 	     priv->pixmap->drawable.serialNumber,
 	     priv->gpu_bo->handle));
@@ -2889,6 +2915,8 @@ sna_pixmap_move_area_to_gpu(PixmapPtr pixmap, const BoxRec *box, unsigned int fl
 	     __FUNCTION__, pixmap->drawable.serialNumber,
 	     box->x1, box->y1, box->x2, box->y2, flags));
 
+	sigtrap_assert();
+
 	priv = __sna_pixmap_for_gpu(sna, pixmap, flags);
 	if (priv == NULL)
 		return NULL;
@@ -3606,6 +3634,8 @@ sna_pixmap_move_to_gpu(PixmapPtr pixmap, unsigned flags)
 	     pixmap->usage_hint,
 	     flags));
 
+	sigtrap_assert();
+
 	priv = __sna_pixmap_for_gpu(sna, pixmap, flags);
 	if (priv == NULL)
 		return NULL;
@@ -3830,6 +3860,8 @@ static bool must_check sna_gc_move_to_cpu(GCPtr gc,
 
 	DBG(("%s, changes=%lx\n", __FUNCTION__, changes));
 
+	sigtrap_assert();
+
 	assert(gc->ops == (GCOps *)&sna_gc_ops);
 	gc->ops = (GCOps *)&sna_gc_ops__cpu;
 
@@ -4091,12 +4123,16 @@ try_upload_blt(PixmapPtr pixmap, RegionRec *region,
 	     __FUNCTION__, x, y, w, h,
 	     RegionNumRects(region)));
 
-	ok = sna->render.copy_boxes(sna, GXcopy,
-				    pixmap, src_bo, -x, -y,
-				    pixmap, priv->gpu_bo, 0, 0,
-				    RegionRects(region),
-				    RegionNumRects(region),
-				    COPY_LAST);
+	if (sigtrap_get() == 0) {
+		ok = sna->render.copy_boxes(sna, GXcopy,
+					    pixmap, src_bo, -x, -y,
+					    pixmap, priv->gpu_bo, 0, 0,
+					    RegionRects(region),
+					    RegionNumRects(region),
+					    COPY_LAST);
+		sigtrap_put();
+	} else
+		ok = false;
 
 	kgem_bo_sync__cpu(&sna->kgem, src_bo);
 	assert(src_bo->rq == NULL);
@@ -4201,6 +4237,9 @@ try_upload_tiled_x(PixmapPtr pixmap, RegionRec *region,
 
 	DBG(("%s: upload(%d, %d, %d, %d) x %d\n", __FUNCTION__, x, y, w, h, n));
 
+	if (sigtrap_get())
+		return false;
+
 	if (priv->gpu_bo->tiling) {
 		do {
 			memcpy_to_tiled_x(&sna->kgem, bits, dst,
@@ -4223,6 +4262,8 @@ try_upload_tiled_x(PixmapPtr pixmap, RegionRec *region,


Reply to: