diff options
| author | 2017-09-17 15:42:45 +0100 | |
|---|---|---|
| committer | 2017-09-17 15:56:36 +0100 | |
| commit | a234e4c2009b08039d0698cbbcc8595a1f04a615 (patch) | |
| tree | d36bdada9d659281efc206f26bfb03615e68c238 /src | |
| parent | Merge pull request #2906 from Subv/ns_new_framework (diff) | |
| download | yuzu-a234e4c2009b08039d0698cbbcc8595a1f04a615.tar.gz yuzu-a234e4c2009b08039d0698cbbcc8595a1f04a615.tar.xz yuzu-a234e4c2009b08039d0698cbbcc8595a1f04a615.zip | |
Improved performance of FromAttributeBuffer
Ternary operator is optimized by the compiler
whereas std::min() is meant to return a value.
I've noticed a 5%-10% emulation speed increase.
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/shader/shader.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/video_core/shader/shader.cpp b/src/video_core/shader/shader.cpp index e9063e616..2857d2829 100644 --- a/src/video_core/shader/shader.cpp +++ b/src/video_core/shader/shader.cpp | |||
| @@ -52,7 +52,8 @@ OutputVertex OutputVertex::FromAttributeBuffer(const RasterizerRegs& regs, | |||
| 52 | // The hardware takes the absolute and saturates vertex colors like this, *before* doing | 52 | // The hardware takes the absolute and saturates vertex colors like this, *before* doing |
| 53 | // interpolation | 53 | // interpolation |
| 54 | for (unsigned i = 0; i < 4; ++i) { | 54 | for (unsigned i = 0; i < 4; ++i) { |
| 55 | ret.color[i] = float24::FromFloat32(std::fmin(std::fabs(ret.color[i].ToFloat32()), 1.0f)); | 55 | float c = std::fabs(ret.color[i].ToFloat32()); |
| 56 | ret.color[i] = float24::FromFloat32(c < 1.0f ? c : 1.0f); | ||
| 56 | } | 57 | } |
| 57 | 58 | ||
| 58 | LOG_TRACE(HW_GPU, "Output vertex: pos(%.2f, %.2f, %.2f, %.2f), quat(%.2f, %.2f, %.2f, %.2f), " | 59 | LOG_TRACE(HW_GPU, "Output vertex: pos(%.2f, %.2f, %.2f, %.2f), quat(%.2f, %.2f, %.2f, %.2f), " |