Lines Matching refs:task
95 lp_rast_tile_begin(struct lp_rasterizer_task *task, in lp_rast_tile_begin() argument
99 struct lp_scene *scene = task->scene; in lp_rast_tile_begin()
103 task->bin = bin; in lp_rast_tile_begin()
104 task->x = x * TILE_SIZE; in lp_rast_tile_begin()
105 task->y = y * TILE_SIZE; in lp_rast_tile_begin()
106 task->width = TILE_SIZE + x * TILE_SIZE > scene->fb.width ? in lp_rast_tile_begin()
108 task->height = TILE_SIZE + y * TILE_SIZE > scene->fb.height ? in lp_rast_tile_begin()
111 task->thread_data.vis_counter = 0; in lp_rast_tile_begin()
112 task->thread_data.ps_invocations = 0; in lp_rast_tile_begin()
116 task->color_tiles[i] = scene->cbufs[i].map + in lp_rast_tile_begin()
117 scene->cbufs[i].stride * task->y + in lp_rast_tile_begin()
118 scene->cbufs[i].format_bytes * task->x; in lp_rast_tile_begin()
122 task->depth_tile = scene->zsbuf.map + in lp_rast_tile_begin()
123 scene->zsbuf.stride * task->y + in lp_rast_tile_begin()
124 scene->zsbuf.format_bytes * task->x; in lp_rast_tile_begin()
135 lp_rast_clear_color(struct lp_rasterizer_task *task, in lp_rast_clear_color() argument
138 const struct lp_scene *scene = task->scene; in lp_rast_clear_color()
163 task->x, in lp_rast_clear_color()
164 task->y, in lp_rast_clear_color()
166 task->width, in lp_rast_clear_color()
167 task->height, in lp_rast_clear_color()
183 lp_rast_clear_zstencil(struct lp_rasterizer_task *task, in lp_rast_clear_zstencil() argument
186 const struct lp_scene *scene = task->scene; in lp_rast_clear_zstencil()
191 const unsigned height = task->height; in lp_rast_clear_zstencil()
192 const unsigned width = task->width; in lp_rast_clear_zstencil()
205 task->depth_tile + (s * scene->zsbuf.sample_stride); in lp_rast_clear_zstencil()
298 lp_rast_shade_tile(struct lp_rasterizer_task *task, in lp_rast_shade_tile() argument
301 const struct lp_scene *scene = task->scene; in lp_rast_shade_tile()
303 const unsigned tile_x = task->x, tile_y = task->y; in lp_rast_shade_tile()
312 const struct lp_rast_state *state = task->state; in lp_rast_shade_tile()
321 for (unsigned y = 0; y < task->height; y += 4){ in lp_rast_shade_tile()
322 for (unsigned x = 0; x < task->width; x += 4) { in lp_rast_shade_tile()
331 color[i] = lp_rast_get_color_block_pointer(task, i, tile_x + x, in lp_rast_shade_tile()
347 depth = lp_rast_get_depth_block_pointer(task, tile_x + x, in lp_rast_shade_tile()
359 task->thread_data.raster_state.viewport_index = inputs->viewport_index; in lp_rast_shade_tile()
360 task->thread_data.raster_state.view_index = inputs->view_index; in lp_rast_shade_tile()
363 BEGIN_JIT_CALL(state, task); in lp_rast_shade_tile()
373 &task->thread_data, in lp_rast_shade_tile()
390 lp_rast_shade_tile_opaque(struct lp_rasterizer_task *task, in lp_rast_shade_tile_opaque() argument
395 assert(task->state); in lp_rast_shade_tile_opaque()
396 if (!task->state) { in lp_rast_shade_tile_opaque()
400 lp_rast_shade_tile(task, arg); in lp_rast_shade_tile_opaque()
411 lp_rast_shade_quads_mask_sample(struct lp_rasterizer_task *task, in lp_rast_shade_quads_mask_sample() argument
416 const struct lp_rast_state *state = task->state; in lp_rast_shade_quads_mask_sample()
418 const struct lp_scene *scene = task->scene; in lp_rast_shade_quads_mask_sample()
439 color[i] = lp_rast_get_color_block_pointer(task, i, x, y, in lp_rast_shade_quads_mask_sample()
456 depth = lp_rast_get_depth_block_pointer(task, x, y, inputs->layer + inputs->view_index); in lp_rast_shade_quads_mask_sample()
465 if ((x % TILE_SIZE) < task->width && (y % TILE_SIZE) < task->height) { in lp_rast_shade_quads_mask_sample()
467 task->thread_data.raster_state.viewport_index = inputs->viewport_index; in lp_rast_shade_quads_mask_sample()
468 task->thread_data.raster_state.view_index = inputs->view_index; in lp_rast_shade_quads_mask_sample()
471 BEGIN_JIT_CALL(state, task); in lp_rast_shade_quads_mask_sample()
481 &task->thread_data, in lp_rast_shade_quads_mask_sample()
492 lp_rast_shade_quads_mask(struct lp_rasterizer_task *task, in lp_rast_shade_quads_mask() argument
498 for (unsigned i = 0; i < task->scene->fb_max_samples; i++) in lp_rast_shade_quads_mask()
500 lp_rast_shade_quads_mask_sample(task, inputs, x, y, new_mask); in lp_rast_shade_quads_mask()
509 lp_rast_blit_tile_to_dest(struct lp_rasterizer_task *task, in lp_rast_blit_tile_to_dest() argument
512 const struct lp_scene *scene = task->scene; in lp_rast_blit_tile_to_dest()
514 const struct lp_rast_state *state = task->state; in lp_rast_blit_tile_to_dest()
541 src_x += task->x; in lp_rast_blit_tile_to_dest()
542 src_y += task->y; in lp_rast_blit_tile_to_dest()
550 task->x, in lp_rast_blit_tile_to_dest()
551 task->y, in lp_rast_blit_tile_to_dest()
552 task->width, in lp_rast_blit_tile_to_dest()
553 task->height, in lp_rast_blit_tile_to_dest()
560 src_x + task->width <= texture->width && in lp_rast_blit_tile_to_dest()
561 src_y + task->height <= texture->height) { in lp_rast_blit_tile_to_dest()
569 task->x, task->y, in lp_rast_blit_tile_to_dest()
570 task->width, task->height, in lp_rast_blit_tile_to_dest()
578 dst += task->x * 4; in lp_rast_blit_tile_to_dest()
580 dst += task->y * dst_stride; in lp_rast_blit_tile_to_dest()
583 for (int y = 0; y < task->height; ++y) { in lp_rast_blit_tile_to_dest()
587 for (int x = 0; x < task->width; ++x) { in lp_rast_blit_tile_to_dest()
604 lp_rast_shade_tile_opaque(task, arg); in lp_rast_blit_tile_to_dest()
609 lp_rast_blit_tile(struct lp_rasterizer_task *task, in lp_rast_blit_tile() argument
614 lp_rast_blit_tile_to_dest(task, arg); in lp_rast_blit_tile()
624 lp_rast_begin_query(struct lp_rasterizer_task *task, in lp_rast_begin_query() argument
633 pq->start[task->thread_index] = task->thread_data.vis_counter; in lp_rast_begin_query()
636 pq->start[task->thread_index] = task->thread_data.ps_invocations; in lp_rast_begin_query()
639 pq->start[task->thread_index] = os_time_get_nano(); in lp_rast_begin_query()
654 lp_rast_end_query(struct lp_rasterizer_task *task, in lp_rast_end_query() argument
663 pq->end[task->thread_index] += in lp_rast_end_query()
664 task->thread_data.vis_counter - pq->start[task->thread_index]; in lp_rast_end_query()
665 pq->start[task->thread_index] = 0; in lp_rast_end_query()
669 pq->end[task->thread_index] = os_time_get_nano(); in lp_rast_end_query()
672 pq->end[task->thread_index] += in lp_rast_end_query()
673 task->thread_data.ps_invocations - pq->start[task->thread_index]; in lp_rast_end_query()
674 pq->start[task->thread_index] = 0; in lp_rast_end_query()
684 lp_rast_set_state(struct lp_rasterizer_task *task, in lp_rast_set_state() argument
687 task->state = arg.set_state; in lp_rast_set_state()
695 lp_rast_tile_end(struct lp_rasterizer_task *task) in lp_rast_tile_end() argument
698 for (unsigned i = 0; i < task->scene->num_active_queries; ++i) { in lp_rast_tile_end()
699 lp_rast_end_query(task, in lp_rast_tile_end()
700 lp_rast_arg_query(task->scene->active_queries[i])); in lp_rast_tile_end()
704 memset(task->color_tiles, 0, sizeof(task->color_tiles)); in lp_rast_tile_end()
705 task->depth_tile = NULL; in lp_rast_tile_end()
706 task->bin = NULL; in lp_rast_tile_end()
937 blit_rasterize_bin(struct lp_rasterizer_task *task, in blit_rasterize_bin() argument
945 dispatch_blit[block->cmd[k]](task, block->arg[k]); in blit_rasterize_bin()
952 tri_rasterize_bin(struct lp_rasterizer_task *task, in tri_rasterize_bin() argument
960 dispatch_tri[block->cmd[k]](task, block->arg[k]); in tri_rasterize_bin()
967 debug_rasterize_bin(struct lp_rasterizer_task *task, in debug_rasterize_bin() argument
974 dispatch_tri_debug[block->cmd[k]](task, block->arg[k]); in debug_rasterize_bin()
987 rasterize_bin(struct lp_rasterizer_task *task, in rasterize_bin() argument
992 lp_rast_tile_begin(task, bin, x, y); in rasterize_bin()
995 debug_rasterize_bin(task, bin); in rasterize_bin()
997 blit_rasterize_bin(task, bin); in rasterize_bin()
998 } else if (task->scene->permit_linear_rasterizer && in rasterize_bin()
1001 lp_linear_rasterize_bin(task, bin); in rasterize_bin()
1003 tri_rasterize_bin(task, bin, x, y); in rasterize_bin()
1006 lp_rast_tile_end(task); in rasterize_bin()
1042 rasterize_scene(struct lp_rasterizer_task *task, in rasterize_scene() argument
1045 task->scene = scene; in rasterize_scene()
1050 memset(task->thread_data.cache->cache_tags, 0, in rasterize_scene()
1051 sizeof(task->thread_data.cache->cache_tags)); in rasterize_scene()
1053 task->thread_data.cache->cache_access_total = 0; in rasterize_scene()
1054 task->thread_data.cache->cache_access_miss = 0; in rasterize_scene()
1058 if (!task->rast->no_rast) { in rasterize_scene()
1067 rasterize_bin(task, bin, i, j); in rasterize_scene()
1076 total = task->thread_data.cache->cache_access_total; in rasterize_scene()
1077 miss = task->thread_data.cache->cache_access_miss; in rasterize_scene()
1080 task->thread_index, (long long unsigned)total, in rasterize_scene()
1091 task->scene = NULL; in rasterize_scene()
1170 struct lp_rasterizer_task *task = (struct lp_rasterizer_task *) init_data; in thread_function() local
1171 struct lp_rasterizer *rast = task->rast; in thread_function()
1175 snprintf(thread_name, sizeof thread_name, "llvmpipe-%u", task->thread_index); in thread_function()
1187 debug_printf("thread %d waiting for work\n", task->thread_index); in thread_function()
1188 pipe_semaphore_wait(&task->work_ready); in thread_function()
1193 if (task->thread_index == 0) { in thread_function()
1208 debug_printf("thread %d doing work\n", task->thread_index); in thread_function()
1210 rasterize_scene(task, rast->curr_scene); in thread_function()
1217 if (task->thread_index == 0) { in thread_function()
1223 debug_printf("thread %d done working\n", task->thread_index); in thread_function()
1225 pipe_semaphore_signal(&task->work_done); in thread_function()
1229 pipe_semaphore_signal(&task->work_done); in thread_function()
1277 struct lp_rasterizer_task *task = &rast->tasks[i]; in lp_rast_create() local
1278 task->rast = rast; in lp_rast_create()
1279 task->thread_index = i; in lp_rast_create()
1280 task->thread_data.cache = in lp_rast_create()
1282 if (!task->thread_data.cache) { in lp_rast_create()