Henrik Rydgård
|
3393d47e92
|
Remove ill-formed asserts
|
2022-09-23 23:14:36 +02:00 |
|
Henrik Rydgård
|
e828df9f25
|
Split each renderpass/framebuffer into multiple "compatibility classes" (RenderPassType).
|
2022-09-08 00:32:03 +02:00 |
|
Henrik Rydgård
|
76bd2395bf
|
Promise: Add SpawnEmpty (couldn't come up with a better name), fix bug with multiple waiters
|
2022-09-03 15:21:08 +02:00 |
|
Henrik Rydgård
|
c06cf8efaa
|
Switch Vulkan pipelines to use promises for synchronization
Slightly more expensive I guess but shouldn't be much of a bottleneck.
|
2022-09-03 15:21:08 +02:00 |
|
Henrik Rydgård
|
ebe2d1b30f
|
More buildfixing
|
2022-09-03 15:21:07 +02:00 |
|
Henrik Rydgård
|
210233ede0
|
Buildfix
|
2022-09-03 15:21:07 +02:00 |
|
Henrik Rydgård
|
e701037267
|
Buildfix
|
2022-09-03 15:21:07 +02:00 |
|
Henrik Rydgård
|
8775837c11
|
Work towards finding the leak
|
2022-09-03 15:21:07 +02:00 |
|
Henrik Rydgård
|
ec0586ba50
|
Use promises to hold shader modules, for later asyncification
|
2022-09-03 15:21:07 +02:00 |
|
Henrik Rydgård
|
8d8a553f5b
|
Fix typo and optimize locking pattern in Event, make it the same as LimitedWaitable.
|
2022-04-15 18:30:21 +02:00 |
|
Unknown W. Brackets
|
81ace52f53
|
ThreadManager: Improve waitable destruction.
|
2022-04-09 09:27:26 -07:00 |
|
Henrik Rydgård
|
adfce57d9e
|
Fix race condition in LimitedWaitable between Notify and Wait
|
2022-04-08 12:29:30 +02:00 |
|
Henrik Rydgård
|
bde54ccdc0
|
Fix misuses of cond.wait (should return true when you want to stop waiting!)
|
2022-04-08 12:28:45 +02:00 |
|
Henrik Rydgård
|
5b20ace502
|
OK, this does crash
|
2022-04-08 12:04:34 +02:00 |
|
Henrik Rydgård
|
b04e5925d2
|
Add a scheduling stress test to TestThreadManager.cpp.
Was hoping to find the cause of the issue I looked at in #15431
|
2022-04-08 11:41:50 +02:00 |
|
Unknown W. Brackets
|
ffbd9bbe98
|
Global: Fix some int/size_t conversion warnings.
|
2022-03-13 12:03:48 -07:00 |
|
Unknown W. Brackets
|
2479d52202
|
Global: Reduce includes of common headers.
In many places, string, map, or Common.h were included but not needed.
|
2022-01-30 16:35:33 -08:00 |
|
Unknown W. Brackets
|
55c11425e4
|
softgpu: Use persistent bin task state.
It's constant, so it's better to avoid the copying and allocation. A
small win, but removes new from the profile.
|
2022-01-20 16:58:43 -08:00 |
|
Unknown W. Brackets
|
dffc333120
|
softgpu: Avoid thread ordering hazard.
Must run the primitives in the right order. No shortcutting allowed.
|
2022-01-13 23:03:42 -08:00 |
|
Unknown W. Brackets
|
7c7340e338
|
ThreadManager: Check for exchange failure.
Even if expected stays null, since it's weak assume it can fail.
|
2021-12-07 18:24:01 -08:00 |
|
Unknown W. Brackets
|
f9a7ad3e3d
|
ThreadManager: Use separate pool for IO blocking.
This prevents starving the compute pool (which may be used very regularly
parallel loops or other tasks) if the IO operations are slow.
|
2021-12-05 21:01:49 -08:00 |
|
Unknown W. Brackets
|
8b5173350f
|
ThreadManager: Make TaskType a property of a Task.
|
2021-12-05 21:01:49 -08:00 |
|
Unknown W. Brackets
|
12b790bb81
|
ThreadManager: Protect against teardown hang/leak.
Make sure we lock during canceled checks/updates, and also try to free
tasks queued on threads that didn't end up running.
|
2021-11-27 08:57:19 -08:00 |
|
Unknown W. Brackets
|
de9a4dcede
|
ThreadManager: Lock notify on global queue add.
Otherwise, it's possible the chosen thread might not wake up, and then it
may wait for another task to be enqueued - potentially causing a hang.
|
2021-11-27 08:57:19 -08:00 |
|
Unknown W. Brackets
|
d15af6e9d9
|
ThreadManager: Use atomic task optimistically.
This makes EnqueueTaskOnThread take priority as well.
Gives about 1% improvement in softgpu, reducing overhead a bit.
|
2021-11-27 08:07:12 -08:00 |
|