Henrik Rydgård
26ab81c102
vulkan: The GPU profiler could end up writing massive amounts of text, fix some bugs around that.
2019-11-30 23:03:30 +01:00
Henrik Rydgård
5adb61a5f2
Move the viewport clamping back to rendermanager to avoid a struct copy in the common case.
2019-10-13 21:25:16 +02:00
Henrik Rydgård
87c1ce6fa2
Vulkan: Move viewport/scissor rotation to the QueueRunner instead of RenderManager. Add some checks.
2019-10-13 21:25:16 +02:00
Henrik Rydgård
1e3711ee66
Vulkan blend factor: Bugfix and minor optimization
2019-10-13 21:17:29 +02:00
Henrik Rydgård
2467fddc01
Vulkan GPU profiler: Measure the CPU time spent on the render thread recording command buffers.
2019-09-18 00:16:08 +02:00
Henrik Rydgård
0462c01228
Workaround ARM Mali depth hardware bug. Fixes #11937
...
When triangles coincide with the Z=1 plane in specific ways, triggered
by Burnout Legends' sky for example, the depth buffer gets corrupted.
This is worked around here by slightly rescaling Z. This type of
workaround is recommended by ARM driver engineers.
Ugly but what can you do when the hardware is bugged. I've done quick
tests on a number of games with no issues.
2019-09-08 23:44:26 +02:00
Henrik Rydgård
ab3c9fc21f
Vulkan: Move scissor/viewport rotation into the VulkanRenderManager. Fixes #12303 .
2019-09-03 23:26:44 +02:00
Henrik Rydgård
66609b395f
Vulkan: Profile individual render passes/steps.
2019-08-21 16:47:46 +02:00
Henrik Rydgård
06a71fdf49
Get rid of numQueries
2019-08-21 10:30:57 +02:00
Henrik Rydgård
5fcac1a9e2
Vulkan: Disable some bad validation. Things are right and work fine.
2019-08-21 10:23:36 +02:00
Henrik Rydgård
19a443819b
Bugfixes to VK gpu profiling. Properly get the valid bits.
2019-08-21 09:02:40 +02:00
Henrik Rydgård
653afeb7ab
Vulkan: Implement basic integrated GPU profiling.
...
Currently simply measures the total GPU time of the frame. Will later be
extended to get the execution time of individual render passes.
2019-08-21 00:03:00 +02:00
Henrik Rydgård
a0dc85a9d7
Fix a bunch of inconsequential uninitialized variables
2019-06-18 00:18:40 +02:00
Henrik Rydgård
624587c594
Fix a VK validation failure when opening the homebrew menu
2019-03-11 16:42:41 +01:00
Unknown W. Brackets
2388be544f
Debugger: Fix crash in softgpu with no texaddr yet.
2018-09-04 21:54:25 -07:00
Henrik Rydgård
d160292f54
Include renderpass definition in Vulkan shader cache entries, should make it more effective again.
2018-03-29 14:36:04 +02:00
Henrik Rydgård
d125fa00e1
Make sure the renderpass cache hashmap is never accessed from the main thread at runtime. Should help #10811
2018-03-27 14:45:41 +02:00
Henrik Rydgård
f1359af0b0
Vulkan: Improve handling of shader compile failures (don't crash)
2018-03-19 17:46:58 +01:00
Henrik Rydgård
2d3655ea23
Vulkan: Get rid of more explicit barriers by merging the finalLayout color transitions into renderpasses.
2018-03-18 12:03:23 +01:00
Henrik Rydgård
f43935b030
Merge framebuffer layout pre-transitions into render pass subpass dependencies.
...
With this, drivers should be able to completely get rid of layout
transitions into render passes that use CLEAR, at least.
2018-03-18 09:55:36 +01:00
Henrik Rydgård
0ee058320a
Pass new vulkan validation layers. Fix math in FindTransferFramebuffers.
2018-03-17 23:39:02 +01:00
Henrik Rydgård
0ed3deabe6
Fix #10692 (crash when starting games from command line). Throw in some minor Vulkan fixes as well.
2018-03-08 16:35:13 +01:00
Henrik Rydgård
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. Brackets
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