Henrik Rydgård
b58f5e46ae
Correctly update image layout to the final one after a render pass.
2020-08-27 22:59:18 +02:00
Henrik Rydgård
95a4cd37fc
Improve LogSteps further. Break out PreprocessSteps.
2020-08-27 21:50:05 +02:00
Henrik Rydgård
6e9d5ffbd7
VulkanRenderManager: Improve logging. LogSteps output is much better.
...
More logging improvements
2020-08-27 21:50:05 +02:00
Henrik Rydgård
ba0d04a142
Vulkan: Implement depth texturing through depal.
2020-08-09 20:31:04 +02:00
Henrik Rydgård
cf122e9333
Vulkan/generic: Initial prep for depth texturing
2020-08-09 19:47:15 +02: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
a36239473d
GLES: Add dependency tracking for render passes.
...
Let's try to invalidate when it's possible. We move the invalidate to the
end of the render when detected.
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
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
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
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
66609b395f
Vulkan: Profile individual render passes/steps.
2019-08-21 16:47:46 +02:00
Henrik Rydgård
a0dc85a9d7
Fix a bunch of inconsequential uninitialized variables
2019-06-18 00:18:40 +02: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
637a17a66c
Fix small and scary Vulkan bug (leftover from skinning-removal revert)
2018-09-18 23:38:38 +02:00
Unknown W. Brackets
5028486630
thin3d: Cleanup some unused/uninitialized warnings.
2018-06-24 07:34:07 -07: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
3f7602227c
Windows: If neither OpenGL nor D3D9 is available, offer an escape route into D3D11.
...
This does happen on some fresh Win10 installations.
We really should do something much nicer and more automatic, but that's for later.
2018-05-03 22:19:07 +02:00
Unknown W. Brackets
954f93046f
Vulkan: Keep state on Clear cmds when used later.
...
This also removes duplicate state - for example our UI has some duplicate
Scissor commands.
2018-05-03 07:18:40 -07:00
Henrik Rydgård
0ac6cea34d
Add a queue processing hack for Sonic Rivals too. Now it's fast.
2018-04-13 18:05:04 +02:00
Henrik Rydgård
413a204138
Vulkan: Semi-gross hack that massively improves the perf of MGS2:Acid.
2018-04-13 17:32:56 +02:00
Henrik Rydgård
36fd2711d6
Revert "Remove further remains of hardware skinning."
...
This reverts commit 40db61a680 .
2018-04-10 12:22:41 +02: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
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
df8dac4aae
If the first renderpass is an empty clear, merge it into the next one that touches the same framebuffer. Works around #10723 in Wipeout.
2018-03-16 13:44:56 +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
40db61a680
Remove further remains of hardware skinning. Fixes #10661
2018-03-05 00:03:47 +01:00
Unknown W. Brackets and Henrik 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
10792cc8e7
Windows/Vulkan: implement screenshots. Something is iffy with the red/blue swap though...
2017-11-15 13:18:29 +01: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
afa5b23abb
Vulkan readback: Resize the readback buffer dynamically as necessary.
2017-11-12 09:54:30 +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
ca7a2d06ca
Vulkan: Implement stencil upload (for Star Ocean).
2017-11-01 14:18:39 +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
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
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
1c5bd0f8dc
Move the VulkanRenderManager stuff to thin3d, fits in better there.
2017-10-26 10:56:59 +02:00