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: