nir: Add optimization for fdot(x, 0) -> 0.
We had all these nice fdot opts to drop individual channels that were 0, but nothing handling it being entirely 0! Avoids r300g regression when dropping them from GLSL. Acked-by: Timothy Arceri <tarceri@itsqueeze.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21475>
This commit is contained in:
@@ -401,6 +401,10 @@ optimizations.extend([
|
||||
|
||||
(('fdph', a, b), ('fdot4', ('vec4', 'a.x', 'a.y', 'a.z', 1.0), b), 'options->lower_fdph'),
|
||||
|
||||
(('fdot4', a, 0.0), 0.0),
|
||||
(('fdot3', a, 0.0), 0.0),
|
||||
(('fdot2', a, 0.0), 0.0),
|
||||
|
||||
(('fdot4', ('vec4', a, b, c, 1.0), d), ('fdph', ('vec3', a, b, c), d), '!options->lower_fdph'),
|
||||
(('fdot4', ('vec4', a, 0.0, 0.0, 0.0), b), ('fmul', a, b)),
|
||||
(('fdot4', ('vec4', a, b, 0.0, 0.0), c), ('fdot2', ('vec2', a, b), c)),
|
||||
|
Reference in New Issue
Block a user