mirror of
https://github.com/brl/mutter.git
synced 2025-02-18 06:04:10 +00:00
cogl-framebuffer: Don't mark the clear clip dirty from the journal
This means that we can't cache the journal read_pixels optimization. https://bugzilla.gnome.org/show_bug.cgi?id=719582 Reviewed-by: Neil Roberts <neil@linux.intel.com> Reviewed-by: Robert Bragg <robert@linux.intel.com> (cherry picked from commit 550bae22d20c8d6d7cf1d090faa9c91619594077)
This commit is contained in:
parent
24412798dc
commit
1b0d0f3892
@ -647,6 +647,7 @@ _cogl_flush_attributes_state (CoglFramebuffer *framebuffer,
|
|||||||
* in the journal. For this optimization to work we need to track
|
* in the journal. For this optimization to work we need to track
|
||||||
* when the framebuffer really does get drawn to. */
|
* when the framebuffer really does get drawn to. */
|
||||||
_cogl_framebuffer_mark_mid_scene (framebuffer);
|
_cogl_framebuffer_mark_mid_scene (framebuffer);
|
||||||
|
_cogl_framebuffer_mark_clear_clip_dirty (framebuffer);
|
||||||
|
|
||||||
if (G_UNLIKELY (!(flags & COGL_DRAW_SKIP_LEGACY_STATE)) &&
|
if (G_UNLIKELY (!(flags & COGL_DRAW_SKIP_LEGACY_STATE)) &&
|
||||||
G_UNLIKELY (ctx->legacy_state_set) &&
|
G_UNLIKELY (ctx->legacy_state_set) &&
|
||||||
|
@ -239,6 +239,9 @@ _cogl_framebuffer_clear_without_flush4f (CoglFramebuffer *framebuffer,
|
|||||||
float blue,
|
float blue,
|
||||||
float alpha);
|
float alpha);
|
||||||
|
|
||||||
|
void
|
||||||
|
_cogl_framebuffer_mark_clear_clip_dirty (CoglFramebuffer *framebuffer);
|
||||||
|
|
||||||
void
|
void
|
||||||
_cogl_framebuffer_mark_mid_scene (CoglFramebuffer *framebuffer);
|
_cogl_framebuffer_mark_mid_scene (CoglFramebuffer *framebuffer);
|
||||||
|
|
||||||
|
@ -232,9 +232,14 @@ _cogl_framebuffer_clear_without_flush4f (CoglFramebuffer *framebuffer,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
_cogl_framebuffer_mark_mid_scene (CoglFramebuffer *framebuffer)
|
_cogl_framebuffer_mark_clear_clip_dirty (CoglFramebuffer *framebuffer)
|
||||||
{
|
{
|
||||||
framebuffer->clear_clip_dirty = TRUE;
|
framebuffer->clear_clip_dirty = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
_cogl_framebuffer_mark_mid_scene (CoglFramebuffer *framebuffer)
|
||||||
|
{
|
||||||
framebuffer->mid_scene = TRUE;
|
framebuffer->mid_scene = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -399,6 +404,7 @@ cogl_framebuffer_clear4f (CoglFramebuffer *framebuffer,
|
|||||||
cleared:
|
cleared:
|
||||||
|
|
||||||
_cogl_framebuffer_mark_mid_scene (framebuffer);
|
_cogl_framebuffer_mark_mid_scene (framebuffer);
|
||||||
|
_cogl_framebuffer_mark_clear_clip_dirty (framebuffer);
|
||||||
|
|
||||||
if (buffers & COGL_BUFFER_BIT_COLOR && buffers & COGL_BUFFER_BIT_DEPTH)
|
if (buffers & COGL_BUFFER_BIT_COLOR && buffers & COGL_BUFFER_BIT_DEPTH)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user