summaryrefslogtreecommitdiff
path: root/src/mesa/pipe/softpipe/sp_tile_fs.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/pipe/softpipe/sp_tile_fs.c')
-rw-r--r--src/mesa/pipe/softpipe/sp_tile_fs.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/mesa/pipe/softpipe/sp_tile_fs.c b/src/mesa/pipe/softpipe/sp_tile_fs.c
index c145fcf089..912831fefa 100644
--- a/src/mesa/pipe/softpipe/sp_tile_fs.c
+++ b/src/mesa/pipe/softpipe/sp_tile_fs.c
@@ -33,6 +33,7 @@
*/
#include "glheader.h"
+#include "imports.h"
#include "sp_context.h"
#include "sp_headers.h"
#include "sp_tile.h"
@@ -116,9 +117,10 @@ static INLINE void pinterp( struct exec_machine *exec,
/* This should be done by the fragment shader execution unit (code
* generated from the decl instructions). Do it here for now.
*/
-void quad_shade( struct softpipe_context *softpipe,
- struct quad_header *quad )
+static void
+shade_quad( struct quad_stage *qs, struct quad_header *quad )
{
+ struct softpipe_context *softpipe = qs->softpipe;
struct exec_machine exec;
GLfloat fx = quad->x0;
GLfloat fy = quad->y0;
@@ -190,14 +192,17 @@ void quad_shade( struct softpipe_context *softpipe,
}
#endif
-
- if (quad->mask)
- quad_output( softpipe, quad );
+ qs->next->run(qs->next, quad);
}
+struct quad_stage *sp_quad_shade_stage( struct softpipe_context *softpipe )
+{
+ struct quad_stage *stage = CALLOC_STRUCT(quad_stage);
+ stage->softpipe = softpipe;
+ stage->run = shade_quad;
-
-
+ return stage;
+}