You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -390,8 +391,8 @@ class ISwapchain : public IBackendObject
390
391
OUT_OF_DATE,
391
392
_ERROR
392
393
};
393
-
// If `FATAL_ERROR` returned then the `frameResources` are not latched until the next acquire of the same image index or swapchain destruction (whichever comes first)
// If `FATAL_ERROR` returned then the `waitSemaphores` are kept alive by the swapchain until the next acquire of the same image index or swapchain destruction (whichever comes first)
395
+
inline PRESENT_RESULT present(SPresentInfo info)
395
396
{
396
397
if (!info.queue || info.imgIndex>=m_imageCount)
397
398
return PRESENT_RESULT::FATAL_ERROR;
@@ -406,16 +407,13 @@ class ISwapchain : public IBackendObject
406
407
if (threadsafeQ)
407
408
threadsafeQ->m.unlock();
408
409
409
-
// If not FATAL_ERROR then semaphore wait will actually occur in the future and resources should be released, either:
410
-
// - on the next SIGNALLED acquire of the same index
411
-
// - when dropping the swapchain entirely, but need to wait on all previous presents to finish (some manageable UB)
Copy file name to clipboardExpand all lines: include/nbl/video/utilities/CResizableSurface.h
+3-7Lines changed: 3 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -121,7 +121,6 @@ class NBL_API2 IResizableSurface : public ISimpleManagedSurface
121
121
structSPresentInfo : SCachedPresentInfo
122
122
{
123
123
uint32_t mostRecentFamilyOwningSource; // TODO: change to uint8_t
124
-
core::IReferenceCounted* frameResources;
125
124
};
126
125
// This is a present that you should regularly use from the main rendering thread or something.
127
126
// Due to the constraints and mutexes on everything, its impossible to split this into a separate acquire and present call so this does both.
@@ -164,7 +163,7 @@ class NBL_API2 IResizableSurface : public ISimpleManagedSurface
164
163
165
164
// The triple present enqueue operations are fast enough to be done under a mutex, this is safer on some platforms. You need to "race to present" to avoid a flicker.
166
165
// Queue family ownership acquire not needed, done by the the very first present when `m_lastPresentSource` wasset.
0 commit comments