- Updated `nvn_bias` structure to extend the offset range.
- Adjusted `offset_begin` from 0x110 to 0x100 and `offset_end` from 0x610 to 0x700.
- These changes provide a broader range for better memory alignment and handling.
- Refactored logic operation handling for AMD drivers to reduce unnecessary object creation.
- Inlined lambda for float type checking in vertex attribute format to improve performance.
- Updated dynamic state management with support for extended dynamic state and primitive restart enable.
- Added checks for various extended dynamic state support features (v1, v2, v3).
- Added shader module and pipeline for ABGR8 sRGB to D24S8 conversion in `convert_abgr8_srgb_to_d24s8.frag`.
- Implemented `BlitImageHelper::ConvertABGR8SRGBToD24S8` to handle the conversion using the new pipeline.
- Integrated the shader and pipeline with the `Framebuffer` and `ImageView` for proper rendering.
- Added logic to select the conversion function when the source image format is `PixelFormat::A8B8G8R8_SRGB`.
- Implemented basic frame interpolation logic using `std::optional<Frame>` for storing previous frames.
- Added frame skipping mechanism to skip frames based on target FPS.
- Integrated settings check for enabling/disabling frame interpolation.
- Ensured proper handling of Vulkan objects (e.g., semaphores) during interpolation.
- Refactored the `Composite` function to handle both regular rendering and interpolated frame rendering.
- Updated Vulkan renderer header to include interpolation function and frame skipping control variables.
- Implemented dynamic FPS overlay color gradient transitioning from red (low FPS) to green (high FPS).
- Adjusted FPS cap handling for games that run at 30 FPS or 60 FPS using `isThirtyFpsGame()`.
- Interpolated text color based on actual FPS performance relative to the target maximum FPS.
- Included memory usage and hardware information (CPU backend, GPU driver) in the overlay.
- Implemented dynamic FPS overlay color gradient transitioning from red (low FPS) to green (high FPS).
- Adjusted FPS cap handling for games that run at 30 FPS or 60 FPS using `isThirtyFpsGame()`.
- Interpolated text color based on actual FPS performance relative to the target maximum FPS.
- Included memory usage and hardware information (CPU backend, GPU driver) in the overlay.
- Prevent multiple error logs for unmapped memory regions using a flag.
- Zero out unmapped memory to avoid reading uninitialized memory.
- Improve pointer handling for mapped memory copying using std::memcpy.