From d40a069206ea76feafe35c417d79c8bd5d62b4c1 Mon Sep 17 00:00:00 2001 From: Luca Barbieri Date: Mon, 22 Feb 2010 11:44:31 +0100 Subject: nvfx: add NOUVEAU_SWTNL to force swtnl at runtime Replace the FORCE_SWTNL macro with a NOUVEAU_SWTNL environment variable. --- src/gallium/drivers/nvfx/nvfx_vbo.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'src/gallium/drivers/nvfx/nvfx_vbo.c') diff --git a/src/gallium/drivers/nvfx/nvfx_vbo.c b/src/gallium/drivers/nvfx/nvfx_vbo.c index 9d501ef1da9..54369f9b64e 100644 --- a/src/gallium/drivers/nvfx/nvfx_vbo.c +++ b/src/gallium/drivers/nvfx/nvfx_vbo.c @@ -10,7 +10,14 @@ #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; -- cgit v1.2.3