Lines Matching full:needs
917 const struct radv_queue_ring_info *needs) in radv_update_preamble_cs() argument
936 const bool add_sample_positions = !queue->ring_info.sample_positions && needs->sample_positions; in radv_update_preamble_cs()
937 const uint32_t scratch_size = needs->scratch_size_per_wave * needs->scratch_waves; in radv_update_preamble_cs()
948 …const uint32_t compute_scratch_size = needs->compute_scratch_size_per_wave * needs->compute_scratc… in radv_update_preamble_cs()
959 if (needs->esgs_ring_size > queue->ring_info.esgs_ring_size) { in radv_update_preamble_cs()
960 …result = radv_bo_create(device, NULL, needs->esgs_ring_size, 4096, RADEON_DOMAIN_VRAM, ring_bo_fla… in radv_update_preamble_cs()
964 radv_rmv_log_command_buffer_bo_create(device, esgs_ring_bo, 0, 0, needs->esgs_ring_size); in radv_update_preamble_cs()
967 if (needs->gsvs_ring_size > queue->ring_info.gsvs_ring_size) { in radv_update_preamble_cs()
968 …result = radv_bo_create(device, NULL, needs->gsvs_ring_size, 4096, RADEON_DOMAIN_VRAM, ring_bo_fla… in radv_update_preamble_cs()
972 radv_rmv_log_command_buffer_bo_create(device, gsvs_ring_bo, 0, 0, needs->gsvs_ring_size); in radv_update_preamble_cs()
975 if (!queue->ring_info.tess_rings && needs->tess_rings) { in radv_update_preamble_cs()
984 if (!queue->ring_info.task_rings && needs->task_rings) { in radv_update_preamble_cs()
988 * The draw ring needs to be zero-initialized otherwise the ready bits will be incorrect. in radv_update_preamble_cs()
1004 if (!queue->ring_info.mesh_scratch_ring && needs->mesh_scratch_ring) { in radv_update_preamble_cs()
1016 if (!queue->ring_info.ge_rings && needs->ge_rings) { in radv_update_preamble_cs()
1026 if (!queue->ring_info.gds && needs->gds) { in radv_update_preamble_cs()
1045 if (!queue->ring_info.gds_oa && needs->gds_oa) { in radv_update_preamble_cs()
1088 …radv_fill_shader_rings(device, map, scratch_bo, needs->esgs_ring_size, esgs_ring_bo, needs->gsvs_r… in radv_update_preamble_cs()
1124 …radv_emit_gs_ring_sizes(device, cs, esgs_ring_bo, needs->esgs_ring_size, gsvs_ring_bo, needs->gsvs… in radv_update_preamble_cs()
1129 …radv_emit_compute_scratch(device, cs, needs->compute_scratch_size_per_wave, needs->compute_scratch… in radv_update_preamble_cs()
1131 …radv_emit_graphics_scratch(device, cs, needs->scratch_size_per_wave, needs->scratch_waves, scratch… in radv_update_preamble_cs()
1143 …radv_emit_compute_scratch(device, cs, needs->compute_scratch_size_per_wave, needs->compute_scratch… in radv_update_preamble_cs()
1229 queue->ring_info = *needs; in radv_update_preamble_cs()
1280 /* Figure out the needs of the current submission. in radv_update_preambles()
1286 struct radv_queue_ring_info needs = queue->ring_info; in radv_update_preambles() local
1293 …needs.scratch_size_per_wave = MAX2(needs.scratch_size_per_wave, cmd_buffer->scratch_size_per_wave_… in radv_update_preambles()
1294 needs.scratch_waves = MAX2(needs.scratch_waves, cmd_buffer->scratch_waves_wanted); in radv_update_preambles()
1295 needs.compute_scratch_size_per_wave = in radv_update_preambles()
1296 … MAX2(needs.compute_scratch_size_per_wave, cmd_buffer->compute_scratch_size_per_wave_needed); in radv_update_preambles()
1297 …needs.compute_scratch_waves = MAX2(needs.compute_scratch_waves, cmd_buffer->compute_scratch_waves_… in radv_update_preambles()
1298 needs.esgs_ring_size = MAX2(needs.esgs_ring_size, cmd_buffer->esgs_ring_size_needed); in radv_update_preambles()
1299 needs.gsvs_ring_size = MAX2(needs.gsvs_ring_size, cmd_buffer->gsvs_ring_size_needed); in radv_update_preambles()
1300 needs.tess_rings |= cmd_buffer->tess_rings_needed; in radv_update_preambles()
1301 needs.task_rings |= cmd_buffer->task_rings_needed; in radv_update_preambles()
1302 needs.mesh_scratch_ring |= cmd_buffer->mesh_scratch_ring_needed; in radv_update_preambles()
1303 needs.gds |= cmd_buffer->gds_needed; in radv_update_preambles()
1304 needs.gds_oa |= cmd_buffer->gds_oa_needed; in radv_update_preambles()
1305 needs.sample_positions |= cmd_buffer->sample_positions_needed; in radv_update_preambles()
1311 needs.scratch_waves = in radv_update_preambles()
1312 …needs.scratch_size_per_wave ? MIN2(needs.scratch_waves, UINT32_MAX / needs.scratch_size_per_wave) … in radv_update_preambles()
1313 needs.compute_scratch_waves = in radv_update_preambles()
1314 needs.compute_scratch_size_per_wave in radv_update_preambles()
1315 ? MIN2(needs.compute_scratch_waves, UINT32_MAX / needs.compute_scratch_size_per_wave) in radv_update_preambles()
1319 needs.ge_rings = true; in radv_update_preambles()
1322 /* Return early if we already match these needs. in radv_update_preambles()
1326 …if (queue->initial_full_flush_preamble_cs && queue->ring_info.scratch_size_per_wave == needs.scrat… in radv_update_preambles()
1327 queue->ring_info.scratch_waves == needs.scratch_waves && in radv_update_preambles()
1328 queue->ring_info.compute_scratch_size_per_wave == needs.compute_scratch_size_per_wave && in radv_update_preambles()
1329 queue->ring_info.compute_scratch_waves == needs.compute_scratch_waves && in radv_update_preambles()
1330 queue->ring_info.esgs_ring_size == needs.esgs_ring_size && in radv_update_preambles()
1331 …queue->ring_info.gsvs_ring_size == needs.gsvs_ring_size && queue->ring_info.tess_rings == needs.te… in radv_update_preambles()
1332 queue->ring_info.task_rings == needs.task_rings && in radv_update_preambles()
1333 …queue->ring_info.mesh_scratch_ring == needs.mesh_scratch_ring && queue->ring_info.ge_rings == need… in radv_update_preambles()
1334 queue->ring_info.gds == needs.gds && queue->ring_info.gds_oa == needs.gds_oa && in radv_update_preambles()
1335 queue->ring_info.sample_positions == needs.sample_positions) in radv_update_preambles()
1338 return radv_update_preamble_cs(queue, device, &needs); in radv_update_preambles()
1521 struct radv_queue_ring_info needs = queue->follower_state->ring_info; in radv_update_gang_preambles() local
1522 needs.compute_scratch_size_per_wave = queue->state.ring_info.scratch_size_per_wave; in radv_update_gang_preambles()
1523 needs.compute_scratch_waves = queue->state.ring_info.scratch_waves; in radv_update_gang_preambles()
1524 needs.task_rings = queue->state.ring_info.task_rings; in radv_update_gang_preambles()
1526 r = radv_update_preamble_cs(queue->follower_state, device, &needs); in radv_update_gang_preambles()
1776 …/* Follower needs to be before the gang leader because the last CS must match the queue's IP type.… in radv_queue_submit_normal()