mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 06:48:06 +02:00
radv: store the dispatch initiator into the device
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
parent
2e58ef46a8
commit
9fdc1437ba
3 changed files with 12 additions and 11 deletions
|
|
@ -3483,26 +3483,16 @@ radv_emit_dispatch_packets(struct radv_cmd_buffer *cmd_buffer,
|
|||
{
|
||||
struct radv_pipeline *pipeline = cmd_buffer->state.compute_pipeline;
|
||||
struct radv_shader_variant *compute_shader = pipeline->shaders[MESA_SHADER_COMPUTE];
|
||||
unsigned dispatch_initiator = cmd_buffer->device->dispatch_initiator;
|
||||
struct radeon_winsys *ws = cmd_buffer->device->ws;
|
||||
struct radeon_winsys_cs *cs = cmd_buffer->cs;
|
||||
struct ac_userdata_info *loc;
|
||||
unsigned dispatch_initiator;
|
||||
|
||||
loc = radv_lookup_user_sgpr(pipeline, MESA_SHADER_COMPUTE,
|
||||
AC_UD_CS_GRID_SIZE);
|
||||
|
||||
MAYBE_UNUSED unsigned cdw_max = radeon_check_space(ws, cs, 25);
|
||||
|
||||
dispatch_initiator = S_00B800_COMPUTE_SHADER_EN(1) |
|
||||
S_00B800_FORCE_START_AT_000(1);
|
||||
|
||||
if (cmd_buffer->device->physical_device->rad_info.chip_class >= CIK) {
|
||||
/* If the KMD allows it (there is a KMD hw register for it),
|
||||
* allow launching waves out-of-order.
|
||||
*/
|
||||
dispatch_initiator |= S_00B800_ORDER_MODE(1);
|
||||
}
|
||||
|
||||
if (info->indirect) {
|
||||
uint64_t va = radv_buffer_get_va(info->indirect->bo);
|
||||
|
||||
|
|
|
|||
|
|
@ -1101,6 +1101,16 @@ VkResult radv_CreateDevice(
|
|||
device->scratch_waves = MAX2(32 * physical_device->rad_info.num_good_compute_units,
|
||||
max_threads_per_block / 64);
|
||||
|
||||
device->dispatch_initiator = S_00B800_COMPUTE_SHADER_EN(1) |
|
||||
S_00B800_FORCE_START_AT_000(1);
|
||||
|
||||
if (device->physical_device->rad_info.chip_class >= CIK) {
|
||||
/* If the KMD allows it (there is a KMD hw register for it),
|
||||
* allow launching waves out-of-order.
|
||||
*/
|
||||
device->dispatch_initiator |= S_00B800_ORDER_MODE(1);
|
||||
}
|
||||
|
||||
radv_device_init_gs_info(device);
|
||||
|
||||
device->tess_offchip_block_dw_size =
|
||||
|
|
|
|||
|
|
@ -542,6 +542,7 @@ struct radv_device {
|
|||
bool dfsm_allowed;
|
||||
uint32_t tess_offchip_block_dw_size;
|
||||
uint32_t scratch_waves;
|
||||
uint32_t dispatch_initiator;
|
||||
|
||||
uint32_t gs_table_depth;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue