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

View File

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