Commit Graph
38 Commits
Author SHA1 Message Date
Henrik RydgårdandGitHub 22e28e218b Merge pull request #10411 from hrydgard/gl-render-manager
GL render manager - new faster GL multithreading
2018-01-31 12:22:07 +01:00
Henrik Rydgård c60c8ed68a Debug visualization for the Vulkan memory allocator. Shows some interesting behaviour. 2018-01-29 19:38:10 +01:00
Unknown W. BracketsandHenrik Rydgård 3eb6d38d75 Vulkan: Fix stencil-only clear for stencil upload.
Fixes stencil issues in Star Ocean.
2018-01-27 15:10:17 +01:00
Henrik Rydgård a0f718ace1 Start separating depth and stencil renderpass actions, only internally in the Vulkan code so far. 2017-12-30 22:40:57 +01:00
Henrik Rydgård 1e64919392 Vulkan: Create renderpass objects on demand. Just a refactoring to prepare for some later features/optimizations. 2017-12-30 22:35:43 +01:00
Henrik Rydgård b4bca7d7a0 VKRFramebufer: Just some checks to be slightly safer in case creation failed.. 2017-11-30 01:26:59 +01:00
Henrik Rydgård b6911d2764 Add a hidden debug option [Graphics]GfxDebugSplitSubmit to try to narrow down some Vulkan issues, see #10163. Also improve some asserts. 2017-11-22 10:47:04 +01:00
Henrik Rydgård 766ddf9148 Temporarily turn off Vulkan threading on AMD, see issue #10097. 2017-11-16 21:40:00 +01:00
Henrik Rydgård 10792cc8e7 Windows/Vulkan: implement screenshots. Something is iffy with the red/blue swap though... 2017-11-15 13:18:29 +01:00
Unknown W. Brackets b1554ef061 Vulkan: Cut down on asserts during init.
In case something is horribly wrong, or our desired settings aren't
compatible, let's try to stumble our way out.

More things can fail, but the goal is to detect failure or at least be
able to render UI settings to swap out of Vulkan.
2017-11-12 21:56:55 -08:00
Henrik Rydgård 93e148fed6 Vulkan: Implement post-processing. The Vulkan backend is now "feature-complete", and GL is now legacy :P
Bit hacky but works.
2017-11-12 16:12:26 +01:00
Henrik Rydgård e18a023ce8 Vulkan: Noticed a framebuffer refcount leak, and changed my mind regarding those :) Let's do it this way instead. 2017-11-11 19:41:43 +01:00
Henrik Rydgård 6eb58b1252 Keep the draw context up to date in a bunch of places. More logging. 2017-11-09 16:28:22 +01:00
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 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
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 2ad9eb047e Vulkan: Refcount framebuffer deletes.
Fixes crash in GoW when using a thread.
2017-11-05 08:44:12 -08: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
Henrik Rydgård 8d0209c7e4 Stop leaking framebuffers on shutdown. Fix other shutdown issues. 2017-11-01 21:43:08 +01:00
Henrik Rydgård ca7a2d06ca Vulkan: Implement stencil upload (for Star Ocean). 2017-11-01 14:18:39 +01:00
Henrik Rydgård ed2731d197 Vulkan: Fix depal and shader blending. 2017-10-31 12:35:00 +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 962ada1700 Comment cleanup 2017-10-28 00:37:06 +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 5456194a69 Fix integer overflow affecting very large draw calls 2017-10-26 12:28:36 +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 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 72a41cd524 Let's try a mutex. Doesn't completely solve the problem though.. 2017-10-26 10:57:00 +02:00
Henrik Rydgård 022657ebb3 This makes a little more sense, but still hangs (frameAvailable = true while stuck on condvar) 2017-10-26 10:56:59 +02:00
Henrik Rydgård c788dc896a Synchronization is HARD. need a rethink, methinks. 2017-10-26 10:56:59 +02:00
Henrik Rydgård 1c5bd0f8dc Move the VulkanRenderManager stuff to thin3d, fits in better there. 2017-10-26 10:56:59 +02:00