mirror of
https://github.com/valentderah/totk-pc-recomp.git
synced 2026-11-11 01:41:02 +00:00
Turn the recorder thread back on by default on AMD GPUs
The AMD device losses with the recorder (#5, #40) stopped after objects were kept until their submission completed and the recorder began ending its own parts; RDNA 1 and 2 cards in #5 ran with vk_recorder on and off. vk_recorder = 0 still turns it off. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
bf7c507e4c
commit
e38eaa8224
2 files changed
+5
-9
No files matched your search
+4
-8
@@ -127,14 +127,10 @@ void rec_drain(void) {
|
||||
void rec_begin(VkCommandBuffer cb) {
|
||||
static int mode = -1;
|
||||
if (mode < 0) {
|
||||
// Default off on AMD GPUs: with the recorder their drivers lost the device within the first frames or at menu
|
||||
// opens, 1 boot in 3 on an RX 9070 XT, and TOTK_VK_RECORDER=0 ended it for three users (issue #5); under RADV
|
||||
// the kernel saw an illegal opcode at the end of a command buffer (issue #40). Letting the recorder end its own
|
||||
// parts (rec_end_cb) fixed the white scene on an RX 6700 XT; the default stays off until more AMD cards run it.
|
||||
const char *set = cfg_get("TOTK_VK_RECORDER");
|
||||
mode = rt_knob("VK_RECORDER", vk_caps.amd ? "0" : "1");
|
||||
if (!mode && vk_caps.amd && !(set && *set))
|
||||
rt_log("vk_rec: no recorder thread on AMD GPUs (TOTK_VK_RECORDER=1 turns it on)");
|
||||
// Default on for every GPU. AMD drivers once lost the device with the recorder (issues #5 and #40); after
|
||||
// vk_mem_note_recording kept objects alive until their submission completed and the recorder began ending
|
||||
// its own parts (rec_end_cb), RDNA 1 and 2 cards ran with it on and off without a loss or a white scene.
|
||||
mode = rt_knob("VK_RECORDER", "1");
|
||||
if (mode) {
|
||||
plat_event_init(&wake_ev, 0, 0);
|
||||
rec_prio = plat_thread_priority_get();
|
||||
|
||||
+1
-1
@@ -88,7 +88,7 @@
|
||||
# Vulkan.
|
||||
# Vulkan validation layer: checks every call and slows the game down a lot. Needs the layer installed (Vulkan SDK).
|
||||
# vk_validation = 0
|
||||
# A thread of its own makes the Vulkan calls of each frame, 0 or 1. Default: on, except on AMD GPUs.
|
||||
# A thread of its own makes the Vulkan calls of each frame, 0 or 1. Default: on.
|
||||
# vk_recorder = 1
|
||||
# Dynamic vertex input, 0 or 1. Default: on, except on Intel's older integrated GPU drivers (Vulkan 1.3.215 and older).
|
||||
# vk_dyn_vertex = 1
|
||||
|
||||
Reference in new issue
Block a user