summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r300/r300_context.h
diff options
context:
space:
mode:
authorCorbin Simpson <MostAwesomeDude@gmail.com>2009-10-16 08:39:59 -0700
committerCorbin Simpson <MostAwesomeDude@gmail.com>2009-10-16 08:43:02 -0700
commitfc8a156cfc539b9c04dc3527e4fc61cb4b0b688e (patch)
treed9eafbd3c0645c66f0223143e1e9dcce56d3d3c9 /src/gallium/drivers/r300/r300_context.h
parent3924d8611513eea74446d655b554596ab66381ff (diff)
r300g: Use a hash table to look up vertex info.
Need to move rs_block to this, too. Also, I'm getting massive amounts of flicker for some reason; I bet we've gotta re-re-examine PSC and friends. :C
Diffstat (limited to 'src/gallium/drivers/r300/r300_context.h')
-rw-r--r--src/gallium/drivers/r300/r300_context.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/gallium/drivers/r300/r300_context.h b/src/gallium/drivers/r300/r300_context.h
index 2acce0fd4a..2a62c67fc7 100644
--- a/src/gallium/drivers/r300/r300_context.h
+++ b/src/gallium/drivers/r300/r300_context.h
@@ -30,12 +30,14 @@
#include "tgsi/tgsi_scan.h"
+#include "util/u_hash_table.h"
#include "util/u_memory.h"
#include "util/u_simple_list.h"
#include "r300_clear.h"
#include "r300_query.h"
#include "r300_screen.h"
+#include "r300_state_derived.h"
#include "r300_winsys.h"
struct r300_fragment_shader;
@@ -248,6 +250,12 @@ struct r300_context {
struct r300_query *query_current;
struct r300_query query_list;
+ /* Shader hash table. Used to store vertex formatting information, which
+ * depends on the combination of both currently loaded shaders. */
+ struct u_hash_table* shader_hash_table;
+ /* Vertex formatting information. */
+ struct r300_vertex_format* vertex_info;
+
/* Various CSO state objects. */
/* Blend state. */
struct r300_blend_state* blend_state;
@@ -278,8 +286,6 @@ struct r300_context {
/* Vertex buffers for Gallium. */
struct pipe_vertex_buffer vertex_buffers[PIPE_MAX_ATTRIBS];
int vertex_buffer_count;
- /* Vertex information. */
- struct r300_vertex_format vertex_info;
/* Vertex shader. */
struct r300_vertex_shader* vs;
/* Viewport state. */