Created attachment 127305 [details]
Error log of "The Talos Principle" when launched with Vulkan
I wanted to test The Talos Principle with my Hawaii GPU (for the full stack see below). But whenever I launch the game I get the error "Fatal error: Cannot set display mode." and the attached info is logged to the console.
To launch the game with Vulkan I opted into the Beta (as recommended by CroTeam) and set »+gfx_strAPI "VLK"« as a command line option (Steam Library → The Talos Principle → Properties → Set Launch Options → »%command% +gfx_strAPI "VLK"«), like it was recommended for Linux users by CroTeam in multiple threads, see eg. <https://steamcommunity.com/app/257510/discussions/0/412448792370543845/>. Afterwards I tried to launch the 64-bit version of The Talos Principle.
In case this makes a difference: I've the Road to Gehenna DLC installed.
With OpenGL the game works as expected.
When I run vulkaninfo (from the Debian package vulkan-utils) everything looks ok/like Vulkan is working.
The stack showing this issue is (Debian testing as a base):
GPU: Hawaii PRO [Radeon R9 290] (ChipID = 0x67b1)
LLVM: SVN:trunk/r284109 (4.0 devel)
Firmware (firmware-amd-graphics): 20160824-1
DDX (xserver-xorg-video-amdgpu): 1.1.2-1
Let me know, if you need anything else.
Created attachment 127306 [details]
output of vulkaninfo
Dave Airlie pointed out to me on IRC, that I need DRI3 and this looks like missing DRI3 support. He was right. amdgpu defaults to DRI2 and I hadn't set the "DRI" option to "3". With that set, Talos start, though it seems to hang my system, but that is a different bug and I need to check if that still occurs with current HEAD of Mesa.
Hi Kai, feel free to send a patch which makes the "vulkan: No DRI3 support" message less likely to miss ;-)
The problem was not so much me not seeing that message, the problem was more that I didn't connect "no DRI3 support" equals "this game won't start and segfault. Combine that with the warning "WARNING: radv is not a conformant vulkan implementation, testing use only." right above that message and I really didn't think too much of it. Not sure if a patch could fix that. ;-)
(In reply to Kai from comment #4)
> The problem was not so much me not seeing that message, the problem was more
> that I didn't connect "no DRI3 support" equals "this game won't start and
> segfault. Combine that with the warning "WARNING: radv is not a conformant
> vulkan implementation, testing use only." right above that message and I
> really didn't think too much of it. Not sure if a patch could fix that. ;-)
If the crash is in Mesa just track it down and add the appropriate "smoketest" handling ? Alternatively one should contact the Talo developers to fix their app ?
Either way expanding "no DRI3 support" so something like the below might be a good idea ?
No DRI3 support - ensure that your system is correctly setup.
Note: buggy applications can crash at this point - report those to the vendor.
small patch on mesa-dev with Emil's suggestion.
I'm not sure expanding this message is a good idea, in fact, I'm looking for a way to turn it off:
When I enumerate physical devices on Ubuntu 16.04, Vulkan shows I have 2 GPU's available: Intel HD, and NVidia GTX. (Sometimes the order is reversed.)
Now I'm trying to determine which one the desktop is currently running on, by calling vkGetPhysicalDeviceSurfaceSupportKHR on each GPU's queue-families.
If the desktop is running on Intel, the query returns true for Intel,
but when running on NVidia, it returns true for Nvidia and false for Intel, but also prints:
"no DRI3 support"
I DO have DRI3 enabled for Intel, but this setting is irrelevant and ignored when running on NVidia, so the error message is not really applicable.
Is there some way to turn off this error message, or a better way to determine the currently active GPU, without triggering this error?
The "No DRI3 support" is only relevant when the desktop is running on Intel, but also gets displayed whenever NVidia is used, regardless of whether DRI3 was enabled or not. Maybe this message should be muted if more than one GPU is detected?
As for the "buggy applications can crash" part, it implies that MY Vulkan app is buggy, which is completely unacceptable!!
This has already lead to people incorrectly filing bugs against other Vulkan app developers. ( see: https://github.com/SaschaWillems/Vulkan/issues/226 )
(In reply to Rene Lindsay from comment #8)
> The "No DRI3 support" is only relevant when the desktop is running on Intel, [...]
That's actually not true, even ignoring that DRI3 works fine with open source drivers on non-Intel GPUs. The nvidia Xorg driver could support DRI3 (and the Present extension), and then the Vulkan drivers for non-nVidia GPUs could at least theoretically work with it.
Anyway, this report is about the Talos principle failing to start with the radv driver because DRI3 is disabled, which is a configuration error, so resolving as invalid again. Rene, please file your own report (or just post to the mesa-dev mailing list) about the error messages.