X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Fsvga%2Fsvga_context.c;h=673d17ad4a7f177297ccaf32a9fdc9dfb60f2c36;hb=7ce20cf59a1171c4fa2e17a6c0c2f7e24b1150d2;hp=0ba09ce2ebc03c2e6b11e040072dd651a2ee81b6;hpb=c875d6e57a817bb6a8163a8a98ebd2768ee91848;p=mesa.git diff --git a/src/gallium/drivers/svga/svga_context.c b/src/gallium/drivers/svga/svga_context.c index 0ba09ce2ebc..673d17ad4a7 100644 --- a/src/gallium/drivers/svga/svga_context.c +++ b/src/gallium/drivers/svga/svga_context.c @@ -25,13 +25,11 @@ #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,38 +80,9 @@ 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 ) +struct pipe_context *svga_context_create(struct pipe_screen *screen, + void *priv, unsigned flags) { struct svga_screen *svgascreen = svga_screen(screen); struct svga_context *svga = NULL; @@ -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: