mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Rendering to an offscreen texture on platforms without implicit MSAA resolve causes the creation of a framebuffer each frame and a subsequent call to glCheckFramebufferStatus. This call can cause a full [GPU round trip] (https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/WebGL_best_practices#avoid_blocking_api_calls_in_production). This change creates a function in the proc table that only actually makes the glCheckFramebufferStatus check in debug builds, and changes the calls in render_pass_gles to use this function instead. An alternate way of doing this would be to directly wrap the callsites with `ifdef` checks, but this way was more easily testable and seemed cleaner. Also removes a redundant call to CheckFramebufferStatus. Fixes https://github.com/flutter/flutter/issues/175522 ## Pre-launch Checklist - [ x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [ x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [ x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [ x] I signed the [CLA]. - [ x] I listed at least one issue that this PR fixes in the description above. - [ x] I updated/added relevant documentation (doc comments with `///`). - [ x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [ x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [ x] All existing and new tests are passing.