walley892 664da1fe8f
Only call glCheckFrameBufferStatus in the render pass in debug builds (#178707)
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.
2025-11-19 21:17:10 +00:00
..
2025-10-09 19:44:25 +00:00

Flutter Engine

Setting up the Engine development environment

See here