Makes 8/16-bit storage buffer features optional and adds shader emulation
when unavailable. Fixes Pokemon Legends: Z-A crashing on stock Qualcomm
Adreno drivers.
- Move storage8/16 from mandatory to recommended features
- Add SPIR-V capability guards for workgroup memory 8/16-bit access
- Implement int64 conversion lowering for compatibility
- Separate cache version (v13) for emulated vs native storage
- Update cache magic from 'yuzu' to 'citron'
Signed-off-by: Zephyron <zephyron@citron-emu.org>
Implement comprehensive compatibility layer for Qualcomm Adreno, ARM Mali,
and Samsung Xclipse drivers to maintain rendering quality while working
around driver bugs and missing features.
- Extended Dynamic State fallback
- Custom Border Color fallback
- Shader Int64 fallback
- Push Descriptor fallback
- Modern Adreno 7xx/8xx detection
Ensures stable emulation on stock mobile drivers without turnips.
Signed-off-by: Zephyron <zephyron@citron-emu.org>
Fixed NullPointerException caused by missing EXTENDED_DYNAMIC_STATE and
USE_CONDITIONAL_RENDERING entries in SettingsItem.settingsItems HashMap.
These settings were referenced in the Zep Zone menu but not registered,
causing the app to crash when trying to display them.
Signed-off-by: Zephyron <zephyron@citron-emu.org>
Changes:
- Add missing encryption type cases to all switch statements
- Only call CreatePatchMetaStorage() when both tables are present
- Update assertions to allow partial table combinations
Fixes loading for Hades II, Pokémon Legends: Z-A, and other games
with newer NCA structures.
Reported-by: Dr.Stug@citron-emu.org
Signed-off-by: Zephyron <zephyron@citron-emu.org>