Mesa (master): r600: fill in r700UpdateViewportOffset

Alex Deucher agd5f at kemper.freedesktop.org
Tue Jul 21 21:11:49 UTC 2009


Module: Mesa
Branch: master
Commit: 60787df1e549436557393bbeae5951d8f27c1976
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=60787df1e549436557393bbeae5951d8f27c1976

Author: Alex Deucher <alexdeucher at gmail.com>
Date:   Tue Jul 21 13:19:46 2009 -0400

r600: fill in r700UpdateViewportOffset

---

 src/mesa/drivers/dri/r600/r700_state.c |   17 ++++++++++++++---
 1 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/src/mesa/drivers/dri/r600/r700_state.c b/src/mesa/drivers/dri/r600/r700_state.c
index eee14b0..d54c6e5 100644
--- a/src/mesa/drivers/dri/r600/r700_state.c
+++ b/src/mesa/drivers/dri/r600/r700_state.c
@@ -118,10 +118,21 @@ void r700UpdateShaders (GLcontext * ctx)  //----------------------------------
  */
 void r700UpdateViewportOffset(GLcontext * ctx) //------------------
 {
+	context_t *context = R700_CONTEXT(ctx);
+	R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw);
+	__DRIdrawablePrivate *dPriv = radeon_get_drawable(&context->radeon);
+	GLfloat xoffset = (GLfloat) dPriv->x;
+	GLfloat yoffset = (GLfloat) dPriv->y + dPriv->h;
+	const GLfloat *v = ctx->Viewport._WindowMap.m;
+	int id = 0;
 
-	//radeonUpdateScissor(ctx);
+	GLfloat tx = v[MAT_TX] + xoffset;
+	GLfloat ty = (-v[MAT_TY]) + yoffset;
+
+	r700->viewport[id].PA_CL_VPORT_XOFFSET.f32All = tx;
+	r700->viewport[id].PA_CL_VPORT_YOFFSET.f32All = ty;
 
-    return;
+	radeonUpdateScissor(ctx);
 }
 
 /**
@@ -311,7 +322,7 @@ static void r700SetAlphaState(GLcontext * ctx)
 {
 	context_t *context = R700_CONTEXT(ctx);
 	R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw);
-	uint32_t alpha_func;
+	uint32_t alpha_func = REF_ALWAYS;
 	GLboolean really_enabled = ctx->Color.AlphaEnabled;
 
 	switch (ctx->Color.AlphaFunc) {




More information about the mesa-commit mailing list