supertuxkart / stk-code

The code base of supertuxkart
Other
4.54k stars 1.06k forks source link

--render-driver=vulkan leads to fixed pipeline #4828

Closed darkbasic closed 2 years ago

darkbasic commented 2 years ago

Description

Rendering with Vulkan leads to fixed pipeline with sub-par rendering quality compared to OpenGL.

Steps to reproduce

Start it with --render-driver=vulkan.

Configuration

STK release version: 1.4

STK Source (PPA, distribution package, official binary, etc.): bumped Gentoo ebuild

System: Raptor CS Talos 2 ppc64le

Graphics card: AMD RX 570 (mesa git)

CPU: IBM Power9 8-cores 32-threads

Gamepads/keyboards models if related to the issue:

Additional information

stdout.log:

[info   ] [FileManager]: Data files will be fetched from: '/usr/share/supertuxkart/data/'
[info   ] [FileManager]: User directory is '/home/niko/.config/supertuxkart/config-0.10/'.
[info   ] [FileManager]: Addons files will be stored in '/home/niko/.local/share/supertuxkart/addons/'.
[info   ] [FileManager]: Screenshots will be stored in '/home/niko/.local/share/supertuxkart/screenshots/'.
[info   ] [FileManager]: User-defined grand prix will be stored in '/home/niko/.local/share/supertuxkart/grandprix/'.
[info   ] [FileManager]: Asset 0 will be loaded from '/usr/share/supertuxkart/data/challenges/'.
[info   ] [FileManager]: Asset 1 will be loaded from '/usr/share/supertuxkart/data/gfx/'.
[info   ] [FileManager]: Asset 2 will be loaded from '/usr/share/supertuxkart/data/grandprix/'.
[info   ] [FileManager]: Asset 3 will be loaded from '/usr/share/supertuxkart/data/gui/icons/'.
[info   ] [FileManager]: Asset 4 will be loaded from '/usr/share/supertuxkart/data/gui/screens/'.
[info   ] [FileManager]: Asset 5 will be loaded from '/usr/share/supertuxkart/data/gui/dialogs/'.
[info   ] [FileManager]: Asset 6 will be loaded from '/usr/share/supertuxkart/data/replay/'.
[info   ] [FileManager]: Asset 7 will be loaded from '/usr/share/supertuxkart/data/shaders/'.
[info   ] [FileManager]: Asset 8 will be loaded from '/usr/share/supertuxkart/data/skins/'.
[info   ] [FileManager]: Asset 9 will be loaded from '/usr/share/supertuxkart/data/ttf/'.
[info   ] [FileManager]: Asset 10 will be loaded from '/usr/share/supertuxkart/data/po/'.
[info   ] [FileManager]: Asset 11 will be loaded from '/usr/share/supertuxkart/data/library/'.
[info   ] [FileManager]: Asset 12 will be loaded from '/usr/share/supertuxkart/data/models/'.
[info   ] [FileManager]: Asset 13 will be loaded from '/usr/share/supertuxkart/data/music/'.
[info   ] [FileManager]: Asset 14 will be loaded from '/usr/share/supertuxkart/data/sfx/'.
[info   ] [FileManager]: Asset 15 will be loaded from '/usr/share/supertuxkart/data/textures/'.
[info   ] [FileManager]: Asset 16 will be loaded from '/usr/share/supertuxkart/data/tracks/'.
[verbose  ] translation: Env var LANGUAGE = 'en_US.utf8'.
[verbose  ] translation: Language 'English (United States)'.
[info   ] [IrrDriver Logger]: ..:: Antarctica Rendering Engine 2.0 ::..
[info   ] [IrrDriver Logger]: SDL Version 2.24.0
[info   ] [IrrDriver Logger]: Vulkan version: 1.3.230
[info   ] [IrrDriver Logger]: Vulkan vendor: AMD
[info   ] [IrrDriver Logger]: Vulkan renderer: AMD Radeon RX 570 Series (RADV POLARIS10)
[info   ] [IrrDriver Logger]: Vulkan driver version: 22.99.99
[info   ] [IrrDriver Logger]: Vulkan enabled extension: VK_KHR_swapchain
[info   ] [IrrDriver Logger]: Vulkan command loader: 34 threads used, 1 graphics queue(s)
[info   ] [IrrDriver Logger]: Vulkan can bind textures at once in shader: true
[info   ] [IrrDriver Logger]: Vulkan can bind mesh textures at once in shader: true
[info   ] [IrrDriver Logger]: Vulkan supports linear blitting for rgba8: true
[info   ] [IrrDriver Logger]: Vulkan supports linear blitting for r8: true
[info   ] [IrrDriver Logger]: Vulkan supports VK_EXT_descriptor_indexing: true
[info   ] [IrrDriver Logger]: Vulkan supports multi-draw indirect: true
[info   ] [IrrDriver Logger]: Vulkan supports base vertex rendering: true
[info   ] [IrrDriver Logger]: Vulkan supports compute in main queue: true
[info   ] [IrrDriver Logger]: Vulkan supports shader draw parameters: true
[info   ] [IrrDriver Logger]: Vulkan supports s3 texture compression (bc3, dxt5): true
[info   ] [IrrDriver Logger]: Vulkan supports BPTC texture compression (bc7): false
[info   ] [IrrDriver Logger]: Vulkan supports adaptive scalable texture compression (4x4 block): false
[info   ] [IrrDriver Logger]: Vulkan descriptor indexes can be dynamically non-uniform: true
[info   ] [IrrDriver Logger]: Vulkan descriptor can be partially bound: true
[warn   ] Graphics: Can not find version for '' '' - ignored.
[warn   ] irr_driver: Using the fixed pipeline (old GPU, or shaders disabled in options)
[error  ] InputManager: Failed to init SDL haptics: SDL not built with haptic (force feedback) support
[info   ] GUI: Loading skin data from file: /usr/share/supertuxkart/data/skins/peach/stkskin.xml
[info   ] HTTPRequest: Downloading https://online.supertuxkart.net/dl/xml/online_news.xml
[info   ] GrandPrixManager: Loading Grand Prix files from /usr/share/supertuxkart/data/grandprix/
[info   ] GrandPrixManager: Loading Grand Prix files from /home/niko/.local/share/supertuxkart/grandprix/
[info   ] addons: Using cached addons.xml.
[warn   ] OpenGL: OpenGL version is too old!
[warn   ] LayoutManager: Statically sized widgets took all the place!!
[verbose  ] Thread: Start waiting 2787945.221000
[verbose  ] Thread: Waited 0.010000 seconds for thread to become deleteable.
[verbose  ] Thread: Stop waiting 2787945.231000
[info   ] Singleton: Destroyed singleton.

input.xml:

Error message:

[warn   ] Graphics: Can not find version for '' '' - ignored.
[warn   ] irr_driver: Using the fixed pipeline (old GPU, or shaders disabled in options)
[error  ] InputManager: Failed to init SDL haptics: SDL not built with haptic (force feedback) support
[warn   ] OpenGL: OpenGL version is too old!
[warn   ] LayoutManager: Statically sized widgets took all the place!!

Vulkan render quality is terrible, see https://www.phoronix.com/forums/forum/software/programming-compilers/1355184-supertuxkart-1-4-released-with-initial-vulkan-renderer?p=1355264#post1355264

Benau commented 2 years ago

PBR rendering is not done yet........

Benau commented 2 years ago

After finishing skidmark rendering (mesh rendering overall) in vulkan PBR should not be difficult (and quick) to implement because we can copy godot / filament / whatever code

mesh rendering has no source for reference