summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/cell/ppu/cell_context.h
diff options
context:
space:
mode:
authorStephane Marchesin <marchesin@icps.u-strasbg.fr>2008-10-07 23:42:48 +0200
committerStephane Marchesin <marchesin@icps.u-strasbg.fr>2008-10-07 23:42:48 +0200
commit8463ddb7401e313888497da30d05e5151db1a066 (patch)
tree34725c56d217af109e0d90b8a19d0ca225a3e8fb /src/gallium/drivers/cell/ppu/cell_context.h
parent6f29c2ff2dc4b3aefe282133376caed68b65a3d0 (diff)
parentbe3c070b6a86255feb752b7574daff8cb6091b96 (diff)
Merge branch 'gallium-0.2' of git+ssh://marcheu@git.freedesktop.org/git/mesa/mesa into gallium-0.2
Diffstat (limited to 'src/gallium/drivers/cell/ppu/cell_context.h')
-rw-r--r--src/gallium/drivers/cell/ppu/cell_context.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/gallium/drivers/cell/ppu/cell_context.h b/src/gallium/drivers/cell/ppu/cell_context.h
index 3dc15c9233..80a9b3d7e1 100644
--- a/src/gallium/drivers/cell/ppu/cell_context.h
+++ b/src/gallium/drivers/cell/ppu/cell_context.h
@@ -38,6 +38,7 @@
#include "cell/common.h"
#include "rtasm/rtasm_ppc_spe.h"
#include "tgsi/tgsi_scan.h"
+#include "util/u_keymap.h"
struct cell_vbuf_render;
@@ -67,6 +68,19 @@ struct cell_fragment_shader_state
/**
+ * Key for mapping per-fragment state to cached SPU machine code.
+ * keymap(cell_fragment_ops_key) => cell_command_fragment_ops
+ */
+struct cell_fragment_ops_key
+{
+ struct pipe_blend_state blend;
+ struct pipe_depth_stencil_alpha_state dsa;
+ enum pipe_format color_format;
+ enum pipe_format zs_format;
+};
+
+
+/**
* Per-context state, subclass of pipe_context.
*/
struct cell_context
@@ -107,6 +121,9 @@ struct cell_context
uint dirty;
+ /** Cache of code generated for per-fragment ops */
+ struct keymap *fragment_ops_cache;
+
/** The primitive drawing context */
struct draw_context *draw;
struct draw_stage *render_stage;