{"action":"created","issue":{"url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/4467","repository_url":"https://api.github.com/repos/dolphin-emu/dolphin","labels_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/4467/labels{/name}","comments_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/4467/comments","events_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/4467/events","html_url":"https://github.com/dolphin-emu/dolphin/pull/4467","id":190984395,"number":4467,"title":"VideoBackends: GPU Texture Decoding","user":{"login":"stenzek","id":11288319,"avatar_url":"https://avatars.githubusercontent.com/u/11288319?v=3","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},"labels":[{"id":221808232,"url":"https://api.github.com/repos/dolphin-emu/dolphin/labels/WIP","name":"WIP","color":"0052cc","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2016-11-22T12:17:06Z","updated_at":"2016-11-23T00:48:25Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/dolphin-emu/dolphin/pulls/4467","html_url":"https://github.com/dolphin-emu/dolphin/pull/4467","diff_url":"https://github.com/dolphin-emu/dolphin/pull/4467.diff","patch_url":"https://github.com/dolphin-emu/dolphin/pull/4467.patch"},"body":"This PR adds support for decoding textures on the GPU using either fragment shaders or compute shaders.\r\n\r\n**It is not aimed at high-end PC users,** those users will likely see very little if no benefit at all by using this option, and texture decoding is not something that happens a large number of times each frame in most games. It is aimed at those with slower CPUs, to alleviate some of the overhead by moving this work to the GPU (therefore possibly reducing some stutter) or ARM users, as there is no optimized texture decoding path for ARM.\r\n\r\nThe fragment shader path is considerably slower than the compute shader path in GL, the actual time elapsed on the GPU is quite similar though. As far as I can tell this is mostly driver overhead, I saw very similar overall performance in the two in Vulkan.\r\n\r\nCurrently there is an OpenGL implementation, Vulkan is planned (I have it in another branch, but it depends on PR 4462, so would add a large number of lines to this PR that aren't relevant).\r\n\r\nNo support for either D3D backend is planned, porting the shaders to HLSL would not be impossible, I just don't see much value in doing it (but there's no reason it couldn't be done if this is ever merged and someone else wants to do it, or even better, compile to SPIR-V and emit HLSL from that).\r\n\r\nMarked WIP because the GL code is a bit of a mess, I'd like to write it in a less-disgusting manner and without the static variables littered all over the place, and I haven't tested on GLES yet. Also probably need to look at optimizing the shaders better, need to do some profiling on slower GPUs.\n\n<!-- Reviewable:start -->\n---\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/dolphin-emu/dolphin/4467)\n<!-- Reviewable:end -->\n"},"comment":{"url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/262409485","html_url":"https://github.com/dolphin-emu/dolphin/pull/4467#issuecomment-262409485","issue_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/4467","id":262409485,"user":{"login":"JMC47","id":6598209,"avatar_url":"https://avatars.githubusercontent.com/u/6598209?v=3","gravatar_id":"","url":"https://api.github.com/users/JMC47","html_url":"https://github.com/JMC47","followers_url":"https://api.github.com/users/JMC47/followers","following_url":"https://api.github.com/users/JMC47/following{/other_user}","gists_url":"https://api.github.com/users/JMC47/gists{/gist_id}","starred_url":"https://api.github.com/users/JMC47/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JMC47/subscriptions","organizations_url":"https://api.github.com/users/JMC47/orgs","repos_url":"https://api.github.com/users/JMC47/repos","events_url":"https://api.github.com/users/JMC47/events{/privacy}","received_events_url":"https://api.github.com/users/JMC47/received_events","type":"User","site_admin":false},"created_at":"2016-11-23T00:48:25Z","updated_at":"2016-11-23T00:48:25Z","body":"Harvest Moon is still broken.  Reported it earlier before the PR but musta got forgotten.\r\n\r\n![gywee9-9](https://cloud.githubusercontent.com/assets/6598209/20547794/9c30f602-b0ec-11e6-9435-6971aa2e0c5c.png)\r\n"}}
{"actor":{"display_login":"JMC47"}}