mesa: Changes to 'gallium-0.1'

Brian Paul brianp at
Fri Feb 22 15:38:19 PST 2008

 src/gallium/drivers/i915simple/i915_context.h       |   42 +++++-
 src/gallium/drivers/i915simple/i915_fpc.h           |   23 +--
 src/gallium/drivers/i915simple/i915_fpc_emit.c      |  101 ++++-----------
 src/gallium/drivers/i915simple/i915_fpc_translate.c |  132 ++++++++++++--------
 src/gallium/drivers/i915simple/i915_state.c         |   36 ++++-
 src/gallium/drivers/i915simple/i915_state_derived.c |    3 
 src/gallium/drivers/i915simple/i915_state_emit.c    |   39 ++++-
 7 files changed, 226 insertions(+), 150 deletions(-)

commit diffs at;a=summary

New commits:
commit c74900ee5d80c7c2b7cbe4ed87395526a742a13e
Author: Brian <brian at>
Date:   Fri Feb 22 16:48:05 2008 -0700

    gallium/i915: overhaul of fragment shader compilation, constant/immediate allocation
    Before, fragment shaders were translated to i915 hw code at bind time, rather
    than create time.  Now there's an i915_fragment_shader struct with the expected
    contents that's created by i915_create_fs_state().  Translation to i915 code
    takes place there too.
    Immediates are handled correctly now.  During program translation we keep
    track of which constant buffer slots are free (i.e. not referenced by the
    shader).  Then the TGSI immediates and ancillary immediates (introduced for
    SIN/COS/etc) are put into those free slots.
    When it's time to upload the constant buffer, use the fp->constant_flags[]
    array to determine if we should grab an immediate from the shader, or a
    user-defined parameter from the gallium constant buffer.

More information about the mesa-commit mailing list