Mesa (master): r600: move r700TranslateFragmentShader into r700UpdateShaders

Alex Deucher agd5f at kemper.freedesktop.org
Tue Jul 28 14:00:43 PDT 2009


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

Author: Alex Deucher <alexdeucher at gmail.com>
Date:   Tue Jul 28 15:53:45 2009 -0400

r600: move r700TranslateFragmentShader into r700UpdateShaders

---

 src/mesa/drivers/dri/r600/r700_render.c |   17 -----------------
 src/mesa/drivers/dri/r600/r700_state.c  |   22 +++++++++++++++++++---
 2 files changed, 19 insertions(+), 20 deletions(-)

diff --git a/src/mesa/drivers/dri/r600/r700_render.c b/src/mesa/drivers/dri/r600/r700_render.c
index 5a2bf84..ea8419d 100644
--- a/src/mesa/drivers/dri/r600/r700_render.c
+++ b/src/mesa/drivers/dri/r600/r700_render.c
@@ -276,20 +276,12 @@ static GLboolean r700RunRender(GLcontext * ctx,
     context_t *context = R700_CONTEXT(ctx);
     R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw);
     int lastIndex = 0;
-#if 1
     BATCH_LOCALS(&context->radeon);
 
     unsigned int i, j;
     TNLcontext *tnl = TNL_CONTEXT(ctx);
     struct vertex_buffer *vb = &tnl->vb;
 
-    struct r700_fragment_program *fp = (struct r700_fragment_program *)
-	                                   (ctx->FragmentProgram._Current);
-    if (context->radeon.radeonScreen->chip_family < CHIP_FAMILY_RV770)
-    {
-        fp->r700AsmCode.bR6xx = 1;
-    }
-
     r700Start3D(context); /* TODO : this is too much. */
 
     r700SendSQConfig(context);
@@ -308,14 +300,6 @@ static GLboolean r700RunRender(GLcontext * ctx,
     r600UpdateTextureState(ctx);
     r700SendTextureState(context);
 
-    if(GL_FALSE == fp->translated)
-    {
-        if( GL_FALSE == r700TranslateFragmentShader(fp, &(fp->mesa_program)) )
-        {
-            return GL_TRUE;
-        }
-    }
-
     r700SetupShaders(ctx);
 
     r700SendFSState(context); // FIXME just a place holder for now
@@ -391,7 +375,6 @@ static GLboolean r700RunRender(GLcontext * ctx,
 
     radeonReleaseArrays(ctx, 0);
 
-#endif //0
     rcommonFlushCmdBuf( &context->radeon, __FUNCTION__ );
 
     return GL_FALSE;
diff --git a/src/mesa/drivers/dri/r600/r700_state.c b/src/mesa/drivers/dri/r600/r700_state.c
index 5563a63..c24c859 100644
--- a/src/mesa/drivers/dri/r600/r700_state.c
+++ b/src/mesa/drivers/dri/r600/r700_state.c
@@ -72,12 +72,28 @@ void r700UpdateShaders (GLcontext * ctx)  //----------------------------------
 
     GLvector4f dummy_attrib[_TNL_ATTRIB_MAX];
     GLvector4f *temp_attrib[_TNL_ATTRIB_MAX];
-
-    struct r700_vertex_program *vp;
-	int i;
+    int i;
+
+    if (ctx->FragmentProgram._Current) {
+	    struct r700_fragment_program *fp = (struct r700_fragment_program *)
+		    (ctx->FragmentProgram._Current);
+	    if (context->radeon.radeonScreen->chip_family < CHIP_FAMILY_RV770)
+	    {
+		    fp->r700AsmCode.bR6xx = 1;
+	    }
+
+	    if(GL_FALSE == fp->translated)
+	    {
+		    if( GL_FALSE == r700TranslateFragmentShader(fp, &(fp->mesa_program)) )
+		    {
+			    //return GL_TRUE;
+		    }
+	    }
+    }
 
     if (context->radeon.NewGLState) 
     {
+	struct r700_vertex_program *vp;
         context->radeon.NewGLState = 0;
 
         for (i = _TNL_FIRST_MAT; i <= _TNL_LAST_MAT; i++) 



More information about the mesa-commit mailing list