Revert "Vulkan: Remove resource pools"
This reverts commit ce0406b97b.
Reports on blender-coders mentioned that it could fail on startup.
This commit is contained in:
@@ -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_(2),
|
||||
frame_data_(GHOST_FRAMES_IN_FLIGHT),
|
||||
render_frame_(0),
|
||||
use_hdr_swapchain_(false)
|
||||
{
|
||||
@@ -1160,10 +1160,7 @@ 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. */
|
||||
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);
|
||||
}
|
||||
assert(actual_image_count <= GHOST_FRAMES_IN_FLIGHT);
|
||||
swapchain_images_.resize(actual_image_count);
|
||||
std::vector<VkImage> swapchain_images(actual_image_count);
|
||||
vkGetSwapchainImagesKHR(device, swapchain_, &actual_image_count, swapchain_images.data());
|
||||
|
||||
@@ -91,6 +91,15 @@ 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;
|
||||
|
||||
Reference in New Issue
Block a user