summaryrefslogtreecommitdiffstats
path: root/src/mesa/pipe/softpipe/sp_state.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/pipe/softpipe/sp_state.h')
-rw-r--r--src/mesa/pipe/softpipe/sp_state.h37
1 files changed, 22 insertions, 15 deletions
diff --git a/src/mesa/pipe/softpipe/sp_state.h b/src/mesa/pipe/softpipe/sp_state.h
index af955c1e17b..431952f1aac 100644
--- a/src/mesa/pipe/softpipe/sp_state.h
+++ b/src/mesa/pipe/softpipe/sp_state.h
@@ -33,8 +33,6 @@
#include "pipe/p_state.h"
-#include "x86/rtasm/x86sse.h"
-
#define SP_NEW_VIEWPORT 0x1
#define SP_NEW_RASTERIZER 0x2
@@ -53,27 +51,36 @@
#define SP_NEW_QUERY 0x4000
+struct tgsi_sampler;
+struct tgsi_interp_coef;
+struct tgsi_exec_machine;
-#ifdef MESA_LLVM
-struct gallivm_prog;
-#endif
+/** Subclass of pipe_shader_state (though it doesn't really need to be).
+ *
+ * This is starting to look an awful lot like a quad pipeline stage...
+ */
+struct sp_fragment_shader {
+ struct pipe_shader_state shader;
+ void (*prepare)( struct sp_fragment_shader *shader,
+ struct tgsi_exec_machine *machine,
+ struct tgsi_sampler *samplers);
-/** Subclass of pipe_shader_state */
-struct sp_fragment_shader_state {
- struct pipe_shader_state shader;
-#if defined(__i386__) || defined(__386__)
- struct x86_function sse2_program;
-#endif
-#ifdef MESA_LLVM
- struct gallivm_prog *llvm_prog;
-#endif
+ /* Run the shader - this interface will get cleaned up in the
+ * future:
+ */
+ unsigned (*run)( struct sp_fragment_shader *shader,
+ struct tgsi_exec_machine *machine,
+ struct quad_header *quad );
+
+
+ void (*delete)( struct sp_fragment_shader * );
};
/** Subclass of pipe_shader_state */
-struct sp_vertex_shader_state {
+struct sp_vertex_shader {
struct pipe_shader_state shader;
struct draw_vertex_shader *draw_data;
};