Dolphin Core, d3d11, black screen *when shaders on*

I finally started moving my standalone dolphin stuff into RA, since it seems to work very well (congratulations and many thanks to the people involved, it is fantastic to have Cube and Wii in the retroarch environment!). So I want to use d3d11 for Dolphin because it is quite a bit faster than gl and vulkan on my system, but I have that problem. The game keeps running normally, it’s not a crash or anything like that. Any ideas on what might be going on? I searched for information, couldn’t find anything :confused:

Is it all shaders?

Hey hunter. Yeah, seems to be all of them. I tried running other cores in d3d and they work fine. It only happens with dolphin. It’s 1.8.0 + the newest core and most recent shaders by the way. Oh and video_shared_context = “true”

Very strange. How about glcore or vulkan? do they behave the same for you?

Haven’t tried shaders in vulkan since that lags a lot on my machine. Will do that now and come back. Glcore works well, but slower than d3d. Good old gl crashes RA (known issue, I reckon?)

@hunterk - shaders work well in vulkan. And oh-my-god. Vulkan is incredibly responsive! The input lag differences between that and d3d are massive! Why is that? I guess it has to do with a different vsync approach? Metroid Prime was sluggish in vulkan, 60 smooth fps in d3d. But I just tried Ikaruga (one of my favourite games ever, by the way) and it felt like playing on my Dreamcast in a crt back in the day. Wow.

Yeah, GL crash is a known thing. It’s been happening since the video driver switching was implemented.

I enjoy using vulkan whenever I can, yeah. Make sure you have the max swapchain images set to 1 or 2 in settings > video. That’s sort of like hard gpu sync.

1 Like

I couldn’t say, really. Unfortunately, GPU drivers are a bit of a black box. We just have to trust them to do the best they can.

1 Like

Ok so swapchain made no difference. I believe it’s due to the game running at locked 30 fps, for whatever reason. Like when in a double buffer vsync scenario you can’t hit your target fps and they get halved. Via fast fwd I can see that it can run quite a bit faster than 60fps, so there might be something going on with vsync or buffers at driver level.

Hey is it normal that the input lag difference between vulkan and d3d be so huge? Because two possible paths now open before me: improving vulkan’s sync/speed or d3d’s input lag and black screen. Based on that little but orgasmic experience with Ikaruga in Vulkan, I feel inclined towards the former…

Edit: there’s definitely something going on with driver-level vsync. It overrides RA’s settings, even if I set it to the default “use the 3D application setting”. Affects both vulkan and d3d, but in different ways: if I set it to off, d3d runs great, retroarch-vsynced and without the horrible input lag I experienced before. But in vulkan, setting it to off results in no vsync at all and massive tearing. I’ve always used gl, so I wasn’t aware of all this until today. Based on these new tests, I think I will turn off nvidia’s vsync and try to run dolphin in d3d, since it really is quite a bit smoother than the other drivers and with proper vsync the input lag feels great. GPU drivers are a black box indeed. As are APIs, I suppose.

So to make a long story short, back to the first question: if you @hunterk or anyone else can think of a reason why I get black screens when using shaders (dolphin, d3d) please let me know. I will really appreciate it : )

1 Like