drirc/nvk: force_vk_vendor=-1 for Artifact Classic

Without this the game crashes during the loading screen.

The game uses vkUpdateDescriptorSetWithTemplate and, in certain cases,
passes VkDescriptorBufferInfo structures where the offset + range
exceeds the size of the buffer. This triggers an assertion when
vk_buffer_range() is called, causing the game to crash.

When the nvidia vendor id is used the range is consistently set to 65536.
Without it the range varies and is much smaller - never exceeding 1000.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12349
Cc: stable
Reviewed-by: Faith Ekstrand <None>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32764>
This commit is contained in:
Thomas H.P. Andersen
2024-12-23 03:00:36 +01:00
committed by Marge Bot
parent 711b3351ef
commit e38150f2fa

View File

@@ -1340,6 +1340,9 @@ TODO: document the other workarounds.
</application> </application>
</device> </device>
<device driver="nvk"> <device driver="nvk">
<application name="Artifact Classic" executable="dcg">
<option name="force_vk_vendor" value="-1" />
</application>
<application name="X4 Foundations" executable="X4.exe"> <application name="X4 Foundations" executable="X4.exe">
<option name="force_vk_vendor" value="-1" /> <option name="force_vk_vendor" value="-1" />
</application> </application>