[Mesa-dev] [PATCH] softpipe: Take all lods into account when texture sampling.
Roland Scheidegger
sroland at vmware.com
Wed Jun 20 05:44:14 PDT 2012
On 06/19/2012 08:01 PM, Olivier Galibert wrote:
> This patch churns a lot because it needs to change 4-wide filters into
> single pixel filters, since each fragment may use a different filter.
>
> The only case not entirely supported is the anisotropic filtering.
> Not sure what we want to do there, since a full quad is required by
> that filter.
>
> Signed-off-by: Olivier Galibert<galibert at pobox.com>
A lot of code I just glossed over it, but seems to look ok other than
the (performance) implications this might have.
> ---
> src/gallium/drivers/softpipe/sp_tex_sample.c | 1383 ++++++++++++--------------
> src/gallium/drivers/softpipe/sp_tex_sample.h | 28 +-
> 2 files changed, 645 insertions(+), 766 deletions(-)
> @@ -837,64 +773,61 @@ print_sample(const char *function, float rgba[TGSI_NUM_CHANNELS][TGSI_QUAD_SIZE]
> rgba[0][3], rgba[1][3], rgba[2][3], rgba[3][3]);
> }
>
> -
> /* Some image-filter fastpaths:
> */
> static INLINE void
> img_filter_2d_linear_repeat_POT(struct tgsi_sampler *tgsi_sampler,
> - const float s[TGSI_QUAD_SIZE],
> - const float t[TGSI_QUAD_SIZE],
> - const float p[TGSI_QUAD_SIZE],
> - const float c0[TGSI_QUAD_SIZE],
> + float s,
> + float t,
> + float p,
> + unsigned level,
whitespace
> + unsigned face_id,
> enum tgsi_sampler_control control,
> - float rgba[TGSI_NUM_CHANNELS][TGSI_QUAD_SIZE])
> + float *rgba)
Roland
More information about the mesa-dev
mailing list