I'm currently working on a graphics engine and I wish to update the pipeline state at runtime. Creating a new pipeline for each single resource update (ie: enabling depth clamp, enabling color blend) at runtime and then re-binding everything to the command buffer takes up a considerable amount of performance.
So what I planned on doing was, to create a single pipeline and store all the attributes needed for its creation (ie: Rasterizer state, Multisampling state, Color blend state, etc..) and update those individual structs at runtime. After all we are passing in the address of the structs, not by value.
This brings me to my question, does the updates to a struct which is passed on in the pipeline creation, reflect on the actual draw call at runtime, without the need for recreating the pipeline again?
Thank you!