summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZack Rusin <zackr@vmware.com>2009-08-26 18:32:36 -0400
committerZack Rusin <zackr@vmware.com>2009-08-27 17:39:45 -0400
commit3f15ea866fbd82d873943f80b09124a618692a7c (patch)
tree48e735c757e87945f21f3fec458eec9b17343407
parent416ee3c53eeb1664784f224a42e293e5fed783bc (diff)
st/xorg: create and destroy shader cache
-rw-r--r--src/gallium/state_trackers/xorg/xorg_exa.c6
-rw-r--r--src/gallium/state_trackers/xorg/xorg_exa.h2
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 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 <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 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;
};