Lines Matching defs:scene

72    /* just use the first scene if we run out */
74 debug_printf("%s: wait for scene %d\n",
86 assert(setup->scene == NULL);
89 /* try and find a scene that isn't being used */
104 /* allocate a new scene */
105 struct lp_scene *scene = lp_scene_create(setup);
106 if (!scene) {
110 LP_DBG(DEBUG_SETUP, "allocated scene: %d\n", setup->num_active_scenes);
111 setup->scenes[setup->num_active_scenes] = scene;
117 setup->scene = setup->scenes[i];
118 setup->scene->permit_linear_rasterizer = setup->permit_linear_rasterizer;
119 lp_scene_begin_binning(setup->scene, &setup->fb);
186 setup->scene = NULL;
202 /** Rasterize all scene's bins */
206 struct lp_scene *scene = setup->scene;
207 struct llvmpipe_screen *screen = llvmpipe_screen(scene->pipe->screen);
209 scene->num_active_queries = setup->active_binned_queries;
210 memcpy(scene->active_queries, setup->active_queries,
211 scene->num_active_queries * sizeof(scene->active_queries[0]));
213 lp_scene_end_binning(scene);
216 lp_rast_queue_scene(screen->rast, scene);
228 struct lp_scene *scene = setup->scene;
230 assert(scene);
231 assert(scene->fence == NULL);
235 scene->fence = lp_fence_create(MAX2(1, setup->num_threads));
236 if (!scene->fence)
261 lp_scene_alloc(scene, sizeof(struct lp_rast_clear_rb));
271 if (!lp_scene_bin_everywhere(scene,
282 if (!lp_scene_bin_everywhere(scene,
296 scene->had_queries = !!setup->active_binned_queries;
342 if (new_state == SETUP_FLUSHED && setup->scene)
343 lp_debug_draw_bins_by_cmd_length(setup->scene);
346 /* wait for a free/empty scene
366 assert(setup->scene == NULL);
378 if (setup->scene) {
379 lp_scene_end_rasterization(setup->scene);
380 setup->scene = NULL;
403 /* Flush any old scene.
408 * Ensure the old scene is not reused.
410 assert(!setup->scene);
413 * scene.
442 struct lp_scene *scene = setup->scene;
444 /* Add the clear to existing scene. In the unusual case where
447 * binned scene and start again, but I don't see that as being
452 lp_scene_alloc_aligned(scene, sizeof(struct lp_rast_clear_rb), 8);
462 if (!lp_scene_bin_everywhere(scene,
514 struct lp_scene *scene = setup->scene;
516 /* Add the clear to existing scene. In the unusual case where
519 * binned scene and start again, but I don't see that as being
522 if (!lp_scene_bin_everywhere(scene,
1117 * Is the given texture referenced by any scene?
1119 * being rendered and the current scene being built.
1136 struct lp_scene *scene = setup->scenes[i];
1138 for (unsigned j = 0; j < scene->fb.nr_cbufs; j++) {
1139 if (scene->fb.cbufs[j] && scene->fb.cbufs[j]->texture == texture)
1142 if (scene->fb.zsbuf && scene->fb.zsbuf->texture == texture) {
1146 /* check resources referenced by the scene */
1147 unsigned ref = lp_scene_is_resource_referenced(scene, texture);
1159 * This function stores all dirty state in the current scene's display list
1166 * function) as they may belong to a scene freed since then.
1173 struct lp_scene *scene = setup->scene;
1175 assert(scene);
1187 lp_scene_alloc(scene, sizeof setup->viewports);
1206 lp_scene_alloc_aligned(scene, size, LP_MIN_VECTOR_ALIGN);
1268 void *stored = lp_scene_alloc(scene, current_size);
1291 lp_get_constant_buffer_stride(scene->pipe->screen));
1326 /* The fs state that's been stored in the scene is different from
1331 (struct lp_rast_state *) lp_scene_alloc(scene, sizeof *stored);
1345 if (!lp_scene_add_frag_shader_reference(scene,
1352 /* The scene now references the textures in the rasterization
1357 if (!lp_scene_add_resource_reference(scene,
1368 if (!lp_scene_add_resource_reference(scene,
1379 if (!lp_scene_add_resource_reference(scene,
1486 * scene:
1488 if (update_scene && setup->scene) {
1494 /* Update failed, try to restart the scene.
1505 if (!setup->scene)
1542 struct lp_scene *scene = setup->scenes[i];
1544 if (scene->fence)
1545 lp_fence_wait(scene->fence);
1547 lp_scene_destroy(scene);
1590 /* create just one scene for starting point */
1650 assert(setup->scene);
1651 if (setup->scene) {
1652 if (!lp_scene_bin_everywhere(setup->scene,
1659 if (!lp_scene_bin_everywhere(setup->scene,
1665 setup->scene->had_queries |= TRUE;
1678 assert(setup->scene);
1679 if (setup->scene) {
1680 /* pq->fence should be the fence of the *last* scene which
1683 lp_fence_reference(&pq->fence, setup->scene->fence);
1692 !(setup->scene->tiles_x | setup->scene->tiles_y)) {
1700 if (!lp_scene_bin_everywhere(setup->scene,
1706 if (!lp_scene_bin_everywhere(setup->scene,
1712 setup->scene->had_queries |= TRUE;