{"action":"created","issue":{"url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/7420","repository_url":"https://api.github.com/repos/dolphin-emu/dolphin","labels_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/7420/labels{/name}","comments_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/7420/comments","events_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/7420/events","html_url":"https://github.com/dolphin-emu/dolphin/pull/7420","id":361069285,"node_id":"MDExOlB1bGxSZXF1ZXN0MjE2MTM0MDY3","number":7420,"title":"Refactor vulkan loading","user":{"login":"isilence","id":6933480,"node_id":"MDQ6VXNlcjY5MzM0ODA=","avatar_url":"https://avatars2.githubusercontent.com/u/6933480?v=4","gravatar_id":"","url":"https://api.github.com/users/isilence","html_url":"https://github.com/isilence","followers_url":"https://api.github.com/users/isilence/followers","following_url":"https://api.github.com/users/isilence/following{/other_user}","gists_url":"https://api.github.com/users/isilence/gists{/gist_id}","starred_url":"https://api.github.com/users/isilence/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/isilence/subscriptions","organizations_url":"https://api.github.com/users/isilence/orgs","repos_url":"https://api.github.com/users/isilence/repos","events_url":"https://api.github.com/users/isilence/events{/privacy}","received_events_url":"https://api.github.com/users/isilence/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2018-09-17T22:32:21Z","updated_at":"2018-09-28T10:07:27Z","closed_at":"2018-09-28T08:41:18Z","author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/dolphin-emu/dolphin/pulls/7420","html_url":"https://github.com/dolphin-emu/dolphin/pull/7420","diff_url":"https://github.com/dolphin-emu/dolphin/pull/7420.diff","patch_url":"https://github.com/dolphin-emu/dolphin/pull/7420.patch"},"body":""},"comment":{"url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/425388841","html_url":"https://github.com/dolphin-emu/dolphin/pull/7420#issuecomment-425388841","issue_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/7420","id":425388841,"node_id":"MDEyOklzc3VlQ29tbWVudDQyNTM4ODg0MQ==","user":{"login":"stenzek","id":11288319,"node_id":"MDQ6VXNlcjExMjg4MzE5","avatar_url":"https://avatars2.githubusercontent.com/u/11288319?v=4","gravatar_id":"","url":"https://api.github.com/users/stenzek","html_url":"https://github.com/stenzek","followers_url":"https://api.github.com/users/stenzek/followers","following_url":"https://api.github.com/users/stenzek/following{/other_user}","gists_url":"https://api.github.com/users/stenzek/gists{/gist_id}","starred_url":"https://api.github.com/users/stenzek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stenzek/subscriptions","organizations_url":"https://api.github.com/users/stenzek/orgs","repos_url":"https://api.github.com/users/stenzek/repos","events_url":"https://api.github.com/users/stenzek/events{/privacy}","received_events_url":"https://api.github.com/users/stenzek/received_events","type":"User","site_admin":false},"created_at":"2018-09-28T10:07:27Z","updated_at":"2018-09-28T10:07:27Z","author_association":"CONTRIBUTOR","body":"> I see, I tested that for disabled EFB copies, trying to keep that in mind and think about something better than splitting it into 2 paths.\r\n\r\nYes, disabling EFB copies will make things significantly faster, both in render pass/batching, and fewer command buffer splits. But again, there is no way to predict what the command stream will contain, so we can't create multi-pass render passes with copies inbetween, when we don't know if/how many copies are required.\r\n\r\nThere's already two paths for EFB copies, the \"disable EFB copies to texture\" skips the readback from GPU textures -> emulated RAM, at the cost of breaking several games. Many of these aren't well-behaved (i.e. they don't insert tokens into the command stream and wait until the console GPU has finished the copy, they just go ahead and read the RAM), so we can't even defer the host CPU stall (or, well, at least not in a deterministic manner anyway).\r\n\r\nI'm not sure there is much to be gained in optimizing the EFB-to-texture path due to the first aforementioned issue.\r\n\r\n> About `std::unique`, I think It wouldn't be much difference, because of refcounting and as we still need either a d-tor function, a lambda with bulky type deduction, or `std::function` (overkill). I would rather wrap it into class, which could be reused across the project (e.g. a part of d3d loading).\r\n\r\nI like that idea. It could also be reused for runtime linking to libraries such as ffmpeg."}}
{"actor":{"display_login":"stenzek"}}