From 7923903f928c3490f981f91c270221599e4b6d86 Mon Sep 17 00:00:00 2001 From: nodchip Date: Sun, 9 May 2010 03:14:11 +0000 Subject: [PATCH] [Plugin_VideoDX9] A minor speed up for SetMultiVSConstant4fv(). git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5442 8ced0084-cf51-0410-be5f-012b33b47a6e --- .../Plugin_VideoDX9/Src/VertexShaderCache.cpp | 23 ++----------------- 1 file changed, 2 insertions(+), 21 deletions(-) diff --git a/Source/Plugins/Plugin_VideoDX9/Src/VertexShaderCache.cpp b/Source/Plugins/Plugin_VideoDX9/Src/VertexShaderCache.cpp index 3bd94b2210..8e0660d98c 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/VertexShaderCache.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/VertexShaderCache.cpp @@ -120,27 +120,8 @@ void SetMultiVSConstant3fv(int const_number, int count, const float *f) void SetMultiVSConstant4fv(int const_number, int count, const float *f) { - bool change = false; - for (int i = 0; i < count; i++) - { - if (lastVSconstants[const_number + i][0] != f[0 + i*4] || - lastVSconstants[const_number + i][1] != f[1 + i*4] || - lastVSconstants[const_number + i][2] != f[2 + i*4] || - lastVSconstants[const_number + i][3] != f[3 + i*4]) - { - change = true; - break; - } - } - if (change) - { - for (int i = 0; i < count; i++) - { - lastVSconstants[const_number + i][0] = f[0 + i*4]; - lastVSconstants[const_number + i][1] = f[1 + i*4]; - lastVSconstants[const_number + i][2] = f[2 + i*4]; - lastVSconstants[const_number + i][3] = f[3 + i*4]; - } + if (memcmp(&lastVSconstants[const_number], f, count * sizeof(float) * 4)) { + memcpy(&lastVSconstants[const_number], f, count * sizeof(float) * 4); D3D::dev->SetVertexShaderConstantF(const_number, lastVSconstants[const_number], count); } }