{"action":"created","issue":{"url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/3366","repository_url":"https://api.github.com/repos/dolphin-emu/dolphin","labels_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/3366/labels{/name}","comments_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/3366/comments","events_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/3366/events","html_url":"https://github.com/dolphin-emu/dolphin/pull/3366","id":123136522,"number":3366,"title":"[Testing required] VideoBackends: New post-processing system","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":[{"url":"https://api.github.com/repos/dolphin-emu/dolphin/labels/needs%20testing","name":"needs testing","color":"fbca04"},{"url":"https://api.github.com/repos/dolphin-emu/dolphin/labels/WIP","name":"WIP","color":"0052cc"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":46,"created_at":"2015-12-20T06:23:09Z","updated_at":"2016-03-16T10:21:12Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/dolphin-emu/dolphin/pulls/3366","html_url":"https://github.com/dolphin-emu/dolphin/pull/3366","diff_url":"https://github.com/dolphin-emu/dolphin/pull/3366.diff","patch_url":"https://github.com/dolphin-emu/dolphin/pull/3366.patch"},"body":"Originally started out as just a adding depth buffer access, but to do useful effects we need a more advanced system. I branched the old code off at https://github.com/stenzek/dolphin/tree/postprocess-depth-access-only\r\n\r\nDone:\r\n - multipass\r\n - copying/scaling\r\n - ability to pull in external textures (e.g. random/noise)\r\n - trigger post-processing at specific points (perspective switch, efb copy)\r\n - separate post and resize filters (also used for anaglyph)\r\n - chaining multiple effects/shaders\r\n - new config format\r\n\r\nNote about XFB: Using post-processing shaders that require the depth buffer will not work consistently with XFB, expect flickering. This is due to not storing a copy of the depth buffer when copying EFB->XFB, and even if we did, it could still potentially be different, if the game modified the XFB contents.\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/dolphin-emu/dolphin/3366)\n<!-- Reviewable:end -->\n"},"comment":{"url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/197249378","html_url":"https://github.com/dolphin-emu/dolphin/pull/3366#issuecomment-197249378","issue_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/3366","id":197249378,"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},"created_at":"2016-03-16T10:21:12Z","updated_at":"2016-03-16T10:21:12Z","body":"Shaders also don't specify a version tag, as degasus said, it's added by the GL backend, which at the moment maxes out at GLSL 4.0. This change would be out of scope of the PR (and affect the shaders used by normal game rendering). Please stop making feature requests in this thread, no more functionality is going to be added here, only cleanups and fixes for what is already implemented.\r\n\r\nThe shader language here is kinda messy to begin with, later on it may be worth using only GLSL and generating SPIR-V->HLSL, when we have a Vulkan backend. I think this would be a much cleaner solution than the macro mess we have currently. Would break some existing shaders, but it's probably worth it.\r\n\r\nI don't care much for porting existing shaders, if someone else wants to do this, go ahead, but it's not part of what'll be included in the Dolphin releases (also including shaders such as these raises the question of the authors and licenses of this code)."}}