Lines Matching refs:scratch

62 	bool is_plane_duplicate = dml2->v20.scratch.plane_duplicate_exists;
130 ctx->v20.scratch.dml_to_dc_pipe_mapping.dml_pipe_idx_to_plane_index[state->res_ctx.pipe_ctx[i].pipe_idx], &plane_id_assigned_to_pipe)) {
153 ctx->v20.scratch.dml_to_dc_pipe_mapping.dml_pipe_idx_to_plane_index[pipe->pipe_idx],
534 struct dc_pipe_mapping_scratch *scratch,
542 ASSERT(scratch->pipe_pool.num_pipes_assigned_to_plane_for_mpcc_combine == 1 || scratch->pipe_pool.num_pipes_assigned_to_plane_for_odm_combine == 1);
544 for (i = 0; i < scratch->pipe_pool.num_pipes_assigned_to_plane_for_mpcc_combine; i++) {
545 pipe = &state->res_ctx.pipe_ctx[scratch->pipe_pool.pipes_assigned_to_plane[odm_slice_index][i]];
547 if (scratch->mpc_info.prev_odm_pipe)
548 scratch->mpc_info.prev_odm_pipe->next_odm_pipe = pipe;
550 pipe->prev_odm_pipe = scratch->mpc_info.prev_odm_pipe;
553 scratch->mpc_info.prev_odm_pipe = pipe;
703 bool is_plane_duplicate = ctx->v20.scratch.plane_duplicate_exists;
709 ctx->v20.scratch.dml_to_dc_pipe_mapping.dml_pipe_idx_to_plane_index[state->res_ctx.pipe_ctx[i].pipe_idx] == plane_index)) &&
734 struct dc_pipe_mapping_scratch *scratch, const struct dc_state *existing_state)
740 master_pipe = assign_pipes_to_stream(ctx, state, stream, scratch->odm_info.odm_factor, &scratch->pipe_pool, existing_state);
741 sort_pipes_for_splitting(&scratch->pipe_pool);
743 for (odm_slice_index = 0; odm_slice_index < scratch->odm_info.odm_factor; odm_slice_index++) {
744 remove_pipes_from_blend_trees(ctx, state, &scratch->pipe_pool, odm_slice_index);
746 add_odm_slice_to_odm_tree(ctx, state, scratch, odm_slice_index);
749 master_pipe, &state->res_ctx.pipe_ctx[scratch->pipe_pool.pipes_assigned_to_plane[odm_slice_index][0]], true);
754 int plane_index, struct dc_pipe_mapping_scratch *scratch, const struct dc_state *existing_state)
766 master_pipe = assign_pipes_to_plane(ctx, state, stream, plane, scratch->odm_info.odm_factor,
767 scratch->mpc_info.mpc_factor, plane_index, &scratch->pipe_pool, existing_state);
768 sort_pipes_for_splitting(&scratch->pipe_pool);
770 for (odm_slice_index = 0; odm_slice_index < scratch->odm_info.odm_factor; odm_slice_index++) {
773 if (!is_plane_in_odm_slice(plane, odm_slice_index, scratch->odm_info.odm_slice_end_x, scratch->odm_info.odm_factor)) {
778 scratch->odm_info.next_higher_pipe_for_odm_slice[odm_slice_index] = add_plane_to_blend_tree(ctx, state,
780 &scratch->pipe_pool,
782 scratch->odm_info.next_higher_pipe_for_odm_slice[odm_slice_index]);
784 add_odm_slice_to_odm_tree(ctx, state, scratch, odm_slice_index);
786 for (i = 0; i < scratch->pipe_pool.num_pipes_assigned_to_plane_for_mpcc_combine; i++) {
789 master_pipe, &state->res_ctx.pipe_ctx[scratch->pipe_pool.pipes_assigned_to_plane[odm_slice_index][i]], true);
793 free_unused_pipes_for_plane(ctx, state, plane, &scratch->pipe_pool, stream->stream_id, plane_index);
959 struct dc_pipe_mapping_scratch scratch;
969 memset(&scratch, 0, sizeof(struct dc_pipe_mapping_scratch));
975 scratch.odm_info.odm_factor = 1;
977 scratch.odm_info.odm_factor = 2;
979 scratch.odm_info.odm_factor = 4;
982 scratch.odm_info.odm_factor = 1;
985 calculate_odm_slices(state->streams[stream_index], scratch.odm_info.odm_factor, scratch.odm_info.odm_slice_end_x);
989 map_pipes_for_stream(ctx, state, state->streams[stream_index], &scratch, existing_state);
999 scratch.mpc_info.prev_odm_pipe = NULL;
1000 if (scratch.odm_info.odm_factor == 1) {
1003 scratch.mpc_info.mpc_factor = DPPPerSurface[plane_disp_cfg_index];
1007 scratch.mpc_info.mpc_factor = 2;
1011 scratch.mpc_info.mpc_factor = 1;
1014 ASSERT(scratch.odm_info.odm_factor * scratch.mpc_info.mpc_factor > 0);
1016 // Clear the pool assignment scratch (which is per plane)
1017 memset(&scratch.pipe_pool, 0, sizeof(struct dc_plane_pipe_pool));
1020 state->stream_status[stream_index].plane_states[plane_index], plane_index, &scratch, existing_state);