01:42 Hazematman: Hey, I'm still experimenting with compute shaders on r700. Does radeon not let you program `SX_MEMORY_EXPORT_BASE`? I'm getting this error when I try to program it:
01:42 Hazematman: [ 8711.661372] Forbidden register 0x9010 in cs at 214
01:48 Hazematman: actually never mind I figured it out. You need to program it with a PKT3_SET_CONFIG_REG you can't program it directly with PKT0
06:26 cheako: ClearlyClaire: I've had problems with steam's pressure vessel, that's what the files and folders are called, messing with my ability to load the drivers.
06:27 cheako: I've used `exec ~/.config/steam_script.sh %command%` to redirect output and set `export LD_DEBUG=libs`, ending in `exec gamemoderun "$@"`
11:23 NekoMay: So, the Instinct MI25 was dropped from ROCm 5.... are those cards still capable of anything, or are they completely worthless now?
12:50 illwieckz: NekoMai upcoming rusticl for radeonsi works on them
12:51 illwieckz: NekoMay also some people says it could be turned into a WX 9100 with bios flashing https://www.overclock.net/threads/instinct-mi25-partial-vbios-flash-solved-dual-vbios-that-auto-switches-during-boot.1801424/ https://www.techpowerup.com/vgabios/218718/218718 https://www.techpowerup.com/download/ati-atiflash/ but I haven't tried it yet
15:24 agd5f: NekoMay, they should still work fine with ROCm
15:45 NekoMay: agd5f: I was told that they were completely removed after 4.5 and won't even show up (They're Vega 10)
17:17 haasn: what tools do I have to debug a semaphore deadlock in my application?
17:19 agd5f: NekoMay, still supported, just gets less regular testing by our QA team
17:27 haasn: my thread is blocked on vkQueuePresentKHR which by spec should not be allowed to block
17:34 pixelcluster: haasn: fwiw I don't think there is anything in the spec preventing vkQueuePresentKHR from blocking
17:34 pixelcluster: in fact it is explicitly highlighted as a possibility
17:35 pixelcluster: haasn: I assume you already tried validation layers and didn't get any errors?
17:37 haasn: pixelcluster: "Calls to vkQueuePresentKHR may block, but must return in finite time."
17:37 haasn: it's blocked indefinitely, to be clear
17:37 pixelcluster: yeah deadlocking of course shouldn't happen
17:38 haasn: the validation layers are not of much use because I'm using timeline semaphores, unfortunately
17:38 haasn: in this specific case, what I'm doing is something like this:
17:39 haasn: 1. create timeline semaphore
17:39 haasn: 2. submit compute command which signals fence 0xA when completed
17:39 haasn: 3. submit graphics command which waits on timeline semaphore
17:40 haasn: 4. submit queue present call which waits on the previous graphics command (via pipeline barrier)
17:40 haasn: 5. sleep on CPU until fence from step 2 fired
17:40 haasn: 6. do some CPU work, then signal timeline semaphore from step 1 on cpu
17:40 haasn: 4 seems to deadlock before I ever get to 5/6
17:41 haasn: I can maybe work around it by moving steps 5 and 6 onto a dedicated worker thread, but my understanding of the vulkan spec is that this should be fine
17:41 haasn: even on a single thread
17:45 haasn: hmm it deadlocks even without vkQueuePresentKHR being called, let me investigate
17:45 pixelcluster: haasn: do you have a backtrace at the point where it's deadlocked?
17:48 haasn: pixelcluster: https://0x1.st/Xq.txt
17:49 pixelcluster: haasn: yeah I think it's what I suspected
17:49 pixelcluster: what happens is that in the present code, it waits on some fences
17:50 pixelcluster: but in your case, the fence is waiting for the signal for CPU, and that's where the deadlock is
17:51 pixelcluster: AFAIK your use case should be supported by spec so I think it should be best to raise a mesa issue about this
17:51 haasn: possible
17:51 haasn: fwiw I need to move my steps 5 and 6 onto a worker thread one way or the other
18:28 cheako: haasn: It's a known limitation that timelines don't replace a fence for presenting/swapchain.
18:31 haasn: in this case I don't care about present feedback
18:32 haasn: I just don't want to stall my render pipeline with CPU work that depends on the results of previous compute shaders
19:30 cheako: haasn: Checking my notes, it's the rendering has completed binary semaphore that can't be a timeline. So you can use a timeline to replace a fence, but you still need that and a binary.
20:14 MrCooper: haasn: technically, vkQueuePresentKHR returning after 100 years would satisfy that :P
20:40 haasn: hrm
20:41 haasn: I implemented a worker thread to get around this daedlock
20:41 haasn: but now my vkWaitForFences() call on the timeline VkSemaphore never returns, even though the VkFence associated with the same command buffer that signals the semaphore signals
20:41 haasn: so strange
20:41 haasn: I'll investigate more tomorrow
20:41 haasn: but is there any tool that can help here? tsan?
21:12 haasn: seems I can't use tsan with ffmpeg
21:23 haasn: MrCooper: okay, shall I prepare patch to change UINT64_MAX to 3155673600000000000LLU?