mirror of https://github.com/PCSX2/pcsx2.git
0f24048cd5
Some games (e.g. Metal Gear Solid 2) use large-ish textures, with a bunch of different CLUTs/palettes, depending on the draw. Kind-of like a texture atlas. This causes issues when texture preloading is enabled, as both VRAM and GS CPU thread usage increase proporiately to the number of texture:clut pairs (since it has to be hashed). An alternative to disabling preloading, which is what we currently do, is enabling GPU palette conversion in these games. Even though we ever-so-slightly increase the GPU load due to having to do shader sampling, the CPU load on the GS thread is considerably reduced, and overall performance is greater. In theory it'll also achieve higher cache hit rates on the GPU, since we're not duplicating a bunch of textures. However, as a general rule of thumb, we don't want to encourage people to enable paltex, as most games run slower with it on. So, what this PR does, is add a GameDB option for these types of games, to enable paltex when texture preloading is set to full/hash cache, but otherwise leave the setting alone. The best of both worlds. NOTE: I've also forced paltex=0 for Spider-Man 2, as it uses a massive number of palettes which can cause descriptor issues in DX12/Vulkan. A perfect example of where you *don't* want to use paltex. |
||
---|---|---|
.. | ||
gamedb |