libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.27k stars 1.83k forks source link

Shaders not working with D3D12 driver #14112

Open ichee opened 2 years ago

ichee commented 2 years ago

First and foremost consider this:

Description

Some of the slang shaders don't appear to be working with the d3d12 driver, mainly deinterlacing, dithering, everything under misc, and ntsc, though many others appear very differently compared to the other drivers. The only exceptions appear to be many of the crt shaders (excluding royale) and most image adjustment shaders.

Other drivers are working as expected.

Expected behavior

Shaders to work the same as the other drivers (eg. d3d11, glcore, vulkan).

Actual behavior

Content appears the same as not loading any shaders at all.

Steps to reproduce the bug

  1. Set driver to d3d12
  2. Load any content in any core
  3. Apply a shader

Bisect Results

Has been an issue since earliest version d3d12 was added, up to the latest nighly and stable releases.

Environment information

Windows 11 Nvidia RTX 3090

SedrynTyros commented 1 year ago

Confirmed.

hizzlekizzle commented 1 year ago

Hmm, misc/interlacing.slangp looks the same with d3d12 and d3d11 here, except it looks like d3d12 might be forcing bilinear scaling when the filter is set to "don't care" instead of following the value in settings > video. Could that be the cause of the issue?

SedrynTyros commented 1 year ago

Try any of the xbr/xbrz shaders with D3D12. None of them work.

hizzlekizzle commented 1 year ago

They look fine here (I tried 4xbrz and one of the super-xbr-small-details presets) /shrug

SedrynTyros commented 1 year ago

Huh ... I've never got them to work with D3D12. D3D11 works fine, though.