mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-01-30 20:52:11 +01:00
[vulkan] Remove fence from presenter
We don't use these anywhere.
This commit is contained in:
parent
0af7229b8e
commit
253884a8c7
@ -258,8 +258,7 @@ namespace dxvk {
|
|||||||
|
|
||||||
uint32_t imageIndex = 0;
|
uint32_t imageIndex = 0;
|
||||||
|
|
||||||
VkResult status = m_presenter->acquireNextImage(
|
VkResult status = m_presenter->acquireNextImage(sync.acquire, imageIndex);
|
||||||
sync.acquire, VK_NULL_HANDLE, imageIndex);
|
|
||||||
|
|
||||||
while (status != VK_SUCCESS && status != VK_SUBOPTIMAL_KHR) {
|
while (status != VK_SUCCESS && status != VK_SUBOPTIMAL_KHR) {
|
||||||
RecreateSwapChain(m_vsync);
|
RecreateSwapChain(m_vsync);
|
||||||
@ -270,8 +269,7 @@ namespace dxvk {
|
|||||||
info = m_presenter->info();
|
info = m_presenter->info();
|
||||||
sync = m_presenter->getSyncSemaphores();
|
sync = m_presenter->getSyncSemaphores();
|
||||||
|
|
||||||
status = m_presenter->acquireNextImage(
|
status = m_presenter->acquireNextImage(sync.acquire, imageIndex);
|
||||||
sync.acquire, VK_NULL_HANDLE, imageIndex);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Resolve back buffer if it is multisampled. We
|
// Resolve back buffer if it is multisampled. We
|
||||||
|
@ -791,8 +791,7 @@ namespace dxvk {
|
|||||||
|
|
||||||
uint32_t imageIndex = 0;
|
uint32_t imageIndex = 0;
|
||||||
|
|
||||||
VkResult status = m_presenter->acquireNextImage(
|
VkResult status = m_presenter->acquireNextImage(sync.acquire, imageIndex);
|
||||||
sync.acquire, VK_NULL_HANDLE, imageIndex);
|
|
||||||
|
|
||||||
while (status != VK_SUCCESS && status != VK_SUBOPTIMAL_KHR) {
|
while (status != VK_SUCCESS && status != VK_SUBOPTIMAL_KHR) {
|
||||||
RecreateSwapChain(m_vsync);
|
RecreateSwapChain(m_vsync);
|
||||||
@ -800,8 +799,7 @@ namespace dxvk {
|
|||||||
info = m_presenter->info();
|
info = m_presenter->info();
|
||||||
sync = m_presenter->getSyncSemaphores();
|
sync = m_presenter->getSyncSemaphores();
|
||||||
|
|
||||||
status = m_presenter->acquireNextImage(
|
status = m_presenter->acquireNextImage(sync.acquire, imageIndex);
|
||||||
sync.acquire, VK_NULL_HANDLE, imageIndex);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
m_context->beginRecording(
|
m_context->beginRecording(
|
||||||
|
@ -50,18 +50,13 @@ namespace dxvk::vk {
|
|||||||
|
|
||||||
VkResult Presenter::acquireNextImage(
|
VkResult Presenter::acquireNextImage(
|
||||||
VkSemaphore signal,
|
VkSemaphore signal,
|
||||||
VkFence fence,
|
|
||||||
uint32_t& index) {
|
uint32_t& index) {
|
||||||
VkResult status;
|
VkResult status;
|
||||||
|
|
||||||
if (fence && ((status = m_vkd->vkResetFences(
|
|
||||||
m_vkd->device(), 1, &fence)) != VK_SUCCESS))
|
|
||||||
return status;
|
|
||||||
|
|
||||||
status = m_vkd->vkAcquireNextImageKHR(
|
status = m_vkd->vkAcquireNextImageKHR(
|
||||||
m_vkd->device(), m_swapchain,
|
m_vkd->device(), m_swapchain,
|
||||||
std::numeric_limits<uint64_t>::max(),
|
std::numeric_limits<uint64_t>::max(),
|
||||||
signal, fence, &m_imageIndex);
|
signal, VK_NULL_HANDLE, &m_imageIndex);
|
||||||
|
|
||||||
if (status != VK_SUCCESS
|
if (status != VK_SUCCESS
|
||||||
&& status != VK_SUBOPTIMAL_KHR)
|
&& status != VK_SUBOPTIMAL_KHR)
|
||||||
@ -75,15 +70,6 @@ namespace dxvk::vk {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
VkResult Presenter::waitForFence(VkFence fence) {
|
|
||||||
// Ignore timeouts, we don't want to block the
|
|
||||||
// app indefinitely if something goes wrong
|
|
||||||
return m_vkd->vkWaitForFences(
|
|
||||||
m_vkd->device(), 1, &fence, VK_FALSE,
|
|
||||||
1'000'000'000ull);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
VkResult Presenter::presentImage(VkSemaphore wait) {
|
VkResult Presenter::presentImage(VkSemaphore wait) {
|
||||||
VkPresentInfoKHR info;
|
VkPresentInfoKHR info;
|
||||||
info.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR;
|
info.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR;
|
||||||
@ -222,15 +208,6 @@ namespace dxvk::vk {
|
|||||||
m_semaphores.resize(m_info.imageCount);
|
m_semaphores.resize(m_info.imageCount);
|
||||||
|
|
||||||
for (uint32_t i = 0; i < m_semaphores.size(); i++) {
|
for (uint32_t i = 0; i < m_semaphores.size(); i++) {
|
||||||
VkFenceCreateInfo fenceInfo;
|
|
||||||
fenceInfo.sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO;
|
|
||||||
fenceInfo.pNext = nullptr;
|
|
||||||
fenceInfo.flags = 0;
|
|
||||||
|
|
||||||
if ((status = m_vkd->vkCreateFence(m_vkd->device(),
|
|
||||||
&fenceInfo, nullptr, &m_semaphores[i].fence)) != VK_SUCCESS)
|
|
||||||
return status;
|
|
||||||
|
|
||||||
VkSemaphoreCreateInfo semInfo;
|
VkSemaphoreCreateInfo semInfo;
|
||||||
semInfo.sType = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO;
|
semInfo.sType = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO;
|
||||||
semInfo.pNext = nullptr;
|
semInfo.pNext = nullptr;
|
||||||
@ -480,7 +457,6 @@ namespace dxvk::vk {
|
|||||||
m_vkd->vkDestroyImageView(m_vkd->device(), img.view, nullptr);
|
m_vkd->vkDestroyImageView(m_vkd->device(), img.view, nullptr);
|
||||||
|
|
||||||
for (const auto& sem : m_semaphores) {
|
for (const auto& sem : m_semaphores) {
|
||||||
m_vkd->vkDestroyFence(m_vkd->device(), sem.fence, nullptr);
|
|
||||||
m_vkd->vkDestroySemaphore(m_vkd->device(), sem.acquire, nullptr);
|
m_vkd->vkDestroySemaphore(m_vkd->device(), sem.acquire, nullptr);
|
||||||
m_vkd->vkDestroySemaphore(m_vkd->device(), sem.present, nullptr);
|
m_vkd->vkDestroySemaphore(m_vkd->device(), sem.present, nullptr);
|
||||||
}
|
}
|
||||||
|
@ -76,7 +76,6 @@ namespace dxvk::vk {
|
|||||||
* image acquisition.
|
* image acquisition.
|
||||||
*/
|
*/
|
||||||
struct PresenterSync {
|
struct PresenterSync {
|
||||||
VkFence fence;
|
|
||||||
VkSemaphore acquire;
|
VkSemaphore acquire;
|
||||||
VkSemaphore present;
|
VkSemaphore present;
|
||||||
};
|
};
|
||||||
@ -134,26 +133,13 @@ namespace dxvk::vk {
|
|||||||
* must be recreated and a new image must
|
* must be recreated and a new image must
|
||||||
* be acquired before proceeding.
|
* be acquired before proceeding.
|
||||||
* \param [in] signal Semaphore to signal
|
* \param [in] signal Semaphore to signal
|
||||||
* \param [in] fence Fence to signal (optional)
|
|
||||||
* \param [out] index Acquired image index
|
* \param [out] index Acquired image index
|
||||||
* \returns Status of the operation
|
* \returns Status of the operation
|
||||||
*/
|
*/
|
||||||
VkResult acquireNextImage(
|
VkResult acquireNextImage(
|
||||||
VkSemaphore signal,
|
VkSemaphore signal,
|
||||||
VkFence fence,
|
|
||||||
uint32_t& index);
|
uint32_t& index);
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Waits for fence to get signaled
|
|
||||||
*
|
|
||||||
* Helper method that can be used in conjunction
|
|
||||||
* with the fence passed to \ref acquireNextImage.
|
|
||||||
* \param [in] fence Fence to wait on
|
|
||||||
* \returns Status of the operation
|
|
||||||
*/
|
|
||||||
VkResult waitForFence(
|
|
||||||
VkFence fence);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Presents current image
|
* \brief Presents current image
|
||||||
*
|
*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user