anv: tracker for Mesh Shading support
Merged MRs
Mesa:
- !10600 (merged) nir, spirv: Mesh shaders (without Multiview)
- !11225 (merged) nir: Move some attributes from "cs" into common shader_info
- !11230 (merged) anv: Support workgroup memory in other shaders
- !11252 (merged) nir: Move from "per_vertex" to "arrayed" terminology
- !12951 (merged) nir/lower_io_to_vector: Allow Task/Mesh to load from outputs
- !13047 (merged) anv: Prepare Graphics Pipeline to have different variations
- !13249 (merged) intel/compiler: Rework SIMD selection for compute shaders
- !13466 (merged) nir, spirv: Mesh Shader I/O fixes
- !13629 (merged) intel/compiler: Use gl_shader_stage_uses_workgroup() helpers
- !13637 (merged) anv: Make shaders array in anv_graphics_pipeline fit Task/Mesh
- !13657 (merged) intel/genxml: Add Mesh Shading structures
- !13660 (merged) intel/blorp: Add option to emit packets that disable Mesh
- !13661 (merged) intel/compiler: Task/Mesh shader support
- !13662 (merged) anv: Implement experimental support for Mesh Shading pipeline in XeHP
- !14007 (merged) nir: Print mesh shader I/O variable names.
- !14149 (merged) nir: limit lower_clip_cull_distance_arrays input to traditional stages
- !14263 (merged) nir,spirv: ViewportMask & Multiview for Mesh Shaders
- !14274 (merged) anv: Simplify assertions related to graphics stages
- !14275 (merged) anv/blorp: Split blorp_exec into a render and compute
- !14280 (merged) intel/compiler: disable workaround not applicable to gfx >= 11
- !14291 (merged) spirv: Allow VRS with mesh shaders.
- !14788 (merged) Land reviewed intel/compiler patches from !13662 (merged)
- !14823 (merged) compiler, intel: Add gl_shader_stage_is_mesh()
- !14930 (merged) nir, spirv: Add new variable mode for task/mesh payload.
- !14979 (merged) anv: Enable requiredSubgroupSize for Task/Mesh
- !14997 (merged) intel/compiler: fix array & struct IO lowering in mesh shaders
- !15005 (merged) spirv: Create PRIMITIVE_INDICES for NV_mesh_shader on-demand.
- !15019 (merged) intel/compiler: Lower Task/Mesh I/O before SIMD specific lowering
- !15022 (merged) intel/compiler: Use nir_var_mem_task_payload
- !15160 (merged) nir: Fix handling of NV_mesh_shader PRIMITIVE_INDICES output.
- !15169 (merged) intel/compiler: ignore per-primitive attrs when calculating flat input mask
- !15206 (merged) intel/compiler: Use pass helper in brw_nir_adjust_offset_for_arrayed_indices
- !15303 (merged) Reviewed patches from !14774 (closed)
- !15340 (merged) nir: remove gl_PrimitiveID output from mesh shader when it's not used in fragment shader
- !15360 (merged) intel/compiler: Fix non-trivial designated initializer
- !15850 (merged) anv: 2 small mesh shading fixes
- !15924 (merged) intel/compiler, anv: invalidate metadata after control flow changes
- !15952 (merged) nir/gather_info: fix system_value_read for rt/mesh system values
- !16030 (merged) intel/compiler, anv: implement primitive shading rate for mesh
- !16196 (merged) intel/compiler,anv: mesh shading fixes
- !16197 (merged) anv: disable task redistribution
- !16493 (merged) Reviewed patches from !14774 (closed) !16196 (merged) !16197 (merged)
- !16665 (merged) intel/compiler: fix URB fences for TASK/MESH
- !16668 (merged) nir: add mesh intrinsics to nir_divergence_analysis
- !16720 (merged) nir: Add common task shader lowering to make the backend's job easier.
- !16811 (merged) anv: mask out not applicable state flags when setting up mesh pipeline
- !16852 (merged) intel/compiler: use nir_lower_task_shader pass
- !17000 (merged) nir,intel/compiler: vectorize task payload loads/stores
- !17063 (merged) intel/dev: fixup max_cs_workgroup_threads after hwconfig is read
- !17143 (merged) nir: lower_task_shader fixes
- !17517 (merged) nir: convert unused mesh outputs to shared memory
- !17618 (merged) nir,intel/compiler: nir_lower_task_shader updates
- !17620 (merged) intel/compiler: replace gl_Layer & gl_ViewportIndex by 0 in fs if ms doesn't write it
- !17622 (merged) anv: work around for per-prim attributes corruption
- !18075 (merged) intel/compiler: fix mesh urb write regression
- !18188 (merged) intel/compiler: Refactor URB handle logic in Mesh lowering
- !18366 (merged) spirv, nir: Add support for VK_EXT_mesh_shader
- !18371 (merged) anv: add support for VK_EXT_mesh_shader
- !18442 (merged) spirv: Allow EmitMeshTasksEXT as a terminating instruction.
- !18464 (merged) nir/lower_system_values: Add shortcut for 1D workgroups to lower_cs_local_id_to_index
- !18495 (merged) anv: fix emission of primitive replication packet for mesh stage
- !18501 (merged) intel/compiler,nir: add support for 8/16 bits task payload loads & stores
- !18504 (merged) anv: port assume_full_subgroups workaround to mesh shaders
- !18702 (merged) intel/compiler: fix shading rate in mesh shaders
- !18886 (merged) intel/compiler: fix loading of draw_id from task & mesh payload
- !18980 (merged) intel/fs: Fix src and dst types of LOAD_PAYLOAD ACP entries during copy propagation.
- !19323 (merged) anv: disable mesh in memcpy
- !19409 (merged) nir,intel/compiler: fix task payload in shared memory workaround
- !19412 (merged) anv: fix some knobs that affect mesh shading performance
- !20050 (merged) anv,intel/compiler: optimize task & mesh shader writes
- !20080 (merged) nir/lower_task_shader: fix task payload corruption when shared memory workaround is enabled
- !20279 (merged) anv: handle mesh shaders with max primitives == 0
- !20292 (merged) anv,intel/compiler: reviewed patches from !20050 (merged)
- !20334 (merged) implement Wa_14015814527 for task shaders
- !20407 (merged) intel/compiler,anv: compactify mesh shader outputs
- !20438 (merged) reviewed parts from !19947 (merged)
- !20858 (merged) intel/compiler/mesh: support longer write messages
- !20876 (merged) intel/compiler/mesh: handle const data in task & mesh programs
- !20910 (merged) intel/compiler/mesh: use U888X packed index format
- !21007 (merged) intel/compiler,anv: enable task redistribution
- !21098 (merged) intel/compiler/mesh: optimize payload and offset computations
- !21188 (merged) intel/fs: fix mesh indirect movs
- !21559 (merged) anv: halve the push constants space in mesh pipelines
- !21603 (merged) intel: Allocate mesh shader URB space before task shader
- !21787 (merged) anv: call nir_shader_gather_info early
- !22334 (merged) nir,anv,intel/compiler: optimizations for gl_WorkGroupID lowering in mesh shaders
- !22445 (merged) intel: split URB space between task and mesh proportionally to entry sizes
- !22629 (merged) anv: move nir_shader_gather_info to anv_pipeline_nir_preprocess
- !22910 (merged) anv: put EXT_mesh_shader behind an environment variable
- !24071 (merged) anv: drop support for VK_NV_mesh_shader
- !24150 (merged) Implement workarounds to make mesh shaders not kill everyone else
- !24325 (merged) intel/compiler: call brw_nir_adjust_payload from brw_postprocess_nir
Crucible:
- crucible!101 (merged) Add some tests for VK_NV_mesh_shader
- crucible!102 (merged) Add more tests for VK_NV_mesh_shader
- crucible!106 (merged) func.mesh: Add test with large array in Task Memory
- crucible!107 (merged) func.mesh: Add a task memory test with 64-bit type
- crucible!115 (merged) func.mesh: add test for per-primitive unused outputs
- crucible!119 (merged) func.mesh: rename func.mesh tests to func.mesh.nv
- crucible!120 (merged) Update Vulkan Headers to 1.3.226
- crucible!121 (merged) Port first few tests to VK_EXT_mesh_shader
- crucible!122 (merged) meson: Only compile VK_EXT_mesh_shader tests when glslang supports it
- crucible!124 (merged) util: Fix unitialized variable when checking mesh/task in simple pipeline
- crucible!126 (merged) func.mesh.ext: port remaining mesh tests to VK_EXT_mesh_shader
- crucible!128 (merged) func.mesh.ext: add tests for 8 and 16-bit task payload output
- crucible!130 (merged) func.mesh: add few more tests for mesh shading
Closed MRs
Mesa:
- !14774 (closed) anv,intel/compiler: implement more builtins for Mesh Shading pipeline (optional patch left)
- !15235 (closed) intel/compiler: Pack primitive indices by changing its type
- !15245 (closed) anv,intel/compiler: implement multiview for mesh
- !20856 (closed) intel/compiler: fix default subgroup size for compute, mesh & task stages
Crucible:
- crucible!110 (closed) func.mesh: Add tests that triggers index type optimizations
Open MRs:
Mesa:
- !21839 (closed) intel: add mesh shading memory debugging tool
- !24256 (merged) anv: don't try to access dynamic buffers from surface states
TODO:
- fix the conflict between EXT_graphics_pipeline_library and mesh shading and reenable VK_EXT_mesh_shader
- more performance fixes
Edited by Marcin Ślusarz