summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/i915tex/intel_fbo.h
diff options
context:
space:
mode:
authorMichel Dänzer <michel@tungstengraphics.com>2007-02-20 19:14:23 +0100
committerMichel Dänzer <michel@tungstengraphics.com>2007-02-20 19:15:44 +0100
commite33a9d689415e00bded306699abdf93b96c0b9ad (patch)
treef34745e35dcbe54fd81e31f8a5a170e54b5d7b78 /src/mesa/drivers/dri/i915tex/intel_fbo.h
parent356bf9563ed145de5ba4a14c9f23c379293f273a (diff)
i915tex: Triple buffering support, only effective with page flipping so far.
Pending flips are tracked per renderbuffer and the colour renderbuffer attachments of window framebuffer objects are rotated on flips to avoid stalling the pipeline for pending flips unnecessarily.
Diffstat (limited to 'src/mesa/drivers/dri/i915tex/intel_fbo.h')
-rw-r--r--src/mesa/drivers/dri/i915tex/intel_fbo.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/i915tex/intel_fbo.h b/src/mesa/drivers/dri/i915tex/intel_fbo.h
index d55f02967f..0446d681c6 100644
--- a/src/mesa/drivers/dri/i915tex/intel_fbo.h
+++ b/src/mesa/drivers/dri/i915tex/intel_fbo.h
@@ -39,11 +39,14 @@ struct intel_framebuffer
{
struct gl_framebuffer Base;
+ struct intel_renderbuffer *color_rb[3];
+
/* Drawable page flipping state */
GLboolean pf_active;
- GLboolean flip_pending;
+ GLuint pf_seq;
GLint pf_pipes;
GLint pf_current_page;
+ GLint pf_num_pages;
};
@@ -63,6 +66,8 @@ struct intel_renderbuffer
GLuint PairedDepth; /**< only used if this is a depth renderbuffer */
GLuint PairedStencil; /**< only used if this is a stencil renderbuffer */
+
+ GLuint pf_pending; /**< sequence number of pending flip */
};
@@ -83,6 +88,8 @@ extern struct intel_renderbuffer *intel_get_renderbuffer(struct gl_framebuffer
*fb,
GLuint attIndex);
+extern void intel_flip_renderbuffers(struct intel_framebuffer *intel_fb);
+
/* XXX make inline or macro */
extern struct intel_region *intel_get_rb_region(struct gl_framebuffer *fb,