Commit Graph
107 Commits
Author SHA1 Message Date
Henrik Rydgård c5e0b799d9 Remove category from _assert_msg_ functions. We don't filter these by category anyway.
Fixes the inconsistency where we _assert_ didn't take a category but
_assert_msg_ did.
2020-07-19 20:33:25 +02:00
Henrik Rydgård 8e7d2109fe VulkanQueueRunner: Fix some uninitialized struct members (not sure if it has any effect) 2020-05-31 19:35:19 +02:00
Unknown W. Brackets 2dbb7a598d Vulkan: Label render passes in RenderDoc/etc. 2020-05-21 08:55:36 -07:00
Henrik Rydgård fabe987c8f Add a name tag for all render steps (GL/Vulkan). Helps with debugging and should be cheap enough (a single pointer per "step"). 2020-05-21 11:24:05 +02:00
Unknown W. Brackets 396bf1d1c7 Vulkan: Expand logging of render steps a bit. 2020-05-18 21:38:36 -07:00
Henrik Rydgård 612fdb957e Revert "Experimental commit that effectively reverts the Vulkan part of #12882."
This reverts commit 29d1f97dd5.
2020-05-19 00:44:42 +02:00
Henrik Rydgård 29d1f97dd5 Experimental commit that effectively reverts the Vulkan part of #12882.
For the #12927 investigation.
2020-05-19 00:42:34 +02:00
Unknown W. Brackets 059e2e5e16 Vulkan: Stop merge at clear/touched read only.
Before we would merge on a future render after a clear, which can't be
good.  But we can safely ignore a draw to another FB that reads from a
touched FB.
2020-05-17 15:04:21 -07:00
Unknown W. Brackets 112a58cb1a Vulkan: Make merge pass a bit easier to read. 2020-05-17 14:53:37 -07:00
Unknown W. Brackets 47bc11a682 Vulkan: Generalize dependency tracking.
Might as well track on all steps.  We also can know if the dst was fully
written to here.
2020-05-17 11:06:39 -07:00
Unknown W. Brackets e309712fed Vulkan: Correct missing offsets in Draw.
Was silently ignoring them.  Caused stretch in postshaders.
2020-05-13 18:10:09 -07:00
Henrik Rydgård a34c773b13 Vulkan: Don't merge render passes where the second one begins with a clear.
God of War optimization survives this check, thankfully.

Force Unleashed doesn't, but meh, it's not as bad there anyway.
2020-05-10 23:10:57 +02:00
Henrik Rydgård 25dcf8dd8d Warning fixes 2020-03-01 14:15:10 +01:00
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 fc34a93ac2 vulkan: ApplyRenderPassMerge; Add copy / blit destinations to touched buffers. 2019-11-30 23:02:08 +01:00
Henrik Rydgård 70c0a12b2b Fix name collision on iOS build 2019-10-13 21:25:16 +02: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 7c0470e061 Fix misplaced break 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 7bb6febc32 Add a few more checks. 2019-08-22 09:23:02 +02:00
Henrik Rydgård 05b2e11c5c Vulkan: Prevent some bad merging of renderpasses. Thanks Unknown for writing it up. 2019-08-21 21:30:36 +02:00
Henrik Rydgård 773cb5fa70 Stop renderpass merging at readbacks. 2019-08-21 21:13:56 +02:00
Henrik Rydgård 597b034b5c Minor optimization 2019-08-21 20:32:23 +02:00
Henrik Rydgård 93412aff3b Vulkan: Automatically merge render passes to the same target when possible.
Should speed things up a bit on mobile in some games that do stupid
things like GoW. Currently only enabled in GoW, but plan to enable this
globally as it should be quite cheap when nothing is detected.
2019-08-21 20:32:23 +02:00
Henrik Rydgård e3f1e563f2 Improve renderpass profiling descriptions a little 2019-08-21 18:31:01 +02:00
Henrik Rydgård 66609b395f Vulkan: Profile individual render passes/steps. 2019-08-21 16:47:46 +02:00
Henrik Rydgård d0a3410875 Typo fix 2019-08-13 00:22:47 +02:00
Henrik Rydgård ddb5208130 Vulkan: Reduce the amount of redundant stencil parameter sets 2019-08-12 23:19:07 +02:00
Henrik Rydgård 213e2ccefc Vulkan: Add missing barrier when rendering to a target that's already in COLOR_OPTIMAL layout.
Fixes #12215
2019-08-08 15:38:09 +02:00
Henrik Rydgård 3b0624ff9f Some changes and asserts. 2019-08-08 14:07:53 +02:00
Henrik Rydgård ebe64c60e9 Vulkan: Improve the Metal Gear Acid 2 performance hack. 2019-08-08 11:49:35 +02:00
Henrik Rydgård 3d6bd6f0df Vulkan: Using VK_DEPENDENCY_BY_REGION on the backbuffer subpass causes tearing, let's not do it. Fixes #12202. 2019-08-01 14:56:58 +02:00
Henrik Rydgård ff65b813d9 Assorted warning fixes 2019-05-10 23:26:34 +02:00
Henrik Rydgård ed1aa74827 Address feedback from #11936 (support memory types without CACHED as a backup) 2019-03-26 10:39:51 +01:00
Henrik Rydgård 60889767bf Vulkan: Request cached memory for readbacks. First try coherent too but also support non-coherent cached memory.
Should speed up readbacks slightly.

This is just a common sense optimization, I haven't measured it. Writes to
coherent non-cached memory is OK due to hardware write combining, but for
reads you really want cached to avoid a memory transaction for every
single read (instead reading full cache lines).
2019-03-25 21:40:25 +01:00
Henrik Rydgård 7362cccee4 Vulkan subpass dependencies: Handle VK_IMAGE_LAYOUT_UNDEFINED without debug-asserting. 2019-03-12 22:34:41 +01:00
Henrik Rydgard 8e1a5ef3d6 Minor refactor of physical device property/feature detection, to allow for more extension use. 2019-02-05 18:07:17 +01:00
Henrik Rydgård d1910de166 GL: Realized we need another sanity check in the readback code
Added similar checks to Vulkan, just because.
2018-11-24 17:20:56 +01:00
Unknown W. Brackets caf5bb2789 Vulkan: Allow pre-transition from undefined.
This seems like it can happen when download/upload operations break up a
render, and happens now with dumps using the display at the right timing.
2018-11-17 10:01:38 -08:00
Unknown W. Brackets 81f74e4287 Vulkan: Assert on some creates failing.
Before was only checking in debug builds.
2018-06-24 07:35:19 -07:00
Unknown W. Brackets 5028486630 thin3d: Cleanup some unused/uninitialized warnings. 2018-06-24 07:34:07 -07:00
Unknown W. Brackets 1cfb21931d Vulkan: Properly transition stencil/depth for read.
Need to transition the entire texture, so both aspects must be set.
2018-06-09 18:27:29 -07:00
Henrik Rydgård b037efdb55 If there are multiple Vulkan devices, show a setting to allow the user to choose. 2018-06-06 10:20:12 +02:00
Henrik Rydgård 04fefa2417 Vulkan image readback: Fix a couple scary cases of wrong argument order in image transitions, leading to transitioning 0 mips 2018-06-01 22:16:20 +02:00
Henrik RydgårdandGitHub 87beddc393 Merge pull request #11084 from hrydgard/crash-fix-attempts-1.6
Various fixes for 1.6.1
2018-05-27 23:27:57 +02:00
Unknown W. Brackets 423309da50 Vulkan: Don't merge render passes if read from.
In the future, we might actually track dependencies so we can smartly
sort the render passes instead.

See #11079 - screen got brighter because a cleared framebuffer was used as
a texture.
2018-05-27 14:15:54 -07:00
Henrik Rydgård b730d187e8 Add some paranoid checks guided by stack traces from Google Play 2018-05-27 22:12:59 +02:00
Unknown W. Brackets ec5d1a8722 Vulkan: Leave removed commands in render passes.
We'll just need to not check commands.empty(), which we do in a couple
places but not in important ways so far.
2018-05-03 08:04:57 -07:00