diff options
| author | hrydgard <hrydgard@gmail.com> | 2009-02-09 20:35:30 +0000 |
|---|---|---|
| committer | hrydgard <hrydgard@gmail.com> | 2009-02-09 20:35:30 +0000 |
| commit | d209d4a577ccaade93ecde00fe37c68741602948 (patch) | |
| tree | fda0b26c61afb729a17dd1e3a52bc3eb996bdad4 /Source/Plugins/Plugin_VideoOGL/Src/VertexLoaderManager.cpp | |
| parent | 5edef947536c1dc7aef41603530ad9b5545cd4f0 (diff) | |
Cache vertex array pointers, a la magumagu's idea. Misc other stuff. Should give very minor speed boost.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2185 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Plugins/Plugin_VideoOGL/Src/VertexLoaderManager.cpp')
| -rw-r--r-- | Source/Plugins/Plugin_VideoOGL/Src/VertexLoaderManager.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/Source/Plugins/Plugin_VideoOGL/Src/VertexLoaderManager.cpp b/Source/Plugins/Plugin_VideoOGL/Src/VertexLoaderManager.cpp index 897e387207..88b1ec18b7 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/VertexLoaderManager.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/VertexLoaderManager.cpp @@ -17,6 +17,7 @@ #include <map> +#include "VideoCommon.h" #include "Statistics.h" #include "VertexShaderManager.h" @@ -145,7 +146,8 @@ void LoadCPReg(u32 sub_cmd, u32 value) // Pointers to vertex arrays in GC RAM case 0xA0: - arraybases[sub_cmd & 0xF] = value & 0xFFFFFFFF; // huh, why the mask? + arraybases[sub_cmd & 0xF] = value; + cached_arraybases[sub_cmd & 0xF] = Memory_GetPtr(value); break; case 0xB0: @@ -153,3 +155,11 @@ void LoadCPReg(u32 sub_cmd, u32 value) break; } } + +void RecomputeCachedArraybases() +{ + for (int i = 0; i < 16; i++) + { + cached_arraybases[i] = Memory_GetPtr(arraybases[i]); + } +} |
