From: Gert Wollny Date: Thu, 4 Apr 2019 09:34:26 +0000 (+0200) Subject: softpipe: Use mag texture filter also for clamped lod == 0 X-Git-Tag: upstream/19.3.0~7566 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0dff1533f25951adda3c36be6d9efa944741befb;p=platform%2Fupstream%2Fmesa.git softpipe: Use mag texture filter also for clamped lod == 0 Follow the spec when selecting the magnification filter (OpenGL 4.5, section 8.14): If λ(x, y) is less than or equal to the constant c (see section 8.15) the texture is said to be magnified; While we're here also silence a potential warning about implicit float to double conversion. v2: Update commit message to contain a reference to the spec as pointed out by Eric. Fixes a number of dEQP GLES2 and GLES3 test out of: dEQP-GLES2.functional.texture.filtering.* dEQP-GLES2.functional.texture.vertex.2d.filtering.* dEQP-GLES3.functional.texture.vertex.*.filtering.* dEQP-GLES3.functional.texture.filtering.* dEQP-GLES3.functional.texture.shadow.2d.* Signed-off-by: Gert Wollny Reviewed-by: Eric Anholt --- diff --git a/src/gallium/drivers/softpipe/sp_tex_sample.c b/src/gallium/drivers/softpipe/sp_tex_sample.c index 26d3829..1b40e35 100644 --- a/src/gallium/drivers/softpipe/sp_tex_sample.c +++ b/src/gallium/drivers/softpipe/sp_tex_sample.c @@ -1956,7 +1956,7 @@ mip_filter_linear(const struct sp_sampler_view *sp_sview, args.p = p[j]; args.face_id = filt_args->faces[j]; - if (lod[j] < 0.0) { + if (lod[j] <= 0.0) { args.level = psview->u.tex.first_level; mag_filter(sp_sview, sp_samp, &args, &rgba[0][j]); } @@ -2040,7 +2040,7 @@ mip_filter_nearest(const struct sp_sampler_view *sp_sview, args.p = p[j]; args.face_id = filt_args->faces[j]; - if (lod[j] < 0.0) { + if (lod[j] <= 0.0) { args.level = psview->u.tex.first_level; mag_filter(sp_sview, sp_samp, &args, &rgba[0][j]); } else { @@ -2100,7 +2100,7 @@ mip_filter_none(const struct sp_sampler_view *sp_sview, args.t = t[j]; args.p = p[j]; args.face_id = filt_args->faces[j]; - if (lod[j] < 0.0) { + if (lod[j] <= 0.0f) { mag_filter(sp_sview, sp_samp, &args, &rgba[0][j]); } else {