OSDN Git Service

sampler state tweaks
authorkeithw <keithw@keithw-laptop.(none)>
Fri, 24 Aug 2007 09:09:34 +0000 (10:09 +0100)
committerKeith Whitwell <keith@tungstengraphics.com>
Fri, 24 Aug 2007 10:25:06 +0000 (11:25 +0100)
src/mesa/pipe/i915simple/i915_state_derived.c
src/mesa/pipe/i915simple/i915_state_sampler.c

index c24f545..bab3015 100644 (file)
@@ -174,7 +174,7 @@ void i915_update_derived( struct i915_context *i915 )
    if (i915->dirty & (I915_NEW_SETUP | I915_NEW_FS))
       calculate_vertex_layout( i915 );
 
-   if (i915->dirty & I915_NEW_SAMPLER)
+   if (i915->dirty & (I915_NEW_SAMPLER | I915_NEW_TEXTURE))
       i915_update_samplers(i915);
 
    if (i915->dirty & I915_NEW_TEXTURE)
index e23e4bd..e4d7fec 100644 (file)
@@ -155,7 +155,6 @@ static void update_sampler(struct i915_context *i915,
                            uint unit,
                           const struct pipe_sampler_state *sampler,
                           const struct pipe_mipmap_tree *mt,
-                          const struct pipe_surface *surface,
                           unsigned state[3] )
 {
    const unsigned ws = sampler->wrap_s;
@@ -187,8 +186,8 @@ static void update_sampler(struct i915_context *i915,
       state[0] |= ((b << SS2_LOD_BIAS_SHIFT) & SS2_LOD_BIAS_MASK);
    }
 
-   if (surface->format == PIPE_FORMAT_YCBCR ||
-       surface->format == PIPE_FORMAT_YCBCR_REV)
+   if (mt->format == PIPE_FORMAT_YCBCR ||
+       mt->format == PIPE_FORMAT_YCBCR_REV)
       state[0] |= SS2_COLORSPACE_CONVERSION;
 
 
@@ -259,7 +258,6 @@ static void update_sampler(struct i915_context *i915,
 
 void i915_update_samplers( struct i915_context *i915 )
 {
-   const struct pipe_surface *surface = i915->framebuffer.cbufs[0];
    uint unit;
 
    i915->current.sampler_enable_nr = 0;
@@ -273,7 +271,6 @@ void i915_update_samplers( struct i915_context *i915 )
                          unit,
                          i915->sampler + unit,       /* sampler state */
                          i915->texture[unit],        /* mipmap tree */
-                         surface,                    /* cbuffer info */
                         i915->current.sampler[unit] /* the result */
                          );