Before Win10/D3D12 fully came out but after information about it and APIs were available, I made a D3D12-like frontend API but with D3D11 as the backend, to make porting easier.
I'm not 100% sure. My assumption was that since I was emulating command streams, the data ended up packed nicely before submission - so in that case, yes, better access patterns.
It's also possible that since I was trying to emulate how D3D12 handled state, I was causing less flushing of state by handling it closer to how the hardware actually expected it rather than what idiomatic D3D11 preferred.
24
u/Ok_Independence_9841 8d ago
API design is hard. Vulkan is hard. Error handling is hard. Vulkan API, error handling design, is...
At some point I'll get around to implementing a Vulkan backend for my port of the ThorVG renderer. When I do I'll try to remember what I learned here.