Bug 99442 - The Talos Principle hangs with Vulkan/Radeon
Summary: The Talos Principle hangs with Vulkan/Radeon
Status: RESOLVED NOTOURBUG
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/Vulkan/radeon (show other bugs)
Version: git
Hardware: Other Linux (All)
: medium normal
Assignee: mesa-dev
QA Contact: mesa-dev
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-01-17 20:48 UTC by Hadrien Nilsson
Modified: 2017-01-22 19:07 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
Game log (14.94 KB, text/x-log)
2017-01-17 20:48 UTC, Hadrien Nilsson
Details
vulkaninfo output (82.57 KB, text/plain)
2017-01-17 20:48 UTC, Hadrien Nilsson
Details
gdb bt output (8.30 KB, text/plain)
2017-01-17 20:49 UTC, Hadrien Nilsson
Details

Description Hadrien Nilsson 2017-01-17 20:48:15 UTC
Created attachment 129010 [details]
Game log

Hi,

I am trying to run The Talos Principle with the Mesa Vulkan implementation for Amd cards. When I start the game with Vulkan enabled, the game displays a picture for half a second and then hangs with a black screen.

OS: Ubuntu 16.10
Linux kernel version: 4.8.0-34-generic
cpu: Intel i7-6700K
gpu: Amd RX 480
Mesa version: 1:17.0~git170114232400.c9b74f3~y~padoka0

I first opened a discussion on Steam and the developer suggests a driver issue:
http://steamcommunity.com/app/257510/discussions/0/144513670981507367

I'll attach the game log, vulkan info and the stack trace after I attached gdb to the process.
Comment 1 Hadrien Nilsson 2017-01-17 20:48:39 UTC
Created attachment 129011 [details]
vulkaninfo output
Comment 2 Hadrien Nilsson 2017-01-17 20:49:03 UTC
Created attachment 129012 [details]
gdb bt output
Comment 3 Eero Tamminen 2017-01-18 10:35:11 UTC
Which Graphics -> Performance -> GPU Speed setting you're using?

Talos works with Mesa Vulkan/Intel when using "low" or "medium" level, but deadlocks for me with higher levels.  There are no issues with them when using OpenGL API.
Comment 4 Ernst Sjöstrand 2017-01-18 11:21:28 UTC
I had a similar problem, turns out it was:
https://github.com/ValveSoftware/steam-for-linux/issues/4638

If you change to the Steam Client Beta that issue should be fixed.
Comment 5 Germano Massullo 2017-01-18 18:17:52 UTC
Everytime I try to enable Vulkan API, I get "Cannot set display mode" error message

I attach api trace while trying to enable Vulkan API
https://mega.nz/#F!QgBE3LiL!fxvFDEbVZLVR57DpDoEBAg

Radeon RX480

Fedora 25
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD POLARIS10 (DRM 3.8.0 / 4.9.3-200.fc25.x86_64, LLVM 3.8.0)
OpenGL core profile version string: 4.1 (Core Profile) Mesa 13.0.3
OpenGL core profile shading language version string: 4.10

# vulkaninfo 
===========
VULKAN INFO
===========

Vulkan API Version: 1.0.30

INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_parameter_validation.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_threading.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_unique_objects.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_swapchain.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_image.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_object_tracker.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_core_validation.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_parameter_validation.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_threading.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_unique_objects.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_swapchain.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_image.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_object_tracker.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_core_validation.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/icd.d/intel_icd.x86_64.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/icd.d/intel_icd.x86_64.json, version "1.0.0"

Instance Extensions:
====================
Instance Extensions     count = 5
        VK_KHR_surface                      : extension revision 25
        VK_KHR_xcb_surface                  : extension revision  6
        VK_KHR_xlib_surface                 : extension revision  6
        VK_KHR_wayland_surface              : extension revision  5
        VK_EXT_debug_report                 : extension revision  3
Layers: count = 15
=======
VK_LAYER_LUNARG_parameter_validation (LunarG Validation Layer) Vulkan version 1.0.30, layer version 1
        Layer Extensions        count = 1
                VK_EXT_debug_report                 : extension revision  3
        Devices         count = 0

VK_LAYER_GOOGLE_threading (Google Validation Layer) Vulkan version 1.0.30, layer version 1
        Layer Extensions        count = 1
                VK_EXT_debug_report                 : extension revision  3
        Devices         count = 0

VK_LAYER_GOOGLE_unique_objects (Google Validation Layer) Vulkan version 1.0.30, layer version 1
        Layer Extensions        count = 0
        Devices         count = 0

VK_LAYER_LUNARG_swapchain (LunarG Validation Layer) Vulkan version 1.0.30, layer version 1
        Layer Extensions        count = 1
                VK_EXT_debug_report                 : extension revision  3
        Devices         count = 0

VK_LAYER_LUNARG_image (LunarG Validation Layer) Vulkan version 1.0.30, layer version 1
        Layer Extensions        count = 1
                VK_EXT_debug_report                 : extension revision  3
        Devices         count = 0

VK_LAYER_LUNARG_object_tracker (LunarG Validation Layer) Vulkan version 1.0.30, layer version 1
        Layer Extensions        count = 1
                VK_EXT_debug_report                 : extension revision  3
        Devices         count = 0

VK_LAYER_LUNARG_core_validation (LunarG Validation Layer) Vulkan version 1.0.30, layer version 1
        Layer Extensions        count = 1
                VK_EXT_debug_report                 : extension revision  3
        Devices         count = 0

VK_LAYER_LUNARG_parameter_validation (LunarG Validation Layer) Vulkan version 1.0.30, layer version 1
        Layer Extensions        count = 1
                VK_EXT_debug_report                 : extension revision  3
        Devices         count = 0

VK_LAYER_GOOGLE_threading (Google Validation Layer) Vulkan version 1.0.30, layer version 1
        Layer Extensions        count = 1
                VK_EXT_debug_report                 : extension revision  3
        Devices         count = 0

VK_LAYER_GOOGLE_unique_objects (Google Validation Layer) Vulkan version 1.0.30, layer version 1
        Layer Extensions        count = 0
        Devices         count = 0

VK_LAYER_LUNARG_swapchain (LunarG Validation Layer) Vulkan version 1.0.30, layer version 1
        Layer Extensions        count = 1
                VK_EXT_debug_report                 : extension revision  3
        Devices         count = 0

VK_LAYER_LUNARG_image (LunarG Validation Layer) Vulkan version 1.0.30, layer version 1
        Layer Extensions        count = 1
                VK_EXT_debug_report                 : extension revision  3
        Devices         count = 0

VK_LAYER_LUNARG_object_tracker (LunarG Validation Layer) Vulkan version 1.0.30, layer version 1
        Layer Extensions        count = 1
                VK_EXT_debug_report                 : extension revision  3
        Devices         count = 0

VK_LAYER_LUNARG_core_validation (LunarG Validation Layer) Vulkan version 1.0.30, layer version 1
        Layer Extensions        count = 1
                VK_EXT_debug_report                 : extension revision  3
        Devices         count = 0

VK_LAYER_LUNARG_standard_validation (LunarG Standard Validation Layer) Vulkan version 1.0.30, layer version 1
        Layer Extensions        count = 1
                VK_EXT_debug_report                 : extension revision  3
        Devices         count = 0

Presentable Surface formats:
============================
None found
Comment 6 Hadrien Nilsson 2017-01-18 19:43:26 UTC
(In reply to Eero Tamminen from comment #3)
> Which Graphics -> Performance -> GPU Speed setting you're using?
> 
> Talos works with Mesa Vulkan/Intel when using "low" or "medium" level, but
> deadlocks for me with higher levels.  There are no issues with them when
> using OpenGL API.

I used the lowest settings but it had no effect on the hang.

Actually on an nVidia forum someone says that disabling vsync made Vulkan works. Well, it works also for my RX 480!

I switched back to high settings (the same ones than with OpenGL) and everything runs fine, with the exception of massive tearing of course.

I tried to re-enable vsync in-game from the pause menu. Though the checkbox becomes selected, vsync is not actually on. I had to restart the game, but this time I was met again with the hang.
Comment 7 Ernst Sjöstrand 2017-01-18 19:54:47 UTC
Germano, I think you have a completely different issue than the original reporter. You should probably file a separate bugreport.
Comment 8 Hadrien Nilsson 2017-01-18 20:05:41 UTC
(In reply to Ernst Sjöstrand from comment #4)
> I had a similar problem, turns out it was:
> https://github.com/ValveSoftware/steam-for-linux/issues/4638
> 
> If you change to the Steam Client Beta that issue should be fixed.

Thank you. I enabled the Steam Client Beta participation on my Steam installation and now I can enable Vulkan without problem, and v-sync works too.

For me the problem seems to be related to Steam, not Mesa. We could probably close this ticket.
Comment 9 Laurent carlier 2017-01-18 20:35:53 UTC
(In reply to Germano Massullo from comment #5)
> Everytime I try to enable Vulkan API, I get "Cannot set display mode" error
> message
> 
> I attach api trace while trying to enable Vulkan API
> https://mega.nz/#F!QgBE3LiL!fxvFDEbVZLVR57DpDoEBAg
> 
> Radeon RX480
> 
> Fedora 25
> OpenGL vendor string: X.Org
> OpenGL renderer string: Gallium 0.4 on AMD POLARIS10 (DRM 3.8.0 /
> 4.9.3-200.fc25.x86_64, LLVM 3.8.0)
> OpenGL core profile version string: 4.1 (Core Profile) Mesa 13.0.3
> OpenGL core profile shading language version string: 4.10
> 
> # vulkaninfo 
> INFO: [loader] Code 0 : Found manifest file
> /usr/share/vulkan/icd.d/intel_icd.x86_64.json, version "1.0.0"
> INFO: [loader] Code 0 : Found manifest file
> /usr/share/vulkan/icd.d/intel_icd.x86_64.json, version "1.0.0"
> None found

Because radv isn't installed
Comment 10 Hadrien Nilsson 2017-01-22 19:07:41 UTC
The new Steam client was released. It fixes the problem.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.