softpipe: remove sp_tex_tile_cache_border_color()
With swizzling done at the end of texture sampling, we can greatly simplify swizzling of the border color. Fixes http://bugs.freedesktop.org/show_bug.cgi?id=32460
This commit is contained in:
@@ -659,8 +659,7 @@ get_texel_2d(const struct sp_sampler_variant *samp,
|
||||
|
||||
if (x < 0 || x >= (int) u_minify(texture->width0, level) ||
|
||||
y < 0 || y >= (int) u_minify(texture->height0, level)) {
|
||||
return sp_tex_tile_cache_border_color(samp->cache,
|
||||
samp->sampler->border_color);
|
||||
return samp->sampler->border_color;
|
||||
}
|
||||
else {
|
||||
return get_texel_2d_no_border( samp, addr, x, y );
|
||||
@@ -754,8 +753,7 @@ get_texel_3d(const struct sp_sampler_variant *samp,
|
||||
if (x < 0 || x >= (int) u_minify(texture->width0, level) ||
|
||||
y < 0 || y >= (int) u_minify(texture->height0, level) ||
|
||||
z < 0 || z >= (int) u_minify(texture->depth0, level)) {
|
||||
return sp_tex_tile_cache_border_color(samp->cache,
|
||||
samp->sampler->border_color);
|
||||
return samp->sampler->border_color;
|
||||
}
|
||||
else {
|
||||
return get_texel_3d_no_border( samp, addr, x, y, z );
|
||||
|
||||
@@ -301,26 +301,3 @@ sp_find_cached_tile_tex(struct softpipe_tex_tile_cache *tc,
|
||||
tc->last_tile = tile;
|
||||
return tile;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Return the swizzled border color.
|
||||
*/
|
||||
const float *
|
||||
sp_tex_tile_cache_border_color(struct softpipe_tex_tile_cache *tc,
|
||||
const float border_color[4])
|
||||
{
|
||||
float rgba01[6];
|
||||
|
||||
COPY_4V(rgba01, border_color);
|
||||
rgba01[PIPE_SWIZZLE_ZERO] = 0.0f;
|
||||
rgba01[PIPE_SWIZZLE_ONE] = 1.0f;
|
||||
|
||||
tc->swz_border_color[0] = rgba01[tc->swizzle_r];
|
||||
tc->swz_border_color[1] = rgba01[tc->swizzle_g];
|
||||
tc->swz_border_color[2] = rgba01[tc->swizzle_b];
|
||||
tc->swz_border_color[3] = rgba01[tc->swizzle_a];
|
||||
|
||||
return tc->swz_border_color;
|
||||
}
|
||||
|
||||
@@ -95,8 +95,6 @@ struct softpipe_tex_tile_cache
|
||||
unsigned format;
|
||||
|
||||
struct softpipe_tex_cached_tile *last_tile; /**< most recently retrieved tile */
|
||||
|
||||
float swz_border_color[4]; /**< swizzled border color */
|
||||
};
|
||||
|
||||
|
||||
@@ -161,10 +159,5 @@ sp_get_cached_tile_tex(struct softpipe_tex_tile_cache *tc,
|
||||
}
|
||||
|
||||
|
||||
const float *
|
||||
sp_tex_tile_cache_border_color(struct softpipe_tex_tile_cache *tc,
|
||||
const float border_color[4]);
|
||||
|
||||
|
||||
#endif /* SP_TEX_TILE_CACHE_H */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user