summaryrefslogtreecommitdiffstats
path: root/src/mesa/state_tracker/st_context.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/state_tracker/st_context.h')
-rw-r--r--src/mesa/state_tracker/st_context.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/mesa/state_tracker/st_context.h b/src/mesa/state_tracker/st_context.h
index a3f70ecd510..1106bb628a3 100644
--- a/src/mesa/state_tracker/st_context.h
+++ b/src/mesa/state_tracker/st_context.h
@@ -37,6 +37,7 @@
#include "util/u_inlines.h"
#include "util/list.h"
#include "vbo/vbo.h"
+#include "util/list.h"
#ifdef __cplusplus
@@ -95,6 +96,16 @@ struct drawpix_cache_entry
};
+/*
+ * Node for a linked list of dead sampler views.
+ */
+struct st_zombie_sampler_view_node
+{
+ struct pipe_sampler_view *view;
+ struct list_head node;
+};
+
+
struct st_context
{
struct st_context_iface iface;
@@ -306,6 +317,11 @@ struct st_context
* the estimated allocated size needed to execute those operations.
*/
struct util_throttle throttle;
+
+ struct {
+ struct st_zombie_sampler_view_node list;
+ mtx_t mutex;
+ } zombie_sampler_views;
};
@@ -334,6 +350,15 @@ extern void
st_invalidate_buffers(struct st_context *st);
+extern void
+st_save_zombie_sampler_view(struct st_context *st,
+ struct pipe_sampler_view *view);
+
+void
+st_context_free_zombie_objects(struct st_context *st);
+
+
+
/**
* Wrapper for struct gl_framebuffer.
* This is an opaque type to the outside world.