[Nouveau] nv1x 3d fix/workaround for Q3 demo

Andrew Randrianasulu randrianasulu at gmail.com
Sat Jul 9 08:22:36 PDT 2011


Hello. I have nv18 card in my machine currently.

It works with kernel 3.0.0.-rc6 (i need to pass nouveau.tv_disable=1 parameter 
to module, because uothervise it thinks i have TV connected, while in fact I 
have only VGA CRT monitor connected)

Mesa 3d driver (7.12-devel (git-067c9d7)), on other hand, has few problems, 
most obvious was wrong colors in Q3 demo menus (blue instead of red). swrast 
worked fine. After some digging (for example, deactivating 
EXT_compiled_vertex_array workarounds this bug, like disabling  "OpenGL 
Extensions" from game menu completely) i found that this patch makes colors 
fine:

diff --git a/src/mesa/drivers/dri/nouveau/nv10_render.c 
b/src/mesa/drivers/dri/nouveau/nv10_render.c
index 20fb447..7e28229 100644
--- a/src/mesa/drivers/dri/nouveau/nv10_render.c
+++ b/src/mesa/drivers/dri/nouveau/nv10_render.c
@@ -99,7 +99,8 @@ get_hw_format(int type)
        case GL_UNSIGNED_SHORT:
                return NV10_3D_VTXBUF_FMT_TYPE_V16_SNORM;
        case GL_UNSIGNED_BYTE:
-               return NV10_3D_VTXBUF_FMT_TYPE_B8G8R8A8_UNORM;
+               // return NV10_3D_VTXBUF_FMT_TYPE_B8G8R8A8_UNORM;
+               return NV10_3D_VTXBUF_FMT_TYPE_U8_UNORM;
        default:
                assert(0);
        }

Any idea if NV10_3D_VTXBUF_FMT_TYPE_B8G8R8A8_UNORM has any good on BE 
machines? Or any other use in OpenGL subset, implemented in nv1x class 
silicon?

I have more failed stuff, like non-working demos/reflect and demos/dinoshade 
(probably stencil/z mixup or wrong format?), missing teapot in 
demos/fbotexture (but fbo_firecube works fine), lockup in demos/engine after  
I activated wireframe mode, and probably many others. But I'm very happy to 
have this small victory over 3D in just few hours.



More information about the Nouveau mailing list