From 3f15ea866fbd82d873943f80b09124a618692a7c Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Wed, 26 Aug 2009 18:32:36 -0400 Subject: st/xorg: create and destroy shader cache --- src/gallium/state_trackers/xorg/xorg_exa.c | 6 ++++++ src/gallium/state_trackers/xorg/xorg_exa.h | 2 ++ 2 files changed, 8 insertions(+) (limited to 'src/gallium/state_trackers') diff --git a/src/gallium/state_trackers/xorg/xorg_exa.c b/src/gallium/state_trackers/xorg/xorg_exa.c index 4fc8d325ab..ef6a112a1e 100644 --- a/src/gallium/state_trackers/xorg/xorg_exa.c +++ b/src/gallium/state_trackers/xorg/xorg_exa.c @@ -31,6 +31,7 @@ #include "xorg_exa.h" #include "xorg_tracker.h" #include "xorg_composite.h" +#include "xorg_exa_tgsi.h" #include #include @@ -523,6 +524,10 @@ xorg_exa_close(ScrnInfoPtr pScrn) modesettingPtr ms = modesettingPTR(pScrn); struct exa_context *exa = ms->exa; + if (exa->shaders) { + xorg_shaders_destroy(exa->shaders); + } + if (exa->cso) { cso_release_all(exa->cso); cso_destroy_context(exa->cso); @@ -594,6 +599,7 @@ xorg_exa_init(ScrnInfoPtr pScrn) ms->ctx = exa->ctx; exa->cso = cso_create_context(exa->ctx); + exa->shaders = xorg_shaders_create(exa); return (void *)exa; diff --git a/src/gallium/state_trackers/xorg/xorg_exa.h b/src/gallium/state_trackers/xorg/xorg_exa.h index 0189eabaa4..7f5c2bbeae 100644 --- a/src/gallium/state_trackers/xorg/xorg_exa.h +++ b/src/gallium/state_trackers/xorg/xorg_exa.h @@ -4,6 +4,7 @@ #include "xorg_tracker.h" struct cso_context; +struct xorg_shaders; struct exa_context { @@ -11,6 +12,7 @@ struct exa_context struct pipe_context *ctx; struct pipe_screen *scrn; struct cso_context *cso; + struct xorg_shaders *shaders; }; -- cgit v1.2.3