mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-21 22:20:14 +01:00
lavapipe: add basic vulkan device group support.
This just add the basic for vulkan device group support, base dispatch, and dummy funcs Reviewed-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Roland Scheidegger <sroland@vmware.com> Reviweed-by: Eric Anholt <eric@anholt.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8154>
This commit is contained in:
parent
7de0d93fcd
commit
6af87193c4
5 changed files with 45 additions and 2 deletions
|
|
@ -793,6 +793,9 @@ void lvp_CmdDispatch(
|
|||
cmd->u.dispatch.x = x;
|
||||
cmd->u.dispatch.y = y;
|
||||
cmd->u.dispatch.z = z;
|
||||
cmd->u.dispatch.base_x = 0;
|
||||
cmd->u.dispatch.base_y = 0;
|
||||
cmd->u.dispatch.base_z = 0;
|
||||
|
||||
cmd_buf_queue(cmd_buffer, cmd);
|
||||
}
|
||||
|
|
@ -1764,3 +1767,36 @@ void lvp_CmdDrawIndirectByteCountEXT(
|
|||
|
||||
cmd_buf_queue(cmd_buffer, cmd);
|
||||
}
|
||||
|
||||
void lvp_CmdSetDeviceMask(
|
||||
VkCommandBuffer commandBuffer,
|
||||
uint32_t deviceMask)
|
||||
{
|
||||
/* No-op */
|
||||
}
|
||||
|
||||
void lvp_CmdDispatchBase(
|
||||
VkCommandBuffer commandBuffer,
|
||||
uint32_t base_x,
|
||||
uint32_t base_y,
|
||||
uint32_t base_z,
|
||||
uint32_t x,
|
||||
uint32_t y,
|
||||
uint32_t z)
|
||||
{
|
||||
LVP_FROM_HANDLE(lvp_cmd_buffer, cmd_buffer, commandBuffer);
|
||||
struct lvp_cmd_buffer_entry *cmd;
|
||||
|
||||
cmd = cmd_buf_entry_alloc(cmd_buffer, LVP_CMD_DISPATCH);
|
||||
if (!cmd)
|
||||
return;
|
||||
|
||||
cmd->u.dispatch.x = x;
|
||||
cmd->u.dispatch.y = y;
|
||||
cmd->u.dispatch.z = z;
|
||||
cmd->u.dispatch.base_x = base_x;
|
||||
cmd->u.dispatch.base_y = base_y;
|
||||
cmd->u.dispatch.base_z = base_z;
|
||||
|
||||
cmd_buf_queue(cmd_buffer, cmd);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1948,6 +1948,9 @@ static void handle_dispatch(struct lvp_cmd_buffer_entry *cmd,
|
|||
state->dispatch_info.grid[0] = cmd->u.dispatch.x;
|
||||
state->dispatch_info.grid[1] = cmd->u.dispatch.y;
|
||||
state->dispatch_info.grid[2] = cmd->u.dispatch.z;
|
||||
state->dispatch_info.grid_base[0] = cmd->u.dispatch.base_x;
|
||||
state->dispatch_info.grid_base[1] = cmd->u.dispatch.base_y;
|
||||
state->dispatch_info.grid_base[2] = cmd->u.dispatch.base_z;
|
||||
state->dispatch_info.indirect = NULL;
|
||||
state->pctx->launch_grid(state->pctx, &state->dispatch_info);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -63,8 +63,8 @@ EXTENSIONS = [
|
|||
Extension('VK_KHR_dedicated_allocation', 1, True),
|
||||
Extension('VK_KHR_depth_stencil_resolve', 1, False),
|
||||
Extension('VK_KHR_descriptor_update_template', 1, True),
|
||||
Extension('VK_KHR_device_group', 1, False),
|
||||
Extension('VK_KHR_device_group_creation', 1, False),
|
||||
Extension('VK_KHR_device_group', 1, True),
|
||||
Extension('VK_KHR_device_group_creation', 1, True),
|
||||
Extension('VK_KHR_draw_indirect_count', 1, True),
|
||||
Extension('VK_KHR_driver_properties', 1, True),
|
||||
Extension('VK_KHR_external_fence', 1, False),
|
||||
|
|
|
|||
|
|
@ -510,6 +510,7 @@ lvp_shader_compile_to_ir(struct lvp_pipeline *pipeline,
|
|||
.post_depth_coverage = true,
|
||||
.transform_feedback = true,
|
||||
.geometry_streams = true,
|
||||
.device_group = true,
|
||||
},
|
||||
.ubo_addr_format = nir_address_format_32bit_index_offset,
|
||||
.ssbo_addr_format = nir_address_format_32bit_index_offset,
|
||||
|
|
|
|||
|
|
@ -756,6 +756,9 @@ struct lvp_cmd_dispatch {
|
|||
uint32_t x;
|
||||
uint32_t y;
|
||||
uint32_t z;
|
||||
uint32_t base_x;
|
||||
uint32_t base_y;
|
||||
uint32_t base_z;
|
||||
};
|
||||
|
||||
struct lvp_cmd_dispatch_indirect {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue