Lines Matching refs:task

94 lp_rast_tile_begin(struct lp_rasterizer_task *task,
97 const struct lp_scene *scene = task->scene;
102 task->bin = bin;
103 task->x = bin->x * TILE_SIZE;
104 task->y = bin->y * TILE_SIZE;
107 memset(task->color_tiles, 0, sizeof(task->color_tiles));
111 struct pipe_surface *zsbuf = task->scene->fb.zsbuf;
127 task->x,
128 task->y);
132 task->depth_tile = lp_rast_get_depth_block_pointer(task,
133 task->x,
134 task->y);
136 assert(task->depth_tile);
139 task->depth_tile = NULL;
150 lp_rast_clear_color(struct lp_rasterizer_task *task,
153 const struct lp_scene *scene = task->scene;
170 lp_rast_get_color_tile_pointer(task, i, LP_TEX_USAGE_WRITE_ALL);
183 lp_rast_get_color_tile_pointer(task, i, LP_TEX_USAGE_WRITE_ALL);
212 lp_rast_clear_zstencil(struct lp_rasterizer_task *task,
215 const struct lp_scene *scene = task->scene;
236 dst = task->depth_tile;
303 lp_rast_store_linear_color( struct lp_rasterizer_task *task )
305 const struct lp_scene *scene = task->scene;
314 if (!task->color_tiles[buf])
320 task->x, task->y,
321 task->color_tiles[buf]);
333 lp_rast_shade_tile(struct lp_rasterizer_task *task,
336 const struct lp_scene *scene = task->scene;
340 const unsigned tile_x = task->x, tile_y = task->y;
350 state = task->state;
366 color[i] = lp_rast_get_color_block_pointer(task, i,
370 depth = lp_rast_get_depth_block_pointer(task, tile_x + x, tile_y + y);
373 BEGIN_JIT_CALL(state, task);
383 &task->vis_counter);
396 lp_rast_shade_tile_opaque(struct lp_rasterizer_task *task,
399 const struct lp_scene *scene = task->scene;
404 assert(task->state);
405 if (!task->state) {
411 (void)lp_rast_get_color_tile_pointer(task, i, LP_TEX_USAGE_WRITE_ALL);
414 lp_rast_shade_tile(task, arg);
425 lp_rast_shade_quads_mask(struct lp_rasterizer_task *task,
430 const struct lp_rast_state *state = task->state;
432 const struct lp_scene *scene = task->scene;
450 color[i] = lp_rast_get_color_block_pointer(task, i, x, y);
455 depth = lp_rast_get_depth_block_pointer(task, x, y);
461 BEGIN_JIT_CALL(state, task);
471 &task->vis_counter);
483 lp_rast_begin_query(struct lp_rasterizer_task *task,
488 assert(task->query == NULL);
489 task->vis_counter = 0;
490 task->query = pq;
500 lp_rast_end_query(struct lp_rasterizer_task *task,
503 assert(task->query);
504 if (task->query) {
505 task->query->count[task->thread_index] += task->vis_counter;
506 task->query = NULL;
512 lp_rast_set_state(struct lp_rasterizer_task *task,
515 task->state = arg.state;
577 lp_rast_tile_end(struct lp_rasterizer_task *task)
581 const struct lp_scene *scene = task->scene;
585 uint8_t *color = lp_rast_get_color_block_pointer(task, buf,
586 task->x, task->y);
598 lp_rast_store_linear_color(task);
600 if (task->query) {
602 lp_rast_end_query(task, dummy);
606 memset(task->color_tiles, 0, sizeof(task->color_tiles));
607 task->depth_tile = NULL;
609 task->bin = NULL;
636 do_rasterize_bin(struct lp_rasterizer_task *task,
647 dispatch[block->cmd[k]]( task, block->arg[k] );
661 rasterize_bin(struct lp_rasterizer_task *task,
664 lp_rast_tile_begin( task, bin );
666 do_rasterize_bin(task, bin);
668 lp_rast_tile_end(task);
701 rasterize_scene(struct lp_rasterizer_task *task,
704 task->scene = scene;
706 if (!task->rast->no_rast) {
714 rasterize_bin(task, bin, i, j);
725 rasterize_bin(task, bin);
736 task->scene = NULL;
802 struct lp_rasterizer_task *task = (struct lp_rasterizer_task *) init_data;
803 struct lp_rasterizer *rast = task->rast;
809 debug_printf("thread %d waiting for work\n", task->thread_index);
810 pipe_semaphore_wait(&task->work_ready);
815 if (task->thread_index == 0) {
831 debug_printf("thread %d doing work\n", task->thread_index);
833 rasterize_scene(task,
841 if (task->thread_index == 0) {
847 debug_printf("thread %d done working\n", task->thread_index);
849 pipe_semaphore_signal(&task->work_done);
897 struct lp_rasterizer_task *task = &rast->tasks[i];
898 task->rast = rast;
899 task->thread_index = i;