[SOLVED] 364.12: Vulkan: The Talos Principle completely blank screen [disable sync-to-vblank]

EDIT: solved by unchecking the “enable vblank” option in the game menus before changing to Vulkan.

I set up “The Talos Principle” with Vulkan support. It seems to be sort of
working, in that it throws no errors, but I cannot see anything: The screen
is completely black, BUT when I move the mouse I can hear the sounds when I
hit a menu item and click it, or when I get back into the game I can hear
the background music and footsteps. But the screen shows absolutely nothing.

Unfortunately, there’s no errors in any of the game’s or the system’s logs.
No issues with the GL renderer.

I’ve tested the LunarG cube and smoke examples and these do work.

Here’s the talog log:
18:28:41 LOG: PUZZLE: 238@Cloud_2_05(NI1) Started
18:28:41 LOG: Player profile saved with size 31.16kB(31.16kB) at 2016/03/22 18:28:41.
18:28:41 LOG: There are 751 stats that weren’t uploaded yet!
18:28:43 INF: Error sending stats message: could not connect to server.
18:28:50 LOG: Loaded “libvulkan.so.1”.
18:28:51 TRC: Cannot get values for cvar d3d_bTripleBuffering. The variable is not declared.
18:28:56 INF: Error sending stats message: could not connect to server.
18:29:02 LOG: Clearing fullscreen flag on the window.
18:29:02 LOG: Trying to set display mode 1920x1080(fullscreen)…
18:29:02 LOG: Loaded “libGL.so.1”.
18:29:02 LOG: Loaded “/home/mano/.local/share/Steam/SteamApps/common/The Talos Principle/Bin/x64/GfxVLK.so”.
18:29:02 LOG: Setting fullscreen flag on the window.
18:29:02 LOG: Loaded “libvulkan.so.1”.
18:29:02 LOG: Device memory used: 3106 MB in 15 block(s)
18:29:02 LOG: Host memory used: 2000 MB
18:29:16 INF:
18:29:16 INF: Gfx API: Vulkan
18:29:16 INF: Resolution: 1920 x 1080
18:29:16 INF: Vendor: nVidia (0x10DE)
18:29:16 INF: Driver: Vulkan (0x11B8)
18:29:16 INF: Renderer: K5100M
18:29:16 INF: Version: 1526923264
18:29:16 INF: Video memory size: 8192 MB
18:29:16 INF: Available for textures: 5461 MB
18:29:16 INF: Shader model version: 5.0
18:29:16 INF: Active GPU(s): 1
18:29:16 INF: GPU architecture: forward conventional rendering
18:29:16 INF: Allowed memory size used for streaming: 2048.0 MB
18:29:17 LOG: Create prepared shaders took 1.13 seconds
18:29:17 LOG: Created HDR render-target of 1920x1080.
18:29:17 INF: Error sending stats message: could not connect to server.
18:29:22 TRC: Cannot get values for cvar d3d_bTripleBuffering. The variable is not declared.

Hi mlau,

Apparently, there’s a known problem changing the API in the game menu. You can avoid the problem by editing the launch options in Steam and adding “+gfxapi vlk”. Also, I had to delete Talos.ini from my Steam profile directory and let the game recreate it after a recent update.

Hi Aaron,

I solved it by unchecking the “Enable vsync” option.

Since this is a thread with people who know how to do it… How do you guys do it? :)

Even with .ini removed and +gfxapi vlk, my Talos Principle refuses to work with Vulkan, saying:

22:30:51 LOG:  Setting fullscreen flag on the window.
22:30:51 LOG:  Loaded "libvulkan.so.1".
22:30:51 ERR:  Cannot set requested display mode 1152x864: GfxAPI error: 
22:30:51 ERR:  Vulkan error: Cannot find a compatible Vulkan ICD!
22:30:51 ERR:  
22:30:51 INF:  (display mode already stopped)
22:30:51 INF:  Trying fallback modes...
22:30:51 LOG:  Trying to set display mode 640x480(fullscreen)...
22:30:51 LOG:  Loaded "libGL.so.1".
22:30:51 LOG:  Loaded "/home/lam/.local/share/Steam/SteamApps/common/The Talos Principle/Bin/x64/GfxVLK.so".
22:30:51 LOG:  Setting fullscreen flag on the window.
22:30:51 LOG:  Loaded "libvulkan.so.1".
22:30:51 ERR:  Cannot set requested display mode 640x480: GfxAPI error: 
22:30:51 ERR:  Vulkan error: Cannot find a compatible Vulkan ICD!
(...)

(then it tries a bunch of other modes, fullscreen and windowed, every time same error)

Have I missed some installation step? Does it need that GLVND thing that I’m disabling?

$ glxinfo|grep -e “OpenGL version” -e renderer
OpenGL renderer string: GeForce GTX 980/PCIe/SSE2
OpenGL version string: 4.5.0 NVIDIA 364.12

Hi,

Thanks for reporting this.

It sounds like the Vulkan loader is unable to find the NVIDIA Vulkan ICD.

Can you verify what /etc/vulkan/icd.d/nvidia_icd.json points to? I suspect it still tries to reference libGLX_nvidia.so.0 even though you disabled GLVND. It should point to libGL.so.1 in that case.

This is likely a bug in our installer.

100% my fault then - I don’t use nvidia-install, instead building rpms (based on rpmfusion’s spec file). I’m basically adding new files blindly whenever unpackaged stuff is detected in new driver version and that’s it…

Guess nvidia-install would update the json automatically, but I didn’t use it, sorry!

Patching the file to point to libGL.so.1 fixed the issue, The Talos Principle works and gives almost OpenGL FPS, very nice.