Problem can be solved at update_fbo() within clutter/clutter/clutter-offscreen-effect.c
In this case at update_fbo a texture should be alocated with width 2560 which is greater than maximal size 2048 of graphics cards.
Offscreen-effect does not support sliced textures, so this is impossible and fails.
Crash occurs because no texture is allocated but a framebuffer is present at priv->offscreen.
Code to free the framebuffer at priv->offscreen should be moved upwards at update_fbo, because it also should be executed in case texture allocation fails.
This leads to the fillowing proposed code:
Problem can be solved at update_fbo() within clutter/ clutter/ clutter- offscreen- effect. c
In this case at update_fbo a texture should be alocated with width 2560 which is greater than maximal size 2048 of graphics cards.
Offscreen-effect does not support sliced textures, so this is impossible and fails.
Crash occurs because no texture is allocated but a framebuffer is present at priv->offscreen.
Code to free the framebuffer at priv->offscreen should be moved upwards at update_fbo, because it also should be executed in case texture allocation fails.
This leads to the fillowing proposed code:
if (priv->texture != NULL) handle_ unref (priv->texture); handle_ unref (priv->offscreen); >offscreen = NULL;
{
cogl_
priv->texture = NULL;
}
if (priv->offscreen != NULL)
{
cogl_
priv-
}
priv->texture = offscreen_ effect_ create_ texture (self, fbo_width, fbo_height);
clutter_
if (priv->texture == NULL)
return FALSE;
cogl_ pipeline_ set_layer_ texture (priv->target, 0, priv->texture);
priv->fbo_width = fbo_width;
priv->fbo_height = fbo_height;
priv->offscreen = cogl_offscreen_ new_to_ texture (priv->texture);
Remember bug 1790525 also should be solved (which often causes an earlier crash), to make the solution complete.