diff --git a/Source/Core/VideoCommon/VertexShaderManager.cpp b/Source/Core/VideoCommon/VertexShaderManager.cpp index ce43235977..37cad02c41 100644 --- a/Source/Core/VideoCommon/VertexShaderManager.cpp +++ b/Source/Core/VideoCommon/VertexShaderManager.cpp @@ -172,22 +172,9 @@ void VertexShaderManager::SetConstants(const std::vector& textures) dstlight.pos[1] = light.dpos[1]; dstlight.pos[2] = light.dpos[2]; - // TODO: Hardware testing is needed to confirm that this normalization is correct - auto sanitize = [](float f) { - if (std::isnan(f)) - return 0.0f; - else if (std::isinf(f)) - return f > 0.0f ? 1.0f : -1.0f; - else - return f; - }; - double norm = double(light.ddir[0]) * double(light.ddir[0]) + - double(light.ddir[1]) * double(light.ddir[1]) + - double(light.ddir[2]) * double(light.ddir[2]); - norm = 1.0 / sqrt(norm); - dstlight.dir[0] = sanitize(static_cast(light.ddir[0] * norm)); - dstlight.dir[1] = sanitize(static_cast(light.ddir[1] * norm)); - dstlight.dir[2] = sanitize(static_cast(light.ddir[2] * norm)); + dstlight.dir[0] = light.ddir[0]; + dstlight.dir[1] = light.ddir[1]; + dstlight.dir[2] = light.ddir[2]; } dirty = true;