summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/mesa/drivers/dri/i965/gen6_hiz.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/mesa/drivers/dri/i965/gen6_hiz.c b/src/mesa/drivers/dri/i965/gen6_hiz.c
index 92b1d61ef44..4d36729e7c5 100644
--- a/src/mesa/drivers/dri/i965/gen6_hiz.c
+++ b/src/mesa/drivers/dri/i965/gen6_hiz.c
@@ -114,14 +114,16 @@ gen6_hiz_get_framebuffer_enum(struct gl_context *ctx,
GLenum *bind_enum,
GLenum *get_enum)
{
- /* If the blit framebuffer extension isn't supported then Mesa will
- report an error if we try to bind GL_DRAW_FRAMEBUFFER. However in
- that case it should be safe to just save and restore
- GL_FRAMEBUFFER instead. */
if (ctx->Extensions.EXT_framebuffer_blit && ctx->API == API_OPENGL) {
+ /* Different buffers may be bound to GL_DRAW_FRAMEBUFFER and
+ * GL_READ_FRAMEBUFFER. Take care to not disrupt the read buffer.
+ */
*bind_enum = GL_DRAW_FRAMEBUFFER;
*get_enum = GL_DRAW_FRAMEBUFFER_BINDING;
} else {
+ /* The enums GL_DRAW_FRAMEBUFFER and GL_READ_FRAMEBUFFER do not exist.
+ * The bound framebuffer is both the read and draw buffer.
+ */
*bind_enum = GL_FRAMEBUFFER;
*get_enum = GL_FRAMEBUFFER_BINDING;
}