API:
drawIndirect
drawIndexedIndirect
dispath
dispatchMesh
GLSL:
gl_VertexIndex and gl_InstanceIndex
- Just works on Metal (afaik)
- fist-instance has only 90% coverage (and some 2023 devices do not support it)
- Just doesn't work in DX
gl_NumWorkGroups
- Should work on metal (?)
- Just works on Vulkan
- Just doesn't work in DX - can be emulated with push-descriptor
Alignment:
offset must be multiple of 4 in Vulkan
offset must be multiple of 4 in DX12 (https://learn.microsoft.com/en-us/windows/win32/api/d3d12/nf-d3d12-id3d12graphicscommandlist-executeindirect#remarks)
offset in Metal "check for offset alignment requirements for buffers in device and constant address space." - not documented(?!)
API:
drawIndirectdrawIndexedIndirectdispathdispatchMeshGLSL:
gl_VertexIndexandgl_InstanceIndexgl_NumWorkGroupsAlignment:
offsetmust be multiple of 4 in Vulkanoffsetmust be multiple of 4 in DX12 (https://learn.microsoft.com/en-us/windows/win32/api/d3d12/nf-d3d12-id3d12graphicscommandlist-executeindirect#remarks)offsetin Metal "check for offset alignment requirements for buffers in device and constant address space." - not documented(?!)