summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/ilo/ilo_gpe.h
diff options
context:
space:
mode:
authorChia-I Wu <olvaffe@gmail.com>2013-05-29 15:43:38 +0800
committerChia-I Wu <olvaffe@gmail.com>2013-06-07 11:13:15 +0800
commit4228cf37467688dc4f6a10c8d2c42c6243f789e9 (patch)
tree9daae59bbb3b813cbae041e3954ed7839596e0e8 /src/gallium/drivers/ilo/ilo_gpe.h
parent94212915ee8f7bf98c8adfe248a05a382d00c191 (diff)
ilo: switch to ilo states for shaders and resources
Define and use struct ilo_sampler_state; struct ilo_view_state; struct ilo_cbuf_state; struct ilo_resource_state; struct ilo_global_binding; in ilo_context.
Diffstat (limited to 'src/gallium/drivers/ilo/ilo_gpe.h')
-rw-r--r--src/gallium/drivers/ilo/ilo_gpe.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/gallium/drivers/ilo/ilo_gpe.h b/src/gallium/drivers/ilo/ilo_gpe.h
index 8bb1ddf3a7b..903d654f051 100644
--- a/src/gallium/drivers/ilo/ilo_gpe.h
+++ b/src/gallium/drivers/ilo/ilo_gpe.h
@@ -96,10 +96,52 @@ struct ilo_blend_state {
struct pipe_blend_state state;
};
+struct ilo_sampler_state {
+ struct pipe_sampler_state *states[ILO_MAX_SAMPLERS];
+ unsigned count;
+};
+
+struct ilo_view_state {
+ struct pipe_sampler_view *states[ILO_MAX_SAMPLER_VIEWS];
+ unsigned count;
+};
+
+struct ilo_cbuf_state {
+ struct pipe_constant_buffer states[ILO_MAX_CONST_BUFFERS];
+ unsigned count;
+};
+
+struct ilo_resource_state {
+ struct pipe_surface *states[PIPE_MAX_SHADER_RESOURCES];
+ unsigned count;
+};
+
struct ilo_fb_state {
struct pipe_framebuffer_state state;
unsigned num_samples;
};
+struct ilo_global_binding {
+ /*
+ * XXX These should not be treated as real resources (and there could be
+ * thousands of them). They should be treated as regions in GLOBAL
+ * resource, which is the only real resource.
+ *
+ * That is, a resource here should instead be
+ *
+ * struct ilo_global_region {
+ * struct pipe_resource base;
+ * int offset;
+ * int size;
+ * };
+ *
+ * and it describes the region [offset, offset + size) in GLOBAL
+ * resource.
+ */
+ struct pipe_resource *resources[PIPE_MAX_SHADER_RESOURCES];
+ uint32_t *handles[PIPE_MAX_SHADER_RESOURCES];
+ unsigned count;
+};
+
#endif /* ILO_GPE_H */