gallium/svga: handle query_rendered caps
[mesa.git] / src / gallium / drivers / svga / svga_context.c
index 0ba09ce2ebc03c2e6b11e040072dd651a2ee81b6..0ffff9c506baebe873096c902696333b7e896ed7 100644 (file)
 
 #include "svga_cmd.h"
 
-#include "os/os_process.h"
 #include "pipe/p_defines.h"
 #include "util/u_inlines.h"
 #include "pipe/p_screen.h"
 #include "util/u_memory.h"
 #include "util/u_bitmask.h"
-#include "util/u_string.h"
 
 #include "svga_context.h"
 #include "svga_screen.h"
@@ -82,35 +80,6 @@ static void svga_destroy( struct pipe_context *pipe )
 }
 
 
-/**
- * Check the process name to see if we're running with an app that
- * needs any particular work-arounds.
- */
-static void
-check_for_workarounds(struct svga_context *svga)
-{
-   char name[1000];
-
-   if (!os_get_process_name(name, sizeof(name)))
-      return;
-
-   if (util_strcmp(name, "sauer_client") == 0) {
-      /*
-       * Sauerbraten uses a two-pass rendering algorithm.  The first pass
-       * draws a depth map.  The second pass draws the colors.  On the second
-       * pass we wind up using the swtnl path because the game tries to use
-       * a GLbyte[3] normal vector array (which the SVGA3D protocol does not
-       * support.)  The vertices of the first and second passes don't quite
-       * match so we see some depth/Z-fighting issues.  This work-around
-       * causes us to map GLbyte[3] to SVGA3D_DECLTYPE_UBYTE4N and avoid the
-       * swtnl path.  Despite not correctly converting normal vectors from
-       * GLbyte[3] to float[4], the rendering looks OK.
-       */
-      debug_printf("Enabling sauerbraten GLbyte[3] work-around\n");
-      svga->workaround.use_decltype_ubyte4n = TRUE;
-   }
-}
-
 
 struct pipe_context *svga_context_create( struct pipe_screen *screen,
                                          void *priv )
@@ -123,6 +92,8 @@ struct pipe_context *svga_context_create( struct pipe_screen *screen,
    if (svga == NULL)
       goto no_svga;
 
+   LIST_INITHEAD(&svga->dirty_buffers);
+
    svga->pipe.screen = screen;
    svga->pipe.priv = priv;
    svga->pipe.destroy = svga_destroy;
@@ -185,10 +156,6 @@ struct pipe_context *svga_context_create( struct pipe_screen *screen,
 
    svga->dirty = ~0;
 
-   LIST_INITHEAD(&svga->dirty_buffers);
-
-   check_for_workarounds(svga);
-
    return &svga->pipe;
 
 no_state: