Mesa (main): softpipe/aniso: move DDQ calculation to after scaling.
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Sun Jul 18 06:29:31 UTC 2021
Module: Mesa
Branch: main
Commit: 57dcfb4e55346ee2d7e3da79e93a7d36a8a5ca17
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=57dcfb4e55346ee2d7e3da79e93a7d36a8a5ca17
Author: Dave Airlie <airlied at redhat.com>
Date: Fri Jul 16 12:28:57 2021 +1000
softpipe/aniso: move DDQ calculation to after scaling.
I've read the papers on EWA filters and it seems like the calculate
DDQ = 2 * A after the scaling of A happens. This seems to make
things less blurry and more like real aniso.
Fixes: 2135aba8 ("softpipe: Constify variables")
Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>
Reviewed-by: Roland Scheidegger <sroland at vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11917>
---
src/gallium/drivers/softpipe/sp_tex_sample.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/src/gallium/drivers/softpipe/sp_tex_sample.c b/src/gallium/drivers/softpipe/sp_tex_sample.c
index 87259301dce..73721505093 100644
--- a/src/gallium/drivers/softpipe/sp_tex_sample.c
+++ b/src/gallium/drivers/softpipe/sp_tex_sample.c
@@ -2385,15 +2385,6 @@ img_filter_2d_ewa(const struct sp_sampler_view *sp_sview,
float weight_buffer[TGSI_QUAD_SIZE];
int j;
- /* For each quad, the du and dx values are the same and so the ellipse is
- * also the same. Note that texel/image access can only be performed using
- * a quad, i.e. it is not possible to get the pixel value for a single
- * tex coord. In order to have a better performance, the access is buffered
- * using the s_buffer/t_buffer and weight_buffer. Only when the buffer is
- * full, then the pixel values are read from the image.
- */
- const float ddq = 2 * A;
-
/* Scale ellipse formula to directly index the Filter Lookup Table.
* i.e. scale so that F = WEIGHT_LUT_SIZE-1
*/
@@ -2403,6 +2394,15 @@ img_filter_2d_ewa(const struct sp_sampler_view *sp_sview,
C *= formScale;
/* F *= formScale; */ /* no need to scale F as we don't use it below here */
+ /* For each quad, the du and dx values are the same and so the ellipse is
+ * also the same. Note that texel/image access can only be performed using
+ * a quad, i.e. it is not possible to get the pixel value for a single
+ * tex coord. In order to have a better performance, the access is buffered
+ * using the s_buffer/t_buffer and weight_buffer. Only when the buffer is
+ * full, then the pixel values are read from the image.
+ */
+ const float ddq = 2 * A;
+
args.level = level;
args.offset = offset;
More information about the mesa-commit
mailing list