diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/drivers/nvfx/nvfx_screen.c | 2 | ||||
-rw-r--r-- | src/gallium/drivers/nvfx/nvfx_screen.h | 1 | ||||
-rw-r--r-- | src/gallium/drivers/nvfx/nvfx_vbo.c | 13 |
3 files changed, 5 insertions, 11 deletions
diff --git a/src/gallium/drivers/nvfx/nvfx_screen.c b/src/gallium/drivers/nvfx/nvfx_screen.c index 893086cae8..cf619f24a1 100644 --- a/src/gallium/drivers/nvfx/nvfx_screen.c +++ b/src/gallium/drivers/nvfx/nvfx_screen.c @@ -371,6 +371,8 @@ nvfx_screen_create(struct pipe_winsys *ws, struct nouveau_device *dev) return NULL; } + screen->force_swtnl = debug_get_bool_option("NOUVEAU_SWTNL", FALSE); + nvfx_screen_init_resource_functions(pscreen); nvfx_screen_init_buffer_functions(screen); diff --git a/src/gallium/drivers/nvfx/nvfx_screen.h b/src/gallium/drivers/nvfx/nvfx_screen.h index 14bd633920..ba9a6993ec 100644 --- a/src/gallium/drivers/nvfx/nvfx_screen.h +++ b/src/gallium/drivers/nvfx/nvfx_screen.h @@ -14,6 +14,7 @@ struct nvfx_screen { unsigned is_nv4x; /* either 0 or ~0 */ int vertex_buffer_flags; + boolean force_swtnl; /* HW graphics objects */ struct nv04_surface_2d *eng2d; diff --git a/src/gallium/drivers/nvfx/nvfx_vbo.c b/src/gallium/drivers/nvfx/nvfx_vbo.c index 74de3a799e..8c71aa3d1b 100644 --- a/src/gallium/drivers/nvfx/nvfx_vbo.c +++ b/src/gallium/drivers/nvfx/nvfx_vbo.c @@ -11,15 +11,6 @@ #include "nouveau/nouveau_pushbuf.h" #include "nouveau/nouveau_util.h" -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) { @@ -166,7 +157,7 @@ nvfx_draw_arrays(struct pipe_context *pipe, unsigned restart = 0; nvfx_vbo_set_idxbuf(nvfx, NULL, 0); - if (nvfx_force_swtnl(nvfx) || !nvfx_state_validate(nvfx)) { + if (nvfx->screen->force_swtnl || !nvfx_state_validate(nvfx)) { nvfx_draw_elements_swtnl(pipe, NULL, 0, mode, start, count); return; @@ -467,7 +458,7 @@ nvfx_draw_elements(struct pipe_context *pipe, boolean idxbuf; idxbuf = nvfx_vbo_set_idxbuf(nvfx, indexBuffer, indexSize); - if (nvfx_force_swtnl(nvfx) || !nvfx_state_validate(nvfx)) { + if (nvfx->screen->force_swtnl || !nvfx_state_validate(nvfx)) { nvfx_draw_elements_swtnl(pipe, indexBuffer, indexSize, mode, start, count); return; |