diff options
| -rw-r--r-- | src/gallium/drivers/i915/i915_state_sampler.c | 100 | 
1 files changed, 51 insertions, 49 deletions
diff --git a/src/gallium/drivers/i915/i915_state_sampler.c b/src/gallium/drivers/i915/i915_state_sampler.c index 77b9bccbb7..8d2f16b80d 100644 --- a/src/gallium/drivers/i915/i915_state_sampler.c +++ b/src/gallium/drivers/i915/i915_state_sampler.c @@ -53,17 +53,23 @@   *   * So we need to update the map state when we change samplers and   * we need to be change the sampler state when map state is changed. - * The first part is done by calling i915_update_texture in - * i915_update_samplers and the second part is done else where in - * code tracking the state changes. + * The first part is done by calling update_texture in update_samplers + * and the second part is done else where in code tracking the state + * changes. + */ + +static void update_texture(struct i915_context *i915, +                           uint unit, +                           const struct i915_texture *tex, +                           const struct i915_sampler_state *sampler, +                           uint state[6]); + + + +/*********************************************************************** + * Samplers   */ -static void -i915_update_texture(struct i915_context *i915, -                    uint unit, -                    const struct i915_texture *tex, -                    const struct i915_sampler_state *sampler, -                    uint state[6]);  /**   * Compute i915 texture sampling state.   * @@ -74,16 +80,13 @@ i915_update_texture(struct i915_context *i915,   */  static void update_sampler(struct i915_context *i915,                             uint unit, -			   const struct i915_sampler_state *sampler, -			   const struct i915_texture *tex, -			   unsigned state[3] ) +                           const struct i915_sampler_state *sampler, +                           const struct i915_texture *tex, +                           unsigned state[3])  {     const struct pipe_resource *pt = &tex->b.b;     unsigned minlod, lastlod; -   /* Need to do this after updating the maps, which call the -    * intel_finalize_mipmap_tree and hence can update firstLevel: -    */     state[0] = sampler->state[0];     state[1] = sampler->state[1];     state[2] = sampler->state[2]; @@ -118,7 +121,7 @@ static void update_sampler(struct i915_context *i915,             wr == PIPE_TEX_WRAP_CLAMP_TO_BORDER)) {           if (i915->conformance_mode > 0) {              assert(0); -            /* 	    sampler->fallback = true; */ +            /*             sampler->fallback = true; */              /* TODO */           }        } @@ -137,8 +140,7 @@ static void update_sampler(struct i915_context *i915,     state[1] |= (unit << SS3_TEXTUREMAP_INDEX_SHIFT);  } - -void i915_update_samplers( struct i915_context *i915 ) +void i915_update_samplers(struct i915_context *i915)  {     uint unit; @@ -152,20 +154,19 @@ void i915_update_samplers( struct i915_context *i915 )        if (i915->fragment_sampler_views[unit]) {           struct i915_texture *texture = i915_texture(i915->fragment_sampler_views[unit]->texture); -	 update_sampler( i915, -	                 unit, -	                 i915->sampler[unit],       /* sampler state */ -	                 texture,                    /* texture */ -	                 i915->current.sampler[unit] /* the result */ -	                 ); -	 i915_update_texture( i915, -	                      unit, -	                      texture,                      /* texture */ -	                      i915->sampler[unit],          /* sampler state */ -	                      i915->current.texbuffer[unit] ); +         update_sampler(i915, +                        unit, +                        i915->sampler[unit],          /* sampler state */ +                        texture,                      /* texture */ +                        i915->current.sampler[unit]); /* the result */ +         update_texture(i915, +                        unit, +                        texture,                        /* texture */ +                        i915->sampler[unit],            /* sampler state */ +                        i915->current.texbuffer[unit]); /* the result */ -	 i915->current.sampler_enable_nr++; -	 i915->current.sampler_enable_flags |= (1 << unit); +         i915->current.sampler_enable_nr++; +         i915->current.sampler_enable_flags |= (1 << unit);        }     } @@ -173,8 +174,13 @@ void i915_update_samplers( struct i915_context *i915 )  } -static uint -translate_texture_format(enum pipe_format pipeFormat) + + +/*********************************************************************** + * Sampler views + */ + +static uint translate_texture_format(enum pipe_format pipeFormat)  {     switch (pipeFormat) {     case PIPE_FORMAT_L8_UNORM: @@ -226,19 +232,17 @@ translate_texture_format(enum pipe_format pipeFormat)        return (MAPSURF_32BIT | MT_32BIT_xI824);     default:        debug_printf("i915: translate_texture_format() bad image format %x\n", -              pipeFormat); +                   pipeFormat);        assert(0);        return 0;     }  } - -static void -i915_update_texture(struct i915_context *i915, -                    uint unit, -                    const struct i915_texture *tex, -                    const struct i915_sampler_state *sampler, -                    uint state[6]) +static void update_texture(struct i915_context *i915, +                           uint unit, +                           const struct i915_texture *tex, +                           const struct i915_sampler_state *sampler, +                           uint state[6])  {     const struct pipe_resource *pt = &tex->b.b;     uint format, pitch; @@ -287,9 +291,7 @@ i915_update_texture(struct i915_context *i915,         | ((depth - 1) << MS4_VOLUME_DEPTH_SHIFT));  } - -void -i915_update_textures(struct i915_context *i915) +void i915_update_textures(struct i915_context *i915)  {     uint unit; @@ -300,11 +302,11 @@ i915_update_textures(struct i915_context *i915)        if (i915->fragment_sampler_views[unit]) {           struct i915_texture *texture = i915_texture(i915->fragment_sampler_views[unit]->texture); -	 i915_update_texture( i915, -	                      unit, -	                      texture,                      /* texture */ -	                      i915->sampler[unit],          /* sampler state */ -	                      i915->current.texbuffer[unit] ); +         update_texture(i915, +                        unit, +                        texture,                      /* texture */ +                        i915->sampler[unit],          /* sampler state */ +                        i915->current.texbuffer[unit]);        }     }  | 
