summaryrefslogtreecommitdiff
path: root/src/mesa/pipe/cell/ppu/cell_context.h
diff options
context:
space:
mode:
authorBrian <brian.paul@tungstengraphics.com>2007-12-10 14:25:30 -0700
committerBrian <brian.paul@tungstengraphics.com>2007-12-10 14:25:30 -0700
commite53303ba3b69c2c82cefd58e90d06132c2af2bb7 (patch)
tree21e6cb8381c6d27ca910850f60387d2b1b72fb33 /src/mesa/pipe/cell/ppu/cell_context.h
parente248f940506a678acc0cad1c925c0b11cca09672 (diff)
Cell driver state-setter functions, basic tile get/put, glClear.
The state setting code was mostly just copied from the softpipe driver. The SPUs can now get/put framebuffer tiles from/to main memory and clear them to a given color. Lots of debug code in effect. Tiled framebuffer is displayed in X window via the xmwinsys layer. To enable Cell driver, export GALLIUM_CELL=1
Diffstat (limited to 'src/mesa/pipe/cell/ppu/cell_context.h')
-rw-r--r--src/mesa/pipe/cell/ppu/cell_context.h49
1 files changed, 47 insertions, 2 deletions
diff --git a/src/mesa/pipe/cell/ppu/cell_context.h b/src/mesa/pipe/cell/ppu/cell_context.h
index b4d93d1414..a64692081d 100644
--- a/src/mesa/pipe/cell/ppu/cell_context.h
+++ b/src/mesa/pipe/cell/ppu/cell_context.h
@@ -31,16 +31,61 @@
#include "pipe/p_context.h"
-
+#include "cell_winsys.h"
struct cell_context
{
struct pipe_context pipe;
- int spu_info;
+ struct cell_winsys *winsys;
+
+ const struct pipe_alpha_test_state *alpha_test;
+ const struct pipe_blend_state *blend;
+ const struct pipe_sampler_state *sampler[PIPE_MAX_SAMPLERS];
+ const struct pipe_depth_stencil_state *depth_stencil;
+ const struct pipe_rasterizer_state *rasterizer;
+
+ struct pipe_blend_color blend_color;
+ struct pipe_clear_color_state clear_color;
+ struct pipe_clip_state clip;
+ struct pipe_constant_buffer constants[2];
+ struct pipe_feedback_state feedback;
+ struct pipe_framebuffer_state framebuffer;
+ struct pipe_poly_stipple poly_stipple;
+ struct pipe_scissor_state scissor;
+ struct softpipe_texture *texture[PIPE_MAX_SAMPLERS];
+ struct pipe_viewport_state viewport;
+ struct pipe_vertex_buffer vertex_buffer[PIPE_ATTRIB_MAX];
+ struct pipe_vertex_element vertex_element[PIPE_ATTRIB_MAX];
+ uint sampler_units[PIPE_MAX_SAMPLERS];
+ uint dirty;
+
+ /** The primitive drawing context */
+ struct draw_context *draw;
+ struct draw_stage *setup;
+ struct draw_stage *vbuf;
+
+
+ uint num_spus;
+
+
};
+static INLINE struct cell_context *
+cell_context(struct pipe_context *pipe)
+{
+ return (struct cell_context *) pipe;
+}
+
+
+extern struct pipe_context *
+cell_create_context(struct pipe_winsys *ws, struct cell_winsys *cws);
+
+
+
+
+
#endif /* CELL_CONTEXT_H */