Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 10 additions & 9 deletions Source/Core/DolphinLibretro/Vulkan.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -77,16 +77,17 @@ static struct
} initInfo;
static bool DEDICATED_ALLOCATION;

#define VULKAN_MAX_SWAPCHAIN_IMAGES 8
struct VkSwapchainImage
{
VkImage handle;
VkDeviceMemory memory;
retro_vulkan_image retro_image;
};

struct VkSwapchainKHR_T
{
uint32_t count;
struct
{
VkImage handle;
VkDeviceMemory memory;
retro_vulkan_image retro_image;
} images[VULKAN_MAX_SWAPCHAIN_IMAGES];
std::vector<VkSwapchainImage> images;
std::mutex mutex;
std::condition_variable condVar;
int current_index;
Expand Down Expand Up @@ -270,7 +271,7 @@ vkCreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInf
chain.count++;
swapchain_mask >>= 1;
}
assert(chain.count <= VULKAN_MAX_SWAPCHAIN_IMAGES);
chain.images.resize(chain.count);

for (uint32_t i = 0; i < chain.count; i++)
{
Expand Down Expand Up @@ -448,7 +449,7 @@ static VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(VkDevice device, VkSwapc
vkFreeMemory(device, chain.images[i].memory, pAllocator);
}

memset(&chain.images, 0x00, sizeof(chain.images));
chain.images.clear();
chain.count = 0;
chain.current_index = -1;
}
Expand Down
Loading