nir: slight correction to cube_face_coord constant folding
authorRhys Perry <pendingchaos02@gmail.com>
Thu, 18 Jun 2020 15:41:00 +0000 (16:41 +0100)
committerMarge Bot <eric+marge@anholt.net>
Mon, 22 Jun 2020 10:28:40 +0000 (10:28 +0000)
ACO does the division with a rcp and then a multiplication.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5547>

src/compiler/nir/nir_opcodes.py

index 6a5d025f6366bbb97b1dcad02743ac2fcec86c8f..f18668493b22509bd6267b4b26b7702b5a8086e0 100644 (file)
@@ -487,8 +487,8 @@ if (src0.y < 0 && absY >= absX && absY >= absZ) { dst.x = src0.x; dst.y = -src0.
 if (src0.z >= 0 && absZ >= absX && absZ >= absY) { dst.x = src0.x; dst.y = -src0.y; }
 if (src0.z < 0 && absZ >= absX && absZ >= absY) { dst.x = -src0.x; dst.y = -src0.y; }
 
-dst.x = dst.x / ma + 0.5;
-dst.y = dst.y / ma + 0.5;
+dst.x = dst.x * (1.0f / ma) + 0.5f;
+dst.y = dst.y * (1.0f / ma) + 0.5f;
 """)
 
 unop_horiz("cube_face_index", 1, tfloat32, 3, tfloat32, """