surface.get_current_texture blocks for the duration of fullscreen animation on macOS #5613
Labels
api: metal
Issues with Metal
help required
We need community help to make this happen.
type: bug
Something isn't working
Description
On macOS, the
surface.get_current_texture
function blocks after the user clicks the fullscreen button. It does not finish until the fullscreen animation is finished. This causes the entire app to hang while the fullscreen animation is happening, which means during the fullscreen animation the background moves but the window itself does not move. (see video below)On my laptop display (which is a 120hz retina display) after changing to fullscreen, it blocks for around 1.5 seconds again after the fullscreen animation is finished. The same does not happen when restoring from fullscreen. It also doesn't happen on my second monitor which is 60hz 1920x1080.
Repro steps
https://github.com/ItsSunnyMonster/wgpu_blocking_repro_example
This project will log an error to the console if
surface.get_current_texture
takes longer than 0.5 seconds.Expected vs observed behavior
surface.get_current_texture
should not block when changing to fullscreen.Extra materials
output.mp4
Platform
OS
: macOS 14.4.1CPU
: Apple M1 Pro CPU 8 coresRAM
: 16GBGPU
: Apple M1 Pro GPU 14 coreswgpu
: 0.19.4backend
: MetalThe text was updated successfully, but these errors were encountered: