Why index format is part of pipeline instead of setIndexBuffer call? All API use index format during set index call: https://docs.microsoft.com/en-us/windows/win32/api/d3d12/nf-d3d12-id3d12graphicscommandlist-iasetindexbuffer https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdBindIndexBuffer.html https://developer.apple.com/documentation/metal/mtlrendercommandencoder/1515520-drawindexedprimitives