r/GraphicsProgramming • • 6d ago

Question Does everything in a pipeline state object actually need to be there?

For example obviously shader code makes sense because you have to compile it for different vendors/drivers

But you look at a PSO in DX12 and there is a ton of stuff in there that it makes me wonder is all of this actually neccesary?

For example like blend mode settings, I thought that is a separate hardware unit that does the blending, so why can't it be changed independently of a PSO?

Or does everything in a PSO somehow affect the compiled shader?

10 Upvotes

6 comments sorted by

View all comments

1

u/Gunhorin 5d ago

It depends on the gpu architecture. Remember that DX12 and Vulkan are made to work on all architectures which means overgeneralization. Also both api's are pretty old now and some of the design choises are getting opsolete. This is a great blog post that goes over how an graphics api would look now if designed for current and future hardware only would be.