Hi! My app requires a large number (>1500) of permutations of a specific shader and therefore has to create many pipeline state objects. With precompiled binary archives, the time to create these objects on app load is not really a problem, however the memory footprint is higher than I would expect. In a frame capture, the allocated size for each pipeline state is stated as 2 KB, but the overall memory consumption of the app increases by almost 200 MB. Am I making a mistake during pipeline state creation? Or is there a technique to reduce the size? On a side note: the PSOs are only used in an indirect command buffer. I assume the answer is no, but is it allowed to deallocate the PSOs after they have been set in a command in the ICB as a workaround?
Reduce memory footprint of PSOs?
Update: Solved by disabling Metal API Validation.