Henrik Rydgård
7922a2ab5c
Vulkan: If acquiring a frame fails (happens sometimes during window resize), skip swapping the frame. Should help #10063
2017-11-07 09:56:41 +01:00
Unknown W. Brackets
6c1f6618b6
Vulkan: Wait for orderly thread stop on resize.
...
To be safer, let's just let it finish. We don't actually sync the thread
in join(), so it could still be running a frame.
2017-11-06 23:03:14 -08:00
Unknown W. Brackets
1ab9f102ab
Vulkan: Fix deadlock on resize.
...
Still needed to set this flag. Didn't notice earlier because creating the
fences affected the race condition timing, I think...
Improves #10063 .
2017-11-06 22:30:14 -08:00
Henrik Rydgård
70c70b1e76
Vulkan: Some error handling improvement. Might get us a clue for #10065
2017-11-07 00:08:39 +01:00
Henrik Rydgård
4f4eb6f024
Vulkan: The validation layers don't like zero-size blits.
2017-11-06 23:49:27 +01:00
Henrik Rydgård
ea2fc55217
Merge pull request #10056 from hrydgard/remove-multithreading-2
...
Remove the old style multithreading
2017-11-06 20:37:06 +01:00
Unknown W. Brackets
3a84b63777
Vulkan: Convert depth format on readback.
...
Although, the GPU debugger stuff already handles more formats, it's hard
to get the current format to avoid the conversion...
2017-11-06 00:29:02 -08:00
Unknown W. Brackets
138837ac54
Vulkan: Add texture image readback.
...
This way we can see how it was decoded, scaled, etc. This also helps
seeing texture cache invalidation issues.
2017-11-06 00:29:01 -08:00
Unknown W. Brackets
b2039bd14f
Vulkan: Fix leak in WipeQueue().
2017-11-05 14:22:09 -08:00
Henrik Rydgård
f16d11a43b
Turn on multithreaded vulkan
2017-11-05 23:21:54 +01:00
Henrik Rydgård
702e354a6a
Vulkan multithread: Fix race condition.
2017-11-05 22:18:28 +01:00
Unknown W. Brackets
56d34402ff
Vulkan: Resignal unexecuted fences on thread stop.
...
When resizing or similar, we may end up with frames we never ran. This
also happens on startup.
We need them signaled at start so we can wait on them, or we may deadlock.
2017-11-05 09:22:14 -08:00
Unknown W. Brackets
ebe9dcafde
Vulkan: Wait for queue idle in DestroyBackbuffers.
...
Otherwise it's only done after destroying Draw, so no need to mutex.
2017-11-05 08:44:14 -08:00
Unknown W. Brackets
2ad9eb047e
Vulkan: Refcount framebuffer deletes.
...
Fixes crash in GoW when using a thread.
2017-11-05 08:44:12 -08:00
Unknown W. Brackets
ab9aee9a07
Vulkan: Account inside frame from push side.
...
We don't want a dependency on the thread state, of course.
2017-11-05 07:07:14 -08:00
Unknown W. Brackets
dc200a4fbc
Vulkan: Fix a comment.
2017-11-04 22:29:12 -07:00
Unknown W. Brackets
97fa0a7461
Vulkan: Allow sync when using threading.
2017-11-04 22:23:01 -07:00
Unknown W. Brackets
8b55940a3d
Vulkan: Fix out-of-sync frames on threading.
...
We end up with a second thread start at frame 1, so the thread needs to
start at frame 1 too.
2017-11-04 22:21:47 -07:00
Unknown W. Brackets
ec0f640f56
Vulkan: Trigger condvar only at frame end.
2017-11-04 21:10:33 -07:00
Henrik Rydgård
9e65ae1cef
Fix issue in framebuffer size calculation when viewport is bogus in through mode. Fixes #10043 .
2017-11-04 11:43:19 +01:00
Henrik Rydgård
8d0209c7e4
Stop leaking framebuffers on shutdown. Fix other shutdown issues.
2017-11-01 21:43:08 +01:00
Henrik Rydgård
6b904547b2
Complete a comment.
2017-11-01 08:57:31 +01:00
Henrik Rydgård
d0f328213a
Add some disabled code to submit "init" command buffers separately to the queue for debugging.
2017-11-01 08:49:42 +01:00
Henrik Rydgård
6a8f72a327
Use the global curFrame counter. No need for a vector for pushing cmdbufs.
2017-11-01 08:47:50 +01:00
Henrik Rydgård
90d4296a6a
Add a QueueRunner logging facility. Set up a subpass dependency for the backbuffer pass.
2017-11-01 08:45:14 +01:00
Henrik Rydgård
74861d2d73
Vulkan: Make backbuffer transitions part of backbuffer render pass. Optimize depth buffer memory operations.
2017-11-01 08:42:49 +01:00
Henrik Rydgård
ed2731d197
Vulkan: Fix depal and shader blending.
2017-10-31 12:35:00 +01:00
Henrik Rydgård
07dfda0633
Vulkan depal code now passes validation, but produces black.
2017-10-31 12:35:00 +01:00
Henrik Rydgård
6e9cd933b2
Implement GetFramebufferAPITexture for Vulkan
2017-10-31 12:34:30 +01:00
Henrik Rydgård
97dced543e
Share the conversion code between vulkan and D3D, fixing the missing format thing.
2017-10-29 14:42:51 +01:00
Henrik Rydgård
93c785b76d
Color-convert directly during the readback, saves a copy. Like we already do in D3D11.
2017-10-29 10:56:36 +01:00
Henrik Rydgård
34b65c0ca9
Fix Vulkan framebuffer readbacks, as long as they're in R8G8B8A8.
2017-10-28 18:41:54 +02:00
Henrik Rydgård
b98d4e5c9d
Vulkan: Rough untested implementation of synchronous readbacks.
2017-10-28 18:03:27 +02:00
Henrik Rydgård
717ec2387b
VulkanRenderManager: Split out BeginFrame and EndFrame from Run
2017-10-28 16:47:08 +02:00
Henrik Rydgård
3f918ed328
Refactor: Split out VulkanQueueRunner from VulkanRenderManager
...
Should be no functionality change, but good to do before adding more
functionality.
2017-10-27 22:11:01 +02:00
Henrik Rydgård
1e9984dbf6
Another buildfix
2017-10-26 13:00:27 +02:00
Henrik Rydgård
7312576239
More buildfixes, warning fix, memory leak fix
2017-10-26 11:43:22 +02:00
Henrik Rydgård
ecad09d18f
32-bit android buildfix attempt
2017-10-26 10:57:01 +02:00
Henrik Rydgård
07e8b4ff1a
Bump descriptor set limits, which became insufficient with the addition of tesselation (should really use separate big desc layouts for them)
2017-10-26 10:57:01 +02:00
Henrik Rydgård
54e4eab1c1
Warning fixes
2017-10-26 10:57:00 +02:00
Henrik Rydgård
12f8580984
Assorted fixes
2017-10-26 10:57:00 +02:00
Henrik Rydgård
85cb604a24
Fix (some) crashes on blits. Validation issues remain.
2017-10-26 10:57:00 +02:00
Henrik Rydgård
d016bfe221
Fix some resource leaks and excessive logging in VulkanRenderManager
2017-10-26 10:57:00 +02:00
Henrik Rydgård
c4f0afc8a2
Clean out some obsolete code
2017-10-26 10:57:00 +02:00
Henrik Rydgård
b5e06f3c7d
VulkanRenderManager: BindPipeline should really be its own command. Tighten up some image transitions.
2017-10-26 10:57:00 +02:00
Henrik Rydgård
3e2b810c39
Improve synchronization, though there are very weird issues. Possibly need to run the swap chain from the thread that created it?
2017-10-26 10:57:00 +02:00
Henrik Rydgård
c403edfa89
Avoid re-binding pipelines.
2017-10-26 10:57:00 +02:00
Henrik Rydgård
72a41cd524
Let's try a mutex. Doesn't completely solve the problem though..
2017-10-26 10:57:00 +02:00
Henrik Rydgård
d3672d9e57
Make sure not to begin and end the init command buffer on different threads.
2017-10-26 10:57:00 +02:00
Henrik Rydgård
48ac334f4f
Vulkan: Don't forget to specify stencil load op in render passes
2017-10-26 10:57:00 +02:00