Advertisement

Why vertex buffer in D3D12 doesn’t need to have a descriptor heap.

Started by March 12, 2018 06:10 PM
2 comments, last by Hodgman 6 years, 10 months ago

I know vertex buffer is just another GPU resource represented by ID3D12Resource, but why is it said that vertex buffer don’t need a descriptor heap??

Other resources like depth/stencil resource, swap chain’s buffer need to have descriptor heaps. How does these resources differ from vertex buffer.

The way that vertex attributes are mapped into shaders is fundamentally different to other shader resources, in pretty much every graphics API. How much of that is actual differences in how vertex data is actually processed by the GPU, versus how much is just legacy APIs influencing design decisions, I couldn't say.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

Advertisement

Yeah it's because different GPUs implement the input assembler in very different ways, so they've left that part up to the driver instead of the application. 

There's some other oddities, such as that RTVs/DSVs don't need to be in a shader-visible heap, while SRVs/etc do. Obviously the drivers are doing different things with RTVs internally too. 

This topic is closed to new replies.

Advertisement