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

mesa: Changes to 'ubuntu-maverick'



 SConstruct                                                    |    4 
 bin/minstall                                                  |   21 
 bin/mklib                                                     |   34 
 configs/autoconf.in                                           |    2 
 configs/default                                               |    2 
 configure.ac                                                  |   73 
 debian/changelog                                              |   29 
 debian/patches/104_i915_fragment_shader_disable.patch         |   26 
 debian/patches/series                                         |    1 
 debian/rules                                                  |    2 
 docs/contents.html                                            |    1 
 docs/developers.html                                          |   26 
 docs/egl.html                                                 |   12 
 docs/intro.html                                               |    8 
 docs/news.html                                                |   18 
 docs/subset-A.html                                            |    3 
 scons/gallium.py                                              |   22 
 src/egl/docs/EGL_MESA_screen_surface                          |    2 
 src/egl/main/eglapi.c                                         |    2 
 src/egl/main/eglconfig.h                                      |    2 
 src/egl/main/eglmode.c                                        |    2 
 src/egl/main/eglscreen.c                                      |    2 
 src/gallium/auxiliary/draw/draw_vs_aos.h                      |    2 
 src/gallium/auxiliary/draw/draw_vs_llvm.c                     |    1 
 src/gallium/auxiliary/gallivm/lp_bld_arit.c                   |   12 
 src/gallium/auxiliary/gallivm/lp_bld_const.c                  |   15 
 src/gallium/auxiliary/gallivm/lp_bld_const.h                  |    2 
 src/gallium/auxiliary/gallivm/lp_bld_debug.c                  |    2 
 src/gallium/auxiliary/gallivm/lp_bld_format_aos.c             |    4 
 src/gallium/auxiliary/gallivm/lp_bld_logic.c                  |   29 
 src/gallium/auxiliary/gallivm/lp_bld_logic.h                  |    4 
 src/gallium/auxiliary/gallivm/lp_bld_misc.cpp                 |    8 
 src/gallium/auxiliary/gallivm/lp_bld_sample.c                 |  103 
 src/gallium/auxiliary/gallivm/lp_bld_sample.h                 |    9 
 src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c             |  300 
 src/gallium/auxiliary/gallivm/lp_bld_swizzle.c                |   15 
 src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c               |   22 
 src/gallium/auxiliary/gallivm/lp_bld_type.h                   |    8 
 src/gallium/auxiliary/pipebuffer/pb_bufmgr.h                  |    3 
 src/gallium/auxiliary/rtasm/rtasm_x86sse.h                    |    1 
 src/gallium/auxiliary/tgsi/tgsi_dump.h                        |    1 
 src/gallium/auxiliary/tgsi/tgsi_info.h                        |    1 
 src/gallium/auxiliary/tgsi/tgsi_parse.h                       |    1 
 src/gallium/auxiliary/tgsi/tgsi_sse2.h                        |    5 
 src/gallium/auxiliary/util/u_bitmask.h                        |    3 
 src/gallium/auxiliary/util/u_blit.h                           |   12 
 src/gallium/auxiliary/util/u_blitter.c                        |    2 
 src/gallium/auxiliary/util/u_blitter.h                        |   36 
 src/gallium/auxiliary/util/u_dirty_surfaces.h                 |    4 
 src/gallium/auxiliary/util/u_draw.h                           |    1 
 src/gallium/auxiliary/util/u_format.c                         |   56 
 src/gallium/auxiliary/util/u_format.h                         |   42 
 src/gallium/auxiliary/util/u_linear.h                         |    1 
 src/gallium/auxiliary/util/u_math.h                           |   13 
 src/gallium/auxiliary/util/u_simple_shaders.c                 |    1 
 src/gallium/auxiliary/util/u_split_prim.h                     |   11 
 src/gallium/auxiliary/util/u_tile.h                           |    3 
 src/gallium/auxiliary/util/u_transfer.h                       |    1 
 src/gallium/auxiliary/util/u_upload_mgr.h                     |    5 
 src/gallium/drivers/galahad/glhd_context.c                    |   16 
 src/gallium/drivers/galahad/glhd_objects.h                    |    2 
 src/gallium/drivers/galahad/glhd_screen.c                     |    2 
 src/gallium/drivers/llvmpipe/Makefile                         |    3 
 src/gallium/drivers/llvmpipe/SConscript                       |    3 
 src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c               |    5 
 src/gallium/drivers/llvmpipe/lp_bld_interp.c                  |   83 
 src/gallium/drivers/llvmpipe/lp_bld_interp.h                  |    2 
 src/gallium/drivers/llvmpipe/lp_context.c                     |   10 
 src/gallium/drivers/llvmpipe/lp_context.h                     |    3 
 src/gallium/drivers/llvmpipe/lp_flush.c                       |    1 
 src/gallium/drivers/llvmpipe/lp_query.c                       |   52 
 src/gallium/drivers/llvmpipe/lp_query.h                       |    8 
 src/gallium/drivers/llvmpipe/lp_rast.c                        |  350 
 src/gallium/drivers/llvmpipe/lp_rast.h                        |   93 
 src/gallium/drivers/llvmpipe/lp_rast_debug.c                  |  409 
 src/gallium/drivers/llvmpipe/lp_rast_priv.h                   |   72 
 src/gallium/drivers/llvmpipe/lp_rast_tri.c                    |  151 
 src/gallium/drivers/llvmpipe/lp_rast_tri_tmp.h                |   38 
 src/gallium/drivers/llvmpipe/lp_scene.c                       |  374 
 src/gallium/drivers/llvmpipe/lp_scene.h                       |  209 
 src/gallium/drivers/llvmpipe/lp_screen.c                      |    9 
 src/gallium/drivers/llvmpipe/lp_setup.c                       |  613 
 src/gallium/drivers/llvmpipe/lp_setup.h                       |   13 
 src/gallium/drivers/llvmpipe/lp_setup_coef.c                  |  279 
 src/gallium/drivers/llvmpipe/lp_setup_coef.h                  |   64 
 src/gallium/drivers/llvmpipe/lp_setup_coef_intrin.c           |  228 
 src/gallium/drivers/llvmpipe/lp_setup_context.h               |   40 
 src/gallium/drivers/llvmpipe/lp_setup_line.c                  |  680 
 src/gallium/drivers/llvmpipe/lp_setup_point.c                 |  308 
 src/gallium/drivers/llvmpipe/lp_setup_tri.c                   |  513 
 src/gallium/drivers/llvmpipe/lp_setup_vbuf.c                  |    6 
 src/gallium/drivers/llvmpipe/lp_state_derived.c               |   20 
 src/gallium/drivers/llvmpipe/lp_state_fs.c                    |   61 
 src/gallium/drivers/llvmpipe/lp_state_fs.h                    |    9 
 src/gallium/drivers/llvmpipe/lp_state_rasterizer.c            |    8 
 src/gallium/drivers/llvmpipe/lp_surface.c                     |    8 
 src/gallium/drivers/llvmpipe/lp_texture.c                     |    2 
 src/gallium/drivers/llvmpipe/sse_mathfun.h                    |   49 
 src/gallium/drivers/nouveau/nouveau_class.h                   | 9034 ----------
 src/gallium/drivers/nouveau/nouveau_screen.c                  |    3 
 src/gallium/drivers/nouveau/nouveau_winsys.h                  |    1 
 src/gallium/drivers/nouveau/nv_m2mf.xml.h                     |  155 
 src/gallium/drivers/nouveau/nv_object.xml.h                   |  231 
 src/gallium/drivers/nv50/nv50_context.h                       |    1 
 src/gallium/drivers/nv50/nv50_reg.h                           | 1774 +
 src/gallium/drivers/nvfx/Makefile                             |    8 
 src/gallium/drivers/nvfx/SConscript                           |    6 
 src/gallium/drivers/nvfx/nv01_2d.xml.h                        | 1343 +
 src/gallium/drivers/nvfx/nv04_2d.c                            |  136 
 src/gallium/drivers/nvfx/nv04_2d.h                            |   22 
 src/gallium/drivers/nvfx/nv30-40_3d.xml.h                     | 2022 ++
 src/gallium/drivers/nvfx/nv30_fragtex.c                       |   24 
 src/gallium/drivers/nvfx/nv30_vertprog.h                      |    6 
 src/gallium/drivers/nvfx/nv40_fragtex.c                       |   30 
 src/gallium/drivers/nvfx/nv40_vertprog.h                      |    1 
 src/gallium/drivers/nvfx/nvfx_context.c                       |   10 
 src/gallium/drivers/nvfx/nvfx_context.h                       |   32 
 src/gallium/drivers/nvfx/nvfx_draw.c                          |  244 
 src/gallium/drivers/nvfx/nvfx_fragprog.c                      |  197 
 src/gallium/drivers/nvfx/nvfx_fragtex.c                       |   84 
 src/gallium/drivers/nvfx/nvfx_miptree.c                       |    9 
 src/gallium/drivers/nvfx/nvfx_push.c                          |   28 
 src/gallium/drivers/nvfx/nvfx_query.c                         |   31 
 src/gallium/drivers/nvfx/nvfx_screen.c                        |  179 
 src/gallium/drivers/nvfx/nvfx_screen.h                        |    5 
 src/gallium/drivers/nvfx/nvfx_shader.h                        |   13 
 src/gallium/drivers/nvfx/nvfx_state.c                         |   68 
 src/gallium/drivers/nvfx/nvfx_state.h                         |   20 
 src/gallium/drivers/nvfx/nvfx_state_blend.c                   |   22 
 src/gallium/drivers/nvfx/nvfx_state_emit.c                    |  309 
 src/gallium/drivers/nvfx/nvfx_state_fb.c                      |  108 
 src/gallium/drivers/nvfx/nvfx_state_rasterizer.c              |    9 
 src/gallium/drivers/nvfx/nvfx_state_scissor.c                 |   23 
 src/gallium/drivers/nvfx/nvfx_state_stipple.c                 |   11 
 src/gallium/drivers/nvfx/nvfx_state_viewport.c                |   35 
 src/gallium/drivers/nvfx/nvfx_state_zsa.c                     |   21 
 src/gallium/drivers/nvfx/nvfx_surface.c                       |  202 
 src/gallium/drivers/nvfx/nvfx_tex.h                           |   54 
 src/gallium/drivers/nvfx/nvfx_vbo.c                           |  112 
 src/gallium/drivers/nvfx/nvfx_vertprog.c                      |  504 
 src/gallium/drivers/r300/r300_blit.c                          |    6 
 src/gallium/drivers/r300/r300_context.c                       |    2 
 src/gallium/drivers/r300/r300_debug.c                         |   37 
 src/gallium/drivers/r300/r300_emit.c                          |    4 
 src/gallium/drivers/r300/r300_fs.c                            |   20 
 src/gallium/drivers/r300/r300_reg.h                           |    1 
 src/gallium/drivers/r300/r300_render.c                        |    3 
 src/gallium/drivers/r300/r300_screen.h                        |    1 
 src/gallium/drivers/r300/r300_state.c                         |    8 
 src/gallium/drivers/r300/r300_state_derived.c                 |   24 
 src/gallium/drivers/r300/r300_texture.c                       |   55 
 src/gallium/drivers/r300/r300_texture.h                       |    7 
 src/gallium/drivers/r300/r300_texture_desc.h                  |    1 
 src/gallium/drivers/r300/r300_vs.c                            |    5 
 src/gallium/drivers/r300/r300_winsys.h                        |    1 
 src/gallium/drivers/r600/Makefile                             |    3 
 src/gallium/drivers/r600/r600_asm.c                           |  384 
 src/gallium/drivers/r600/r600_asm.h                           |   47 
 src/gallium/drivers/r600/r600_blit.c                          |  420 
 src/gallium/drivers/r600/r600_buffer.c                        |    5 
 src/gallium/drivers/r600/r600_context.c                       |  281 
 src/gallium/drivers/r600/r600_context.h                       |  107 
 src/gallium/drivers/r600/r600_draw.c                          |   95 
 src/gallium/drivers/r600/r600_hw_states.c                     | 1129 +
 src/gallium/drivers/r600/r600_opcodes.h                       |  178 
 src/gallium/drivers/r600/r600_query.c                         |   48 
 src/gallium/drivers/r600/r600_resource.h                      |    8 
 src/gallium/drivers/r600/r600_screen.c                        |    3 
 src/gallium/drivers/r600/r600_screen.h                        |    3 
 src/gallium/drivers/r600/r600_shader.c                        | 1303 +
 src/gallium/drivers/r600/r600_shader.h                        |    2 
 src/gallium/drivers/r600/r600_sq.h                            |  174 
 src/gallium/drivers/r600/r600_state.c                         | 1406 -
 src/gallium/drivers/r600/r600_state_inlines.h                 |  124 
 src/gallium/drivers/r600/r600_states_inc.h                    |  535 
 src/gallium/drivers/r600/r600_texture.c                       |  129 
 src/gallium/drivers/r600/r600d.h                              |    8 
 src/gallium/drivers/r600/r700_asm.c                           |   36 
 src/gallium/drivers/r600/radeon.h                             |  562 
 src/gallium/drivers/softpipe/sp_flush.c                       |    1 
 src/gallium/drivers/svga/svga_context.c                       |    5 
 src/gallium/drivers/svga/svga_context.h                       |    1 
 src/gallium/drivers/svga/svga_state_framebuffer.c             |   15 
 src/gallium/drivers/svga/svga_state_tss.c                     |   14 
 src/gallium/drivers/svga/svga_tgsi_insn.c                     |   19 
 src/gallium/drivers/trace/tr_context.c                        |    5 
 src/gallium/include/pipe/p_context.h                          |   30 
 src/gallium/include/pipe/p_defines.h                          |    2 
 src/gallium/include/pipe/p_format.h                           |    2 
 src/gallium/include/pipe/p_shader_tokens.h                    |    4 
 src/gallium/include/pipe/p_state.h                            |    1 
 src/gallium/include/state_tracker/graw.h                      |   28 
 src/gallium/state_trackers/dri/common/dri_context.c           |   68 
 src/gallium/state_trackers/dri/common/dri_context.h           |    4 
 src/gallium/state_trackers/dri/common/dri_screen.c            |   18 
 src/gallium/state_trackers/dri/common/dri_screen.h            |    2 
 src/gallium/state_trackers/dri/drm/dri2.c                     |    8 
 src/gallium/state_trackers/egl/common/egl_g3d.c               |    9 
 src/gallium/state_trackers/egl/common/egl_g3d_api.c           |   25 
 src/gallium/state_trackers/egl/common/egl_g3d_image.c         |  245 
 src/gallium/state_trackers/egl/common/egl_g3d_image.h         |    8 
 src/gallium/state_trackers/egl/kms/native_kms.c               |   46 
 src/gallium/state_trackers/glx/xlib/glx_api.c                 |    2 
 src/gallium/state_trackers/glx/xlib/xm_st.c                   |    8 
 src/gallium/targets/SConscript                                |   15 
 src/gallium/targets/dri-r600/Makefile                         |    4 
 src/gallium/targets/graw-xlib/graw_util.c                     |    1 
 src/gallium/targets/graw-xlib/graw_xlib.c                     |    1 
 src/gallium/targets/libgl-xlib/Makefile                       |   13 
 src/gallium/targets/libgl-xlib/SConscript                     |    4 
 src/gallium/targets/libgl-xlib/xlib.c                         |   12 
 src/gallium/tests/unit/Makefile                               |    1 
 src/gallium/tests/unit/SConscript                             |    1 
 src/gallium/tests/unit/u_format_compatible_test.c             |   76 
 src/gallium/winsys/nouveau/drm/nouveau_drm_winsys.c           |    3 
 src/gallium/winsys/r600/drm/gen_r600_states.py                |   39 
 src/gallium/winsys/r600/drm/r600_state.c                      |  141 
 src/gallium/winsys/r600/drm/r600_states.h                     |  186 
 src/gallium/winsys/r600/drm/radeon.c                          |   70 
 src/gallium/winsys/r600/drm/radeon_bo_pb.c                    |  186 
 src/gallium/winsys/r600/drm/radeon_ctx.c                      |  225 
 src/gallium/winsys/r600/drm/radeon_draw.c                     |  108 
 src/gallium/winsys/r600/drm/radeon_priv.h                     |   37 
 src/gallium/winsys/r600/drm/radeon_state.c                    |  145 
 src/glsl/Makefile                                             |    4 
 src/glsl/Makefile.am                                          |    5 
 src/glsl/README                                               |   34 
 src/glsl/SConscript                                           |    4 
 src/glsl/TODO                                                 |   26 
 src/glsl/ast_function.cpp                                     |  339 
 src/glsl/ast_to_hir.cpp                                       |  286 
 src/glsl/builtin_function.cpp                                 | 3383 +++
 src/glsl/builtin_types.h                                      |   23 
 src/glsl/builtin_variables.h                                  |    7 
 src/glsl/builtins/ir/atan                                     |   55 
 src/glsl/builtins/ir/distance                                 |   10 
 src/glsl/builtins/ir/dot                                      |    2 
 src/glsl/builtins/ir/equal                                    |   84 
 src/glsl/builtins/ir/faceforward                              |    2 
 src/glsl/builtins/ir/greaterThan                              |   54 
 src/glsl/builtins/ir/greaterThanEqual                         |   54 
 src/glsl/builtins/ir/length                                   |    2 
 src/glsl/builtins/ir/lessThan                                 |   54 
 src/glsl/builtins/ir/lessThanEqual                            |   54 
 src/glsl/builtins/ir/matrixCompMult                           |   54 
 src/glsl/builtins/ir/mix                                      |   18 
 src/glsl/builtins/ir/normalize                                |    2 
 src/glsl/builtins/ir/notEqual                                 |   84 
 src/glsl/builtins/ir/outerProduct                             |   54 
 src/glsl/builtins/ir/reflect                                  |    2 
 src/glsl/builtins/ir/refract                                  |   14 
 src/glsl/builtins/ir/smoothstep                               |   38 
 src/glsl/builtins/ir/step                                     |   36 
 src/glsl/builtins/ir/transpose                                |  162 
 src/glsl/builtins/profiles/100.frag                           |  300 
 src/glsl/builtins/profiles/100.vert                           |  300 
 src/glsl/builtins/tools/generate_builtins.py                  |   62 
 src/glsl/glcpp/glcpp-parse.c                                  |  446 
 src/glsl/glcpp/glcpp-parse.h                                  |    7 
 src/glsl/glcpp/glcpp-parse.y                                  |   10 
 src/glsl/glcpp/glcpp.c                                        |    3 
 src/glsl/glcpp/glcpp.h                                        |    4 
 src/glsl/glcpp/pp.c                                           |    6 
 src/glsl/glsl_lexer.cpp                                       | 1782 +
 src/glsl/glsl_lexer.lpp                                       |   48 
 src/glsl/glsl_parser.cpp                                      | 3331 +--
 src/glsl/glsl_parser.h                                        |  173 
 src/glsl/glsl_parser.ypp                                      |  137 
 src/glsl/glsl_parser_extras.cpp                               |   78 
 src/glsl/glsl_parser_extras.h                                 |   37 
 src/glsl/glsl_symbol_table.cpp                                |  160 
 src/glsl/glsl_symbol_table.h                                  |   84 
 src/glsl/glsl_types.cpp                                       |   81 
 src/glsl/glsl_types.h                                         |   12 
 src/glsl/ir.cpp                                               |  136 
 src/glsl/ir.h                                                 |   38 
 src/glsl/ir_algebraic.cpp                                     |   52 
 src/glsl/ir_clone.cpp                                         |    3 
 src/glsl/ir_constant_expression.cpp                           |    4 
 src/glsl/ir_constant_folding.cpp                              |   13 
 src/glsl/ir_constant_propagation.cpp                          |   18 
 src/glsl/ir_copy_propagation.cpp                              |   26 
 src/glsl/ir_expression_flattening.cpp                         |  124 
 src/glsl/ir_hierarchical_visitor.cpp                          |    1 
 src/glsl/ir_hierarchical_visitor.h                            |    7 
 src/glsl/ir_hv_accept.cpp                                     |    9 
 src/glsl/ir_import_prototypes.cpp                             |    2 
 src/glsl/ir_mat_op_to_vec.cpp                                 |  194 
 src/glsl/ir_optimization.h                                    |    2 
 src/glsl/ir_print_visitor.cpp                                 |   35 
 src/glsl/ir_reader.cpp                                        |   78 
 src/glsl/ir_rvalue_visitor.cpp                                |    7 
 src/glsl/ir_validate.cpp                                      |   36 
 src/glsl/ir_variable.cpp                                      |   75 
 src/glsl/link_functions.cpp                                   |    2 
 src/glsl/linker.cpp                                           |   60 
 src/glsl/list.h                                               |   40 
 src/glsl/loop_analysis.cpp                                    |  496 
 src/glsl/loop_analysis.h                                      |  230 
 src/glsl/loop_controls.cpp                                    |  294 
 src/glsl/loop_unroll.cpp                                      |  102 
 src/glsl/main.cpp                                             |   55 
 src/glut/glx/glut_init.c                                      |  393 
 src/glx/Makefile                                              |    6 
 src/glx/dri2.c                                                |   10 
 src/glx/dri2_glx.c                                            |    4 
 src/glx/dri_common.c                                          |   25 
 src/glx/dri_common.h                                          |    3 
 src/glx/dri_glx.c                                             |    4 
 src/glx/drisw_glx.c                                           |    4 
 src/glx/glx_pbuffer.c                                         |   14 
 src/glx/glxclient.h                                           |   10 
 src/glx/glxcmds.c                                             |   64 
 src/glx/glxcurrent.c                                          |   24 
 src/glx/glxext.c                                              |   14 
 src/glx/indirect_glx.c                                        |   16 
 src/mapi/glapi/gen/glX_proto_send.py                          |    6 
 src/mesa/drivers/dri/Makefile.template                        |    5 
 src/mesa/drivers/dri/common/dri_util.c                        |    6 
 src/mesa/drivers/dri/i915/i915_context.c                      |    6 
 src/mesa/drivers/dri/i965/Makefile                            |    5 
 src/mesa/drivers/dri/i965/brw_context.c                       |    7 
 src/mesa/drivers/dri/i965/brw_context.h                       |   18 
 src/mesa/drivers/dri/i965/brw_defines.h                       |    3 
 src/mesa/drivers/dri/i965/brw_disasm.c                        |   25 
 src/mesa/drivers/dri/i965/brw_eu.h                            |    4 
 src/mesa/drivers/dri/i965/brw_eu_emit.c                       |  147 
 src/mesa/drivers/dri/i965/brw_fs.cpp                          | 1925 ++
 src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp      |  365 
 src/mesa/drivers/dri/i965/brw_fs_vector_splitting.cpp         |  391 
 src/mesa/drivers/dri/i965/brw_misc_state.c                    |    2 
 src/mesa/drivers/dri/i965/brw_optimize.c                      |   81 
 src/mesa/drivers/dri/i965/brw_program.c                       |   42 
 src/mesa/drivers/dri/i965/brw_structs.h                       |    2 
 src/mesa/drivers/dri/i965/brw_vs_emit.c                       |   91 
 src/mesa/drivers/dri/i965/brw_wm.c                            |   25 
 src/mesa/drivers/dri/i965/brw_wm.h                            |   10 
 src/mesa/drivers/dri/i965/brw_wm_glsl.c                       |   12 
 src/mesa/drivers/dri/i965/brw_wm_pass2.c                      |    2 
 src/mesa/drivers/dri/i965/brw_wm_state.c                      |   18 
 src/mesa/drivers/dri/i965/gen6_cc.c                           |    2 
 src/mesa/drivers/dri/intel/intel_context.c                    |    3 
 src/mesa/drivers/dri/intel/intel_context.h                    |   13 
 src/mesa/drivers/dri/intel/intel_extensions_es2.c             |    1 
 src/mesa/drivers/dri/intel/intel_fbo.c                        |   16 
 src/mesa/drivers/dri/nouveau/nouveau_class.h                  | 4954 +++++
 src/mesa/drivers/dri/nouveau/nouveau_context.c                |    5 
 src/mesa/drivers/dri/nouveau/nv04_context.c                   |    1 
 src/mesa/drivers/dri/nouveau/nv04_state_frag.c                |   36 
 src/mesa/drivers/dri/nouveau/nv10_state_frag.c                |   31 
 src/mesa/drivers/dri/nouveau/nv20_state_tnl.c                 |   50 
 src/mesa/drivers/dri/r200/Makefile                            |    1 
 src/mesa/drivers/dri/r200/radeon_buffer_objects.c             |    1 
 src/mesa/drivers/dri/r200/radeon_buffer_objects.h             |    1 
 src/mesa/drivers/dri/r300/compiler/r300_fragprog.c            |    5 
 src/mesa/drivers/dri/r300/compiler/r300_fragprog.h            |    4 
 src/mesa/drivers/dri/r300/compiler/r300_fragprog_emit.c       |    5 
 src/mesa/drivers/dri/r300/compiler/r3xx_fragprog.c            |  191 
 src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c            |  297 
 src/mesa/drivers/dri/r300/compiler/r3xx_vertprog_dump.c       |    5 
 src/mesa/drivers/dri/r300/compiler/r500_fragprog.c            |    5 
 src/mesa/drivers/dri/r300/compiler/r500_fragprog.h            |    6 
 src/mesa/drivers/dri/r300/compiler/r500_fragprog_emit.c       |   23 
 src/mesa/drivers/dri/r300/compiler/radeon_compiler.c          |   33 
 src/mesa/drivers/dri/r300/compiler/radeon_compiler.h          |   23 
 src/mesa/drivers/dri/r300/compiler/radeon_dataflow.h          |    6 
 src/mesa/drivers/dri/r300/compiler/radeon_dataflow_deadcode.c |   19 
 src/mesa/drivers/dri/r300/compiler/radeon_dataflow_swizzles.c |    2 
 src/mesa/drivers/dri/r300/compiler/radeon_emulate_branches.c  |    2 
 src/mesa/drivers/dri/r300/compiler/radeon_emulate_branches.h  |    2 
 src/mesa/drivers/dri/r300/compiler/radeon_emulate_loops.c     |   30 
 src/mesa/drivers/dri/r300/compiler/radeon_emulate_loops.h     |    8 
 src/mesa/drivers/dri/r300/compiler/radeon_optimize.c          |   14 
 src/mesa/drivers/dri/r300/compiler/radeon_pair_regalloc.c     |   62 
 src/mesa/drivers/dri/r300/compiler/radeon_pair_schedule.c     |    3 
 src/mesa/drivers/dri/r300/compiler/radeon_pair_translate.c    |    4 
 src/mesa/drivers/dri/r300/compiler/radeon_program.c           |    9 
 src/mesa/drivers/dri/r300/compiler/radeon_program.h           |   12 
 src/mesa/drivers/dri/r300/compiler/radeon_program_alu.c       |    6 
 src/mesa/drivers/dri/r300/compiler/radeon_program_alu.h       |    5 
 src/mesa/drivers/dri/r300/compiler/radeon_program_pair.h      |    9 
 src/mesa/drivers/dri/r300/compiler/radeon_program_print.c     |   48 
 src/mesa/drivers/dri/r300/compiler/radeon_remove_constants.c  |    4 
 src/mesa/drivers/dri/r300/compiler/radeon_remove_constants.h  |    3 
 src/mesa/drivers/dri/r300/compiler/radeon_rename_regs.c       |    2 
 src/mesa/drivers/dri/r300/compiler/radeon_rename_regs.h       |    2 
 src/mesa/drivers/dri/r300/r300_blit.c                         |   11 
 src/mesa/drivers/dri/r300/r300_fragprog_common.c              |    6 
 src/mesa/drivers/dri/r300/r300_vertprog.c                     |    7 
 src/mesa/drivers/dri/r600/evergreen_chip.c                    |   16 
 src/mesa/drivers/dri/r600/evergreen_context.c                 |    3 
 src/mesa/drivers/dri/r600/evergreen_fragprog.c                |   30 
 src/mesa/drivers/dri/r600/evergreen_fragprog.h                |    2 
 src/mesa/drivers/dri/r600/evergreen_render.c                  |    9 
 src/mesa/drivers/dri/r600/evergreen_vertprog.c                |   27 
 src/mesa/drivers/dri/r600/evergreen_vertprog.h                |    2 
 src/mesa/drivers/dri/r600/r600_context.c                      |    8 
 src/mesa/drivers/dri/r600/r700_assembler.c                    |  440 
 src/mesa/drivers/dri/r600/r700_assembler.h                    |    2 
 src/mesa/drivers/dri/r600/r700_chip.c                         |   13 
 src/mesa/drivers/dri/r600/r700_fragprog.c                     |    7 
 src/mesa/drivers/dri/r600/r700_render.c                       |    1 
 src/mesa/drivers/dri/r600/r700_shader.c                       |   13 
 src/mesa/drivers/dri/r600/r700_vertprog.c                     |    8 
 src/mesa/drivers/dri/radeon/Makefile                          |    1 
 src/mesa/drivers/dri/radeon/radeon_common_context.c           |    3 
 src/mesa/drivers/dri/radeon/radeon_mipmap_tree.c              |    6 
 src/mesa/drivers/dri/radeon/radeon_pixel_read.c               |   42 
 src/mesa/drivers/dri/swrast/swrast.c                          |    4 
 src/mesa/drivers/osmesa/Makefile                              |    4 
 src/mesa/main/bufferobj.c                                     |   22 
 src/mesa/main/compiler.h                                      |   17 
 src/mesa/main/context.c                                       |   11 
 src/mesa/main/dlist.c                                         |    6 
 src/mesa/main/extensions.c                                    |    5 
 src/mesa/main/fbobject.c                                      |   10 
 src/mesa/main/formats.c                                       |   12 
 src/mesa/main/formats.h                                       |    3 
 src/mesa/main/framebuffer.c                                   |    4 
 src/mesa/main/get.c                                           |   35 
 src/mesa/main/getstring.c                                     |    4 
 src/mesa/main/imports.h                                       |   10 
 src/mesa/main/light.c                                         |    6 
 src/mesa/main/mipmap.c                                        |   17 
 src/mesa/main/mtypes.h                                        |   34 
 src/mesa/main/nvprogram.c                                     |    4 
 src/mesa/main/shaderapi.c                                     |   37 
 src/mesa/main/shaderobj.c                                     |   48 
 src/mesa/main/shaderobj.h                                     |   36 
 src/mesa/main/shared.c                                        |    4 
 src/mesa/main/texcompress_s3tc.c                              |    1 
 src/mesa/main/texenv.c                                        |  119 
 src/mesa/main/texenvprogram.c                                 |    2 
 src/mesa/main/teximage.c                                      |    4 
 src/mesa/main/transformfeedback.c                             |    7 
 src/mesa/program/ir_to_mesa.cpp                               |  868 
 src/mesa/program/prog_execute.c                               |    7 
 src/mesa/program/prog_parameter.c                             |    6 
 src/mesa/program/prog_statevars.c                             |    2 
 src/mesa/program/program.c                                    |    8 
 src/mesa/program/program.h                                    |   32 
 src/mesa/program/program_parse.tab.c                          |    2 
 src/mesa/program/program_parse.y                              |    2 
 src/mesa/state_tracker/st_cb_eglimage.c                       |    3 
 src/mesa/state_tracker/st_cb_texture.c                        |   10 
 src/mesa/state_tracker/st_draw.c                              |    3 
 src/mesa/state_tracker/st_extensions.c                        |   15 
 src/mesa/state_tracker/st_format.c                            |    5 
 src/mesa/state_tracker/st_manager.c                           |   31 
 src/mesa/state_tracker/st_mesa_to_tgsi.c                      |    3 
 src/mesa/swrast/s_context.c                                   |    2 
 src/mesa/swrast/s_readpix.c                                   |    3 
 src/mesa/swrast/s_span.c                                      |    6 
 src/mesa/vbo/vbo_exec_array.c                                 |    4 
 src/mesa/x86/common_x86.c                                     |   49 
 src/mesa/x86/x86_xform.c                                      |   37 
 src/talloc/SConscript                                         |    2 
 457 files changed, 36353 insertions(+), 21728 deletions(-)

New commits:
commit 90006b22f2a0f363f4b87b36a6940ad634f5fcd7
Author: Robert Hooker <sarvatt@ubuntu.com>
Date:   Thu Sep 9 16:20:36 2010 -0400

    Disable the experimental ARB_fragment_shader option on i915 by default.

diff --git a/debian/changelog b/debian/changelog
index daecaf6..dfbdef7 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,17 +1,21 @@
 mesa (7.9~git20100909-0ubuntu1) maverick; urgency=low
 
   * New upstream git snapshot up to commit 94118fe2d4b1e5 (LP: #631413)
-    - Many bug fixes including:
-      628930
-     - LP: #626943, #610541 - Flickering on Radeon
-     - LP: #628930 - KDE desktop effects not enabled automatically, graphical
-       corruption when enabled
-     - LP: #601052 - Cougar Point Graphics support
-     - LP: #596292, #599741 - Unity failing to start or misrendering on ATI
+  * New features include ATI HD5xxx series support in r600, and a vastly
+    improved glsl compiler.
+  * Many bug fixes including:
+   - LP: #626943, #610541 - Flickering on Radeon
+   - LP: #633261 - KDE desktop effects not enabled automatically,
+     graphical corruption when enabled
+   - LP: #601052 - Cougar Point Graphics support
+   - LP: #596292, #599741 - Unity failing to start or misrendering on ATI
   * Remove pre-generated .pc's, use the ones generated at build time
     instead.
   * Remove all references to mesa-utils now that its no longer shipped
     with the mesa source.
+  * Disable the experimental ARB_fragment_shader option by default on
+    i915, it exposes incomplete functionality that breaks KDE compositing
+    among other things. It can be enabled via driconf still. (LP: #628930)
 
  -- Robert Hooker <robert.hooker@canonical.com>  Thu, 09 Sep 2010 15:37:52 -0400
 
diff --git a/debian/patches/104_i915_fragment_shader_disable.patch b/debian/patches/104_i915_fragment_shader_disable.patch
new file mode 100644
index 0000000..d2aee8e
--- /dev/null
+++ b/debian/patches/104_i915_fragment_shader_disable.patch
@@ -0,0 +1,26 @@
+From e5a4106be7c8b87821f6b5d21fec99a402825740 Mon Sep 17 00:00:00 2001
+From: Robert Hooker <sarvatt@ubuntu.com>
+Date: Wed, 8 Sep 2010 12:33:09 -0400
+Subject: [PATCH] Revert "i915: Enable ARB_fragment_shader by default."
+
+This reverts commit a58514cc9c5cc5867f9140700462c5ac5749550d.
+---
+ src/mesa/drivers/dri/intel/intel_screen.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c
+index 0a542a7..8ae2cd2 100644
+--- a/src/mesa/drivers/dri/intel/intel_screen.c
++++ b/src/mesa/drivers/dri/intel/intel_screen.c
+@@ -70,7 +70,7 @@ PUBLIC const char __driConfigOptions[] =
+ 	 DRI_CONF_DESC(en, "Enable early Z in classic mode (unstable, 945-only).")
+       DRI_CONF_OPT_END
+ 
+-      DRI_CONF_OPT_BEGIN(fragment_shader, bool, true)
++      DRI_CONF_OPT_BEGIN(fragment_shader, bool, false)
+ 	 DRI_CONF_DESC(en, "Enable limited ARB_fragment_shader support on 915/945.")
+       DRI_CONF_OPT_END
+ 
+-- 
+1.7.2
+
diff --git a/debian/patches/series b/debian/patches/series
index 92ce811..c267c2b 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -6,3 +6,4 @@
 100_no_abi_tag.patch
 101_ubuntu_hidden_glname.patch
 103_savage-expose_fbmodes_with_nonzero_alpha.patch
+104_i915_fragment_shader_disable.patch

commit ef782d825bdb3973ee6c409d86b63c87d8114519
Author: Robert Hooker <sarvatt@ubuntu.com>
Date:   Thu Sep 9 16:01:21 2010 -0400

    Update changelog.

diff --git a/debian/changelog b/debian/changelog
index 5a52e26..daecaf6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,12 +1,19 @@
-mesa (7.9~git20100825-0ubuntu1) maverick; urgency=low
-
-  * New upstream git snapshot up to commit f81cec52a.
-    - Remove pre-generated .pc's, use the ones generated at build time
-      instead.
-    - Remove all references to mesa-utils now that its shipped as a
-      seperate package.
-
- -- Robert Hooker <sarvatt@ubuntu.com>  Wed, 25 Aug 2010 17:15:21 -0400
+mesa (7.9~git20100909-0ubuntu1) maverick; urgency=low
+
+  * New upstream git snapshot up to commit 94118fe2d4b1e5 (LP: #631413)
+    - Many bug fixes including:
+      628930
+     - LP: #626943, #610541 - Flickering on Radeon
+     - LP: #628930 - KDE desktop effects not enabled automatically, graphical
+       corruption when enabled
+     - LP: #601052 - Cougar Point Graphics support
+     - LP: #596292, #599741 - Unity failing to start or misrendering on ATI
+  * Remove pre-generated .pc's, use the ones generated at build time
+    instead.
+  * Remove all references to mesa-utils now that its no longer shipped
+    with the mesa source.
+
+ -- Robert Hooker <robert.hooker@canonical.com>  Thu, 09 Sep 2010 15:37:52 -0400
 
 mesa (7.8.2-2ubuntu2) maverick; urgency=low
 

commit 2312dea648bc8ac6dd68759983dbdb300d0ac1f0
Author: Robert Hooker <sarvatt@ubuntu.com>
Date:   Thu Sep 9 15:20:45 2010 -0400

    Revert "Enable nouveau-vieux classic mesa driver."
    
    This reverts commit 77cba73436f53cad654e802c2ef29348a529ceb5. It's
    too late in maverick to add new features.

diff --git a/debian/rules b/debian/rules
index 59e863b..0e19a48 100755
--- a/debian/rules
+++ b/debian/rules
@@ -77,7 +77,7 @@ else
 	DRI_DRIVERS += i915 i965
 	GALLIUM_DRIVERS += i915 i965
   else ifneq ($(DEB_HOST_ARCH), s390)
-	DRI_DRIVERS += mga nouveau r128 r200 r300 r600 radeon savage tdfx
+	DRI_DRIVERS += mga r128 r200 r300 r600 radeon savage tdfx
     ifeq ($(DEB_HOST_ARCH_CPU), i386)
 	DRI_DRIVERS += i810 i915 i965 sis unichrome
 	GALLIUM_DRIVERS += i915 i965

commit 94118fe2d4b1e5d0b9f39d9d2c44706db462e97e
Author: Kristian Høgsberg <krh@bitplanet.net>
Date:   Thu Sep 9 13:18:40 2010 -0400

    glx: Optimize out no-op make current calls
    
    This make a lot more sense now that we might have to recreate the
    glx drawables for legacy code paths.

diff --git a/src/glx/glxcurrent.c b/src/glx/glxcurrent.c
index 0d359f7..3631738 100644
--- a/src/glx/glxcurrent.c
+++ b/src/glx/glxcurrent.c
@@ -242,6 +242,10 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw,
       return False;
    }
 
+   if (oldGC == gc &&
+       gc->currentDrawable == draw && gc->currentReadable == read)
+      return True;
+
    if (oldGC != &dummyContext) {
       oldGC->vtable->unbind(oldGC, gc);
       oldGC->currentDpy = 0;

commit 916c8ed2c8f916604166b22e6fcb9433b960a924
Author: Chia-I Wu <olv@lunarg.com>
Date:   Fri Sep 10 00:06:32 2010 +0800

    egl: Use _EGL_CHECK_DISPLAY in eglCreateContext.
    
    _EGL_CHECK_DISPLAY checks the display and returns from eglCreateContext
    on error.

diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c
index 31c5419..829d700 100644
--- a/src/egl/main/eglapi.c
+++ b/src/egl/main/eglapi.c
@@ -405,7 +405,7 @@ eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_list,
    if (config)
       _EGL_CHECK_CONFIG(disp, conf, EGL_NO_CONTEXT, drv);
    else
-      drv = _eglCheckDisplay(disp, __FUNCTION__);
+      _EGL_CHECK_DISPLAY(disp, EGL_NO_CONTEXT, drv);
 
    if (!share && share_list != EGL_NO_CONTEXT)
       RETURN_EGL_ERROR(disp, EGL_BAD_CONTEXT, EGL_NO_CONTEXT);

commit 08a482e7a9d13db5d4e6fd974942f6699d7d49dc
Author: Chia-I Wu <olv@lunarg.com>
Date:   Fri Sep 10 00:02:47 2010 +0800

    egl: Display may be NULL in _eglLookup*.
    
    This fixes several NULL dereferences.

diff --git a/src/egl/main/eglconfig.h b/src/egl/main/eglconfig.h
index ca63c40..0ad58cf 100644
--- a/src/egl/main/eglconfig.h
+++ b/src/egl/main/eglconfig.h
@@ -117,7 +117,7 @@ static INLINE _EGLConfig *
 _eglLookupConfig(EGLConfig config, _EGLDisplay *dpy)
 {
    _EGLConfig *conf = (_EGLConfig *) config;
-   if (!_eglCheckConfigHandle(config, dpy))
+   if (!dpy || !_eglCheckConfigHandle(config, dpy))
       conf = NULL;
    return conf;
 }
diff --git a/src/egl/main/eglmode.c b/src/egl/main/eglmode.c
index 37594cd..ed107d5 100644
--- a/src/egl/main/eglmode.c
+++ b/src/egl/main/eglmode.c
@@ -25,7 +25,7 @@ _eglLookupMode(EGLModeMESA mode, _EGLDisplay *disp)
 {
    EGLint scrnum;
 
-   if (!disp->Screens)
+   if (!disp || !disp->Screens)
       return NULL;
 
    /* loop over all screens on the display */
diff --git a/src/egl/main/eglscreen.c b/src/egl/main/eglscreen.c
index 8b8966f..9e39335 100644
--- a/src/egl/main/eglscreen.c
+++ b/src/egl/main/eglscreen.c
@@ -69,7 +69,7 @@ _eglLookupScreen(EGLScreenMESA screen, _EGLDisplay *display)
 {
    EGLint i;
 
-   if (!display->Screens)
+   if (!display || !display->Screens)
       return NULL;
 
    for (i = 0; i < display->Screens->Size; i++) {

commit 3ec296390c250dbcdc2690e78da9a51ec57dabf5
Author: Brian Paul <brianp@vmware.com>
Date:   Thu Sep 9 10:03:46 2010 -0600

    llvmpipe: remove redundant tgsi_dup_tokens() call
    
    We were calling this twice so the first allocation was orphaned/leaked.

diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c
index 8f3976c..e17bfb4 100644
--- a/src/gallium/drivers/llvmpipe/lp_state_fs.c
+++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c
@@ -901,9 +901,6 @@ llvmpipe_create_fs_state(struct pipe_context *pipe,
       debug_printf("\n");
    }
 
-   /* Keep a copy of the tokens in shader->base.tokens */
-   shader->base.tokens = tgsi_dup_tokens(templ->tokens);
-
    return shader;
 }
 

commit cdd5f21eacc93dfb242e59a6158d0e450a39a9b6
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Thu Sep 9 14:07:38 2010 +0200

    dri/nouveau: Expose EXT_texture_env_combine.

diff --git a/src/mesa/drivers/dri/nouveau/nouveau_context.c b/src/mesa/drivers/dri/nouveau/nouveau_context.c
index 287f77d..4a1534b 100644
--- a/src/mesa/drivers/dri/nouveau/nouveau_context.c
+++ b/src/mesa/drivers/dri/nouveau/nouveau_context.c
@@ -58,6 +58,7 @@ static const struct dri_extension nouveau_extensions[] = {
 	{ "GL_EXT_framebuffer_object",	GL_EXT_framebuffer_object_functions },
 	{ "GL_EXT_secondary_color",	GL_EXT_secondary_color_functions },
 	{ "GL_EXT_stencil_wrap",	NULL },
+	{ "GL_EXT_texture_env_combine",	NULL },
 	{ "GL_EXT_texture_lod_bias",	NULL },
 	{ "GL_NV_blend_square",         NULL },
 	{ "GL_NV_texture_env_combine4",	NULL },

commit 3bbad7f1084c3d6259dfa23fd60f654c949f7408
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Thu Sep 9 14:14:48 2010 +0200

    dri/nv10-nv20: Add support for NV_texture_env_combine4.

diff --git a/src/mesa/drivers/dri/nouveau/nouveau_context.c b/src/mesa/drivers/dri/nouveau/nouveau_context.c
index b1d4152..287f77d 100644
--- a/src/mesa/drivers/dri/nouveau/nouveau_context.c
+++ b/src/mesa/drivers/dri/nouveau/nouveau_context.c
@@ -60,6 +60,7 @@ static const struct dri_extension nouveau_extensions[] = {
 	{ "GL_EXT_stencil_wrap",	NULL },
 	{ "GL_EXT_texture_lod_bias",	NULL },
 	{ "GL_NV_blend_square",         NULL },
+	{ "GL_NV_texture_env_combine4",	NULL },
 	{ "GL_SGIS_generate_mipmap",	NULL },
 	{ NULL,				NULL }
 };
diff --git a/src/mesa/drivers/dri/nouveau/nv10_state_frag.c b/src/mesa/drivers/dri/nouveau/nv10_state_frag.c
index 76b95fd..ab713f9 100644
--- a/src/mesa/drivers/dri/nouveau/nv10_state_frag.c
+++ b/src/mesa/drivers/dri/nouveau/nv10_state_frag.c
@@ -63,6 +63,7 @@
 struct combiner_state {
 	GLcontext *ctx;
 	int unit;
+	GLboolean premodulate;
 
 	/* GL state */
 	GLenum mode;
@@ -82,6 +83,7 @@ struct combiner_state {
 			ctx->Texture.Unit[i]._CurrentCombine;	\
 		(rc)->ctx = ctx;				\
 		(rc)->unit = i;					\
+		(rc)->premodulate = c->_NumArgs##chan == 4;	\
 		(rc)->mode = c->Mode##chan;			\
 		(rc)->source = c->Source##chan;			\
 		(rc)->operand = c->Operand##chan;		\
@@ -95,6 +97,9 @@ static uint32_t
 get_input_source(struct combiner_state *rc, int source)
 {
 	switch (source) {
+	case GL_ZERO:
+		return RC_IN_SOURCE(ZERO);
+
 	case GL_TEXTURE:
 		return RC_IN_SOURCE(TEXTURE0) + rc->unit;
 
@@ -228,21 +233,21 @@ setup_combiner(struct combiner_state *rc)
 		break;
 
 	case GL_ADD:
-		INPUT_ARG(rc, A, 0, 0);
-		INPUT_ONE(rc, B, 0);
-		INPUT_ARG(rc, C, 1, 0);
-		INPUT_ONE(rc, D, 0);
-
-		rc->out = RC_OUT_SUM;
-		break;
-
 	case GL_ADD_SIGNED:
-		INPUT_ARG(rc, A, 0, 0);
-		INPUT_ONE(rc, B, 0);
-		INPUT_ARG(rc, C, 1, 0);
-		INPUT_ONE(rc, D, 0);
+		if (rc->premodulate) {
+			INPUT_ARG(rc, A, 0, 0);
+			INPUT_ARG(rc, B, 1, 0);
+			INPUT_ARG(rc, C, 2, 0);
+			INPUT_ARG(rc, D, 3, 0);
+		} else {
+			INPUT_ARG(rc, A, 0, 0);
+			INPUT_ONE(rc, B, 0);
+			INPUT_ARG(rc, C, 1, 0);
+			INPUT_ONE(rc, D, 0);
+		}
 
-		rc->out = RC_OUT_SUM | RC_OUT_BIAS;
+		rc->out = RC_OUT_SUM |
+			(rc->mode == GL_ADD_SIGNED ? RC_OUT_BIAS : 0);
 		break;
 
 	case GL_INTERPOLATE:

commit 699749cfeeea7d0a17ed5f94fd5fdbbe52f4ab2b
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Thu Sep 9 14:14:14 2010 +0200

    dri/nv04: Add support for NV_texture_env_combine4.

diff --git a/src/mesa/drivers/dri/nouveau/nv04_context.c b/src/mesa/drivers/dri/nouveau/nv04_context.c
index 6834f7c..1d34c86 100644
--- a/src/mesa/drivers/dri/nouveau/nv04_context.c
+++ b/src/mesa/drivers/dri/nouveau/nv04_context.c
@@ -39,6 +39,7 @@ nv04_context_engine(GLcontext *ctx)
 	struct nouveau_grobj *fahrenheit;
 
 	if (ctx->Texture.Unit[0].EnvMode == GL_COMBINE ||
+	    ctx->Texture.Unit[0].EnvMode == GL_COMBINE4_NV ||
 	    ctx->Texture.Unit[0].EnvMode == GL_BLEND ||
 	    ctx->Texture.Unit[0].EnvMode == GL_ADD ||
 	    ctx->Texture.Unit[1]._ReallyEnabled ||
diff --git a/src/mesa/drivers/dri/nouveau/nv04_state_frag.c b/src/mesa/drivers/dri/nouveau/nv04_state_frag.c
index d7c86d4..bb5d7dc 100644
--- a/src/mesa/drivers/dri/nouveau/nv04_state_frag.c
+++ b/src/mesa/drivers/dri/nouveau/nv04_state_frag.c
@@ -44,6 +44,7 @@ struct combiner_state {
 	GLcontext *ctx;
 	int unit;
 	GLboolean alpha;
+	GLboolean premodulate;
 
 	/* GL state */
 	GLenum mode;
@@ -66,6 +67,7 @@ struct combiner_state {
 		(rc)->ctx = ctx;				\
 		(rc)->unit = i;					\
 		(rc)->alpha = __INIT_COMBINER_ALPHA_##chan;	\
+		(rc)->premodulate = c->_NumArgs##chan == 4;	\
 		(rc)->mode = c->Mode##chan;			\
 		(rc)->source = c->Source##chan;			\
 		(rc)->operand = c->Operand##chan;		\
@@ -79,6 +81,9 @@ static uint32_t
 get_input_source(struct combiner_state *rc, int source)
 {
 	switch (source) {
+	case GL_ZERO:
+		return COMBINER_SOURCE(ZERO);
+
 	case GL_TEXTURE:
 		return rc->unit ? COMBINER_SOURCE(TEXTURE1) :
 			COMBINER_SOURCE(TEXTURE0);
@@ -195,11 +200,24 @@ setup_combiner(struct combiner_state *rc)
 		break;
 
 	case GL_ADD:
-		INPUT_ARG(rc, 0, 0, 0);
-		INPUT_SRC(rc, 1, ZERO, INVERT);
-		INPUT_ARG(rc, 2, 1, 0);
-		INPUT_SRC(rc, 3, ZERO, INVERT);
-		UNSIGNED_OP(rc);
+	case GL_ADD_SIGNED:
+		if (rc->premodulate) {
+			INPUT_ARG(rc, 0, 0, 0);
+			INPUT_ARG(rc, 1, 1, 0);
+			INPUT_ARG(rc, 2, 2, 0);
+			INPUT_ARG(rc, 3, 3, 0);
+		} else {
+			INPUT_ARG(rc, 0, 0, 0);
+			INPUT_SRC(rc, 1, ZERO, INVERT);
+			INPUT_ARG(rc, 2, 1, 0);
+			INPUT_SRC(rc, 3, ZERO, INVERT);
+		}
+
+		if (rc->mode == GL_ADD_SIGNED)
+			SIGNED_OP(rc);
+		else
+			UNSIGNED_OP(rc);
+
 		break;
 
 	case GL_INTERPOLATE:
@@ -210,14 +228,6 @@ setup_combiner(struct combiner_state *rc)
 		UNSIGNED_OP(rc);
 		break;
 
-	case GL_ADD_SIGNED:
-		INPUT_ARG(rc, 0, 0, 0);
-		INPUT_SRC(rc, 1, ZERO, INVERT);
-		INPUT_ARG(rc, 2, 1, 0);
-		INPUT_SRC(rc, 3, ZERO, INVERT);
-		SIGNED_OP(rc);
-		break;
-
 	default:
 		assert(0);
 	}

commit a76f6dc84952348261c32bcace56790e939a2902
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Thu Sep 2 02:18:02 2010 +0200

    dri/nouveau: Minor cleanup.

diff --git a/src/mesa/drivers/dri/nouveau/nv20_state_tnl.c b/src/mesa/drivers/dri/nouveau/nv20_state_tnl.c
index 62efe80..2daaae2 100644
--- a/src/mesa/drivers/dri/nouveau/nv20_state_tnl.c
+++ b/src/mesa/drivers/dri/nouveau/nv20_state_tnl.c
@@ -32,6 +32,28 @@
 #include "nv10_driver.h"
 #include "nv20_driver.h"
 
+#define LIGHT_MODEL_AMBIENT_R(side)			\
+	((side) ? NV20TCL_LIGHT_MODEL_BACK_AMBIENT_R :	\
+	 NV20TCL_LIGHT_MODEL_FRONT_AMBIENT_R)
+#define LIGHT_AMBIENT_R(side, i)			\
+	((side) ? NV20TCL_LIGHT_BACK_AMBIENT_R(i) :	\
+	 NV20TCL_LIGHT_FRONT_AMBIENT_R(i))
+#define LIGHT_DIFFUSE_R(side, i)			\
+	((side) ? NV20TCL_LIGHT_BACK_DIFFUSE_R(i) :	\
+	 NV20TCL_LIGHT_FRONT_DIFFUSE_R(i))
+#define LIGHT_SPECULAR_R(side, i)			\
+	((side) ? NV20TCL_LIGHT_BACK_SPECULAR_R(i) :	\
+	 NV20TCL_LIGHT_FRONT_SPECULAR_R(i))
+#define MATERIAL_FACTOR_R(side)				\
+	((side) ? NV20TCL_MATERIAL_FACTOR_BACK_R :	\
+	 NV20TCL_MATERIAL_FACTOR_FRONT_R)
+#define MATERIAL_FACTOR_A(side)				\
+	((side) ? NV20TCL_MATERIAL_FACTOR_BACK_A :	\
+	 NV20TCL_MATERIAL_FACTOR_FRONT_A)
+#define MATERIAL_SHININESS(side)			\
+	((side) ? NV20TCL_BACK_MATERIAL_SHININESS(0) :	\
+	 NV20TCL_FRONT_MATERIAL_SHININESS(0))
+
 void
 nv20_emit_clip_plane(GLcontext *ctx, int emit)
 {
@@ -210,10 +232,6 @@ nv20_emit_material_ambient(GLcontext *ctx, int emit)
 	struct nouveau_channel *chan = context_chan(ctx);
 	struct nouveau_grobj *kelvin = context_eng3d(ctx);
 	float (*mat)[4] = ctx->Light.Material.Attrib;
-	uint32_t m_scene[] = { NV20TCL_LIGHT_MODEL_FRONT_AMBIENT_R,
-			       NV20TCL_LIGHT_MODEL_BACK_AMBIENT_R };
-	uint32_t m_factor[] = { NV20TCL_MATERIAL_FACTOR_FRONT_R,
-			      NV20TCL_MATERIAL_FACTOR_BACK_R };
 	float c_scene[3], c_factor[3];
 	struct gl_light *l;
 
@@ -231,23 +249,21 @@ nv20_emit_material_ambient(GLcontext *ctx, int emit)
 		ZERO_3V(c_factor);
 	}
 
-	BEGIN_RING(chan, kelvin, m_scene[side], 3);
+	BEGIN_RING(chan, kelvin, LIGHT_MODEL_AMBIENT_R(side), 3);
 	OUT_RINGp(chan, c_scene, 3);
 
 	if (ctx->Light.ColorMaterialEnabled) {
-		BEGIN_RING(chan, kelvin, m_factor[side], 3);
+		BEGIN_RING(chan, kelvin, MATERIAL_FACTOR_R(side), 3);
 		OUT_RINGp(chan, c_factor, 3);
 	}
 
 	foreach(l, &ctx->Light.EnabledList) {
 		const int i = l - ctx->Light.Light;
-		uint32_t m_light[] = { NV20TCL_LIGHT_FRONT_AMBIENT_R(i),
-				      NV20TCL_LIGHT_BACK_AMBIENT_R(i) };
 		float *c_light = (USE_COLOR_MATERIAL(AMBIENT, side) ?
 				  l->Ambient :
 				  l->_MatAmbient[side]);
 
-		BEGIN_RING(chan, kelvin, m_light[side], 3);
+		BEGIN_RING(chan, kelvin, LIGHT_AMBIENT_R(side, i), 3);
 		OUT_RINGp(chan, c_light, 3);
 	}
 }
@@ -259,22 +275,18 @@ nv20_emit_material_diffuse(GLcontext *ctx, int emit)
 	struct nouveau_channel *chan = context_chan(ctx);
 	struct nouveau_grobj *kelvin = context_eng3d(ctx);


Reply to: