summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/nouveau/nouveau_screen.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/nouveau/nouveau_screen.c')
-rw-r--r--src/gallium/drivers/nouveau/nouveau_screen.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gallium/drivers/nouveau/nouveau_screen.c b/src/gallium/drivers/nouveau/nouveau_screen.c
index 0af69252d70..3552b831a85 100644
--- a/src/gallium/drivers/nouveau/nouveau_screen.c
+++ b/src/gallium/drivers/nouveau/nouveau_screen.c
@@ -23,6 +23,8 @@
#include "nouveau_mm.h"
#include "nouveau_buffer.h"
+#include <compiler/glsl_types.h>
+
/* XXX this should go away */
#include "state_tracker/drm_driver.h"
@@ -187,6 +189,9 @@ nouveau_screen_init(struct nouveau_screen *screen, struct nouveau_device *dev)
nouveau_mesa_debug = atoi(nv_dbg);
screen->prefer_nir = debug_get_bool_option("NV50_PROG_USE_NIR", false);
+ screen->force_enable_cl = debug_get_bool_option("NOUVEAU_ENABLE_CL", false);
+ if (screen->force_enable_cl)
+ glsl_type_singleton_init_or_ref();
/* These must be set before any failure is possible, as the cleanup
* paths assume they're responsible for deleting them.
@@ -279,6 +284,9 @@ nouveau_screen_fini(struct nouveau_screen *screen)
{
int fd = screen->drm->fd;
+ if (screen->force_enable_cl)
+ glsl_type_singleton_decref();
+
nouveau_mm_destroy(screen->mm_GART);
nouveau_mm_destroy(screen->mm_VRAM);