OSDN Git Service

nouveau: some swtcl fixes
authorBen Skeggs <skeggsb@gmail.com>
Sat, 24 Mar 2007 11:22:27 +0000 (22:22 +1100)
committerBen Skeggs <skeggsb@gmail.com>
Sat, 24 Mar 2007 11:24:00 +0000 (22:24 +1100)
src/mesa/drivers/dri/nouveau/nv10_swtcl.c

index 32da406..3bc84d8 100644 (file)
@@ -315,6 +315,9 @@ static inline void nv10_render_line(GLcontext *ctx,GLuint v1,GLuint v2)
        GLuint vertsize = nmesa->vertex_size;
        GLuint size_dword = vertsize*(2)/4;
 
+       /* OUT_RINGp wants size in DWORDS */
+       vertsize >>= 2;
+
        nv10ExtendPrimitive(nmesa, size_dword);
        nv10StartPrimitive(nmesa,GL_LINES+1,size_dword);
        OUT_RINGp((nouveauVertex*)(vertptr+(v1*vertsize)),vertsize);
@@ -329,6 +332,9 @@ static inline void nv10_render_triangle(GLcontext *ctx,GLuint v1,GLuint v2,GLuin
        GLuint vertsize = nmesa->vertex_size;
        GLuint size_dword = vertsize*(3)/4;
 
+       /* OUT_RINGp wants size in DWORDS */
+       vertsize >>= 2;
+
        nv10ExtendPrimitive(nmesa, size_dword);
        nv10StartPrimitive(nmesa,GL_TRIANGLES+1,size_dword);
        OUT_RINGp((nouveauVertex*)(vertptr+(v1*vertsize)),vertsize);
@@ -344,6 +350,9 @@ static inline void nv10_render_quad(GLcontext *ctx,GLuint v1,GLuint v2,GLuint v3
        GLuint vertsize = nmesa->vertex_size;
        GLuint size_dword = vertsize*(4)/4;
 
+       /* OUT_RINGp wants size in DWORDS */
+       vertsize >>= 2;
+
        nv10ExtendPrimitive(nmesa, size_dword);
        nv10StartPrimitive(nmesa,GL_QUADS+1,size_dword);
        OUT_RINGp((nouveauVertex*)(vertptr+(v1*vertsize)),vertsize);