radeons: use dp4 for position invariant vertex programs
authorRoland Scheidegger <sroland@vmware.com>
Fri, 19 Jun 2009 18:00:55 +0000 (20:00 +0200)
committerRoland Scheidegger <sroland@vmware.com>
Fri, 19 Jun 2009 18:01:14 +0000 (20:01 +0200)
Fixes #22181. R200 requires this since DP4 is used in hw tnl mode.
R300 prefers it (should be faster due to no instruction dependencies), but
both methods should be correct (when sw tcl is used though, MUL/MAD might
be faster). Probably doesn't make much difference for R100 since vertex progs
are executed in software anyway, but let's just keep it the same there too.

src/mesa/drivers/dri/r200/r200_context.c
src/mesa/drivers/dri/r300/r300_context.c
src/mesa/drivers/dri/radeon/radeon_context.c

index 8924849d08262d4366c3bc54286d97cc555b2901..241390cef79298cdbb9aa7382f4b418b25112b95 100644 (file)
@@ -388,6 +388,8 @@ GLboolean r200CreateContext( const __GLcontextModes *glVisual,
 
    ctx->Const.MaxDrawBuffers = 1;
 
+   _mesa_set_mvp_with_dp4( ctx, GL_TRUE );
+
    /* Initialize the software rasterizer and helper modules.
     */
    _swrast_CreateContext( ctx );
index 76881e49282d7b727a53d16063d89c63d3c6b2fb..7aa8075aa70ae4a0f90c5448da5ff9502306b249 100644 (file)
@@ -410,6 +410,8 @@ GLboolean r300CreateContext(const __GLcontextModes * glVisual,
 
        r300InitConstValues(ctx, screen);
 
+       _mesa_set_mvp_with_dp4( ctx, GL_TRUE );
+
        /* Initialize the software rasterizer and helper modules.
         */
        _swrast_CreateContext(ctx);
index 8f780c443c914e6248069f98067ce6ab2099be45..229b4387caeb16151880db4008caf31226350fbe 100644 (file)
@@ -316,6 +316,8 @@ r100CreateContext( const __GLcontextModes *glVisual,
 
    ctx->Const.MaxDrawBuffers = 1;
 
+   _mesa_set_mvp_with_dp4( ctx, GL_TRUE );
+
    /* Initialize the software rasterizer and helper modules.
     */
    _swrast_CreateContext( ctx );