diff options
author | Zack Rusin <[email protected]> | 2009-08-26 18:32:36 -0400 |
---|---|---|
committer | Zack Rusin <[email protected]> | 2009-08-27 17:39:45 -0400 |
commit | 3f15ea866fbd82d873943f80b09124a618692a7c (patch) | |
tree | 48e735c757e87945f21f3fec458eec9b17343407 | |
parent | 416ee3c53eeb1664784f224a42e293e5fed783bc (diff) |
st/xorg: create and destroy shader cache
-rw-r--r-- | src/gallium/state_trackers/xorg/xorg_exa.c | 6 | ||||
-rw-r--r-- | src/gallium/state_trackers/xorg/xorg_exa.h | 2 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/gallium/state_trackers/xorg/xorg_exa.c b/src/gallium/state_trackers/xorg/xorg_exa.c index 4fc8d325abe..ef6a112a1e4 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 <xorg-server.h> #include <xf86.h> @@ -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 0189eabaa40..7f5c2bbeae2 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; }; |