summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/llvmpipe/lp_rast.c38
1 files changed, 12 insertions, 26 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_rast.c b/src/gallium/drivers/llvmpipe/lp_rast.c
index 2bb61fcc7c4..131785852c8 100644
--- a/src/gallium/drivers/llvmpipe/lp_rast.c
+++ b/src/gallium/drivers/llvmpipe/lp_rast.c
@@ -334,20 +334,11 @@ lp_rast_shade_tile(struct lp_rasterizer_task *task,
{
const struct lp_scene *scene = task->scene;
const struct lp_rast_shader_inputs *inputs = arg.shade_tile;
- const struct lp_rast_state *state = task->state;
- struct lp_fragment_shader_variant *variant = state->variant;
+ const struct lp_rast_state *state;
+ struct lp_fragment_shader_variant *variant;
const unsigned tile_x = task->x, tile_y = task->y;
unsigned x, y;
- if (!variant) {
- static boolean warned = FALSE;
- if (!warned) {
- debug_warning("null variant pointer");
- warned = TRUE;
- }
- return;
- }
-
if (inputs->disable) {
/* This command was partially binned and has been disabled */
return;
@@ -355,6 +346,13 @@ lp_rast_shade_tile(struct lp_rasterizer_task *task,
LP_DBG(DEBUG_RAST, "%s\n", __FUNCTION__);
+ state = task->state;
+ assert(state);
+ if (!state) {
+ return;
+ }
+ variant = state->variant;
+
/* render the whole 64x64 tile in 4x4 chunks */
for (y = 0; y < TILE_SIZE; y += 4){
for (x = 0; x < TILE_SIZE; x += 4) {
@@ -400,21 +398,13 @@ lp_rast_shade_tile_opaque(struct lp_rasterizer_task *task,
const struct lp_scene *scene = task->scene;
unsigned i;
+ LP_DBG(DEBUG_RAST, "%s\n", __FUNCTION__);
+
+ assert(task->state);
if (!task->state) {
- /* This indicates that some sort of rendering command was queued
- * before we set up the rasterization state. Just returning here
- * allows the piglit fbo-mipmap-copypix test to run/pass.
- */
- static boolean warned = FALSE;
- if (!warned) {
- debug_warning("null state pointer");
- warned = TRUE;
- }
return;
}
- LP_DBG(DEBUG_RAST, "%s\n", __FUNCTION__);
-
/* this will prevent converting the layout from tiled to linear */
for (i = 0; i < scene->fb.nr_cbufs; i++) {
(void)lp_rast_get_color_tile_pointer(task, i, LP_TEX_USAGE_WRITE_ALL);
@@ -807,10 +797,6 @@ static PIPE_THREAD_ROUTINE( thread_func, init_data )
boolean debug = false;
while (1) {
- /* make sure these pointers aren't pointing to old data */
- task->scene = NULL;
- task->state = NULL;
-
/* wait for work */
if (debug)
debug_printf("thread %d waiting for work\n", task->thread_index);