[cogl/cogl-1.16] cogl-framebuffer: Don't mark the clear clip dirty from the journal
- From: Neil Roberts <nroberts src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [cogl/cogl-1.16] cogl-framebuffer: Don't mark the clear clip dirty from the journal
- Date: Tue, 17 Dec 2013 14:25:18 +0000 (UTC)
commit 5bfc41c6fac044af662d2ce7aab34ed0caea43c0
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Fri Nov 29 16:16:37 2013 -0500
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)
cogl/cogl-attribute.c | 1 +
cogl/cogl-framebuffer-private.h | 3 +++
cogl/cogl-framebuffer.c | 8 +++++++-
3 files changed, 11 insertions(+), 1 deletions(-)
---
diff --git a/cogl/cogl-attribute.c b/cogl/cogl-attribute.c
index 4992007..1bd6b42 100644
--- a/cogl/cogl-attribute.c
+++ b/cogl/cogl-attribute.c
@@ -647,6 +647,7 @@ _cogl_flush_attributes_state (CoglFramebuffer *framebuffer,
* in the journal. For this optimization to work we need to track
* when the framebuffer really does get drawn to. */
_cogl_framebuffer_mark_mid_scene (framebuffer);
+ _cogl_framebuffer_mark_clear_clip_dirty (framebuffer);
if (G_UNLIKELY (!(flags & COGL_DRAW_SKIP_LEGACY_STATE)) &&
G_UNLIKELY (ctx->legacy_state_set) &&
diff --git a/cogl/cogl-framebuffer-private.h b/cogl/cogl-framebuffer-private.h
index 233f1c5..dabd1e0 100644
--- a/cogl/cogl-framebuffer-private.h
+++ b/cogl/cogl-framebuffer-private.h
@@ -237,6 +237,9 @@ _cogl_framebuffer_clear_without_flush4f (CoglFramebuffer *framebuffer,
float alpha);
void
+_cogl_framebuffer_mark_clear_clip_dirty (CoglFramebuffer *framebuffer);
+
+void
_cogl_framebuffer_mark_mid_scene (CoglFramebuffer *framebuffer);
CoglClipState *
diff --git a/cogl/cogl-framebuffer.c b/cogl/cogl-framebuffer.c
index 20863ff..e7caefa 100644
--- a/cogl/cogl-framebuffer.c
+++ b/cogl/cogl-framebuffer.c
@@ -232,9 +232,14 @@ _cogl_framebuffer_clear_without_flush4f (CoglFramebuffer *framebuffer,
}
void
-_cogl_framebuffer_mark_mid_scene (CoglFramebuffer *framebuffer)
+_cogl_framebuffer_mark_clear_clip_dirty (CoglFramebuffer *framebuffer)
{
framebuffer->clear_clip_dirty = TRUE;
+}
+
+void
+_cogl_framebuffer_mark_mid_scene (CoglFramebuffer *framebuffer)
+{
framebuffer->mid_scene = TRUE;
}
@@ -399,6 +404,7 @@ cogl_framebuffer_clear4f (CoglFramebuffer *framebuffer,
cleared:
_cogl_framebuffer_mark_mid_scene (framebuffer);
+ _cogl_framebuffer_mark_clear_clip_dirty (framebuffer);
if (buffers & COGL_BUFFER_BIT_COLOR && buffers & COGL_BUFFER_BIT_DEPTH)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]