Closed jrivany closed 11 months ago
Hmm, this seems most likely to be an upstream issue with OpenMW, it might be better to report it there. Shader mods are stateless and don't have any sort of control over (or even the ability to determine) whether the shader window is open.
That was my first thought, but I wanted to report it first here, since this is the only shader that it appears to effect, and I've already tried with multiple OMW versions. So I assumed that if I said I had this specific issue with this specific shader they'd point me to make an issue here first...
Very odd, I've never seen this before. Are you using the default shader settings, or does this only happen with some particular configuration? Also, it might be worth checking the game logs to see if there's some sort of error. Because the OpenMW shader API is built on top of the vendor's GLSL implementation, it might be that your GPU vendor has done something stupid that causes OpenMW's 'uniform baking' (i.e: translating shader uniforms into constants when not configuring them) to break.
I've tried both the default configuration as well as adjusting all the settings, and get the same result every time. I'll have a look at the logs, and also try slotting in a different GPU (I have both AMD and NVIDIA on hand).
That's an interesting theory too. Is there a commit / area of the engine code you could point to for reference of that? I don't mind taking my own stab at debugging it as well.
I'm not sure, sorry. I don't know much about the internals of OpenMW. Wazabear on the OpenMW Discord server might be able to help though!
It turns out this is because I must have downloaded the wrong branch when I grabbed the repo zip, so this was just a dumb user error, but if you're curious the now fixed bug:
There appears to be driver specific shader issue when calling a functions with a mix of float and integer literals (fails on my AMD Rx 7900, but works on my 1070), in the case of the commit I had:
...mix(0.75, 1, ...)
The fragment shader then failed to compile with the following logs:
[19:26:43.352 W] FRAGMENT glCompileShader "main" FAILED
[19:26:43.353 W] FRAGMENT Shader "main" infolog:
[19:26:43.353 W] ERROR: 0:277: 'mix' : ambiguous function signature match: multiple signatures match under implicit type conversion
[19:26:43.353 W] ERROR: 0:277: '=' : cannot convert from ' const double' to ' temp float'
[19:26:43.353 W] ERROR: 0:277: '' : compilation terminated
[19:26:43.353 W] ERROR: 3 compilation errors. No code generated.
[19:26:43.353 W]
[19:26:43.353 W]
[19:26:43.353 W] glLinkProgram 000002667C67CC80"clouds" FAILED
[19:26:43.353 W] Program "clouds" infolog:
[19:26:43.353 W] Program Link Failed for unknown reason.
Thanks for the help regardless!
Ah, this old chestnut. Yep, I've seen this before in other contexts. It's very strange that it worked fine when the shader menu was open, though.
I've been trying to use this shader with both the latest development build and the released version of 0.48 on Windows.
The effects of it are only visible while I have the post-processing menu open, as soon as I close it, it disappears. I've tested various other shaders and they don't appear to have this issue. And I've tested this both without mods, along with various mods.
My current settings.cfg: