summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/nvfx/nvfx_screen.c2
-rw-r--r--src/gallium/drivers/nvfx/nvfx_screen.h1
-rw-r--r--src/gallium/drivers/nvfx/nvfx_vbo.c13
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;