rive-app / rive-app/rive-flutter
webgl blit loop error
Nobody has claimed this yet.
- Dominant language
- Dart
- Stars
- 1.5k
- Forks
- 240
- PR merge metrics
- No merged PRs in 30d
Description
Submission checklist
- I have confirmed the issue is present in the latest version of the
riveFlutter package - I have searched the documentation and forums and could not find an answer
- I have searched existing issues and this is not a duplicate
Description
hi there. I have had this pop up in a harmless way before but this time is preventing rendering. my use case is:
I have a single rive render texture painter that I want to draw rive render images and artboards inside. I am starting with just image meshes from render images creating with the flutter rive API
this works fine on macos desktop and local chrome debug but when deploying to a live site I get this in chrome (draft gl extensions enabled):
[.WebGL-0x134004ee800] GL_INVALID_OPERATION: glBlitFramebuffer: Blit feedback loop: the read and draw framebuffers are the same.
I am using the factory from the paint method to do the rendering and the image creation (same error was there when using rive.Factory for image creation)
I can't see any reason why this should work differently in this platform. any advice appreciated.
Reproduction steps / code
- get global ref to factory from paint
globalRiveFactory = texture.renderer.riveFactory;
- create render images elsewhere
final data = await rootBundle.load(path);
final bytes = data.buffer.asUint8List();
rImg = await globalRiveFactory!.decodeImage(bytes);
- render images inside paint loop when loaded
for (var scanPainter in scanPainters) {
canvas.drawImageMesh(
scanPainter.rImg!,
scanPainter.vertices!,
uvs!,
indices!,
BlendMode.srcOver,
1);
}
- it renders the first couple images ok despite errors but then every time I try and add another image it fails on the error - but only when deployed and viewed in chrome.
Upload your reproduction files / stack trace
No response
Source .riv / .rev file
No response
Screenshots / video
No response
Rive Flutter package version
^0.14.6
Flutter version
Flutter 3.41.8 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 02085feb3f (13 days ago) • 2026-04-24 13:54:45 -0700
Engine • hash 7a53c052bc4b472cf780b199087e1368e4a9aa8c (revision 59aa584fdf) (22 days ago) • 2026-04-16 02:32:16.000Z
Tools • Dart 3.11.5 • DevTools 2.54.2
Device
chrome
OS version
macos 26.2
Additional context
No response
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the deployed Chrome rendering path described in the report, then inspect the paint method and the Flutter Rive factory paths used by decodeImage and drawImageMesh. Compare the framebuffer handling between local Chrome/macOS and the live site. Done means identifying and correcting the WebGL blit feedback loop without breaking image-mesh rendering, with a regression check for adding multiple images.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- dart
- Domain
- computer-graphics, frontend, web-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100