st/xorg: create and destroy shader cache
authorZack Rusin <zackr@vmware.com>
Wed, 26 Aug 2009 22:32:36 +0000 (18:32 -0400)
committerZack Rusin <zackr@vmware.com>
Thu, 27 Aug 2009 21:39:45 +0000 (17:39 -0400)
src/gallium/state_trackers/xorg/xorg_exa.c
src/gallium/state_trackers/xorg/xorg_exa.h

index 4fc8d325abee9136eab59f4df3cba83a4cc77d11..ef6a112a1e4bbfd9e50afe864ce99cf772cd71cf 100644 (file)
@@ -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;
 
index 0189eabaa4049f9ed497b39c391b37993437aac4..7f5c2bbeae293c54250cc77d4238cf8641c11870 100644 (file)
@@ -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;
 };