feat: Add frame generation and enhance UE4 game compatibility

- Add frame generation settings (enabled/disabled, interpolation/extrapolation modes)
- Add frame skipping settings (enabled/disabled, adaptive/fixed modes)
- Implement frame skipping logic with adaptive and fixed modes
- Enhance UE4 crash handling with recovery mechanisms
- Add support for signed and float 32-bit image formats across shader backends
- Update Vulkan Validation Layers to v1.4.321.0
- Fix duplicate frame skipping options in Qt UI
- Improve memory handling for UE4 games (Hogwarts Legacy compatibility)
- Add enhanced bindless texture handling with fallback approach
- Update Android build configuration and dependencies

Signed-off-by: Zephyron <zephyron@citron-emu.org>
This commit is contained in:
Zephyron
2025-08-05 19:32:28 +10:00
parent 011a546229
commit 117c467ff3
40 changed files with 1004 additions and 76 deletions

View File

@@ -349,14 +349,54 @@ struct Values {
true};
SwitchableSetting<FSR2QualityMode, true> fsr2_quality_mode{linkage,
FSR2QualityMode::Performance, // Performance by default
FSR2QualityMode::Quality,
FSR2QualityMode::UltraPerformance,
"fsr2_quality_mode",
Category::Renderer,
Specialization::Default,
true,
true};
FSR2QualityMode::Quality, // Quality by default
FSR2QualityMode::Quality, // Min value
FSR2QualityMode::UltraPerformance, // Max value
"fsr2_quality_mode",
Category::Renderer,
Specialization::Default,
true,
true};
SwitchableSetting<FrameGeneration, true> frame_generation{linkage,
FrameGeneration::Disabled, // Disabled by default
FrameGeneration::Disabled,
FrameGeneration::Enabled,
"frame_generation",
Category::Renderer,
Specialization::Default,
true,
true};
SwitchableSetting<FrameGenerationMode, true> frame_generation_mode{linkage,
FrameGenerationMode::Interpolation, // Interpolation by default
FrameGenerationMode::Interpolation,
FrameGenerationMode::Extrapolation,
"frame_generation_mode",
Category::Renderer,
Specialization::Default,
true,
true};
SwitchableSetting<FrameSkipping, true> frame_skipping{linkage,
FrameSkipping::Disabled, // Disabled by default
FrameSkipping::Disabled,
FrameSkipping::Enabled,
"frame_skipping",
Category::Renderer,
Specialization::Default,
true,
true};
SwitchableSetting<FrameSkippingMode, true> frame_skipping_mode{linkage,
FrameSkippingMode::Adaptive, // Adaptive by default
FrameSkippingMode::Adaptive,
FrameSkippingMode::Fixed,
"frame_skipping_mode",
Category::Renderer,
Specialization::Default,
true,
true};
SwitchableSetting<u8, false> bg_red{
linkage, 0, "bg_red", Category::Renderer, Specialization::Default, true, true};

View File

@@ -153,6 +153,14 @@ ENUM(AntiAliasing, None, Fxaa, Smaa, MaxEnum);
ENUM(FSR2QualityMode, Quality, Balanced, Performance, UltraPerformance);
ENUM(FrameGeneration, Disabled, Enabled, MaxEnum);
ENUM(FrameGenerationMode, Interpolation, Extrapolation, MaxEnum);
ENUM(FrameSkipping, Disabled, Enabled, MaxEnum);
ENUM(FrameSkippingMode, Adaptive, Fixed, MaxEnum);
ENUM(AspectRatio, R16_9, R4_3, R21_9, R16_10, R32_9, Stretch);
ENUM(ConsoleMode, Handheld, Docked);