Vulkan: Remove resource pools

Multiple previous changes made resource pools obsolete. Resource
pools were used to keep track of resources when the frame is rendered.
Multiple frames can be rendered at the same time and resources could
overlap.

This has been replaced (not this commit) to be part of the render graph
and when an submission has completed the resources are recycled.

Pull Request: https://projects.blender.org/blender/blender/pulls/145408
This commit is contained in:
Jeroen Bakker
2025-09-01 08:37:55 +02:00
parent 63c869b8b7
commit ce0406b97b
7 changed files with 12 additions and 68 deletions

View File

@@ -603,7 +603,7 @@ GHOST_ContextVK::GHOST_ContextVK(const GHOST_ContextParams &context_params,
hdr_info_(hdr_info),
surface_(VK_NULL_HANDLE),
swapchain_(VK_NULL_HANDLE),
frame_data_(GHOST_FRAMES_IN_FLIGHT),
frame_data_(2),
render_frame_(0),
use_hdr_swapchain_(false)
{
@@ -1160,7 +1160,10 @@ GHOST_TSuccess GHOST_ContextVK::recreateSwapchain(bool use_hdr_swapchain)
/* Some platforms require a minimum amount of render frames that is larger than we expect. When
* that happens we should increase the number of frames in flight. We could also consider
* splitting the frame in flight and image specific data. */
assert(actual_image_count <= GHOST_FRAMES_IN_FLIGHT);
if (actual_image_count > frame_data_.size()) {
CLOG_TRACE(&LOG, "Vulkan: Increasing frame data to %u frames", actual_image_count);
frame_data_.resize(actual_image_count);
}
swapchain_images_.resize(actual_image_count);
std::vector<VkImage> swapchain_images(actual_image_count);
vkGetSwapchainImagesKHR(device, swapchain_, &actual_image_count, swapchain_images.data());

View File

@@ -91,15 +91,6 @@ struct GHOST_Frame {
void destroy(VkDevice vk_device);
};
/**
* The number of frames that GHOST manages.
*
* This must be kept in sync with any frame-aligned resources in the
* Vulkan backend. Notably, VKThreadData::resource_pools_count must
* match this value.
*/
constexpr static uint32_t GHOST_FRAMES_IN_FLIGHT = 5;
class GHOST_ContextVK : public GHOST_Context {
friend class GHOST_XrGraphicsBindingVulkan;
friend class GHOST_XrGraphicsBindingVulkanD3D;