1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-03-04 19:29:15 +01:00

[d3d9] Remove explicit swapchain synchronization

No longer necessary.
This commit is contained in:
Philip Rebohle 2025-01-15 18:07:17 +01:00 committed by Philip Rebohle
parent c43cf6895b
commit f9c3dd1f5f
2 changed files with 1 additions and 17 deletions

View File

@ -587,7 +587,6 @@ namespace dxvk {
HRESULT hr = D3D_OK; HRESULT hr = D3D_OK;
this->SynchronizePresent();
this->NormalizePresentParameters(pPresentParams); this->NormalizePresentParameters(pPresentParams);
bool changeFullscreen = m_presentParams.Windowed != pPresentParams->Windowed; bool changeFullscreen = m_presentParams.Windowed != pPresentParams->Windowed;
@ -811,8 +810,6 @@ namespace dxvk {
Rc<DxvkImageView> swapImageView = m_backBuffers[0]->GetImageView(false); Rc<DxvkImageView> swapImageView = m_backBuffers[0]->GetImageView(false);
for (uint32_t i = 0; i < SyncInterval || i < 1; i++) { for (uint32_t i = 0; i < SyncInterval || i < 1; i++) {
SynchronizePresent();
// Presentation semaphores and WSI swap chain image // Presentation semaphores and WSI swap chain image
PresenterSync sync = { }; PresenterSync sync = { };
Rc<DxvkImage> backBuffer; Rc<DxvkImage> backBuffer;
@ -836,8 +833,6 @@ namespace dxvk {
// Present from CS thread so that we don't // Present from CS thread so that we don't
// have to synchronize with it first. // have to synchronize with it first.
m_presentStatus.result = VK_NOT_READY;
DxvkImageViewKey viewInfo; DxvkImageViewKey viewInfo;
viewInfo.viewType = VK_IMAGE_VIEW_TYPE_2D; viewInfo.viewType = VK_IMAGE_VIEW_TYPE_2D;
viewInfo.usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; viewInfo.usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
@ -849,7 +844,6 @@ namespace dxvk {
viewInfo.layerCount = 1u; viewInfo.layerCount = 1u;
m_parent->EmitCs([ m_parent->EmitCs([
cPresentStatus = &m_presentStatus,
cDevice = m_device, cDevice = m_device,
cPresenter = m_wctx->presenter, cPresenter = m_wctx->presenter,
cBlitter = m_blitter, cBlitter = m_blitter,
@ -882,8 +876,7 @@ namespace dxvk {
uint64_t frameId = cRepeat ? 0 : cFrameId; uint64_t frameId = cRepeat ? 0 : cFrameId;
cDevice->presentImage(cPresenter, cDevice->presentImage(cPresenter, frameId, nullptr);
frameId, cPresentStatus);
}); });
m_parent->FlushCsChunk(); m_parent->FlushCsChunk();
@ -900,11 +893,6 @@ namespace dxvk {
} }
void D3D9SwapChainEx::SynchronizePresent() {
m_device->waitForSubmission(&m_presentStatus);
}
Rc<Presenter> D3D9SwapChainEx::CreatePresenter(HWND Window, Rc<sync::Signal> Signal) { Rc<Presenter> D3D9SwapChainEx::CreatePresenter(HWND Window, Rc<sync::Signal> Signal) {
PresenterDesc presenterDesc; PresenterDesc presenterDesc;
presenterDesc.deferSurfaceCreation = m_parent->GetOptions()->deferSurfaceCreation; presenterDesc.deferSurfaceCreation = m_parent->GetOptions()->deferSurfaceCreation;

View File

@ -163,8 +163,6 @@ namespace dxvk {
VkExtent2D m_swapchainExtent = { 0u, 0u }; VkExtent2D m_swapchainExtent = { 0u, 0u };
bool m_partialCopy = false; bool m_partialCopy = false;
DxvkSubmitStatus m_presentStatus;
uint32_t m_frameLatencyCap = 0; uint32_t m_frameLatencyCap = 0;
HWND m_window = nullptr; HWND m_window = nullptr;
@ -187,8 +185,6 @@ namespace dxvk {
void PresentImage(UINT PresentInterval); void PresentImage(UINT PresentInterval);
void SynchronizePresent();
Rc<Presenter> CreatePresenter( Rc<Presenter> CreatePresenter(
HWND Window, HWND Window,
Rc<sync::Signal> Signal); Rc<sync::Signal> Signal);