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;
const struct lp_scene *scene = task->scene;
unsigned i;
+ 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 */
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);
const struct cmd_block *block,
int k )
{
+ if (!state)
+ return NULL;
+
if (block->cmd[k] == LP_RAST_OP_SHADE_TILE ||
block->cmd[k] == LP_RAST_OP_SHADE_TILE_OPAQUE ||
block->cmd[k] == LP_RAST_OP_TRIANGLE_1 ||
char val)
{
const struct lp_rast_shader_inputs *inputs = arg.shade_tile;
- boolean blend = tile->state->variant->key.blend.rt[0].blend_enable;
+ boolean blend;
unsigned i,j;
+ if (!tile->state)
+ return 0;
+
+ blend = tile->state->variant->key.blend.rt[0].blend_enable;
+
if (inputs->disable)
return 0;