llvmpipe: support EXT_mesh_shader
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37408>
This commit is contained in:
parent
ad04df6168
commit
1760cd5528
1 changed files with 37 additions and 0 deletions
|
|
@ -394,6 +394,43 @@ llvmpipe_init_screen_caps(struct pipe_screen *screen)
|
|||
|
||||
caps->shader_subgroup_supported_stages = BITFIELD_MASK(MESA_SHADER_MESH_STAGES);
|
||||
caps->shader_subgroup_supported_features = PIPE_SHADER_SUBGROUP_FEATURE_MASK;
|
||||
|
||||
caps->mesh_shader = true;
|
||||
|
||||
caps->mesh.max_task_work_group_total_count = 4194304;
|
||||
caps->mesh.max_mesh_work_group_total_count = 4194304;
|
||||
caps->mesh.max_mesh_work_group_invocations = 1024;
|
||||
caps->mesh.max_task_work_group_invocations = 1024;
|
||||
caps->mesh.max_task_payload_size = 16384;
|
||||
caps->mesh.max_task_shared_memory_size = 32768;
|
||||
caps->mesh.max_mesh_shared_memory_size = 28672;
|
||||
caps->mesh.max_task_payload_and_shared_memory_size = 32768;
|
||||
caps->mesh.max_mesh_payload_and_shared_memory_size = 32768;
|
||||
caps->mesh.max_mesh_output_memory_size = 32768;
|
||||
caps->mesh.max_mesh_payload_and_output_memory_size = 16384 * 28672;
|
||||
caps->mesh.max_mesh_output_vertices = 256;
|
||||
caps->mesh.max_mesh_output_primitives = 256;
|
||||
caps->mesh.max_mesh_output_components = 128;
|
||||
caps->mesh.max_mesh_output_layers = 8;
|
||||
caps->mesh.max_mesh_multiview_view_count = 0; //???
|
||||
caps->mesh.mesh_output_per_vertex_granularity = 1;
|
||||
caps->mesh.mesh_output_per_primitive_granularity = 1;
|
||||
|
||||
caps->mesh.max_preferred_task_work_group_invocations = 64;
|
||||
caps->mesh.max_preferred_mesh_work_group_invocations = 128;
|
||||
caps->mesh.mesh_prefers_local_invocation_vertex_output = true;
|
||||
caps->mesh.mesh_prefers_local_invocation_primitive_output = true;
|
||||
caps->mesh.mesh_prefers_compact_vertex_output = true;
|
||||
caps->mesh.mesh_prefers_compact_primitive_output = false;
|
||||
|
||||
for (unsigned i = 0; i < 3; i++) {
|
||||
caps->mesh.max_task_work_group_count[i] = 65536;
|
||||
caps->mesh.max_mesh_work_group_count[i] = 65536;
|
||||
caps->mesh.max_task_work_group_size[i] = 1024;
|
||||
caps->mesh.max_mesh_work_group_size[i] = 1024;
|
||||
}
|
||||
|
||||
caps->mesh.pipeline_statistic_queries = true;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue