|Altirra 3.20 Test10 ||[witek], 2018-12-29 14:10:03|
Initial support for hardware accelerated screen effects.
This is an early version, so there are still some bugs, but these are the changes:
- Gamma/color correction can now be accelerated on the GPU. For plain displays, this was done for free through the palette, but any effect that forced 32-bit rendering incurred extra cost for this. In particular, color correction about doubled the CPU cost of NTSC artifacting, which this brings back down. The main intention is to make it reasonably cheap to switch color correction on in the default NTSC color profile for more accurate default colors.
- Scanlines are also accelerated on the GPU and rendered with better quality: full resolution instead of double vertical interpolated and computed in linear space instead of gamma space. This reduces moiré effects. GPU scanlines can also be rendered in interlace mode, though you need at least an FHD resolution display to do so (>960 pixels vertical).
- PAL artifacting (chroma blending) can now be GPU accelerated. (NTSC and PAL high artifacting still cannot.)
- Barrel distortion and bloom/glow simulation is now supported. These are tuned through a new dialog in View > Adjust screen effects.
- Screen effects currently require DirectX 11 and a shader-capable graphics card (DX9-class or above). DX11 must be enabled in Options > Display and thus this wont work on Windows XP. I should be able to reimplement these for DX9 (needed for Windows 7 as well as XP) but dont want to maintain two code paths just yet.
- GPU acceleration of existing effects requires checking an enable in Configure System > Emulator > Display. Barrel distortion and bloom dont, those require GPU acceleration to work. Some features like video recording will disable accelerated effects.
- Screen position dependent features like text selection, light gun, etc. are not currently barrel distortion aware and will ignore it.
- There are some known issues with artifacts along borders.
- Most of the effects should be pretty cheap on any graphics card that can run them, but the bloom in particular may cause slowdowns if you have a very weak graphics card. The slowest DX11-capable GPU I have is an Intel Graphics 520 (Gen9/Skylake), which gets up to around 40% when rendering all effects at 2560x1440.