Henrik Rydgård
d0016add37
Start moving stuff out to VulkanFrameData.cpp
2022-09-19 18:14:41 +02:00
Henrik Rydgård
9d9f2c539e
Finish the switch to late acquire, moving the swapchain responsibility to the queue runner.
2022-09-17 08:43:13 +02:00
Henrik Rydgård
a369252a29
RunSteps cleanup
2022-09-17 01:41:26 +02:00
Henrik Rydgård
fabd50b178
Move FrameData out of VulkanRenderManager
2022-09-17 01:34:38 +02:00
Henrik Rydgård
415a795b11
Move back buffer rendering to a separate "present" command buffer
2022-09-17 01:11:41 +02:00
Henrik Rydgård
ce82fce8de
Use subpass dependencies to implement shader framebuffer read in Vulkan.
2022-09-16 19:19:42 +02:00
Henrik Rydgård
58a7f0cf21
Assorted cleanup
2022-09-08 01:26:01 +02:00
Henrik Rydgård
caff2ea573
Correct merging of render passes. However, we have lifetime issues.
2022-09-08 00:38:32 +02:00
Henrik Rydgård
7ab7440475
Also create renderpass variants on demand
2022-09-08 00:38:32 +02:00
Henrik Rydgård
e828df9f25
Split each renderpass/framebuffer into multiple "compatibility classes" (RenderPassType).
2022-09-08 00:32:03 +02:00
Henrik Rydgård
d3309dd8e9
Minor refactor with pipelines in QueueRunner (makes more information available for easier debugging)
2022-09-03 23:08:02 +02:00
Henrik Rydgård
c06cf8efaa
Switch Vulkan pipelines to use promises for synchronization
...
Slightly more expensive I guess but shouldn't be much of a bottleneck.
2022-09-03 15:21:08 +02:00
Henrik Rydgård
9097fdaae6
Shrink VkRenderData from 88 to 64 bytes.
2022-09-01 14:21:34 +02:00
Henrik Rydgård
24d674d2bc
Shrink the TransitionRequest struct, use TinySet
2022-09-01 10:59:27 +02:00
Henrik Rydgård
b447092742
Some Vulkan renderpass load/store optimizations.
2022-08-28 23:16:48 +02:00
Henrik Rydgård
18e70e67f9
Small struct layout optimization (stencil is never more than 8 bits, can sneak in next to the load actions)
2022-06-11 13:24:14 +02:00
Henrik Rydgård
acb84f0648
Rename Vulkan attachment operation variables. Prep for supporting specifying store op.
2022-06-11 13:22:40 +02:00
Henrik Rydgård
f54aa53a8b
Combine barriers before blits/copies
2022-05-01 11:54:47 +02:00
Henrik Rydgård
9d0eaff48a
Convert some barriers to use the new barrier framework.
2022-05-01 11:34:29 +02:00
Henrik Rydgård
dda425b068
Vulkan: Add a single background thread for pipeline creation
...
Add proper waits for compile-done
Don't rely on non-standard struct initialization of classes
Attempt to drain the pipeline compile queue before destroying the PipelineManager.
Vulkan: Bump the cache version for testing
2021-11-21 18:36:00 +01:00
Henrik Rydgård
62f4875e24
VulkanRenderManager: Add deferred pipeline creation (to get it off the CPU thread)
2021-11-21 18:36:00 +01:00
Henrik Rydgård
d4c02ccc1c
Address feedback about recent changes
...
Thanks unknown.
2020-10-19 22:50:31 +02:00
Henrik Rydgård
332bb7feeb
VK: Whenever safely possible, shrink the render area.
...
We just set the render area to the union of the scissor rects used in a pass.
Might help some games on some mobile hardware, a little bit.
Possibly #13464 ?
2020-10-11 23:23:25 +02:00
Henrik Rydgård
5ece3de8ba
Track and accumulate pipeline flags for render passes.
...
(Information that will later let us make some interesting optimizations)
2020-10-11 12:22:25 +02:00
Henrik Rydgård
692048fb8b
VK: Separate layout transitions from renderpasses again.
...
According to sage advice from themaister, this is just unnecessary overengineering.
Having them separate reduces the size of the renderpass key - we might be able to just
change that to an array lookup again. Will also make it easier to in the future add
depth-less render passes.
2020-10-11 11:06:54 +02:00
Henrik Rydgård
886a8b1ac6
Remove Timer.cpp/h. Move various collections into Common/Data/Collections.
2020-10-05 21:05:23 +02:00
Henrik Rydgård
0e3a84b4a8
Move most GPU things to Common.
...
It works after the move, on Windows and Android at least.
Deletes the D3DX9 shader compiler loader, which was not used.
2020-10-04 23:39:02 +02:00