Lines Matching full:scene
70 assert(setup->scene == NULL);
75 setup->scene = setup->scenes[setup->scene_idx];
77 if (setup->scene->fence) {
79 debug_printf("%s: wait for scene %d\n",
80 __FUNCTION__, setup->scene->fence->id);
82 lp_fence_wait(setup->scene->fence);
85 lp_scene_begin_binning(setup->scene, &setup->fb, setup->rasterizer_discard);
135 setup->scene = NULL;
150 /** Rasterize all scene's bins */
154 struct lp_scene *scene = setup->scene;
155 struct llvmpipe_screen *screen = llvmpipe_screen(scene->pipe->screen);
157 scene->num_active_queries = setup->active_binned_queries;
158 memcpy(scene->active_queries, setup->active_queries,
159 scene->num_active_queries * sizeof(scene->active_queries[0]));
161 lp_scene_end_binning(scene);
163 lp_fence_reference(&setup->last_fence, scene->fence);
170 /* FIXME: We enqueue the scene then wait on the rasterizer to finish.
173 * multiple scenes per setup is about - when we get a new empty scene
180 lp_rast_queue_scene(screen->rast, scene);
184 lp_scene_end_rasterization(setup->scene);
195 struct lp_scene *scene = setup->scene;
199 assert(scene);
200 assert(scene->fence == NULL);
204 scene->fence = lp_fence_create(MAX2(1, setup->num_threads));
205 if (!scene->fence)
229 lp_scene_alloc(scene, sizeof(struct lp_rast_clear_rb));
239 if (!lp_scene_bin_everywhere(scene,
249 ok = lp_scene_bin_everywhere( scene,
263 scene->had_queries = !!setup->active_binned_queries;
308 if (new_state == SETUP_FLUSHED && setup->scene)
309 lp_debug_draw_bins_by_cmd_length(setup->scene);
312 /* wait for a free/empty scene
332 assert(setup->scene == NULL);
344 if (setup->scene) {
345 lp_scene_end_rasterization(setup->scene);
346 setup->scene = NULL;
374 /* Flush any old scene.
379 * Ensure the old scene is not reused.
381 assert(!setup->scene);
384 * scene.
429 struct lp_scene *scene = setup->scene;
431 /* Add the clear to existing scene. In the unusual case where
434 * binned scene and start again, but I don't see that as being
439 lp_scene_alloc_aligned(scene, sizeof(struct lp_rast_clear_rb), 8);
449 if (!lp_scene_bin_everywhere(scene,
505 struct lp_scene *scene = setup->scene;
507 /* Add the clear to existing scene. In the unusual case where
510 * binned scene and start again, but I don't see that as being
513 if (!lp_scene_bin_everywhere(scene,
965 * Is the given texture referenced by any scene?
967 * being rendered and the current scene being built.
984 /* check textures referenced by the scene */
998 * This function stores all dirty state in the current scene's display list
1005 * function) as they may belong to a scene freed since then.
1012 struct lp_scene *scene = setup->scene;
1015 assert(scene);
1027 lp_scene_alloc(scene, sizeof setup->viewports);
1049 stored = lp_scene_alloc_aligned(scene, size, LP_MIN_VECTOR_ALIGN);
1106 stored = lp_scene_alloc(scene, current_size);
1143 /* The fs state that's been stored in the scene is different from
1147 stored = (struct lp_rast_state *) lp_scene_alloc(scene, sizeof *stored);
1158 /* The scene now references the textures in the rasterization
1163 if (!lp_scene_add_resource_reference(scene,
1237 * scene:
1239 if (update_scene && setup->scene) {
1245 /* Update failed, try to restart the scene.
1256 if (!setup->scene)
1288 struct lp_scene *scene = setup->scenes[i];
1290 if (scene->fence)
1291 lp_fence_wait(scene->fence);
1293 lp_scene_destroy(scene);
1392 assert(setup->scene);
1393 if (setup->scene) {
1394 if (!lp_scene_bin_everywhere(setup->scene,
1401 if (!lp_scene_bin_everywhere(setup->scene,
1407 setup->scene->had_queries |= TRUE;
1420 assert(setup->scene);
1421 if (setup->scene) {
1422 /* pq->fence should be the fence of the *last* scene which
1425 lp_fence_reference(&pq->fence, setup->scene->fence);
1432 !(setup->scene->tiles_x | setup->scene->tiles_y)) {
1440 if (!lp_scene_bin_everywhere(setup->scene,
1446 if (!lp_scene_bin_everywhere(setup->scene,
1452 setup->scene->had_queries |= TRUE;