summaryrefslogtreecommitdiff
path: root/src/mesa/pipe/softpipe
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/pipe/softpipe')
-rw-r--r--src/mesa/pipe/softpipe/sp_context.c8
-rw-r--r--src/mesa/pipe/softpipe/sp_context.h8
-rw-r--r--src/mesa/pipe/softpipe/sp_state.h14
-rw-r--r--src/mesa/pipe/softpipe/sp_state_derived.c2
-rw-r--r--src/mesa/pipe/softpipe/sp_state_fs.c49
5 files changed, 23 insertions, 58 deletions
diff --git a/src/mesa/pipe/softpipe/sp_context.c b/src/mesa/pipe/softpipe/sp_context.c
index 695bf1a9e0..e415966dae 100644
--- a/src/mesa/pipe/softpipe/sp_context.c
+++ b/src/mesa/pipe/softpipe/sp_context.c
@@ -275,12 +275,12 @@ struct pipe_context *softpipe_create( struct pipe_winsys *pipe_winsys,
softpipe->pipe.create_rasterizer_state = softpipe_create_rasterizer_state;
softpipe->pipe.bind_rasterizer_state = softpipe_bind_rasterizer_state;
softpipe->pipe.delete_rasterizer_state = softpipe_delete_rasterizer_state;
- softpipe->pipe.create_fs_state = softpipe_create_fs_state;
+ softpipe->pipe.create_fs_state = softpipe_create_shader_state;
softpipe->pipe.bind_fs_state = softpipe_bind_fs_state;
- softpipe->pipe.delete_fs_state = softpipe_delete_fs_state;
- softpipe->pipe.create_vs_state = softpipe_create_vs_state;
+ softpipe->pipe.delete_fs_state = softpipe_delete_shader_state;
+ softpipe->pipe.create_vs_state = softpipe_create_shader_state;
softpipe->pipe.bind_vs_state = softpipe_bind_vs_state;
- softpipe->pipe.delete_vs_state = softpipe_delete_vs_state;
+ softpipe->pipe.delete_vs_state = softpipe_delete_shader_state;
softpipe->pipe.set_blend_color = softpipe_set_blend_color;
softpipe->pipe.set_clip_state = softpipe_set_clip_state;
diff --git a/src/mesa/pipe/softpipe/sp_context.h b/src/mesa/pipe/softpipe/sp_context.h
index ccf29b5683..c0a681f3d6 100644
--- a/src/mesa/pipe/softpipe/sp_context.h
+++ b/src/mesa/pipe/softpipe/sp_context.h
@@ -62,12 +62,8 @@ struct draw_stage;
#define SP_NEW_VS 0x2000
#define SP_NEW_CONSTANTS 0x4000
-struct sp_vertex_shader_state {
- const struct pipe_shader_state *state;
- void *draw_data;
-};
-struct softpipe_context {
+struct softpipe_context {
struct pipe_context pipe; /**< base class */
struct softpipe_winsys *winsys; /**< window system interface */
@@ -80,7 +76,7 @@ struct softpipe_context {
const struct pipe_depth_stencil_state *depth_stencil;
const struct pipe_rasterizer_state *rasterizer;
const struct pipe_shader_state *fs;
- const struct sp_vertex_shader_state *vs;
+ const struct pipe_shader_state *vs;
struct pipe_blend_color blend_color;
struct pipe_clear_color_state clear_color;
diff --git a/src/mesa/pipe/softpipe/sp_state.h b/src/mesa/pipe/softpipe/sp_state.h
index f9061e86e5..f0e1461d25 100644
--- a/src/mesa/pipe/softpipe/sp_state.h
+++ b/src/mesa/pipe/softpipe/sp_state.h
@@ -87,14 +87,12 @@ void softpipe_set_constant_buffer(struct pipe_context *,
void softpipe_set_feedback_state( struct pipe_context *,
const struct pipe_feedback_state * );
-void *softpipe_create_fs_state(struct pipe_context *,
- const struct pipe_shader_state *);
-void softpipe_bind_fs_state(struct pipe_context *, void *);
-void softpipe_delete_fs_state(struct pipe_context *, void *);
-void *softpipe_create_vs_state(struct pipe_context *,
- const struct pipe_shader_state *);
-void softpipe_bind_vs_state(struct pipe_context *, void *);
-void softpipe_delete_vs_state(struct pipe_context *, void *);
+void *
+softpipe_create_shader_state( struct pipe_context *,
+ const struct pipe_shader_state * );
+void softpipe_bind_fs_state( struct pipe_context *, void * );
+void softpipe_bind_vs_state( struct pipe_context *, void * );
+void softpipe_delete_shader_state( struct pipe_context *, void * );
void softpipe_set_polygon_stipple( struct pipe_context *,
const struct pipe_poly_stipple * );
diff --git a/src/mesa/pipe/softpipe/sp_state_derived.c b/src/mesa/pipe/softpipe/sp_state_derived.c
index b6145df8e2..6c6e798069 100644
--- a/src/mesa/pipe/softpipe/sp_state_derived.c
+++ b/src/mesa/pipe/softpipe/sp_state_derived.c
@@ -43,7 +43,7 @@
*/
static void calculate_vertex_layout( struct softpipe_context *softpipe )
{
- const struct pipe_shader_state *vs = softpipe->vs->state;
+ const struct pipe_shader_state *vs = softpipe->vs;
const struct pipe_shader_state *fs = softpipe->fs;
const interp_mode colorInterp
= softpipe->rasterizer->flatshade ? INTERP_CONSTANT : INTERP_LINEAR;
diff --git a/src/mesa/pipe/softpipe/sp_state_fs.c b/src/mesa/pipe/softpipe/sp_state_fs.c
index f1bec2c73a..8306a95f44 100644
--- a/src/mesa/pipe/softpipe/sp_state_fs.c
+++ b/src/mesa/pipe/softpipe/sp_state_fs.c
@@ -33,13 +33,10 @@
#include "pipe/draw/draw_context.h"
-void * softpipe_create_fs_state(struct pipe_context *pipe,
- const struct pipe_shader_state *templ)
+void * softpipe_create_shader_state(struct pipe_context *pipe,
+ const struct pipe_shader_state *templ)
{
- /* Decide whether we'll be codegenerating this shader and if so do
- * that now.
- */
-
+ /* we just want the pipe_shader_state template in the bind calls */
return 0;
}
@@ -52,50 +49,24 @@ void softpipe_bind_fs_state(struct pipe_context *pipe, void *fs)
softpipe->dirty |= SP_NEW_FS;
}
-void softpipe_delete_fs_state(struct pipe_context *pipe,
- void *shader)
-{
-}
-
-
-void * softpipe_create_vs_state(struct pipe_context *pipe,
- const struct pipe_shader_state *templ)
-{
- struct softpipe_context *softpipe = softpipe_context(pipe);
- struct sp_vertex_shader_state *state =
- malloc(sizeof(struct sp_vertex_shader_state));
-
- state->state = templ;
- state->draw_data = draw_create_vertex_shader(softpipe->draw,
- state->state);
-
- return state;
-}
void softpipe_bind_vs_state(struct pipe_context *pipe, void *vs)
{
struct softpipe_context *softpipe = softpipe_context(pipe);
- softpipe->vs = (const struct sp_vertex_shader_state *)vs;
-
- draw_bind_vertex_shader(softpipe->draw, softpipe->vs->draw_data);
+ softpipe->vs = (struct pipe_shader_state *)vs;
softpipe->dirty |= SP_NEW_VS;
-}
-void softpipe_delete_vs_state(struct pipe_context *pipe,
- void *vs)
-{
- struct softpipe_context *softpipe = softpipe_context(pipe);
-
- struct sp_vertex_shader_state *state =
- (struct sp_vertex_shader_state *)vs;
-
- draw_delete_vertex_shader(softpipe->draw, state->draw_data);
- free(state);
+ draw_set_vertex_shader(softpipe->draw, (struct pipe_shader_state *)vs);
}
+void softpipe_delete_shader_state( struct pipe_context *pipe,
+ void *shader )
+{
+ /* do nothing */
+}
void softpipe_set_constant_buffer(struct pipe_context *pipe,
uint shader, uint index,