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