summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/intel/intel_pixel.c
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2009-04-06 09:54:29 -0700
committerEric Anholt <eric@anholt.net>2009-04-06 11:17:25 -0700
commit6b187cc8a5041fe2bba1ecc34aa86516ebe8b1b0 (patch)
tree511bd892915132e32a2c708589ba93a2d8a4ebeb /src/mesa/drivers/dri/intel/intel_pixel.c
parente7aef006e50d0b859c621267af8376f5a0f43445 (diff)
intel: Avoid dri2 GetBuffers round-trips for internal Viewport calls.
This gets us the savings for driver-internal viewport calls that dd1c68f15123a889a3ce9d2afe724e272d163e32 was attempting, without relying on Xlib internals or clients handling X events.
Diffstat (limited to 'src/mesa/drivers/dri/intel/intel_pixel.c')
-rw-r--r--src/mesa/drivers/dri/intel/intel_pixel.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_pixel.c b/src/mesa/drivers/dri/intel/intel_pixel.c
index 7041ff389a..fc0ac0b79c 100644
--- a/src/mesa/drivers/dri/intel/intel_pixel.c
+++ b/src/mesa/drivers/dri/intel/intel_pixel.c
@@ -184,7 +184,9 @@ intel_meta_set_passthrough_transform(struct intel_context *intel)
intel->meta.saved_vp_height = ctx->Viewport.Height;
intel->meta.saved_matrix_mode = ctx->Transform.MatrixMode;
+ intel->internal_viewport_call = GL_TRUE;
_mesa_Viewport(0, 0, ctx->DrawBuffer->Width, ctx->DrawBuffer->Height);
+ intel->internal_viewport_call = GL_FALSE;
_mesa_MatrixMode(GL_PROJECTION);
_mesa_PushMatrix();
@@ -206,8 +208,10 @@ intel_meta_restore_transform(struct intel_context *intel)
_mesa_MatrixMode(intel->meta.saved_matrix_mode);
+ intel->internal_viewport_call = GL_TRUE;
_mesa_Viewport(intel->meta.saved_vp_x, intel->meta.saved_vp_y,
intel->meta.saved_vp_width, intel->meta.saved_vp_height);
+ intel->internal_viewport_call = GL_FALSE;
}
/**