nvfx: add NOUVEAU_SWTNL to force swtnl at runtime
authorLuca Barbieri <luca@luca-barbieri.com>
Mon, 22 Feb 2010 10:44:31 +0000 (11:44 +0100)
committerYounes Manton <younes.m@gmail.com>
Mon, 15 Mar 2010 04:03:04 +0000 (00:03 -0400)
Replace the FORCE_SWTNL macro with a NOUVEAU_SWTNL environment variable.

src/gallium/drivers/nvfx/nvfx_vbo.c

index 9d501ef1da98dec1c92d5a18a821c4f6125c0d7b..54369f9b64eef1a0ae8856586252bd2e29c2e4b8 100644 (file)
 #include "nouveau/nouveau_pushbuf.h"
 #include "nouveau/nouveau_util.h"
 
-#define FORCE_SWTNL 0
+static boolean
+nvfx_force_swtnl(struct nvfx_context *nvfx)
+{
+       static int force_swtnl = -1;
+       if(force_swtnl < 0)
+               force_swtnl = debug_get_bool_option("NOUVEAU_SWTNL", 0);
+       return force_swtnl;
+}
 
 static INLINE int
 nvfx_vbo_format_to_hw(enum pipe_format pipe, unsigned *fmt, unsigned *ncomp)
@@ -175,7 +182,7 @@ nvfx_draw_arrays(struct pipe_context *pipe,
        unsigned restart = 0;
 
        nvfx_vbo_set_idxbuf(nvfx, NULL, 0);
-       if (FORCE_SWTNL || !nvfx_state_validate(nvfx)) {
+       if (nvfx_force_swtnl(nvfx) || !nvfx_state_validate(nvfx)) {
                nvfx_draw_elements_swtnl(pipe, NULL, 0,
                                            mode, start, count);
                 return;
@@ -465,7 +472,7 @@ nvfx_draw_elements(struct pipe_context *pipe,
        boolean idxbuf;
 
        idxbuf = nvfx_vbo_set_idxbuf(nvfx, indexBuffer, indexSize);
-       if (FORCE_SWTNL || !nvfx_state_validate(nvfx)) {
+       if (nvfx_force_swtnl(nvfx) || !nvfx_state_validate(nvfx)) {
                nvfx_draw_elements_swtnl(pipe, NULL, 0,
                                            mode, start, count);
                return;