{"action":"created","issue":{"url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/5498","repository_url":"https://api.github.com/repos/dolphin-emu/dolphin","labels_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/5498/labels{/name}","comments_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/5498/comments","events_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/5498/events","html_url":"https://github.com/dolphin-emu/dolphin/pull/5498","id":232104910,"number":5498,"title":"Hybrid xfb","user":{"login":"iwubcode","id":15224722,"avatar_url":"https://avatars1.githubusercontent.com/u/15224722?v=4","gravatar_id":"","url":"https://api.github.com/users/iwubcode","html_url":"https://github.com/iwubcode","followers_url":"https://api.github.com/users/iwubcode/followers","following_url":"https://api.github.com/users/iwubcode/following{/other_user}","gists_url":"https://api.github.com/users/iwubcode/gists{/gist_id}","starred_url":"https://api.github.com/users/iwubcode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iwubcode/subscriptions","organizations_url":"https://api.github.com/users/iwubcode/orgs","repos_url":"https://api.github.com/users/iwubcode/repos","events_url":"https://api.github.com/users/iwubcode/events{/privacy}","received_events_url":"https://api.github.com/users/iwubcode/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":139,"created_at":"2017-05-29T22:08:35Z","updated_at":"2017-08-30T06:36:22Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/dolphin-emu/dolphin/pulls/5498","html_url":"https://github.com/dolphin-emu/dolphin/pull/5498","diff_url":"https://github.com/dolphin-emu/dolphin/pull/5498.diff","patch_url":"https://github.com/dolphin-emu/dolphin/pull/5498.patch"},"body":"The second pr based off of @phire 's original Hybrid XFB #3880 .  Leverages the AbstractTexture ( #5305 ) to treat the xfb as a texture.\r\n\r\n**What this PR does:**  It allows you to play games that require \"RealXFB\" with higher internal resolution (the actual xfb will still be native resolution)\r\n\r\nWhat's done:\r\n\r\n- Initial hybrid xfb support for Vulkan, D3D, Opengl, Software\r\n- Make texture cache always use safe hashing for XFB copies.\r\n- Initial Screenshot / Video dumping for D3D, Vulkan, Opengl, Software through VideoCommon\r\n- GUI Options\r\n- Update fifoplayer to support XFB\r\n- Improve \"Partial Texture Updates\" to fix games using 3x Anti Aliasing (and spyro)  ( fixed in #5718 and put in this PR temporarily)\r\n- Vertical scaling for PAL games\r\n  - XFB to RAM copies need to apply the scale\r\n  - XFB to Tex copies need to store, but not apply the scale.\r\n  - Partial texture updates need to apply any store scaling before display.\r\n- Remove lots of unnecessary code!\r\n- GPU texture decoding works for XFBs\r\n- Option for 'Immediate mode' XFB which can provide better latency at the cost of graphical errors (usable on both XFB2Tex or XFB2Ram)\r\n- Somehow allow Swap to detect when the XFB hasn't changed since last frame\r\n- Apply horizontal scaling\r\n  - Fixes Sonic 3D Blast\r\n  - Fixes Ty2  (though it may still be incorrect, see comment)\r\n- Update game inis (all games previously requiring real xfb or virtual xfb, now have immediate mode defaulting to off)\r\n\r\nWhat's left:\r\n\r\n- Test Auto IR (might be broken)\r\n- Merge PR dependencies\r\n- Chicken Little Ace In Action Videos\r\n\r\nFuture Enhancements:\r\n\r\n  - Find a new sane home for the \"End of frame\" stuff.\r\n  - Super Mario Strikers (Loading screens are all green, works in XFB2Ram)\r\n  - Screenshots do not account for post-processing"},"comment":{"url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/325896443","html_url":"https://github.com/dolphin-emu/dolphin/pull/5498#issuecomment-325896443","issue_url":"https://api.github.com/repos/dolphin-emu/dolphin/issues/5498","id":325896443,"user":{"login":"iwubcode","id":15224722,"avatar_url":"https://avatars1.githubusercontent.com/u/15224722?v=4","gravatar_id":"","url":"https://api.github.com/users/iwubcode","html_url":"https://github.com/iwubcode","followers_url":"https://api.github.com/users/iwubcode/followers","following_url":"https://api.github.com/users/iwubcode/following{/other_user}","gists_url":"https://api.github.com/users/iwubcode/gists{/gist_id}","starred_url":"https://api.github.com/users/iwubcode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iwubcode/subscriptions","organizations_url":"https://api.github.com/users/iwubcode/orgs","repos_url":"https://api.github.com/users/iwubcode/repos","events_url":"https://api.github.com/users/iwubcode/events{/privacy}","received_events_url":"https://api.github.com/users/iwubcode/received_events","type":"User","site_admin":false},"created_at":"2017-08-30T06:36:22Z","updated_at":"2017-08-30T06:36:22Z","author_association":"CONTRIBUTOR","body":"I took some of @phire 's code from his old Hybrid PR ( #2051 ) and implemented \"partial\" XFB writes.  This should fix some green transitions and might fix Mario Strikers.\r\n\r\nBasically, if the user isn't using XFB2Ram, we take a color ('key' color) and write it to system memory (previously we were using 0 or green in YUV).  If we can't find the XFB in the texture cache, we decode the system memory and find the 'key' color.  We can then treat that special color as transparent!\r\n\r\nOriginally, this caused issues with EA games and FMVs.  If everyone could test games with FMVs, that would be really helpful!"}}
{"actor":{"display_login":"iwubcode"}}