Add reusable functions that generate a descriptor set layout, a descriptor pool, and descriptor sets for a pipeline given a configuration for the pipeline's uniforms