Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Previously, we used legacy.mul intrinsic to do multiplication of mul(x, rsq(dot(x))) to compute normalize(x) for FP32. This was to avoid zero vector of x. But such v_mul_legacy_f32 fails to do such multiplication mul(-0.0, +value). The result is expected to be -0.0. The sign of zero is dropped. To fix such issues, we manually check x=0 by avoiding the use of v_mul_legacy_f32. GLSL spec doesn't say anything about x=0. Not sure if such special check of FP32 is caused by invalid shader input of some games. Just still keep the workaround.
- Loading branch information