OGRECave / ogre

scene-oriented, flexible 3D engine (C++, Python, C#, Java)
https://ogrecave.github.io/ogre/
MIT License
3.91k stars 964 forks source link

Replace StateCaches by explicit PSO #610

Open paroj opened 6 years ago

paroj commented 6 years ago

Pipeline state

references

paroj commented 6 years ago

PSOs still need caching: https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreatePipelineCache.html

paroj commented 6 years ago

also they are required for Metal (citing Matias):

D3D11 & GL drivers implement this for you internally, and usually they offload the cache to a secondary thread to hide the latency. They implement the caches inside DrawPrimitive calls. So Ogre that means the right place to place the PSO cache is in MetalRenderSystem::_render(const RenderOperation& op)

paroj commented 4 years ago

maybe resurrect this for D3D11: https://bitbucket.org/sinbad/ogre/pull-requests/701/direct3d11-caching-of-render-state-objects/diff