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

mesa: Changes to 'upstream-experimental'



 SConstruct                                                |    2 
 docs/envvars.html                                         |   19 
 docs/lists.html                                           |   31 
 progs/demos/Makefile                                      |    7 
 progs/demos/isosurf.c                                     |    1 
 progs/demos/morph3d.c                                     |    1 
 progs/demos/shadowtex.c                                   |    1 
 progs/glsl/shtest.c                                       |    1 
 progs/redbook/aapoly.c                                    |    1 
 progs/tests/getprocaddress.c                              |    4 
 progs/tests/vparray.c                                     |    3 
 progs/trivial/tri-fbo-tex-mip.c                           |    2 
 progs/trivial/tri-fbo-tex.c                               |    2 
 progs/xdemos/corender.c                                   |    1 
 progs/xdemos/glxgears.c                                   |    1 
 scons/gallium.py                                          |    5 
 src/gallium/auxiliary/draw/draw_context.c                 |    3 
 src/gallium/auxiliary/draw/draw_pipe.c                    |   44 
 src/gallium/auxiliary/draw/draw_pt.c                      |    1 
 src/gallium/auxiliary/draw/draw_pt_fetch.c                |    1 
 src/gallium/auxiliary/draw/draw_pt_fetch_shade_emit.c     |    1 
 src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c |    1 
 src/gallium/auxiliary/draw/draw_pt_post_vs.c              |    1 
 src/gallium/auxiliary/draw/draw_vs_varient.c              |    1 
 src/gallium/auxiliary/pipebuffer/Makefile                 |    1 
 src/gallium/auxiliary/pipebuffer/SConscript               |    1 
 src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c       | 1013 +++++++++-----
 src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.h       |   37 
 src/gallium/auxiliary/pipebuffer/pb_bufmgr.h              |    4 
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_debug.c        |    3 
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_fenced.c       |  152 --
 src/gallium/auxiliary/pipebuffer/pb_validate.c            |    1 
 src/gallium/auxiliary/tgsi/tgsi_scan.c                    |   10 
 src/gallium/auxiliary/util/u_blit.c                       |    4 
 src/gallium/auxiliary/util/u_gen_mipmap.c                 |    4 
 src/gallium/auxiliary/util/u_tile.c                       |    2 
 src/gallium/auxiliary/util/u_upload_mgr.c                 |    4 
 src/gallium/drivers/i915/i915_clear.c                     |    1 
 src/gallium/drivers/i915/i915_context.c                   |    3 
 src/gallium/drivers/i915/i915_debug.c                     |    1 
 src/gallium/drivers/i915/i915_debug_fp.c                  |    1 
 src/gallium/drivers/i915/i915_state.c                     |    2 
 src/gallium/drivers/i915/i915_state_derived.c             |    1 
 src/gallium/drivers/i915/i915_state_sampler.c             |    1 
 src/gallium/drivers/i915/i915_surface.c                   |    6 
 src/gallium/drivers/i915/i915_texture.c                   |    2 
 src/gallium/drivers/llvmpipe/lp_bld_alpha.c               |    1 
 src/gallium/drivers/llvmpipe/lp_bld_arit.c                |    1 
 src/gallium/drivers/llvmpipe/lp_bld_blend_soa.c           |    1 
 src/gallium/drivers/llvmpipe/lp_bld_conv.c                |    2 
 src/gallium/drivers/llvmpipe/lp_bld_format_aos.c          |    1 
 src/gallium/drivers/llvmpipe/lp_bld_tgsi_soa.c            |    2 
 src/gallium/drivers/llvmpipe/lp_draw_arrays.c             |    2 
 src/gallium/drivers/llvmpipe/lp_flush.c                   |    2 
 src/gallium/drivers/llvmpipe/lp_jit.c                     |    1 
 src/gallium/drivers/llvmpipe/lp_setup.c                   |    1 
 src/gallium/drivers/llvmpipe/lp_state_fs.c                |    2 
 src/gallium/drivers/llvmpipe/lp_state_surface.c           |    1 
 src/gallium/drivers/llvmpipe/lp_state_vertex.c            |    1 
 src/gallium/drivers/llvmpipe/lp_test_blend.c              |    1 
 src/gallium/drivers/llvmpipe/lp_tex_cache.c               |    1 
 src/gallium/drivers/llvmpipe/lp_tex_sample_c.c            |    1 
 src/gallium/drivers/llvmpipe/lp_tex_sample_llvm.c         |    1 
 src/gallium/drivers/llvmpipe/lp_texture.c                 |    2 
 src/gallium/drivers/llvmpipe/lp_tile_cache.c              |    2 
 src/gallium/drivers/softpipe/sp_context.c                 |    1 
 src/gallium/drivers/softpipe/sp_flush.c                   |    2 
 src/gallium/drivers/softpipe/sp_prim_vbuf.c               |    2 
 src/gallium/drivers/softpipe/sp_quad_blend.c              |    1 
 src/gallium/drivers/softpipe/sp_quad_depth_test.c         |    4 
 src/gallium/drivers/softpipe/sp_quad_fs.c                 |    2 
 src/gallium/drivers/softpipe/sp_setup.c                   |    1 
 src/gallium/drivers/softpipe/sp_state_surface.c           |    1 
 src/gallium/drivers/softpipe/sp_state_vertex.c            |    1 
 src/gallium/drivers/softpipe/sp_tex_tile_cache.c          |    1 
 src/gallium/drivers/softpipe/sp_texture.c                 |    1 
 src/gallium/drivers/svga/svga_draw_arrays.c               |    1 
 src/gallium/drivers/svga/svga_draw_elements.c             |    1 
 src/gallium/drivers/svga/svga_pipe_blend.c                |    1 
 src/gallium/drivers/svga/svga_pipe_constants.c            |    3 
 src/gallium/drivers/svga/svga_pipe_depthstencil.c         |    1 
 src/gallium/drivers/svga/svga_pipe_draw.c                 |    1 
 src/gallium/drivers/svga/svga_pipe_flush.c                |    5 
 src/gallium/drivers/svga/svga_pipe_fs.c                   |    2 
 src/gallium/drivers/svga/svga_pipe_misc.c                 |    6 
 src/gallium/drivers/svga/svga_pipe_query.c                |    1 
 src/gallium/drivers/svga/svga_pipe_rasterizer.c           |    1 
 src/gallium/drivers/svga/svga_pipe_sampler.c              |    3 
 src/gallium/drivers/svga/svga_pipe_vertex.c               |    4 
 src/gallium/drivers/svga/svga_pipe_vs.c                   |    1 
 src/gallium/drivers/svga/svga_screen.c                    |    4 
 src/gallium/drivers/svga/svga_screen.h                    |    6 
 src/gallium/drivers/svga/svga_screen_buffer.c             |  104 -
 src/gallium/drivers/svga/svga_screen_buffer.h             |    8 
 src/gallium/drivers/svga/svga_screen_texture.c            |   68 
 src/gallium/drivers/svga/svga_state_framebuffer.c         |    2 
 src/gallium/drivers/svga/svga_state_fs.c                  |    4 
 src/gallium/drivers/svga/svga_state_rss.c                 |    3 
 src/gallium/drivers/svga/svga_state_tss.c                 |    2 
 src/gallium/drivers/svga/svga_state_vs.c                  |    6 
 src/gallium/drivers/svga/svga_swtnl_backend.c             |   15 
 src/gallium/drivers/svga/svga_swtnl_draw.c                |    1 
 src/gallium/drivers/svga/svga_swtnl_state.c               |    1 
 src/gallium/drivers/svga/svga_tgsi_decl_sm20.c            |    3 
 src/gallium/drivers/svga/svga_tgsi_decl_sm30.c            |    1 
 src/gallium/drivers/svga/svga_winsys.h                    |    6 
 src/gallium/drivers/trace/tr_drm.c                        |    1 
 src/gallium/include/pipe/p_inlines.h                      |   41 
 src/gallium/include/pipe/p_screen.h                       |    5 
 src/gallium/include/state_tracker/drm_api.h               |    5 
 src/gallium/state_trackers/dri/dri_context.c              |    6 
 src/gallium/state_trackers/dri/dri_drawable.c             |   19 
 src/gallium/state_trackers/dri/dri_drawable.h             |    3 
 src/gallium/state_trackers/dri/dri_screen.c               |   16 
 src/gallium/state_trackers/dri/dri_screen.h               |    1 
 src/gallium/state_trackers/python/SConscript              |    1 
 src/gallium/state_trackers/vega/shader.c                  |    4 
 src/gallium/state_trackers/wgl/stw_pixelformat.c          |    5 
 src/gallium/state_trackers/xorg/xorg_composite.c          |    3 
 src/gallium/state_trackers/xorg/xorg_dri2.c               |   50 
 src/gallium/state_trackers/xorg/xorg_driver.c             |   96 +
 src/gallium/state_trackers/xorg/xorg_exa.c                |    1 
 src/gallium/state_trackers/xorg/xorg_exa_tgsi.c           |    2 
 src/gallium/state_trackers/xorg/xorg_output.c             |    2 
 src/gallium/state_trackers/xorg/xorg_tracker.h            |    1 
 src/gallium/state_trackers/xorg/xorg_winsys.h             |    1 
 src/gallium/state_trackers/xorg/xorg_xv.c                 |   10 
 src/gallium/winsys/drm/intel/gem/intel_drm_api.c          |    1 
 src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c      |    1 
 src/gallium/winsys/drm/radeon/core/radeon_drm.c           |    1 
 src/gallium/winsys/drm/vmware/core/vmw_context.c          |  114 +
 src/gallium/winsys/drm/vmware/core/vmw_screen.h           |    4 
 src/gallium/winsys/drm/vmware/core/vmw_screen_dri.c       |   86 -
 src/gallium/winsys/drm/vmware/core/vmw_screen_pools.c     |   22 
 src/gallium/winsys/drm/vmware/xorg/vmw_video.c            |    3 
 src/gallium/winsys/drm/vmware/xorg/vmw_xorg.c             |   10 
 src/gallium/winsys/xlib/xlib_softpipe.c                   |   40 
 src/glx/x11/glxcurrent.c                                  |    1 
 src/mesa/drivers/dri/common/spantmp2.h                    |    2 
 src/mesa/drivers/dri/ffb/ffb_bitmap.c                     |    1 
 src/mesa/drivers/dri/ffb/ffb_clear.c                      |    3 
 src/mesa/drivers/dri/ffb/ffb_dd.c                         |    4 
 src/mesa/drivers/dri/ffb/ffb_depth.c                      |    1 
 src/mesa/drivers/dri/ffb/ffb_lines.c                      |    4 
 src/mesa/drivers/dri/ffb/ffb_points.c                     |    2 
 src/mesa/drivers/dri/ffb/ffb_span.c                       |    2 
 src/mesa/drivers/dri/ffb/ffb_state.c                      |    5 
 src/mesa/drivers/dri/ffb/ffb_stencil.c                    |    2 
 src/mesa/drivers/dri/ffb/ffb_vb.c                         |    2 
 src/mesa/drivers/dri/ffb/ffb_xmesa.c                      |    2 
 src/mesa/drivers/dri/i810/i810context.c                   |    3 
 src/mesa/drivers/dri/i810/i810render.c                    |    1 
 src/mesa/drivers/dri/i810/i810screen.c                    |    4 
 src/mesa/drivers/dri/i810/i810state.c                     |    2 
 src/mesa/drivers/dri/i810/i810tex.c                       |    2 
 src/mesa/drivers/dri/i810/i810texmem.c                    |    1 
 src/mesa/drivers/dri/i810/i810vb.c                        |    1 
 src/mesa/drivers/dri/i915/i830_context.c                  |    3 
 src/mesa/drivers/dri/i915/i915_context.c                  |    5 
 src/mesa/drivers/dri/i915/i915_debug_fp.c                 |    3 
 src/mesa/drivers/dri/i915/i915_vtbl.c                     |    1 
 src/mesa/drivers/dri/i915/intel_tris.c                    |    1 
 src/mesa/drivers/dri/i965/brw_cc.c                        |    2 
 src/mesa/drivers/dri/i965/brw_clip_line.c                 |    1 
 src/mesa/drivers/dri/i965/brw_clip_point.c                |    1 
 src/mesa/drivers/dri/i965/brw_clip_state.c                |    1 
 src/mesa/drivers/dri/i965/brw_clip_tri.c                  |    1 
 src/mesa/drivers/dri/i965/brw_clip_unfilled.c             |    1 
 src/mesa/drivers/dri/i965/brw_clip_util.c                 |    1 
 src/mesa/drivers/dri/i965/brw_context.c                   |    9 
 src/mesa/drivers/dri/i965/brw_draw.c                      |    2 
 src/mesa/drivers/dri/i965/brw_draw_upload.c               |    4 
 src/mesa/drivers/dri/i965/brw_fallback.c                  |    1 
 src/mesa/drivers/dri/i965/brw_gs_emit.c                   |    1 
 src/mesa/drivers/dri/i965/brw_gs_state.c                  |    1 
 src/mesa/drivers/dri/i965/brw_program.c                   |    1 
 src/mesa/drivers/dri/i965/brw_sf_state.c                  |    1 
 src/mesa/drivers/dri/i965/brw_vs_surface_state.c          |    1 
 src/mesa/drivers/dri/i965/brw_vtbl.c                      |    1 
 src/mesa/drivers/dri/i965/brw_wm.c                        |    1 
 src/mesa/drivers/dri/intel/intel_blit.c                   |    1 
 src/mesa/drivers/dri/intel/intel_buffers.c                |    2 
 src/mesa/drivers/dri/intel/intel_clear.c                  |    3 
 src/mesa/drivers/dri/intel/intel_context.c                |    1 
 src/mesa/drivers/dri/intel/intel_pixel.c                  |    7 
 src/mesa/drivers/dri/intel/intel_pixel_bitmap.c           |    3 
 src/mesa/drivers/dri/intel/intel_pixel_draw.c             |    3 
 src/mesa/drivers/dri/intel/intel_pixel_read.c             |    1 
 src/mesa/drivers/dri/intel/intel_regions.c                |    1 
 src/mesa/drivers/dri/intel/intel_screen.c                 |    3 
 src/mesa/drivers/dri/intel/intel_state.c                  |    2 
 src/mesa/drivers/dri/intel/intel_swapbuffers.c            |    1 
 src/mesa/drivers/dri/intel/intel_tex_copy.c               |    1 
 src/mesa/drivers/dri/intel/intel_tex_image.c              |    1 
 src/mesa/drivers/dri/intel/intel_tex_validate.c           |    2 
 src/mesa/drivers/dri/mach64/mach64_context.c              |    2 
 src/mesa/drivers/dri/mach64/mach64_dd.c                   |    3 
 src/mesa/drivers/dri/mach64/mach64_lock.c                 |    1 
 src/mesa/drivers/dri/mach64/mach64_screen.c               |    2 
 src/mesa/drivers/dri/mach64/mach64_span.c                 |    1 
 src/mesa/drivers/dri/mach64/mach64_state.c                |    3 
 src/mesa/drivers/dri/mach64/mach64_tex.c                  |    5 
 src/mesa/drivers/dri/mach64/mach64_texmem.c               |    3 
 src/mesa/drivers/dri/mach64/mach64_texstate.c             |    2 
 src/mesa/drivers/dri/mach64/mach64_vb.c                   |    1 
 src/mesa/drivers/dri/mga/mga_xmesa.c                      |    2 
 src/mesa/drivers/dri/mga/mgadd.c                          |    5 
 src/mesa/drivers/dri/mga/mgaioctl.c                       |    3 
 src/mesa/drivers/dri/mga/mgarender.c                      |    1 
 src/mesa/drivers/dri/mga/mgatex.c                         |    3 
 src/mesa/drivers/dri/mga/mgatris.c                        |    1 
 src/mesa/drivers/dri/mga/mgavb.c                          |    1 
 src/mesa/drivers/dri/r200/r200_state_init.c               |    3 
 src/mesa/drivers/dri/r200/r200_vertprog.c                 |    2 
 src/mesa/drivers/dri/r300/r300_cmdbuf.c                   |    3 
 src/mesa/drivers/dri/r300/r300_context.c                  |    5 
 src/mesa/drivers/dri/r300/r300_draw.c                     |    3 
 src/mesa/drivers/dri/r300/r300_emit.c                     |    6 
 src/mesa/drivers/dri/r300/r300_fragprog_common.c          |    2 
 src/mesa/drivers/dri/r300/r300_ioctl.c                    |    2 
 src/mesa/drivers/dri/r300/r300_render.c                   |    6 
 src/mesa/drivers/dri/r300/r300_state.c                    |    4 
 src/mesa/drivers/dri/r300/r300_tex.c                      |    5 
 src/mesa/drivers/dri/r300/r300_texstate.c                 |    2 
 src/mesa/drivers/dri/r300/r300_vertprog.c                 |    1 
 src/mesa/drivers/dri/r600/r600_texstate.c                 |   36 
 src/mesa/drivers/dri/r600/r700_state.c                    |    6 
 src/mesa/drivers/dri/radeon/radeon_common.c               |    3 
 src/mesa/drivers/dri/radeon/radeon_cs_legacy.c            |    1 
 src/mesa/drivers/dri/radeon/radeon_lighting.c             |  681 ---------
 src/mesa/drivers/dri/savage/savagedd.c                    |    4 
 src/mesa/drivers/dri/savage/savageioctl.c                 |    2 
 src/mesa/drivers/dri/savage/savagerender.c                |    1 
 src/mesa/drivers/dri/savage/savagespan.c                  |    1 
 src/mesa/drivers/dri/savage/savagetex.c                   |    2 
 src/mesa/drivers/dri/savage/savagetris.c                  |    1 
 src/mesa/drivers/dri/sis/sis6326_state.c                  |    2 
 src/mesa/drivers/dri/sis/sis_context.c                    |    3 
 src/mesa/drivers/dri/sis/sis_dd.c                         |    2 
 src/mesa/drivers/dri/sis/sis_fog.c                        |    1 
 src/mesa/drivers/dri/sis/sis_screen.c                     |    1 
 src/mesa/drivers/dri/sis/sis_state.c                      |    4 
 src/mesa/drivers/dri/sis/sis_tex.c                        |    1 
 src/mesa/drivers/dri/sis/sis_texstate.c                   |    1 
 src/mesa/drivers/dri/sis/sis_tris.c                       |    1 
 src/mesa/drivers/dri/tdfx/tdfx_dd.c                       |    7 
 src/mesa/drivers/dri/tdfx/tdfx_lock.c                     |    1 
 src/mesa/drivers/dri/tdfx/tdfx_pixels.c                   |    1 
 src/mesa/drivers/dri/tdfx/tdfx_screen.c                   |    2 
 src/mesa/drivers/dri/tdfx/tdfx_state.c                    |    4 
 src/mesa/drivers/dri/tdfx/tdfx_texman.c                   |    1 
 src/mesa/drivers/dri/tdfx/tdfx_texstate.c                 |    1 
 src/mesa/drivers/dri/tdfx/tdfx_vb.c                       |    5 
 src/mesa/drivers/dri/unichrome/via_context.c              |    3 
 src/mesa/drivers/dri/unichrome/via_ioctl.c                |    1 
 src/mesa/drivers/dri/unichrome/via_render.c               |    1 
 src/mesa/drivers/dri/unichrome/via_screen.c               |    4 
 src/mesa/drivers/dri/unichrome/via_state.c                |    3 
 src/mesa/drivers/dri/unichrome/via_tex.c                  |    2 
 src/mesa/drivers/dri/unichrome/via_texcombine.c           |    1 
 src/mesa/glapi/gl_x86_asm.py                              |    2 
 src/mesa/main/attrib.c                                    |    1 
 src/mesa/main/blend.c                                     |    1 
 src/mesa/main/buffers.c                                   |    2 
 src/mesa/main/convolve.c                                  |    1 
 src/mesa/main/debug.c                                     |    4 
 src/mesa/main/depthstencil.c                              |    1 
 src/mesa/main/dlist.c                                     |   21 
 src/mesa/main/drawpix.c                                   |    1 
 src/mesa/main/enable.c                                    |    1 
 src/mesa/main/fbobject.c                                  |   30 
 src/mesa/main/formats.c                                   |    1 
 src/mesa/main/image.c                                     |    1 
 src/mesa/main/lines.c                                     |    2 
 src/mesa/main/mipmap.c                                    |    1 
 src/mesa/main/pixel.c                                     |    1 
 src/mesa/main/pixelstore.c                                |    3 
 src/mesa/main/points.c                                    |    1 
 src/mesa/main/polygon.c                                   |    1 
 src/mesa/main/scissor.c                                   |    6 
 src/mesa/main/state.c                                     |    7 
 src/mesa/main/texcompress.c                               |    3 
 src/mesa/main/texformat.c                                 |    2 
 src/mesa/main/texgetimage.c                               |    2 
 src/mesa/main/teximage.c                                  |    1 
 src/mesa/main/texobj.c                                    |    1 
 src/mesa/main/texparam.c                                  |    1 
 src/mesa/main/texstate.c                                  |    2 
 src/mesa/main/texstore.c                                  |    4 
 src/mesa/main/vtxfmt.c                                    |    2 
 src/mesa/shader/arbprogparse.c                            |    3 
 src/mesa/shader/arbprogram.c                              |   33 
 src/mesa/shader/nvvertparse.c                             |    1 
 src/mesa/shader/prog_execute.c                            |   67 
 src/mesa/shader/prog_statevars.c                          |    1 
 src/mesa/shader/shader_api.c                              |    2 
 src/mesa/shader/slang/slang_builtin.c                     |    1 
 src/mesa/shader/slang/slang_compile.c                     |    3 
 src/mesa/shader/slang/slang_emit.c                        |    1 
 src/mesa/shader/slang/slang_link.c                        |    1 
 src/mesa/shader/slang/slang_log.c                         |    1 
 src/mesa/state_tracker/st_atom_framebuffer.c              |    1 
 src/mesa/state_tracker/st_atom_pixeltransfer.c            |    1 
 src/mesa/state_tracker/st_atom_sampler.c                  |    1 
 src/mesa/state_tracker/st_atom_scissor.c                  |   17 
 src/mesa/state_tracker/st_atom_shader.c                   |    3 
 src/mesa/state_tracker/st_cb_accum.c                      |    2 
 src/mesa/state_tracker/st_cb_bitmap.c                     |   15 
 src/mesa/state_tracker/st_cb_blit.c                       |    4 
 src/mesa/state_tracker/st_cb_clear.c                      |   11 
 src/mesa/state_tracker/st_cb_drawpixels.c                 |    6 
 src/mesa/state_tracker/st_cb_fbo.c                        |    1 
 src/mesa/state_tracker/st_cb_feedback.c                   |    3 
 src/mesa/state_tracker/st_cb_program.c                    |    1 
 src/mesa/state_tracker/st_cb_queryobj.c                   |    1 
 src/mesa/state_tracker/st_cb_rasterpos.c                  |    1 
 src/mesa/state_tracker/st_cb_readpixels.c                 |    2 
 src/mesa/state_tracker/st_cb_strings.c                    |    1 
 src/mesa/state_tracker/st_cb_texture.c                    |   58 
 src/mesa/state_tracker/st_cb_viewport.c                   |    7 
 src/mesa/state_tracker/st_context.c                       |    6 
 src/mesa/state_tracker/st_draw_feedback.c                 |    1 
 src/mesa/state_tracker/st_extensions.c                    |    1 
 src/mesa/state_tracker/st_format.c                        |    3 
 src/mesa/state_tracker/st_framebuffer.c                   |    4 
 src/mesa/state_tracker/st_gen_mipmap.c                    |    2 
 src/mesa/state_tracker/st_inlines.h                       |   10 
 src/mesa/state_tracker/st_program.c                       |    1 
 src/mesa/state_tracker/st_texture.c                       |    1 
 src/mesa/swrast/s_accum.c                                 |    1 
 src/mesa/swrast/s_atifragshader.c                         |    1 
 src/mesa/swrast/s_bitmap.c                                |    1 
 src/mesa/swrast/s_copypix.c                               |    2 
 src/mesa/swrast/s_depth.c                                 |   42 
 src/mesa/swrast/s_drawpix.c                               |    1 
 src/mesa/swrast/s_feedback.c                              |    1 
 src/mesa/swrast/s_fragprog.c                              |    1 
 src/mesa/swrast/s_lines.c                                 |    1 
 src/mesa/swrast/s_points.c                                |    1 
 src/mesa/swrast/s_readpix.c                               |    1 
 src/mesa/swrast/s_span.c                                  |    7 
 src/mesa/swrast/s_texcombine.c                            |    1 
 src/mesa/tnl/t_context.c                                  |    1 
 src/mesa/tnl/t_draw.c                                     |    4 
 src/mesa/tnl/t_pipeline.c                                 |    1 
 src/mesa/tnl/t_rasterpos.c                                |    1 
 src/mesa/tnl/t_vb_program.c                               |    1 
 src/mesa/vbo/vbo_exec.c                                   |    3 
 src/mesa/vbo/vbo_exec_array.c                             |   15 
 src/mesa/vbo/vbo_exec_draw.c                              |    1 
 src/mesa/vbo/vbo_save.c                                   |    2 
 src/mesa/vbo/vbo_save_loopback.c                          |    1 
 src/mesa/vbo/vbo_split_copy.c                             |    3 
 src/mesa/x86/assyntax.h                                   |    4 
 src/mesa/x86/glapi_x86.S                                  |    2 
 src/mesa/x86/read_rgba_span_x86.S                         |    4 
 src/mesa/x86/x86_xform.c                                  |    1 
 357 files changed, 1614 insertions(+), 2124 deletions(-)

New commits:
commit 2f28ca0a27cb0c539affb22c487c4bb44b6d54b4
Author: Dave Airlie <airlied@redhat.com>
Date:   Wed Jan 27 11:46:26 2010 +1000

    radeon/r200/r300: don't clean non-emitted state.
    
    So if we don't actually emit an atom to the hw because we don't
    need it in the current state (e.g. lighting related atoms when
    lighting is off) then don't mark it as clean, because when
    lighting gets switched on we won't emit it at all.
    
    This fixes funky gears colors.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

diff --git a/src/mesa/drivers/dri/radeon/radeon_common.c b/src/mesa/drivers/dri/radeon/radeon_common.c
index 9b64c21..47bc252 100644
--- a/src/mesa/drivers/dri/radeon/radeon_common.c
+++ b/src/mesa/drivers/dri/radeon/radeon_common.c
@@ -1015,10 +1015,11 @@ static INLINE void radeon_emit_atom(radeonContextPtr radeon, struct radeon_state
 			OUT_BATCH_TABLE(atom->cmd, dwords);
 			END_BATCH();
 		}
+		atom->dirty = GL_FALSE;
+
 	} else {
 		radeon_print(RADEON_STATE, RADEON_VERBOSE, "  skip state %s\n", atom->name);
 	}
-	atom->dirty = GL_FALSE;
 
 }
 

commit 0580e488daba592d442ab8a45aa8441064dd2705
Author: Dave Airlie <airlied@redhat.com>
Date:   Wed Jan 27 11:02:32 2010 +1000

    radeon: remove unused file

diff --git a/src/mesa/drivers/dri/radeon/radeon_lighting.c b/src/mesa/drivers/dri/radeon/radeon_lighting.c
deleted file mode 100644
index ba444f2..0000000
--- a/src/mesa/drivers/dri/radeon/radeon_lighting.c
+++ /dev/null
@@ -1,681 +0,0 @@
-/*
- * Copyright 2000, 2001 VA Linux Systems Inc., Fremont, California.
- *
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * on the rights to use, copy, modify, merge, publish, distribute, sub
- * license, and/or sell copies of the Software, and to permit persons to whom
- * the Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
- * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- *
- * Authors:
- *    Gareth Hughes <gareth@valinux.com>
- *    Keith Whitwell <keith@tungstengraphics.com>
- */
-
-#include "main/glheader.h"
-#include "main/imports.h"
-#include "api_arrayelt.h"
-/* #include "mmath.h" */
-#include "main/enums.h"
-#include "colormac.h"
-
-
-#include "radeon_context.h"
-#include "radeon_ioctl.h"
-#include "radeon_state.h"
-#include "radeon_tcl.h"
-#include "radeon_tex.h"
-#include "radeon_vtxfmt.h"
-
-
-
-/* =============================================================
- * Materials
- */
-
-
-/* Update on colormaterial, material emmissive/ambient, 
- * lightmodel.globalambient
- */
-void update_global_ambient( GLcontext *ctx )
-{
-   radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
-   float *fcmd = (float *)RADEON_DB_STATE( glt );
-
-   /* Need to do more if both emmissive & ambient are PREMULT:
-    */
-   if ((rmesa->hw.tcl.cmd[TCL_LIGHT_MODEL_CTL] &
-       ((3 << RADEON_EMISSIVE_SOURCE_SHIFT) |
-	(3 << RADEON_AMBIENT_SOURCE_SHIFT))) == 0) 
-   {
-      COPY_3V( &fcmd[GLT_RED], 
-	       ctx->Light.Material[0].Emission);
-      ACC_SCALE_3V( &fcmd[GLT_RED],
-		   ctx->Light.Model.Ambient,
-		   ctx->Light.Material[0].Ambient);
-   } 
-   else
-   {
-      COPY_3V( &fcmd[GLT_RED], ctx->Light.Model.Ambient );
-   }
-   
-   RADEON_DB_STATECHANGE(rmesa, &rmesa->hw.glt);
-}
-
-/* Update on change to 
- *    - light[p].colors
- *    - light[p].enabled
- *    - material,
- *    - colormaterial enabled
- *    - colormaterial bitmask
- */
-void update_light_colors( GLcontext *ctx, GLuint p )
-{
-   struct gl_light *l = &ctx->Light.Light[p];
-
-/*     fprintf(stderr, "%s\n", __FUNCTION__); */
-
-   if (l->Enabled) {
-      radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
-      float *fcmd = (float *)RADEON_DB_STATE( lit[p] );
-      GLuint bitmask = ctx->Light.ColorMaterialBitmask;
-      struct gl_material *mat = &ctx->Light.Material[0];
-
-      COPY_4V( &fcmd[LIT_AMBIENT_RED], l->Ambient );	 
-      COPY_4V( &fcmd[LIT_DIFFUSE_RED], l->Diffuse );
-      COPY_4V( &fcmd[LIT_SPECULAR_RED], l->Specular );
-      
-      if (!ctx->Light.ColorMaterialEnabled)
-	 bitmask = 0;
-
-      if ((bitmask & FRONT_AMBIENT_BIT) == 0) 
-	 SELF_SCALE_3V( &fcmd[LIT_AMBIENT_RED], mat->Ambient );
-
-      if ((bitmask & FRONT_DIFFUSE_BIT) == 0) 
-	 SELF_SCALE_3V( &fcmd[LIT_DIFFUSE_RED], mat->Diffuse );
-      
-      if ((bitmask & FRONT_SPECULAR_BIT) == 0) 
-	 SELF_SCALE_3V( &fcmd[LIT_SPECULAR_RED], mat->Specular );
-
-      RADEON_DB_STATECHANGE( rmesa, &rmesa->hw.lit[p] );
-   }
-}
-
-/* Also fallback for asym colormaterial mode in twoside lighting...
- */
-void check_twoside_fallback( GLcontext *ctx )
-{
-   GLboolean fallback = GL_FALSE;
-
-   if (ctx->Light.Enabled && ctx->Light.Model.TwoSide) {
-      if (memcmp( &ctx->Light.Material[0],
-		  &ctx->Light.Material[1],
-		  sizeof(struct gl_material)) != 0)
-	 fallback = GL_TRUE;  
-      else if (ctx->Light.ColorMaterialEnabled &&
-	       (ctx->Light.ColorMaterialBitmask & BACK_MATERIAL_BITS) != 
-	       ((ctx->Light.ColorMaterialBitmask & FRONT_MATERIAL_BITS)<<1))
-	 fallback = GL_TRUE;
-   }
-
-   TCL_FALLBACK( ctx, RADEON_TCL_FALLBACK_LIGHT_TWOSIDE, fallback );
-}
-
-void radeonColorMaterial( GLcontext *ctx, GLenum face, GLenum mode )
-{
-   if (ctx->Light.ColorMaterialEnabled) {
-      radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
-      GLuint light_model_ctl = rmesa->hw.tcl.cmd[TCL_LIGHT_MODEL_CTL];
-      GLuint mask = ctx->Light.ColorMaterialBitmask;
-
-      /* Default to PREMULT:
-       */
-      light_model_ctl &= ~((3 << RADEON_EMISSIVE_SOURCE_SHIFT) |
-			   (3 << RADEON_AMBIENT_SOURCE_SHIFT) |
-			   (3 << RADEON_DIFFUSE_SOURCE_SHIFT) |
-			   (3 << RADEON_SPECULAR_SOURCE_SHIFT)); 
-   
-      if (mask & FRONT_EMISSION_BIT) {
-	 light_model_ctl |= (RADEON_LM_SOURCE_VERTEX_DIFFUSE <<
-			     RADEON_EMISSIVE_SOURCE_SHIFT);
-      }
-
-      if (mask & FRONT_AMBIENT_BIT) {
-	 light_model_ctl |= (RADEON_LM_SOURCE_VERTEX_DIFFUSE <<
-			     RADEON_AMBIENT_SOURCE_SHIFT);
-      }
-	 
-      if (mask & FRONT_DIFFUSE_BIT) {
-	 light_model_ctl |= (RADEON_LM_SOURCE_VERTEX_DIFFUSE <<
-			     RADEON_DIFFUSE_SOURCE_SHIFT);
-      }
-   
-      if (mask & FRONT_SPECULAR_BIT) {
-	 light_model_ctl |= (RADEON_LM_SOURCE_VERTEX_DIFFUSE <<
-			     RADEON_SPECULAR_SOURCE_SHIFT);
-      }
-   
-      if (light_model_ctl != rmesa->hw.tcl.cmd[TCL_LIGHT_MODEL_CTL]) {
-	 GLuint p;
-
-	 RADEON_STATECHANGE( rmesa, tcl );
-	 rmesa->hw.tcl.cmd[TCL_LIGHT_MODEL_CTL] = light_model_ctl;      
-
-	 for (p = 0 ; p < MAX_LIGHTS; p++) 
-	    update_light_colors( ctx, p );
-	 update_global_ambient( ctx );
-      }
-   }
-   
-   check_twoside_fallback( ctx );
-}
-
-void radeonUpdateMaterial( GLcontext *ctx )
-{
-   radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
-   GLfloat *fcmd = (GLfloat *)RADEON_DB_STATE( mtl );
-   GLuint p;
-   GLuint mask = ~0;
-   
-   if (ctx->Light.ColorMaterialEnabled)
-      mask &= ~ctx->Light.ColorMaterialBitmask;
-
-   if (RADEON_DEBUG & RADEON_STATE)
-      fprintf(stderr, "%s\n", __FUNCTION__);
-
-      
-   if (mask & FRONT_EMISSION_BIT) {
-      fcmd[MTL_EMMISSIVE_RED]   = ctx->Light.Material[0].Emission[0];
-      fcmd[MTL_EMMISSIVE_GREEN] = ctx->Light.Material[0].Emission[1];
-      fcmd[MTL_EMMISSIVE_BLUE]  = ctx->Light.Material[0].Emission[2];
-      fcmd[MTL_EMMISSIVE_ALPHA] = ctx->Light.Material[0].Emission[3];
-   }
-   if (mask & FRONT_AMBIENT_BIT) {
-      fcmd[MTL_AMBIENT_RED]     = ctx->Light.Material[0].Ambient[0];
-      fcmd[MTL_AMBIENT_GREEN]   = ctx->Light.Material[0].Ambient[1];
-      fcmd[MTL_AMBIENT_BLUE]    = ctx->Light.Material[0].Ambient[2];
-      fcmd[MTL_AMBIENT_ALPHA]   = ctx->Light.Material[0].Ambient[3];
-   }
-   if (mask & FRONT_DIFFUSE_BIT) {
-      fcmd[MTL_DIFFUSE_RED]     = ctx->Light.Material[0].Diffuse[0];
-      fcmd[MTL_DIFFUSE_GREEN]   = ctx->Light.Material[0].Diffuse[1];
-      fcmd[MTL_DIFFUSE_BLUE]    = ctx->Light.Material[0].Diffuse[2];
-      fcmd[MTL_DIFFUSE_ALPHA]   = ctx->Light.Material[0].Diffuse[3];
-   }
-   if (mask & FRONT_SPECULAR_BIT) {
-      fcmd[MTL_SPECULAR_RED]    = ctx->Light.Material[0].Specular[0];
-      fcmd[MTL_SPECULAR_GREEN]  = ctx->Light.Material[0].Specular[1];
-      fcmd[MTL_SPECULAR_BLUE]   = ctx->Light.Material[0].Specular[2];
-      fcmd[MTL_SPECULAR_ALPHA]  = ctx->Light.Material[0].Specular[3];
-   }
-   if (mask & FRONT_SHININESS_BIT) {
-      fcmd[MTL_SHININESS]       = ctx->Light.Material[0].Shininess;
-   }
-
-   if (RADEON_DB_STATECHANGE( rmesa, &rmesa->hw.mtl )) {
-      for (p = 0 ; p < MAX_LIGHTS; p++) 
-	 update_light_colors( ctx, p );
-
-      check_twoside_fallback( ctx );
-      update_global_ambient( ctx );
-   }
-   else if (RADEON_DEBUG & (RADEON_PRIMS|DEBUG_STATE))
-      fprintf(stderr, "%s: Elided noop material call\n", __FUNCTION__);
-}
-
-/* _NEW_LIGHT
- * _NEW_MODELVIEW
- * _MESA_NEW_NEED_EYE_COORDS
- *
- * Uses derived state from mesa:
- *       _VP_inf_norm
- *       _h_inf_norm
- *       _Position
- *       _NormSpotDirection
- *       _ModelViewInvScale
- *       _NeedEyeCoords
- *       _EyeZDir
- *
- * which are calculated in light.c and are correct for the current
- * lighting space (model or eye), hence dependencies on _NEW_MODELVIEW
- * and _MESA_NEW_NEED_EYE_COORDS.  
- */
-void radeonUpdateLighting( GLcontext *ctx )
-{
-   radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
-
-   /* Have to check these, or have an automatic shortcircuit mechanism
-    * to remove noop statechanges. (Or just do a better job on the
-    * front end).
-    */
-   {
-      GLuint tmp = rmesa->hw.tcl.cmd[TCL_LIGHT_MODEL_CTL];
-
-      if (ctx->_NeedEyeCoords)
-	 tmp &= ~RADEON_LIGHT_IN_MODELSPACE;
-      else
-	 tmp |= RADEON_LIGHT_IN_MODELSPACE;
-      
-
-      /* Leave this test disabled: (unexplained q3 lockup) (even with
-         new packets)
-      */
-      if (tmp != rmesa->hw.tcl.cmd[TCL_LIGHT_MODEL_CTL]) 
-      {
-	 RADEON_STATECHANGE( rmesa, tcl );
-	 rmesa->hw.tcl.cmd[TCL_LIGHT_MODEL_CTL] = tmp;
-      }
-   }
-
-   {
-      GLfloat *fcmd = (GLfloat *)RADEON_DB_STATE( eye );
-      fcmd[EYE_X] = ctx->_EyeZDir[0];
-      fcmd[EYE_Y] = ctx->_EyeZDir[1];
-      fcmd[EYE_Z] = - ctx->_EyeZDir[2];
-      fcmd[EYE_RESCALE_FACTOR] = ctx->_ModelViewInvScale;
-      RADEON_DB_STATECHANGE( rmesa, &rmesa->hw.eye );
-   }
-
-
-/*     RADEON_STATECHANGE( rmesa, glt ); */
-
-   if (ctx->Light.Enabled) {
-      GLint p;
-      for (p = 0 ; p < MAX_LIGHTS; p++) {
-	 if (ctx->Light.Light[p].Enabled) {
-	    struct gl_light *l = &ctx->Light.Light[p];
-	    GLfloat *fcmd = (GLfloat *)RADEON_DB_STATE( lit[p] );
-	    
-	    if (l->EyePosition[3] == 0.0) {
-	       COPY_3FV( &fcmd[LIT_POSITION_X], l->_VP_inf_norm ); 
-	       COPY_3FV( &fcmd[LIT_DIRECTION_X], l->_h_inf_norm ); 
-	       fcmd[LIT_POSITION_W] = 0;
-	       fcmd[LIT_DIRECTION_W] = 0;
-	    } else {
-	       COPY_4V( &fcmd[LIT_POSITION_X], l->_Position );
-	       fcmd[LIT_DIRECTION_X] = -l->_NormSpotDirection[0];
-	       fcmd[LIT_DIRECTION_Y] = -l->_NormSpotDirection[1];
-	       fcmd[LIT_DIRECTION_Z] = -l->_NormSpotDirection[2];
-	       fcmd[LIT_DIRECTION_W] = 0;
-	    }
-
-	    RADEON_DB_STATECHANGE( rmesa, &rmesa->hw.lit[p] );
-	 }
-      }
-   }
-}
-
-
-void radeonLightfv( GLcontext *ctx, GLenum light,
-		    GLenum pname, const GLfloat *params )
-{
-   radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
-   GLint p = light - GL_LIGHT0;
-   struct gl_light *l = &ctx->Light.Light[p];
-   GLfloat *fcmd = (GLfloat *)rmesa->hw.lit[p].cmd;
-   
-
-   switch (pname) {
-   case GL_AMBIENT:		
-   case GL_DIFFUSE:
-   case GL_SPECULAR:
-      update_light_colors( ctx, p );
-      break;
-
-   case GL_SPOT_DIRECTION: 
-      /* picked up in update_light */	
-      break;
-
-   case GL_POSITION: {
-      /* positions picked up in update_light, but can do flag here */	
-      GLuint flag = (p&1)? RADEON_LIGHT_1_IS_LOCAL : RADEON_LIGHT_0_IS_LOCAL;
-      GLuint idx = TCL_PER_LIGHT_CTL_0 + p/2;
-
-      RADEON_STATECHANGE(rmesa, tcl);
-      if (l->EyePosition[3] != 0.0F)
-	 rmesa->hw.tcl.cmd[idx] |= flag;
-      else
-	 rmesa->hw.tcl.cmd[idx] &= ~flag;
-      break;
-   }
-
-   case GL_SPOT_EXPONENT:
-      RADEON_STATECHANGE(rmesa, lit[p]);
-      fcmd[LIT_SPOT_EXPONENT] = params[0];
-      break;
-
-   case GL_SPOT_CUTOFF: {
-      GLuint flag = (p&1) ? RADEON_LIGHT_1_IS_SPOT : RADEON_LIGHT_0_IS_SPOT;
-      GLuint idx = TCL_PER_LIGHT_CTL_0 + p/2;
-
-      RADEON_STATECHANGE(rmesa, lit[p]);
-      fcmd[LIT_SPOT_CUTOFF] = l->_CosCutoff;
-
-      RADEON_STATECHANGE(rmesa, tcl);
-      if (l->SpotCutoff != 180.0F)
-	 rmesa->hw.tcl.cmd[idx] |= flag;
-      else
-	 rmesa->hw.tcl.cmd[idx] &= ~flag;
-      break;
-   }
-
-   case GL_CONSTANT_ATTENUATION:
-      RADEON_STATECHANGE(rmesa, lit[p]);
-      fcmd[LIT_ATTEN_CONST] = params[0];
-      break;
-   case GL_LINEAR_ATTENUATION:
-      RADEON_STATECHANGE(rmesa, lit[p]);
-      fcmd[LIT_ATTEN_LINEAR] = params[0];
-      break;
-   case GL_QUADRATIC_ATTENUATION:
-      RADEON_STATECHANGE(rmesa, lit[p]);
-      fcmd[LIT_ATTEN_QUADRATIC] = params[0];
-      break;
-   default:
-      return;
-   }
-
-}
-
-		  
-
-
-void radeonLightModelfv( GLcontext *ctx, GLenum pname,
-			 const GLfloat *param )
-{
-   radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
-
-   switch (pname) {
-      case GL_LIGHT_MODEL_AMBIENT: 
-	 update_global_ambient( ctx );
-	 break;
-
-      case GL_LIGHT_MODEL_LOCAL_VIEWER:
-	 RADEON_STATECHANGE( rmesa, tcl );
-	 if (ctx->Light.Model.LocalViewer)
-	    rmesa->hw.tcl.cmd[TCL_LIGHT_MODEL_CTL] |= RADEON_LOCAL_VIEWER;
-	 else
-	    rmesa->hw.tcl.cmd[TCL_LIGHT_MODEL_CTL] &= ~RADEON_LOCAL_VIEWER;
-         break;
-
-      case GL_LIGHT_MODEL_TWO_SIDE:
-	 RADEON_STATECHANGE( rmesa, tcl );
-	 if (ctx->Light.Model.TwoSide)
-	    rmesa->hw.tcl.cmd[TCL_UCP_VERT_BLEND_CTL] |= RADEON_LIGHT_TWOSIDE;
-	 else
-	    rmesa->hw.tcl.cmd[TCL_UCP_VERT_BLEND_CTL] &= ~RADEON_LIGHT_TWOSIDE;
-
-	 check_twoside_fallback( ctx );
-
-#if _HAVE_SWTNL
-	 if (rmesa->TclFallback) {
-	    radeonChooseRenderState( ctx );
-	    radeonChooseVertexState( ctx );
-	 }
-#endif
-         break;
-
-      case GL_LIGHT_MODEL_COLOR_CONTROL:
-	 radeonUpdateSpecular(ctx);
-
-	 RADEON_STATECHANGE( rmesa, tcl );
-	 if (ctx->Light.Model.ColorControl == GL_SEPARATE_SPECULAR_COLOR) 
-	    rmesa->hw.tcl.cmd[TCL_LIGHT_MODEL_CTL] &= 
-	       ~RADEON_DIFFUSE_SPECULAR_COMBINE;
-	 else
-	    rmesa->hw.tcl.cmd[TCL_LIGHT_MODEL_CTL] |= 
-	       RADEON_DIFFUSE_SPECULAR_COMBINE;
-         break;
-
-      default:
-         break;
-   }
-}
-
-
-/* =============================================================
- * Fog
- */
-
-
-static void radeonFogfv( GLcontext *ctx, GLenum pname, const GLfloat *param )
-{
-   radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
-   union { int i; float f; } c, d;
-   GLchan col[4];
-
-   c.i = rmesa->hw.fog.cmd[FOG_C];
-   d.i = rmesa->hw.fog.cmd[FOG_D];
-
-   switch (pname) {
-   case GL_FOG_MODE:
-      if (!ctx->Fog.Enabled)
-	 return;
-      RADEON_STATECHANGE(rmesa, tcl);
-      rmesa->hw.tcl.cmd[TCL_UCP_VERT_BLEND_CTL] &= ~RADEON_TCL_FOG_MASK;
-      switch (ctx->Fog.Mode) {
-      case GL_LINEAR:
-	 rmesa->hw.tcl.cmd[TCL_UCP_VERT_BLEND_CTL] |= RADEON_TCL_FOG_LINEAR;
-	 if (ctx->Fog.Start == ctx->Fog.End) {
-	    c.f = 1.0F;
-	    d.f = 1.0F;
-	 }
-	 else {
-	    c.f = ctx->Fog.End/(ctx->Fog.End-ctx->Fog.Start);
-	    d.f = 1.0/(ctx->Fog.End-ctx->Fog.Start);
-	 }
-	 break;
-      case GL_EXP:
-	 rmesa->hw.tcl.cmd[TCL_UCP_VERT_BLEND_CTL] |= RADEON_TCL_FOG_EXP;
-	 c.f = 0.0;
-	 d.f = ctx->Fog.Density;
-	 break;
-      case GL_EXP2:
-	 rmesa->hw.tcl.cmd[TCL_UCP_VERT_BLEND_CTL] |= RADEON_TCL_FOG_EXP2;
-	 c.f = 0.0;
-	 d.f = -(ctx->Fog.Density * ctx->Fog.Density);
-	 break;
-      default:
-	 return;
-      }
-      break;
-   case GL_FOG_DENSITY:
-      switch (ctx->Fog.Mode) {
-      case GL_EXP:
-	 c.f = 0.0;
-	 d.f = ctx->Fog.Density;
-	 break;
-      case GL_EXP2:
-	 c.f = 0.0;
-	 d.f = -(ctx->Fog.Density * ctx->Fog.Density);
-	 break;
-      default:
-	 break;
-      }
-      break;
-   case GL_FOG_START:
-   case GL_FOG_END:
-      if (ctx->Fog.Mode == GL_LINEAR) {
-	 if (ctx->Fog.Start == ctx->Fog.End) {
-	    c.f = 1.0F;
-	    d.f = 1.0F;
-	 } else {
-	    c.f = ctx->Fog.End/(ctx->Fog.End-ctx->Fog.Start);
-	    d.f = 1.0/(ctx->Fog.End-ctx->Fog.Start);
-	 }
-      }
-      break;
-   case GL_FOG_COLOR: 
-      RADEON_STATECHANGE( rmesa, ctx );
-      UNCLAMPED_FLOAT_TO_RGB_CHAN( col, ctx->Fog.Color );
-      rmesa->hw.ctx.cmd[CTX_PP_FOG_COLOR] =
-	 radeonPackColor( 4, col[0], col[1], col[2], 0 );
-      break;
-   case GL_FOG_COORDINATE_SOURCE_EXT: 
-      /* What to do?
-       */
-      break;
-   default:
-      return;
-   }
-
-   if (c.i != rmesa->hw.fog.cmd[FOG_C] || d.i != rmesa->hw.fog.cmd[FOG_D]) {
-      RADEON_STATECHANGE( rmesa, fog );
-      rmesa->hw.fog.cmd[FOG_C] = c.i;
-      rmesa->hw.fog.cmd[FOG_D] = d.i;
-   }
-}
-
-/* Examine lighting and texture state to determine if separate specular
- * should be enabled.
- */
-void radeonUpdateSpecular( GLcontext *ctx )
-{
-   radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
-   GLuint p = rmesa->hw.ctx.cmd[CTX_PP_CNTL];
-
-   if (NEED_SECONDARY_COLOR(ctx)) {
-      p |=  RADEON_SPECULAR_ENABLE;
-   } else {
-      p &= ~RADEON_SPECULAR_ENABLE;
-   }
-
-   if ( rmesa->hw.ctx.cmd[CTX_PP_CNTL] != p ) {
-      RADEON_STATECHANGE( rmesa, ctx );
-      rmesa->hw.ctx.cmd[CTX_PP_CNTL] = p;
-   }
-
-   /* Bizzare: have to leave lighting enabled to get fog.
-    */
-   RADEON_STATECHANGE( rmesa, tcl );
-   if ((ctx->Light.Enabled &&
-	ctx->Light.Model.ColorControl == GL_SEPARATE_SPECULAR_COLOR)) {
-      rmesa->hw.tcl.cmd[TCL_OUTPUT_VTXSEL] |= RADEON_TCL_COMPUTE_SPECULAR;
-      rmesa->hw.tcl.cmd[TCL_OUTPUT_VTXSEL] |= RADEON_TCL_COMPUTE_DIFFUSE;
-      rmesa->hw.tcl.cmd[TCL_OUTPUT_VTXFMT] |= RADEON_TCL_VTX_PK_SPEC;
-      rmesa->hw.tcl.cmd[TCL_OUTPUT_VTXFMT] |= RADEON_TCL_VTX_PK_DIFFUSE;
-      rmesa->hw.tcl.cmd[TCL_LIGHT_MODEL_CTL] |= RADEON_LIGHTING_ENABLE;
-   }
-   else if (ctx->Fog.Enabled) {
-      if (ctx->Light.Enabled) {
-	 rmesa->hw.tcl.cmd[TCL_OUTPUT_VTXSEL] |= RADEON_TCL_COMPUTE_SPECULAR;
-	 rmesa->hw.tcl.cmd[TCL_OUTPUT_VTXSEL] |= RADEON_TCL_COMPUTE_DIFFUSE;
-	 rmesa->hw.tcl.cmd[TCL_OUTPUT_VTXFMT] |= RADEON_TCL_VTX_PK_SPEC;
-	 rmesa->hw.tcl.cmd[TCL_OUTPUT_VTXFMT] |= RADEON_TCL_VTX_PK_DIFFUSE;
-	 rmesa->hw.tcl.cmd[TCL_LIGHT_MODEL_CTL] |= RADEON_LIGHTING_ENABLE;
-      } else {
-	 rmesa->hw.tcl.cmd[TCL_OUTPUT_VTXSEL] |= RADEON_TCL_COMPUTE_SPECULAR;
-	 rmesa->hw.tcl.cmd[TCL_OUTPUT_VTXSEL] &= ~RADEON_TCL_COMPUTE_DIFFUSE;
-	 rmesa->hw.tcl.cmd[TCL_OUTPUT_VTXFMT] |= RADEON_TCL_VTX_PK_SPEC;
-	 rmesa->hw.tcl.cmd[TCL_OUTPUT_VTXFMT] |= RADEON_TCL_VTX_PK_DIFFUSE;
-	 rmesa->hw.tcl.cmd[TCL_LIGHT_MODEL_CTL] |= RADEON_LIGHTING_ENABLE;
-      }
-   }
-   else if (ctx->Light.Enabled) {
-      rmesa->hw.tcl.cmd[TCL_OUTPUT_VTXSEL] &= ~RADEON_TCL_COMPUTE_SPECULAR;
-      rmesa->hw.tcl.cmd[TCL_OUTPUT_VTXSEL] |= RADEON_TCL_COMPUTE_DIFFUSE;
-      rmesa->hw.tcl.cmd[TCL_OUTPUT_VTXFMT] &= ~RADEON_TCL_VTX_PK_SPEC;
-      rmesa->hw.tcl.cmd[TCL_OUTPUT_VTXFMT] |= RADEON_TCL_VTX_PK_DIFFUSE;
-      rmesa->hw.tcl.cmd[TCL_LIGHT_MODEL_CTL] |= RADEON_LIGHTING_ENABLE;
-   } else if (ctx->Fog.ColorSumEnabled ) {


Reply to: