Instead of shoehorning GS source files into the unit tests, we link with
the full PCSX2 core library. We stub out all the Host functions, as,
well, there isn't one, and they may be indirectly referenced.
- Remove unused build options
- Disable setcap by default
Applications should not need to call sudo as part of the build process.
- Rename XDG_STD to USE_LEGACY_USER_DIRECTORY
By default, we use ~/.config/PCSX2 now.
- Default Wayland support to on
I don't think there's any systems worth supporting that don't have it.
- Rework "install" logic
Linux no longer installs to GIT_ROOT/bin, it builds direct to BUILD/bin.
Saves a file copy, and running make install before running your developer
build was always silly.
- Don't require install target to build appimage
AppImage creator now just adds the entire bin directory as-is.
Everything needed is in there.
Qt's build script picks up gssapi_krb5.dylib instead of GSS.framework on some MacOS SDKs, failing the build. We don't need GSS, so disable it instead of patching
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.