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
Relates to the question posed in: #4967
Relates to #5138
Description
When using native backends, Surface::get_current_texture currently calls directly into the backend to return a surface texture, this call is not idempotent in wgpu-core.
A handle to the same texture should instead be returned until it has "expired". Which happens through (among other things) it being presented or the underlying surface being reconfigured.
While calling Surface::get_current_texture multiple times would be atypical, the API does not prevent a user from doing so. @grovesNL noted on matrix that the specified behavior is to return the same texture until it is expired.
Platform
Vulkan: This would allow the caller to exhaust the available wait semaphores before they have been used correctly (by presenting the surface). This might cause strange synchronization issues - the exact behavior would depend on timing, the state of the semaphores, and the Vulkan implementation in question.
I have not looked into the behavior of other backends.
The text was updated successfully, but these errors were encountered:
Relates to the question posed in: #4967
Relates to #5138
Description
When using native backends,
Surface::get_current_texture
currently calls directly into the backend to return a surface texture, this call is not idempotent in wgpu-core.A handle to the same texture should instead be returned until it has "expired". Which happens through (among other things) it being presented or the underlying surface being reconfigured.
Platform
Vulkan: This would allow the caller to exhaust the available wait semaphores before they have been used correctly (by presenting the surface). This might cause strange synchronization issues - the exact behavior would depend on timing, the state of the semaphores, and the Vulkan implementation in question.
I have not looked into the behavior of other backends.
The text was updated successfully, but these errors were encountered: