mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-05 06:10:28 +01:00
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@itsqueeze.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11917>
This commit is contained in:
parent
7de5293b89
commit
57dcfb4e55
1 changed files with 9 additions and 9 deletions
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue