{"action":"created","issue":{"url":"https://api.github.com/repos/doitsujin/dxvk/issues/647","repository_url":"https://api.github.com/repos/doitsujin/dxvk","labels_url":"https://api.github.com/repos/doitsujin/dxvk/issues/647/labels{/name}","comments_url":"https://api.github.com/repos/doitsujin/dxvk/issues/647/comments","events_url":"https://api.github.com/repos/doitsujin/dxvk/issues/647/events","html_url":"https://github.com/doitsujin/dxvk/issues/647","id":361349826,"node_id":"MDU6SXNzdWUzNjEzNDk4MjY=","number":647,"title":"Pipeline cache","user":{"login":"ryao","id":1386373,"node_id":"MDQ6VXNlcjEzODYzNzM=","avatar_url":"https://avatars2.githubusercontent.com/u/1386373?v=4","gravatar_id":"","url":"https://api.github.com/users/ryao","html_url":"https://github.com/ryao","followers_url":"https://api.github.com/users/ryao/followers","following_url":"https://api.github.com/users/ryao/following{/other_user}","gists_url":"https://api.github.com/users/ryao/gists{/gist_id}","starred_url":"https://api.github.com/users/ryao/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ryao/subscriptions","organizations_url":"https://api.github.com/users/ryao/orgs","repos_url":"https://api.github.com/users/ryao/repos","events_url":"https://api.github.com/users/ryao/events{/privacy}","received_events_url":"https://api.github.com/users/ryao/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":36,"created_at":"2018-09-18T15:02:38Z","updated_at":"2018-09-23T12:34:25Z","closed_at":null,"author_association":"NONE","body":"@doitsujin I decided to make another issue to move the pipeline discussion out of #646.\r\n\r\nIt occurs to me that the pipelines produced by Vulkan cannot be cached because they are driver specific (and therefore would need to be invalidated by driver updates, provided that they are possible to cache in the first place).\r\n\r\nHowever, the shaders that games pass to DXVK that are processed to create the pipelines can be cached. If DXVK were to dump those into a SQLite database indexed by checksum (or perhaps binary name), it could look up all shaders passed to it in past sessions. If it indexed by binary name, it would be able to begin precompiling pipelines as soon as it is initialized.\r\n\r\nWe probably would want some sort of decay to delete stale data that is no longer relevant due to game updates and maybe even a second level of decay where we keep the checksum around in case it is just infrequently used (such that we could apply the ARC algorithm or something similar).\r\n\r\nThis would decouple shader cache invalidation from driver version such that driver updates would not slow things down. If the DXBC is cached, then updates and improvements to DXVK could reuse the cache.\r\n\r\nThis is just a rough idea, but I wanted to put it out there for consideration. What do you think?"},"comment":{"url":"https://api.github.com/repos/doitsujin/dxvk/issues/comments/423813331","html_url":"https://github.com/doitsujin/dxvk/issues/647#issuecomment-423813331","issue_url":"https://api.github.com/repos/doitsujin/dxvk/issues/647","id":423813331,"node_id":"MDEyOklzc3VlQ29tbWVudDQyMzgxMzMzMQ==","user":{"login":"aufkrawall","id":13510490,"node_id":"MDQ6VXNlcjEzNTEwNDkw","avatar_url":"https://avatars2.githubusercontent.com/u/13510490?v=4","gravatar_id":"","url":"https://api.github.com/users/aufkrawall","html_url":"https://github.com/aufkrawall","followers_url":"https://api.github.com/users/aufkrawall/followers","following_url":"https://api.github.com/users/aufkrawall/following{/other_user}","gists_url":"https://api.github.com/users/aufkrawall/gists{/gist_id}","starred_url":"https://api.github.com/users/aufkrawall/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aufkrawall/subscriptions","organizations_url":"https://api.github.com/users/aufkrawall/orgs","repos_url":"https://api.github.com/users/aufkrawall/repos","events_url":"https://api.github.com/users/aufkrawall/events{/privacy}","received_events_url":"https://api.github.com/users/aufkrawall/received_events","type":"User","site_admin":false},"created_at":"2018-09-23T12:34:25Z","updated_at":"2018-09-23T12:34:25Z","author_association":"NONE","body":"Got already 18MB of disk space for cached shaders in that crazy HotS game. :grin:  Well, this feature could be a game changer."}}
{"actor":{"display_login":"aufkrawall"}}