Status for Dolphin Central

Recent events

2017-10-23T00:29:45.528271	{'what': 'So does Dolphin :P', 'who': 'HdkR', 'type': 'irc_message', 'modes': {'o'}, 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:29:22.479088	{'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'lineno': 657, 'level': 'INFO', 'args': '()', 'msg': 'Starting new HTTPS connection (1): www.googleapis.com', 'source': 'logging', 'type': 'internal_log'}
2017-10-23T00:29:22.475523	{'gh_type': 'pull_request_review', 'raw': {'action': 'submitted', 'sender': {'gists_url': 'https://api.github.com/users/MerryMage/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/8682882?v=4', 'url': 'https://api.github.com/users/MerryMage', 'gravatar_id': '', 'html_url': 'https://github.com/MerryMage', 'id': 8682882, 'repos_url': 'https://api.github.com/users/MerryMage/repos', 'events_url': 'https://api.github.com/users/MerryMage/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/MerryMage/subscriptions', 'starred_url': 'https://api.github.com/users/MerryMage/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/MerryMage/following{/other_user}', 'login': 'MerryMage', 'received_events_url': 'https://api.github.com/users/MerryMage/received_events', 'followers_url': 'https://api.github.com/users/MerryMage/followers', 'organizations_url': 'https://api.github.com/users/MerryMage/orgs', 'type': 'User'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3767, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T20:17:49Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T21:43:57Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 138, 'private': False, 'forks_count': 953, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349184, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 138, 'stargazers_count': 3767, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3767, 'forks': 953, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}, 'review': {'commit_id': '6abd1c8c9941eac9d1c118a4a04baeec841b9c5f', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6130#pullrequestreview-71050973'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6130'}}, 'user': {'gists_url': 'https://api.github.com/users/MerryMage/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/8682882?v=4', 'url': 'https://api.github.com/users/MerryMage', 'gravatar_id': '', 'html_url': 'https://github.com/MerryMage', 'id': 8682882, 'repos_url': 'https://api.github.com/users/MerryMage/repos', 'events_url': 'https://api.github.com/users/MerryMage/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/MerryMage/subscriptions', 'starred_url': 'https://api.github.com/users/MerryMage/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/MerryMage/following{/other_user}', 'login': 'MerryMage', 'received_events_url': 'https://api.github.com/users/MerryMage/received_events', 'followers_url': 'https://api.github.com/users/MerryMage/followers', 'organizations_url': 'https://api.github.com/users/MerryMage/orgs', 'type': 'User'}, 'state': 'approved', 'submitted_at': '2017-10-23T00:29:20Z', 'body': '', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6130#pullrequestreview-71050973', 'id': 71050973, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6130', 'author_association': 'MEMBER'}, 'pull_request': {'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6130/comments', 'locked': False, 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'merge_commit_sha': '0ff269a57250b282fbbdcd583fd30da6ac787a6e', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6130', 'requested_reviewers': [], 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6130', 'id': 147961620, 'milestone': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6130/comments', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6130', 'assignees': [], 'created_at': '2017-10-21T20:36:22Z', 'body': 'There should be no reason to call `Mix()` and keep a buffer around. I followed the logic, and Mix() does this:\r\n- delegates to its MixerFifo members\r\n- which advance m_indexR\r\n- making `PushSamples()` a quick return if the buffer overflows\r\n- and making `AvailableSamples()` return 0\r\n- which is only used by Mix()', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/6abd1c8c9941eac9d1c118a4a04baeec841b9c5f', 'base': {'user': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'ref': 'master', 'sha': '774fca4d019b788089f4a0d456e9c0ee12d9e214', 'label': 'dolphin-emu:master', 'repo': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3767, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T20:17:49Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T21:43:57Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 138, 'private': False, 'forks_count': 953, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349184, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 138, 'stargazers_count': 3767, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3767, 'forks': 953, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}}, 'merged_at': None, 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'number': 6130, 'assignee': None, 'updated_at': '2017-10-23T00:29:20Z', 'state': 'open', 'head': {'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'ref': 'emptynullsoundstream', 'sha': '6abd1c8c9941eac9d1c118a4a04baeec841b9c5f', 'label': 'ligfx:emptynullsoundstream', 'repo': {'compare_url': 'https://api.github.com/repos/ligfx/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/ligfx/dolphin/releases{/id}', 'created_at': '2016-08-08T16:31:32Z', 'labels_url': 'https://api.github.com/repos/ligfx/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/ligfx/dolphin/statuses/{sha}', 'git_url': 'git://github.com/ligfx/dolphin.git', 'html_url': 'https://github.com/ligfx/dolphin', 'subscribers_url': 'https://api.github.com/repos/ligfx/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/ligfx/dolphin/hooks', 'homepage': 'https://github.com/dolphin-emu/dolphin', 'watchers_count': 0, 'svn_url': 'https://github.com/ligfx/dolphin', 'description': 'Personal development branch of dolphin-emu/dolphin.', 'full_name': 'ligfx/dolphin', 'branches_url': 'https://api.github.com/repos/ligfx/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/ligfx/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/ligfx/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:ligfx/dolphin.git', 'pulls_url': 'https://api.github.com/repos/ligfx/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/ligfx/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/ligfx/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T20:17:47Z', 'assignees_url': 'https://api.github.com/repos/ligfx/dolphin/assignees{/user}', 'updated_at': '2017-05-17T22:06:54Z', 'fork': True, 'tags_url': 'https://api.github.com/repos/ligfx/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/ligfx/dolphin/keys{/key_id}', 'default_branch': 'ligfx', 'open_issues_count': 0, 'private': False, 'forks_count': 0, 'git_refs_url': 'https://api.github.com/repos/ligfx/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/ligfx/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/ligfx/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/ligfx/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/ligfx/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/ligfx/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/ligfx/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/ligfx/dolphin/teams', 'has_projects': True, 'issues_url': 'https://api.github.com/repos/ligfx/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/ligfx/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/ligfx/dolphin', 'languages_url': 'https://api.github.com/repos/ligfx/dolphin/languages', 'id': 65220721, 'archived': False, 'merges_url': 'https://api.github.com/repos/ligfx/dolphin/merges', 'clone_url': 'https://github.com/ligfx/dolphin.git', 'comments_url': 'https://api.github.com/repos/ligfx/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/ligfx/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/ligfx/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/ligfx/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/ligfx/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 311856, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/ligfx/dolphin/git/trees{/sha}', 'open_issues': 0, 'stargazers_count': 0, 'milestones_url': 'https://api.github.com/repos/ligfx/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ligfx/dolphin/notifications{?since,all,participating}', 'watchers': 0, 'forks': 0, 'issue_events_url': 'https://api.github.com/repos/ligfx/dolphin/issues/events{/number}', 'has_issues': False}}, 'author_association': 'CONTRIBUTOR', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6130.diff', '_links': {'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/6abd1c8c9941eac9d1c118a4a04baeec841b9c5f'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6130/comments'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6130'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6130'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6130/commits'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6130/comments'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6130'}}, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6130/commits', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6130.patch', 'title': "NullSoundStream: don't call Mixer->Mix"}}, 'type': 'raw_gh_hook', 'source': 'webserver'}
2017-10-23T00:29:22.475424	{'pr_title': "NullSoundStream: don't call Mixer->Mix", 'action': 'submitted', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6130#pullrequestreview-71050973', 'comments': [], 'state': 'approved', 'source': 'ghhookparser', 'author': 'MerryMage', 'pr_id': 6130, 'repo': 'dolphin-emu/dolphin', 'type': 'gh_pull_request_review'}
2017-10-23T00:29:22.008129	{'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'lineno': 657, 'level': 'INFO', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com', 'source': 'logging', 'type': 'internal_log'}
2017-10-23T00:29:07.316889	{'what': 'I need to learn better testing', 'who': 'sepuluu', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:28:50.387165	{'what': 'HdkR, yes that seems like something I would be interested in', 'who': 'sepuluu', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:26:47.079484	{'what': 'I\'ve been digging through the makers "database" and looking for missing INI files for games I\'ve ripped', 'who': 't27duck', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:26:28.001565	{'what': 'true', 'who': 't27duck', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:26:22.572968	{'what': 't27duck, I would argue that there are things you can do in dolphin without any wii or gc game', 'who': 'mathieui', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:26:10.182233	{'what': "Improving unit tests is a good way to learn more things about the CPU side of things if you're curious about that side", 'who': 'HdkR', 'type': 'irc_message', 'modes': {'o'}, 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:26:03.590817	{'what': 'sepuluu, find something you want to do and hack away', 'who': 'mathieui', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:25:53.039256	{'what': 'Step one should probably be getting a cheap used Wii?', 'who': 't27duck', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:25:18.324040	{'what': 'Even doing work on the JIT can have small things in it :P', 'who': 'HdkR', 'type': 'irc_message', 'modes': {'o'}, 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:24:44.997900	{'what': 'I think I should start small', 'who': 'sepuluu', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:24:32.015494	{'what': 'Emulation covers such a broad spectrum that it is hard to just point someone at a single area to start with', 'who': 'HdkR', 'type': 'irc_message', 'modes': {'o'}, 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:24:11.700420	{'what': 'If you care about UI development or core features, doing RE things', 'who': 'HdkR', 'type': 'irc_message', 'modes': {'o'}, 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:23:52.772159	{'what': "It's really searching for something that would give you the most gratification", 'who': 'HdkR', 'type': 'irc_message', 'modes': {'o'}, 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:23:46.681700	{'what': 'that gives me hope HdkR :)', 'who': 'sepuluu', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:23:25.492700	{'what': 'I am a fan of this software and would like to contribute.  What would be the best way to begin? I am looking at bug tracker now', 'who': 'sepuluu', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:23:11.147316	{'what': 'Really depends on how much determination you have', 'who': 'HdkR', 'type': 'irc_message', 'modes': {'o'}, 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:22:53.392134	{'what': 'I started working on Dolphin with only basic C++ knowledge', 'who': 'HdkR', 'type': 'irc_message', 'modes': {'o'}, 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:22:14.836383	{'what': 'how experienced of a programmer must one be in order to contribute to dolphin?  I am looking for an open source project to work on, however I am currently learning C++ (have taken undergrad computer sciences courses in java) ', 'who': 'sepuluu', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:20:44.692680	{'what': 'hello', 'who': 'sepuluu', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-22T22:22:08.914409	{'what': 'Armada, link for the bt dongle on aliexpress?', 'who': 'skid_au', 'type': 'irc_message', 'modes': {'o'}, 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}

Recent 'build_status' events

2017-10-22T20:20:37.150720	{'service': 'pr-win-dbg-x64', 'pr': 6134, 'success': True, 'url': 'https://buildbot.dolphin-emu.org/#builders/7/builds/841', 'source': 'buildbot', 'shortrev': '15aabb', 'description': 'Build succeeded on builder pr-win-dbg-x64', 'pending': False, 'repo': 'dolphin-emu/dolphin', 'hash': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'type': 'build_status'}
2017-10-22T20:19:32.289651	{'service': 'pr-win-dbg-x64', 'pr': 6134, 'success': False, 'url': 'https://buildbot.dolphin-emu.org/#builders/7/builds/841', 'source': 'buildbot', 'shortrev': '15aabb', 'description': 'Auto build in progress on builder pr-win-dbg-x64', 'pending': True, 'repo': 'dolphin-emu/dolphin', 'hash': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'type': 'build_status'}
2017-10-22T20:19:31.718423	{'service': 'pr-win-x64', 'pr': 6134, 'success': True, 'url': 'https://buildbot.dolphin-emu.org/#builders/20/builds/844', 'source': 'buildbot', 'shortrev': '15aabb', 'description': 'Build succeeded on builder pr-win-x64', 'pending': False, 'repo': 'dolphin-emu/dolphin', 'hash': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'type': 'build_status'}
2017-10-22T20:19:23.668036	{'service': 'pr-android', 'pr': 6134, 'success': True, 'url': 'https://buildbot.dolphin-emu.org/#builders/8/builds/848', 'source': 'buildbot', 'shortrev': '15aabb', 'description': 'Build succeeded on builder pr-android', 'pending': False, 'repo': 'dolphin-emu/dolphin', 'hash': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'type': 'build_status'}
2017-10-22T20:19:22.741381	{'service': 'pr-deb-dbg-x64', 'pr': 6134, 'success': True, 'url': 'https://buildbot.dolphin-emu.org/#builders/21/builds/840', 'source': 'buildbot', 'shortrev': '15aabb', 'description': 'Build succeeded on builder pr-deb-dbg-x64', 'pending': False, 'repo': 'dolphin-emu/dolphin', 'hash': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'type': 'build_status'}
2017-10-22T20:18:42.158659	{'service': 'pr-osx-x64', 'pr': 6134, 'success': True, 'url': 'https://buildbot.dolphin-emu.org/#builders/33/builds/839', 'source': 'buildbot', 'shortrev': '15aabb', 'description': 'Build succeeded on builder pr-osx-x64', 'pending': False, 'repo': 'dolphin-emu/dolphin', 'hash': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'type': 'build_status'}
2017-10-22T20:18:39.282333	{'service': 'pr-deb-dbg-x64', 'pr': 6134, 'success': False, 'url': 'https://buildbot.dolphin-emu.org/#builders/21/builds/840', 'source': 'buildbot', 'shortrev': '15aabb', 'description': 'Auto build in progress on builder pr-deb-dbg-x64', 'pending': True, 'repo': 'dolphin-emu/dolphin', 'hash': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'type': 'build_status'}
2017-10-22T20:18:36.774029	{'service': 'pr-deb-x64', 'pr': 6134, 'success': True, 'url': 'https://buildbot.dolphin-emu.org/#builders/6/builds/841', 'source': 'buildbot', 'shortrev': '15aabb', 'description': 'Build succeeded on builder pr-deb-x64', 'pending': False, 'repo': 'dolphin-emu/dolphin', 'hash': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'type': 'build_status'}
2017-10-22T20:18:19.796113	{'service': 'pr-android', 'pr': 6134, 'success': False, 'url': 'https://buildbot.dolphin-emu.org/#builders/8/builds/848', 'source': 'buildbot', 'shortrev': '15aabb', 'description': 'Auto build in progress on builder pr-android', 'pending': True, 'repo': 'dolphin-emu/dolphin', 'hash': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'type': 'build_status'}
2017-10-22T20:18:19.329676	{'service': 'pr-ubu-x64', 'pr': 6134, 'success': True, 'url': 'https://buildbot.dolphin-emu.org/#builders/2/builds/850', 'source': 'buildbot', 'shortrev': '15aabb', 'description': 'Build succeeded on builder pr-ubu-x64', 'pending': False, 'repo': 'dolphin-emu/dolphin', 'hash': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'type': 'build_status'}
2017-10-22T20:18:17.629537	{'service': 'pr-freebsd-x64', 'pr': 6134, 'success': True, 'url': 'https://buildbot.dolphin-emu.org/#builders/34/builds/841', 'source': 'buildbot', 'shortrev': '15aabb', 'description': 'Build succeeded on builder pr-freebsd-x64', 'pending': False, 'repo': 'dolphin-emu/dolphin', 'hash': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'type': 'build_status'}
2017-10-22T20:18:07.093830	{'service': 'pr-ubu-x64', 'pr': 6134, 'success': False, 'url': 'https://buildbot.dolphin-emu.org/#builders/2/builds/850', 'source': 'buildbot', 'shortrev': '15aabb', 'description': 'Auto build in progress on builder pr-ubu-x64', 'pending': True, 'repo': 'dolphin-emu/dolphin', 'hash': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'type': 'build_status'}
2017-10-22T20:18:06.496805	{'service': 'lint', 'pr': 6134, 'success': True, 'url': 'https://buildbot.dolphin-emu.org/#builders/22/builds/840', 'source': 'buildbot', 'shortrev': '15aabb', 'description': 'Build succeeded on builder lint', 'pending': False, 'repo': 'dolphin-emu/dolphin', 'hash': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'type': 'build_status'}
2017-10-22T20:18:02.921341	{'service': 'pr-deb-x64', 'pr': 6134, 'success': False, 'url': 'https://buildbot.dolphin-emu.org/#builders/6/builds/841', 'source': 'buildbot', 'shortrev': '15aabb', 'description': 'Auto build in progress on builder pr-deb-x64', 'pending': True, 'repo': 'dolphin-emu/dolphin', 'hash': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'type': 'build_status'}
2017-10-22T20:18:02.324451	{'service': 'pr-win-x64', 'pr': 6134, 'success': False, 'url': 'https://buildbot.dolphin-emu.org/#builders/20/builds/844', 'source': 'buildbot', 'shortrev': '15aabb', 'description': 'Auto build in progress on builder pr-win-x64', 'pending': True, 'repo': 'dolphin-emu/dolphin', 'hash': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'type': 'build_status'}
2017-10-22T20:18:01.742264	{'service': 'pr-freebsd-x64', 'pr': 6134, 'success': False, 'url': 'https://buildbot.dolphin-emu.org/#builders/34/builds/841', 'source': 'buildbot', 'shortrev': '15aabb', 'description': 'Auto build in progress on builder pr-freebsd-x64', 'pending': True, 'repo': 'dolphin-emu/dolphin', 'hash': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'type': 'build_status'}
2017-10-22T20:18:01.254992	{'service': 'lint', 'pr': 6134, 'success': False, 'url': 'https://buildbot.dolphin-emu.org/#builders/22/builds/840', 'source': 'buildbot', 'shortrev': '15aabb', 'description': 'Auto build in progress on builder lint', 'pending': True, 'repo': 'dolphin-emu/dolphin', 'hash': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'type': 'build_status'}
2017-10-22T20:18:00.749657	{'service': 'pr-osx-x64', 'pr': 6134, 'success': False, 'url': 'https://buildbot.dolphin-emu.org/#builders/33/builds/839', 'source': 'buildbot', 'shortrev': '15aabb', 'description': 'Auto build in progress on builder pr-osx-x64', 'pending': True, 'repo': 'dolphin-emu/dolphin', 'hash': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'type': 'build_status'}
2017-10-22T20:17:50.339180	{'service': 'default', 'pr': 6134, 'success': True, 'url': '', 'source': 'prbuilder', 'shortrev': '15aabb', 'description': 'Very basic checks passed, handed off to Buildbot.', 'pending': False, 'repo': 'dolphin-emu/dolphin', 'hash': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'type': 'build_status'}
2017-10-22T19:57:20.257787	{'service': 'default', 'pr': 6117, 'success': False, 'url': '', 'source': 'prbuilder', 'shortrev': '160320', 'description': 'PR not built because NickDriscoll is not auto-trusted.', 'pending': False, 'repo': 'dolphin-emu/dolphin', 'hash': '16032050a91276e64f5007e7b6c674be4a44335b', 'type': 'build_status'}
2017-10-22T18:22:39.789361	{'service': 'pr-win-dbg-x64', 'pr': 6134, 'success': True, 'url': 'https://buildbot.dolphin-emu.org/#builders/7/builds/840', 'source': 'buildbot', 'shortrev': 'ab57d4', 'description': 'Build succeeded on builder pr-win-dbg-x64', 'pending': False, 'repo': 'dolphin-emu/dolphin', 'hash': 'ab57d4c15fe819989b583487f9e1674aac76b458', 'type': 'build_status'}
2017-10-22T18:20:21.063859	{'service': 'pr-win-dbg-x64', 'pr': 6134, 'success': False, 'url': 'https://buildbot.dolphin-emu.org/#builders/7/builds/840', 'source': 'buildbot', 'shortrev': 'ab57d4', 'description': 'Auto build in progress on builder pr-win-dbg-x64', 'pending': True, 'repo': 'dolphin-emu/dolphin', 'hash': 'ab57d4c15fe819989b583487f9e1674aac76b458', 'type': 'build_status'}
2017-10-22T18:20:20.397457	{'service': 'pr-win-x64', 'pr': 6134, 'success': True, 'url': 'https://buildbot.dolphin-emu.org/#builders/20/builds/843', 'source': 'buildbot', 'shortrev': 'ab57d4', 'description': 'Build succeeded on builder pr-win-x64', 'pending': False, 'repo': 'dolphin-emu/dolphin', 'hash': 'ab57d4c15fe819989b583487f9e1674aac76b458', 'type': 'build_status'}
2017-10-22T18:20:09.161381	{'service': 'pr-android', 'pr': 6134, 'success': True, 'url': 'https://buildbot.dolphin-emu.org/#builders/8/builds/847', 'source': 'buildbot', 'shortrev': 'ab57d4', 'description': 'Build succeeded on builder pr-android', 'pending': False, 'repo': 'dolphin-emu/dolphin', 'hash': 'ab57d4c15fe819989b583487f9e1674aac76b458', 'type': 'build_status'}
2017-10-22T18:19:52.694857	{'service': 'pr-deb-dbg-x64', 'pr': 6134, 'success': True, 'url': 'https://buildbot.dolphin-emu.org/#builders/21/builds/839', 'source': 'buildbot', 'shortrev': 'ab57d4', 'description': 'Build succeeded on builder pr-deb-dbg-x64', 'pending': False, 'repo': 'dolphin-emu/dolphin', 'hash': 'ab57d4c15fe819989b583487f9e1674aac76b458', 'type': 'build_status'}

Recent 'gh_commit_comment' events

2017-10-18T11:19:17.417287	{'author': 'guillaumeguerin', 'source': 'ghhookparser', 'url': 'https://github.com/dolphin-emu/dolphin/commit/c2d5fe3ec90dc46166ca31b7a7c608733c52ce34#commitcomment-25050698', 'repo': 'dolphin-emu/dolphin', 'type': 'gh_commit_comment', 'commit': 'c2d5fe3ec90dc46166ca31b7a7c608733c52ce34'}
2017-09-04T17:19:57.003926	{'author': 'sardaukar', 'source': 'ghhookparser', 'url': 'https://github.com/dolphin-emu/dolphin/commit/2e8bc0fa07d9b1b1a7eee6d14d135de829b14711#commitcomment-24075593', 'repo': 'dolphin-emu/dolphin', 'type': 'gh_commit_comment', 'commit': '2e8bc0fa07d9b1b1a7eee6d14d135de829b14711'}
2017-08-07T17:49:45.998345	{'author': 'ligfx', 'source': 'ghhookparser', 'url': 'https://github.com/dolphin-emu/dolphin/commit/2abf13ae3676be45494cf354d6453bfce340c454#commitcomment-23519246', 'repo': 'dolphin-emu/dolphin', 'type': 'gh_commit_comment', 'commit': '2abf13ae3676be45494cf354d6453bfce340c454'}
2017-08-07T16:46:10.795624	{'author': 'ligfx', 'source': 'ghhookparser', 'url': 'https://github.com/dolphin-emu/dolphin/commit/2abf13ae3676be45494cf354d6453bfce340c454#commitcomment-23518233', 'repo': 'dolphin-emu/dolphin', 'type': 'gh_commit_comment', 'commit': '2abf13ae3676be45494cf354d6453bfce340c454'}
2017-08-07T16:43:25.182100	{'author': 'ligfx', 'source': 'ghhookparser', 'url': 'https://github.com/dolphin-emu/dolphin/commit/2abf13ae3676be45494cf354d6453bfce340c454#commitcomment-23518194', 'repo': 'dolphin-emu/dolphin', 'type': 'gh_commit_comment', 'commit': '2abf13ae3676be45494cf354d6453bfce340c454'}
2017-08-07T15:45:39.313312	{'author': 'crackwitz', 'source': 'ghhookparser', 'url': 'https://github.com/dolphin-emu/dolphin/commit/2abf13ae3676be45494cf354d6453bfce340c454#commitcomment-23517211', 'repo': 'dolphin-emu/dolphin', 'type': 'gh_commit_comment', 'commit': '2abf13ae3676be45494cf354d6453bfce340c454'}
2017-08-07T15:42:29.244070	{'author': 'crackwitz', 'source': 'ghhookparser', 'url': 'https://github.com/dolphin-emu/dolphin/commit/2abf13ae3676be45494cf354d6453bfce340c454#commitcomment-23517147', 'repo': 'dolphin-emu/dolphin', 'type': 'gh_commit_comment', 'commit': '2abf13ae3676be45494cf354d6453bfce340c454'}
2017-07-30T02:46:20.119382	{'author': 'theboy181', 'source': 'ghhookparser', 'url': 'https://github.com/dolphin-emu/dolphin/commit/a32fe86eef4fb345faacfe29e29a2cca64968d06#commitcomment-23375153', 'repo': 'dolphin-emu/dolphin', 'type': 'gh_commit_comment', 'commit': 'a32fe86eef4fb345faacfe29e29a2cca64968d06'}
2017-07-20T05:32:19.512592	{'author': 'leoetlino', 'source': 'ghhookparser', 'url': 'https://github.com/dolphin-emu/dolphin/commit/db1c534b3ecddf23ad57b03c80b74de55466b062#commitcomment-23195967', 'repo': 'dolphin-emu/dolphin', 'type': 'gh_commit_comment', 'commit': 'db1c534b3ecddf23ad57b03c80b74de55466b062'}

Recent 'gh_issue_comment' events

2017-10-22T16:07:13.446374	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6111#issuecomment-338488791', 'id': 6111, 'source': 'ghhookparser', 'author': 'psennermann', 'body': "Everyone's on holiday? :-)", 'safe_author': False, 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'sender': {'gists_url': 'https://api.github.com/users/psennermann/gists{/gist_id}', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6342467?v=4', 'url': 'https://api.github.com/users/psennermann', 'gravatar_id': '', 'html_url': 'https://github.com/psennermann', 'id': 6342467, 'repos_url': 'https://api.github.com/users/psennermann/repos', 'events_url': 'https://api.github.com/users/psennermann/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/psennermann/subscriptions', 'starred_url': 'https://api.github.com/users/psennermann/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/psennermann/following{/other_user}', 'login': 'psennermann', 'received_events_url': 'https://api.github.com/users/psennermann/received_events', 'followers_url': 'https://api.github.com/users/psennermann/followers', 'organizations_url': 'https://api.github.com/users/psennermann/orgs', 'type': 'User'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6111', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6111/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6111', 'milestone': None, 'locked': False, 'id': 264226506, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6111/comments', 'assignees': [], 'created_at': '2017-10-10T13:24:22Z', 'body': "Provides a speedup in shader compilation time compared to going through glslang.\r\n\r\nWe had this previously enabled but had to revert it because dynamic sampler indexing was broken somewhere between 384.xx and 385.xx. It is now fixed in 387.xx.\r\n\r\nShould let us close these issues. I'm still not sure why the glslang path breaks on some systems but not others, but using the extension doesn't seem to have this problem.\r\n\r\nhttps://bugs.dolphin-emu.org/issues/10527\r\nhttps://bugs.dolphin-emu.org/issues/10301\r\nhttps://bugs.dolphin-emu.org/issues/10224\r\nhttps://bugs.dolphin-emu.org/issues/10535", 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6111/events', 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'url': 'https://api.github.com/users/stenzek', 'gravatar_id': '', 'html_url': 'https://github.com/stenzek', 'id': 11288319, 'repos_url': 'https://api.github.com/users/stenzek/repos', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'login': 'stenzek', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'followers_url': 'https://api.github.com/users/stenzek/followers', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'type': 'User'}, 'number': 6111, 'assignee': None, 'comments': 2, 'updated_at': '2017-10-22T16:07:12Z', 'state': 'open', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6111.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6111', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6111.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6111'}, 'author_association': 'CONTRIBUTOR', 'labels': [], 'title': 'Vulkan: Use VK_NV_glsl extension where available, and skip glslang'}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6111', 'created_at': '2017-10-22T16:07:12Z', 'user': {'gists_url': 'https://api.github.com/users/psennermann/gists{/gist_id}', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6342467?v=4', 'url': 'https://api.github.com/users/psennermann', 'gravatar_id': '', 'html_url': 'https://github.com/psennermann', 'id': 6342467, 'repos_url': 'https://api.github.com/users/psennermann/repos', 'events_url': 'https://api.github.com/users/psennermann/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/psennermann/subscriptions', 'starred_url': 'https://api.github.com/users/psennermann/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/psennermann/following{/other_user}', 'login': 'psennermann', 'received_events_url': 'https://api.github.com/users/psennermann/received_events', 'followers_url': 'https://api.github.com/users/psennermann/followers', 'organizations_url': 'https://api.github.com/users/psennermann/orgs', 'type': 'User'}, 'updated_at': '2017-10-22T16:07:12Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338488791', 'body': "Everyone's on holiday? :-)", 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6111#issuecomment-338488791', 'id': 338488791, 'author_association': 'NONE'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3767, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T15:40:00Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T14:49:25Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 138, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349184, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 138, 'stargazers_count': 3767, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3767, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}}, 'type': 'gh_issue_comment', 'title': 'Vulkan: Use VK_NV_glsl extension where available, and skip glslang'}
2017-10-22T14:42:17.151716	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6124#issuecomment-338482704', 'id': 6124, 'source': 'ghhookparser', 'author': 'leoetlino', 'body': 'Whoops, missed the fact that FramebufferManager _depends_ on StateTracker... Sorry about the regression :/', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'sender': {'gists_url': 'https://api.github.com/users/leoetlino/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4209061?v=4', 'url': 'https://api.github.com/users/leoetlino', 'gravatar_id': '', 'html_url': 'https://github.com/leoetlino', 'id': 4209061, 'repos_url': 'https://api.github.com/users/leoetlino/repos', 'events_url': 'https://api.github.com/users/leoetlino/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/leoetlino/subscriptions', 'starred_url': 'https://api.github.com/users/leoetlino/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/leoetlino/following{/other_user}', 'login': 'leoetlino', 'received_events_url': 'https://api.github.com/users/leoetlino/received_events', 'followers_url': 'https://api.github.com/users/leoetlino/followers', 'organizations_url': 'https://api.github.com/users/leoetlino/orgs', 'type': 'User'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6124', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6124/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6124', 'milestone': None, 'locked': False, 'id': 266470573, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6124/comments', 'assignees': [], 'created_at': '2017-10-18T12:14:38Z', 'body': 'Regression from PR #6100 \r\n\r\nAlso swaps the initialization order to StateTracker -> FramebufferManager, to match the reverse of FramebufferManager->StateTracker at shutdown.', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6124/events', 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'url': 'https://api.github.com/users/stenzek', 'gravatar_id': '', 'html_url': 'https://github.com/stenzek', 'id': 11288319, 'repos_url': 'https://api.github.com/users/stenzek/repos', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'login': 'stenzek', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'followers_url': 'https://api.github.com/users/stenzek/followers', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'type': 'User'}, 'number': 6124, 'assignee': None, 'comments': 0, 'updated_at': '2017-10-22T14:42:16Z', 'state': 'open', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6124.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6124', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6124.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6124'}, 'author_association': 'CONTRIBUTOR', 'labels': [], 'title': 'Vulkan: Fix crash on shutdown with Virtual XFB enabled'}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6124', 'created_at': '2017-10-22T14:42:16Z', 'user': {'gists_url': 'https://api.github.com/users/leoetlino/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4209061?v=4', 'url': 'https://api.github.com/users/leoetlino', 'gravatar_id': '', 'html_url': 'https://github.com/leoetlino', 'id': 4209061, 'repos_url': 'https://api.github.com/users/leoetlino/repos', 'events_url': 'https://api.github.com/users/leoetlino/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/leoetlino/subscriptions', 'starred_url': 'https://api.github.com/users/leoetlino/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/leoetlino/following{/other_user}', 'login': 'leoetlino', 'received_events_url': 'https://api.github.com/users/leoetlino/received_events', 'followers_url': 'https://api.github.com/users/leoetlino/followers', 'organizations_url': 'https://api.github.com/users/leoetlino/orgs', 'type': 'User'}, 'updated_at': '2017-10-22T14:42:16Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338482704', 'body': 'Whoops, missed the fact that FramebufferManager _depends_ on StateTracker... Sorry about the regression :/', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6124#issuecomment-338482704', 'id': 338482704, 'author_association': 'MEMBER'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3766, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T13:41:24Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T14:07:04Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 139, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349180, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 139, 'stargazers_count': 3766, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3766, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}}, 'type': 'gh_issue_comment', 'title': 'Vulkan: Fix crash on shutdown with Virtual XFB enabled'}
2017-10-22T09:33:21.516370	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#issuecomment-338464097', 'id': 6118, 'source': 'ghhookparser', 'author': 'JMC47', 'body': '@dolphin-emu-bot rebuild', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'sender': {'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6598209?v=4', 'url': 'https://api.github.com/users/JMC47', 'gravatar_id': '', 'html_url': 'https://github.com/JMC47', 'id': 6598209, 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'login': 'JMC47', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'type': 'User'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6118', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118', 'milestone': None, 'locked': False, 'id': 265624046, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118/comments', 'assignees': [], 'created_at': '2017-10-16T01:35:10Z', 'body': "Super Mario Galaxy renders fog and various other effects like lava and water by tinting higher mipmap levels.\r\nThis is a neat trick and all, but it means that by letting the host GPU handle mipmaps at resolutions higher than the wii could output (and especially by activating anisotropic filtering), the effect breaks down because the mipmaps get pushed much farther down from the camera than originally intended. In fact they almost disappear!\r\n\r\nBefore (6x IR):\r\n\r\n![00000000-3](https://user-images.githubusercontent.com/553214/31591619-402b7a76-b1d6-11e7-84ae-d3486e12f5d1.png)\r\n\r\nNote how the background star, lava and the reflections in the Starbits ice things are broken.\r\n\r\nWith the hack enabled (still 6x IR):\r\n![00000000-2](https://user-images.githubusercontent.com/553214/31591634-6fd44668-b1d6-11e7-9910-7ff3b765dae1.png)\r\n\r\nSo to fix this I did a bunch of things:\r\n- Added a checkbox in Graphics/Hacks. I added it as an Hack because the downside of this fix is that with this enabled lower LODs show unnecessarily closer! In any game that doesn't use LOD tricks, this causes blurrier textures (although more accurate to the original!)\r\nThis option is auto-disabled at 1x IR.\r\n- When the option is on, instead of using the native texture read functions, all shaders (normal and uber) go through a `texture_read` function. `texture_read` selects the LOD level by hand so that it can scale the ddx/ddy by the IR scale and get an approximation of the original values on real consoles. This is not super precise, I guess, along borders (where the gradients change quickly) but overall it seems to work pretty well! \r\nNote that the new function is also slower, because it has to compute the levels by hand! I couldn't see any real slowdown when playing on my computer, though.\r\n- When the option is on, it completely disables Anisotropic Filtering as well. Besides the fact that `textureLod` ignores it, Anisotropic is another effect that greatly pushes LODs out so you don't want to use it either.\r\n- Enabled that option by default in Super Mario Galaxy 1 & 2, because I think it makes no sense to play them at higher IR with broken graphics. Most textures don't seem to have more than 1 mipmaps anyway, except the ones used this way. weird.\r\n- Fixed a typo :D\r\n\r\nLet me know what you think!\r\n\r\n", 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118/events', 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/Tomcc/gists{/gist_id}', 'avatar_url': 'https://avatars3.githubusercontent.com/u/553214?v=4', 'url': 'https://api.github.com/users/Tomcc', 'gravatar_id': '', 'html_url': 'https://github.com/Tomcc', 'id': 553214, 'repos_url': 'https://api.github.com/users/Tomcc/repos', 'events_url': 'https://api.github.com/users/Tomcc/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/Tomcc/subscriptions', 'starred_url': 'https://api.github.com/users/Tomcc/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/Tomcc/following{/other_user}', 'login': 'Tomcc', 'received_events_url': 'https://api.github.com/users/Tomcc/received_events', 'followers_url': 'https://api.github.com/users/Tomcc/followers', 'organizations_url': 'https://api.github.com/users/Tomcc/orgs', 'type': 'User'}, 'number': 6118, 'assignee': None, 'comments': 73, 'updated_at': '2017-10-22T09:33:20Z', 'state': 'open', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6118.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6118', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6118.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118'}, 'author_association': 'NONE', 'labels': [], 'title': 'Resolution independent mipmaps (high IR Super Mario Galaxy Fix)'}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118', 'created_at': '2017-10-22T09:33:20Z', 'user': {'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6598209?v=4', 'url': 'https://api.github.com/users/JMC47', 'gravatar_id': '', 'html_url': 'https://github.com/JMC47', 'id': 6598209, 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'login': 'JMC47', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'type': 'User'}, 'updated_at': '2017-10-22T09:33:20Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338464097', 'body': '@dolphin-emu-bot rebuild', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6118#issuecomment-338464097', 'id': 338464097, 'author_association': 'CONTRIBUTOR'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3764, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T06:56:14Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T03:32:41Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 142, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349160, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 142, 'stargazers_count': 3764, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3764, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}}, 'type': 'gh_issue_comment', 'title': 'Resolution independent mipmaps (high IR Super Mario Galaxy Fix)'}
2017-10-22T09:03:36.900511	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6094#issuecomment-338462376', 'id': 6094, 'source': 'ghhookparser', 'author': 'Bombastisch', 'body': "what's the state of this PR?", 'safe_author': False, 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'sender': {'gists_url': 'https://api.github.com/users/Bombastisch/gists{/gist_id}', 'avatar_url': 'https://avatars3.githubusercontent.com/u/28686186?v=4', 'url': 'https://api.github.com/users/Bombastisch', 'gravatar_id': '', 'html_url': 'https://github.com/Bombastisch', 'id': 28686186, 'repos_url': 'https://api.github.com/users/Bombastisch/repos', 'events_url': 'https://api.github.com/users/Bombastisch/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/Bombastisch/subscriptions', 'starred_url': 'https://api.github.com/users/Bombastisch/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/Bombastisch/following{/other_user}', 'login': 'Bombastisch', 'received_events_url': 'https://api.github.com/users/Bombastisch/received_events', 'followers_url': 'https://api.github.com/users/Bombastisch/followers', 'organizations_url': 'https://api.github.com/users/Bombastisch/orgs', 'type': 'User'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6094', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6094/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6094', 'milestone': None, 'locked': False, 'id': 261940159, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6094/comments', 'assignees': [], 'created_at': '2017-10-01T19:35:10Z', 'body': 'This removes the hack that enables directly booting from WADs\r\nwithout installing them first for the following reasons:\r\n\r\n1. It makes the NAND content handling much more complicated than what\r\n   it should be and makes future changes like permissions or booting\r\n   NAND titles without a WAD more annoying to implement.\r\n\r\n   Because of this hack, we needed an extra level of abstraction\r\n   (NANDContent*) which has to read tons of things from the NAND, even\r\n   though most of the time it\'s useless. This in turn forces us to have\r\n   caching, which is known to break titles and requires manual cache\r\n   invalidations. Annoying and error prone.\r\n\r\n2. It prevents the WAD boot code from easily doing the right thing. With this\r\n   change, we can simply reuse the existing launch code, and ask IOS\r\n   to launch the title from the NAND.\r\n\r\n3. The hack did not work that well since it did not cover a lot of ES\r\n   commands. And it works even less since the ES accuracy fixes.\r\n   This results in Dolphin returning inconsistent results: a\r\n   lot of the ES "DI" commands will just fail because the active title\r\n   is not installed on the NAND. uid.sys is not changed, etc.\r\n\r\n   And I\'m not even talking about FS stuff -- where this would still\r\n   totally fail, unless we add even more unnecessary hacks.\r\n\r\n   This is not just theoretical -- the system menu and the Wii Shop are\r\n   known to behave strangely because the hack damages the NAND\r\n   structure, and we\'ve already had several users report issues.\r\n\r\nThis PR makes it so WADs are always installed prior to launching, and removes any code that was only there because of the hack.\r\n\r\nFixes:\r\n* https://bugs.dolphin-emu.org/issues/10485\r\n* https://bugs.dolphin-emu.org/issues/10264\r\n* may or may not affect https://bugs.dolphin-emu.org/issues/10128\r\n* error 204058 in the Wii Shop\r\n* System Menu crashes in the Data Management screen\r\n* some Priiloader installs not working', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6094/events', 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/leoetlino/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4209061?v=4', 'url': 'https://api.github.com/users/leoetlino', 'gravatar_id': '', 'html_url': 'https://github.com/leoetlino', 'id': 4209061, 'repos_url': 'https://api.github.com/users/leoetlino/repos', 'events_url': 'https://api.github.com/users/leoetlino/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/leoetlino/subscriptions', 'starred_url': 'https://api.github.com/users/leoetlino/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/leoetlino/following{/other_user}', 'login': 'leoetlino', 'received_events_url': 'https://api.github.com/users/leoetlino/received_events', 'followers_url': 'https://api.github.com/users/leoetlino/followers', 'organizations_url': 'https://api.github.com/users/leoetlino/orgs', 'type': 'User'}, 'number': 6094, 'assignee': None, 'comments': 3, 'updated_at': '2017-10-22T09:03:36Z', 'state': 'open', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6094.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6094', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6094.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6094'}, 'author_association': 'MEMBER', 'labels': [], 'title': 'Drop the direct WAD launch hack'}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6094', 'created_at': '2017-10-22T09:03:36Z', 'user': {'gists_url': 'https://api.github.com/users/Bombastisch/gists{/gist_id}', 'avatar_url': 'https://avatars3.githubusercontent.com/u/28686186?v=4', 'url': 'https://api.github.com/users/Bombastisch', 'gravatar_id': '', 'html_url': 'https://github.com/Bombastisch', 'id': 28686186, 'repos_url': 'https://api.github.com/users/Bombastisch/repos', 'events_url': 'https://api.github.com/users/Bombastisch/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/Bombastisch/subscriptions', 'starred_url': 'https://api.github.com/users/Bombastisch/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/Bombastisch/following{/other_user}', 'login': 'Bombastisch', 'received_events_url': 'https://api.github.com/users/Bombastisch/received_events', 'followers_url': 'https://api.github.com/users/Bombastisch/followers', 'organizations_url': 'https://api.github.com/users/Bombastisch/orgs', 'type': 'User'}, 'updated_at': '2017-10-22T09:03:36Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338462376', 'body': "what's the state of this PR?", 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6094#issuecomment-338462376', 'id': 338462376, 'author_association': 'NONE'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3764, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T06:56:14Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T03:32:41Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 142, 'private': False, 'forks_count': 952, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349160, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 142, 'stargazers_count': 3764, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3764, 'forks': 952, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}}, 'type': 'gh_issue_comment', 'title': 'Drop the direct WAD launch hack'}
2017-10-22T05:59:14.446520	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6128#issuecomment-338454012', 'id': 6128, 'source': 'ghhookparser', 'author': 'stenzek', 'body': '> I also tried to keep complexity to a minimum. If you ask for a texture readback, you get it, you don\'t need to have specified that in the configuration. There\'s likely some trade-offs for that approach but it works well for our current use case (screenshot/video capture).\r\n\r\nIt\'s a config field because we can\'t use a "shared" readback texture, since there may be multiple readbacks in-flight at any point in time.\r\n\r\n> I\'m sorry to be repetitive on this but like we\'ve discussed on IRC it just pains me we have to rely on a kernel behavior when we are in complete control of the entire emulated system. It just feels like there should be another way but I do understand the complexity. It\'s definitely an interesting idea and I am looking forward to what you can do with it.\r\n\r\nIf you can think of another way to implement something like this without a large performance impact, feel free to suggest it. There\'s definitely downsides to this approach (mainly around the 4K granularity), but I can\'t think of any other method which won\'t have a performance impact, and works with fastmem.', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'sender': {'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'url': 'https://api.github.com/users/stenzek', 'gravatar_id': '', 'html_url': 'https://github.com/stenzek', 'id': 11288319, 'repos_url': 'https://api.github.com/users/stenzek/repos', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'login': 'stenzek', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'followers_url': 'https://api.github.com/users/stenzek/followers', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'type': 'User'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128', 'milestone': None, 'locked': False, 'id': 267388678, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/comments', 'assignees': [], 'created_at': '2017-10-21T15:13:37Z', 'body': 'This PR is a huge work-in-progress, implementing guest memory page locking. I\'ve had this around for a while, but it\'s at the point where it\'s working in at least a few games, so it\'s worth getting comments, ideas for optimizations, etc. There\'s also a lot of debugging code left in which has to be removed.\r\n\r\nThere\'s also a few commits that aren\'t directly related from my other PRs to simplify the Vulkan implementation, it\'s likely they will be merged before this is finished.\r\n\r\nThe idea is nothing new, it\'s been floating around in IRC discussions for ages, but as far as I\'m aware nobody has implemented it to this level yet.\r\n\r\n**The problem:**\r\nCurrently, if "EFB Copies To Texture Only" is checked, we don\'t populate the guest memory where the copy is stored, instead zeroing it out. This leads to breakage in games which read this memory on the CPU, which is often used for object detection, visual effects, etc.\r\n\r\nIf this option is disabled, we perform the readback from the host\'s GPU to the guest RAM. This means the CPU has to wait until the GPU has finished rendering, introducing a synchronization point, stalling the CPU. This means large drops in FPS, depending on how many copies are happening in each frame. \r\n\r\nIt\'s possible the guest won\'t touch this RAM at all, and it is just using it for the GPU! Which means we stalled for nothing.\r\n\r\n**The solution:**\r\nIn this PR, we are essentially creating "Lazy EFB Copies". Instead of zeroing out the memory, we change the protection on the pages that back this memory to PROT_NONE. Therefore, if the guest does read the memory after the copy, we will get a page fault, and can perform the readback. If it doesn\'t read it, we can skip the readback. Well, we defer it until we know the GPU is finished rendering, and copy it then instead.\r\n\r\nUnfortunately, we can only do this at a page granularity, which means potentially up to 4KB at either end of the copy bounds will also be locked. If the game touches this region, we still still fault and have to do the readback, even though the actual copy may not have been touched. This is likely where the performance won\'t be as good as EFB2Tex, and we can\'t get rid of the option entirely.\r\n\r\nWe can use this for other things, like hashless texture caching too. Instead of changing to PROT_NONE, we can change to PROT_READ, which means if the game modifies the memory backing these textures, we will fault then, and can force a re-hash/invalidate the cache entry. If we never fault, we know the texture hasn\'t changed, and therefore can skip hashing it entirely!\r\n\r\n**State:**\r\nDon\'t expect huge performance boosts across the board yet. Some games are faster, others not so much, and may be slower than master with EFB2RAM on, due to the extra page fault overhead. Particularly around those which place copies adjacent in memory, there is still some optimization to do.\r\n\r\nCurrently, it\'s only implemented in Vulkan, and dual core is not supported yet. This will come later. The easiest way to support DC will be via the AsyncRequests class, and then we can apply it on any thread.\r\n\r\n- [x] Base page locking support in Memmap (is this the best place to put it?)\r\n- [ ] Implement support for faulting from any thread, and executing callbacks on the GPU thread (Dual Core, AsyncRequests)\r\n- [x] Deferred EFB copies in texture cache base\r\n- [ ] Abstract texture readback on D3D\r\n- [ ] Deferring EFB copies on D3D\r\n- [ ] Abstract texture readback on D3D\r\n- [ ] Deferring EFB copies on OpenGL\r\n- [x] Abstract texture readback on Vulkan\r\n- [x] Deferring EFB copies on Vulkan\r\n- [x] Hashless texture cache (currently disabled by default)\r\n- [ ] Locking for paletted textures in texture cache\r\n- [ ] Make things generally faster!\r\n', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/events', 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'url': 'https://api.github.com/users/stenzek', 'gravatar_id': '', 'html_url': 'https://github.com/stenzek', 'id': 11288319, 'repos_url': 'https://api.github.com/users/stenzek/repos', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'login': 'stenzek', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'followers_url': 'https://api.github.com/users/stenzek/followers', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'type': 'User'}, 'number': 6128, 'assignee': None, 'comments': 6, 'updated_at': '2017-10-22T05:59:13Z', 'state': 'open', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6128.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6128.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6128'}, 'author_association': 'CONTRIBUTOR', 'labels': [{'color': 'fad8c7', 'name': 'RFC', 'id': 221809816, 'default': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/RFC'}, {'color': '0052cc', 'name': 'WIP', 'id': 221808232, 'default': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/WIP'}], 'title': 'Guest Memory Locking'}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128', 'created_at': '2017-10-22T05:59:13Z', 'user': {'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'url': 'https://api.github.com/users/stenzek', 'gravatar_id': '', 'html_url': 'https://github.com/stenzek', 'id': 11288319, 'repos_url': 'https://api.github.com/users/stenzek/repos', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'login': 'stenzek', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'followers_url': 'https://api.github.com/users/stenzek/followers', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'type': 'User'}, 'updated_at': '2017-10-22T05:59:13Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338454012', 'body': '> I also tried to keep complexity to a minimum. If you ask for a texture readback, you get it, you don\'t need to have specified that in the configuration. There\'s likely some trade-offs for that approach but it works well for our current use case (screenshot/video capture).\r\n\r\nIt\'s a config field because we can\'t use a "shared" readback texture, since there may be multiple readbacks in-flight at any point in time.\r\n\r\n> I\'m sorry to be repetitive on this but like we\'ve discussed on IRC it just pains me we have to rely on a kernel behavior when we are in complete control of the entire emulated system. It just feels like there should be another way but I do understand the complexity. It\'s definitely an interesting idea and I am looking forward to what you can do with it.\r\n\r\nIf you can think of another way to implement something like this without a large performance impact, feel free to suggest it. There\'s definitely downsides to this approach (mainly around the 4K granularity), but I can\'t think of any other method which won\'t have a performance impact, and works with fastmem.', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128#issuecomment-338454012', 'id': 338454012, 'author_association': 'CONTRIBUTOR'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3764, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T05:29:45Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T03:32:41Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 143, 'private': False, 'forks_count': 952, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349153, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 143, 'stargazers_count': 3764, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3764, 'forks': 952, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}}, 'type': 'gh_issue_comment', 'title': 'Guest Memory Locking'}
2017-10-22T05:29:54.060497	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6135#issuecomment-338452812', 'id': 6135, 'source': 'ghhookparser', 'author': 'ligfx', 'body': 'Closed in favor of #6136 ', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'sender': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6135', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6135/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6135', 'milestone': None, 'locked': False, 'id': 267437168, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6135/comments', 'assignees': [], 'created_at': '2017-10-22T05:22:10Z', 'body': "I don't know what this does, but it fixes https://bugs.dolphin-emu.org/issues/10599 and I'd like to get some eyes on it.", 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6135/events', 'closed_at': '2017-10-22T05:29:53Z', 'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'number': 6135, 'assignee': None, 'comments': 1, 'updated_at': '2017-10-22T05:29:53Z', 'state': 'closed', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6135.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6135', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6135.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6135'}, 'author_association': 'CONTRIBUTOR', 'labels': [], 'title': "(rfc) TextureCache: alloc 32MB palette buffer even when GPU texture decoding isn't supported"}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6135', 'created_at': '2017-10-22T05:29:53Z', 'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'updated_at': '2017-10-22T05:29:53Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338452812', 'body': 'Closed in favor of #6136 ', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6135#issuecomment-338452812', 'id': 338452812, 'author_association': 'CONTRIBUTOR'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3764, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T05:29:45Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T03:32:41Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 143, 'private': False, 'forks_count': 952, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349153, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 143, 'stargazers_count': 3764, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3764, 'forks': 952, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}}, 'type': 'gh_issue_comment', 'title': "(rfc) TextureCache: alloc 32MB palette buffer even when GPU texture decoding isn't supported"}
2017-10-22T05:22:25.770603	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6135#issuecomment-338452544', 'id': 6135, 'source': 'ghhookparser', 'author': 'ligfx', 'body': '@stenzek ', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'sender': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6135', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6135/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6135', 'milestone': None, 'locked': False, 'id': 267437168, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6135/comments', 'assignees': [], 'created_at': '2017-10-22T05:22:10Z', 'body': "I don't know what this does, but it fixes https://bugs.dolphin-emu.org/issues/10599 and I'd like to get some eyes on it.", 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6135/events', 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'number': 6135, 'assignee': None, 'comments': 0, 'updated_at': '2017-10-22T05:22:25Z', 'state': 'open', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6135.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6135', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6135.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6135'}, 'author_association': 'CONTRIBUTOR', 'labels': [], 'title': "(rfc) TextureCache: alloc 32MB palette buffer even when GPU texture decoding isn't supported"}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6135', 'created_at': '2017-10-22T05:22:25Z', 'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'updated_at': '2017-10-22T05:22:25Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338452544', 'body': '@stenzek ', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6135#issuecomment-338452544', 'id': 338452544, 'author_association': 'CONTRIBUTOR'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3764, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T05:22:11Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T03:32:41Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 143, 'private': False, 'forks_count': 952, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349153, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 143, 'stargazers_count': 3764, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3764, 'forks': 952, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}}, 'type': 'gh_issue_comment', 'title': "(rfc) TextureCache: alloc 32MB palette buffer even when GPU texture decoding isn't supported"}
2017-10-22T05:00:39.778866	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6130#issuecomment-338451731', 'id': 6130, 'source': 'ghhookparser', 'author': 'ligfx', 'body': '@riking yep, the relevant code is in MixerFifo::PushSamples:\r\n\r\n```c++\r\nvoid Mixer::MixerFifo::PushSamples(const short* samples, unsigned int num_samples)\r\n{\r\n  u32 indexW = m_indexW.load();\r\n  if (num_samples * 2 + ((indexW - m_indexR.load()) & INDEX_MASK) >= MAX_SAMPLES * 2)\r\n    return;\r\n}\r\n```\r\n\r\nWhen it would overflow, it fails fast, silently, and without notifying the caller.', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'sender': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6130', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6130/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6130', 'milestone': None, 'locked': False, 'id': 267412255, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6130/comments', 'assignees': [], 'created_at': '2017-10-21T20:36:22Z', 'body': 'There should be no reason to call `Mix()` and keep a buffer around. I followed the logic, and Mix() does this:\r\n- delegates to its MixerFifo members\r\n- which advance m_indexR\r\n- making `PushSamples()` a quick return if the buffer overflows\r\n- and making `AvailableSamples()` return 0\r\n- which is only used by Mix()', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6130/events', 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'number': 6130, 'assignee': None, 'comments': 1, 'updated_at': '2017-10-22T05:00:38Z', 'state': 'open', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6130.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6130', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6130.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6130'}, 'author_association': 'CONTRIBUTOR', 'labels': [], 'title': "NullSoundStream: don't call Mixer->Mix"}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6130', 'created_at': '2017-10-22T05:00:38Z', 'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'updated_at': '2017-10-22T05:00:38Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338451731', 'body': '@riking yep, the relevant code is in MixerFifo::PushSamples:\r\n\r\n```c++\r\nvoid Mixer::MixerFifo::PushSamples(const short* samples, unsigned int num_samples)\r\n{\r\n  u32 indexW = m_indexW.load();\r\n  if (num_samples * 2 + ((indexW - m_indexR.load()) & INDEX_MASK) >= MAX_SAMPLES * 2)\r\n    return;\r\n}\r\n```\r\n\r\nWhen it would overflow, it fails fast, silently, and without notifying the caller.', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6130#issuecomment-338451731', 'id': 338451731, 'author_association': 'CONTRIBUTOR'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3764, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T04:21:12Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T03:32:41Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 142, 'private': False, 'forks_count': 952, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349153, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 142, 'stargazers_count': 3764, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3764, 'forks': 952, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}}, 'type': 'gh_issue_comment', 'title': "NullSoundStream: don't call Mixer->Mix"}
2017-10-22T04:57:15.707094	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6130#issuecomment-338451594', 'id': 6130, 'source': 'ghhookparser', 'author': 'riking', 'body': 'If samples are stored in a circular buffer, never updating the read index will cause future writes to fail or block.', 'safe_author': False, 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'sender': {'gists_url': 'https://api.github.com/users/riking/gists{/gist_id}', 'avatar_url': 'https://avatars0.githubusercontent.com/u/627891?v=4', 'url': 'https://api.github.com/users/riking', 'gravatar_id': '', 'html_url': 'https://github.com/riking', 'id': 627891, 'repos_url': 'https://api.github.com/users/riking/repos', 'events_url': 'https://api.github.com/users/riking/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/riking/subscriptions', 'starred_url': 'https://api.github.com/users/riking/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/riking/following{/other_user}', 'login': 'riking', 'received_events_url': 'https://api.github.com/users/riking/received_events', 'followers_url': 'https://api.github.com/users/riking/followers', 'organizations_url': 'https://api.github.com/users/riking/orgs', 'type': 'User'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6130', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6130/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6130', 'milestone': None, 'locked': False, 'id': 267412255, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6130/comments', 'assignees': [], 'created_at': '2017-10-21T20:36:22Z', 'body': 'There should be no reason to call `Mix()` and keep a buffer around. I followed the logic, and Mix() does this:\r\n- delegates to its MixerFifo members\r\n- which advance m_indexR\r\n- making `PushSamples()` a quick return if the buffer overflows\r\n- and making `AvailableSamples()` return 0\r\n- which is only used by Mix()', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6130/events', 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'number': 6130, 'assignee': None, 'comments': 0, 'updated_at': '2017-10-22T04:57:14Z', 'state': 'open', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6130.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6130', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6130.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6130'}, 'author_association': 'CONTRIBUTOR', 'labels': [], 'title': "NullSoundStream: don't call Mixer->Mix"}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6130', 'created_at': '2017-10-22T04:57:14Z', 'user': {'gists_url': 'https://api.github.com/users/riking/gists{/gist_id}', 'avatar_url': 'https://avatars0.githubusercontent.com/u/627891?v=4', 'url': 'https://api.github.com/users/riking', 'gravatar_id': '', 'html_url': 'https://github.com/riking', 'id': 627891, 'repos_url': 'https://api.github.com/users/riking/repos', 'events_url': 'https://api.github.com/users/riking/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/riking/subscriptions', 'starred_url': 'https://api.github.com/users/riking/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/riking/following{/other_user}', 'login': 'riking', 'received_events_url': 'https://api.github.com/users/riking/received_events', 'followers_url': 'https://api.github.com/users/riking/followers', 'organizations_url': 'https://api.github.com/users/riking/orgs', 'type': 'User'}, 'updated_at': '2017-10-22T04:57:14Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338451594', 'body': 'If samples are stored in a circular buffer, never updating the read index will cause future writes to fail or block.', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6130#issuecomment-338451594', 'id': 338451594, 'author_association': 'CONTRIBUTOR'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3764, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T04:21:12Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T03:32:41Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 142, 'private': False, 'forks_count': 952, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349153, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 142, 'stargazers_count': 3764, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3764, 'forks': 952, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}}, 'type': 'gh_issue_comment', 'title': "NullSoundStream: don't call Mixer->Mix"}
2017-10-22T04:53:46.349419	{'action': 'edited', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6128#issuecomment-338450166', 'id': 6128, 'source': 'ghhookparser', 'author': 'iwubcode', 'body': "@stenzek - yeah, it definitely is different.  I copy the texture and call the underlying `Map` in one step.  However, the callee can wait to do whatever they want with the data (ex: `memcpy`) as long as the texture is still available and neither the `Unmap` or a new `Map` call hasn't occurred on the AbstractTexture.\r\n\r\nI also tried to keep complexity to a minimum.  If you ask for a texture readback, you get it, you don't need to have specified that in the configuration.  There's likely some trade-offs for that approach but it works well for our current use case (screenshot/video capture).\r\n\r\n---\r\n\r\nI'm sorry to be repetitive on this but like we've discussed on IRC it just pains me we have to rely on a kernel behavior when we are in complete control of the entire emulated system.  It just feels like there should be another way but I do understand the complexity.  It's definitely an interesting idea and I am looking forward to what you can do with it.", 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'edited', 'sender': {'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15224722?v=4', 'url': 'https://api.github.com/users/iwubcode', 'gravatar_id': '', 'html_url': 'https://github.com/iwubcode', 'id': 15224722, 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'login': 'iwubcode', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'type': 'User'}, 'changes': {'body': {'from': "@stenzek - yeah, it definitely is different.  I copy the texture and call the underlying `Map` in one step.  However, the callee can wait to do whatever they want with the data (ex: `memcpy`) as long as the texture is still available and neither the `Unmap` or a new `Map` call hasn't occurred on the AbstractTexture.\r\n\r\nI also tried to keep complexity to a minimum.  If you ask for a texture readback, you get it, you don't need to have specified that in the configuration.  There's likely some trade-offs for that approach but it works well for our current use case (screenshot/video capture).\r\n\r\n---\r\n\r\nLike we've discussed on IRC (many times) it just pains me we have to rely on a kernel behavior when we are in complete control of the entire emulated system.  It just feels like there should be another way but I do understand the complexity.  It's definitely an interesting idea and am looking forward to what you can do with it."}}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128', 'created_at': '2017-10-22T04:17:48Z', 'user': {'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15224722?v=4', 'url': 'https://api.github.com/users/iwubcode', 'gravatar_id': '', 'html_url': 'https://github.com/iwubcode', 'id': 15224722, 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'login': 'iwubcode', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'type': 'User'}, 'updated_at': '2017-10-22T04:53:45Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338450166', 'body': "@stenzek - yeah, it definitely is different.  I copy the texture and call the underlying `Map` in one step.  However, the callee can wait to do whatever they want with the data (ex: `memcpy`) as long as the texture is still available and neither the `Unmap` or a new `Map` call hasn't occurred on the AbstractTexture.\r\n\r\nI also tried to keep complexity to a minimum.  If you ask for a texture readback, you get it, you don't need to have specified that in the configuration.  There's likely some trade-offs for that approach but it works well for our current use case (screenshot/video capture).\r\n\r\n---\r\n\r\nI'm sorry to be repetitive on this but like we've discussed on IRC it just pains me we have to rely on a kernel behavior when we are in complete control of the entire emulated system.  It just feels like there should be another way but I do understand the complexity.  It's definitely an interesting idea and I am looking forward to what you can do with it.", 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128#issuecomment-338450166', 'id': 338450166, 'author_association': 'CONTRIBUTOR'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3764, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T04:21:12Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T03:32:41Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 142, 'private': False, 'forks_count': 952, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349153, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 142, 'stargazers_count': 3764, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3764, 'forks': 952, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128', 'milestone': None, 'locked': False, 'id': 267388678, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/comments', 'assignees': [], 'created_at': '2017-10-21T15:13:37Z', 'body': 'This PR is a huge work-in-progress, implementing guest memory page locking. I\'ve had this around for a while, but it\'s at the point where it\'s working in at least a few games, so it\'s worth getting comments, ideas for optimizations, etc. There\'s also a lot of debugging code left in which has to be removed.\r\n\r\nThere\'s also a few commits that aren\'t directly related from my other PRs to simplify the Vulkan implementation, it\'s likely they will be merged before this is finished.\r\n\r\nThe idea is nothing new, it\'s been floating around in IRC discussions for ages, but as far as I\'m aware nobody has implemented it to this level yet.\r\n\r\n**The problem:**\r\nCurrently, if "EFB Copies To Texture Only" is checked, we don\'t populate the guest memory where the copy is stored, instead zeroing it out. This leads to breakage in games which read this memory on the CPU, which is often used for object detection, visual effects, etc.\r\n\r\nIf this option is disabled, we perform the readback from the host\'s GPU to the guest RAM. This means the CPU has to wait until the GPU has finished rendering, introducing a synchronization point, stalling the CPU. This means large drops in FPS, depending on how many copies are happening in each frame. \r\n\r\nIt\'s possible the guest won\'t touch this RAM at all, and it is just using it for the GPU! Which means we stalled for nothing.\r\n\r\n**The solution:**\r\nIn this PR, we are essentially creating "Lazy EFB Copies". Instead of zeroing out the memory, we change the protection on the pages that back this memory to PROT_NONE. Therefore, if the guest does read the memory after the copy, we will get a page fault, and can perform the readback. If it doesn\'t read it, we can skip the readback. Well, we defer it until we know the GPU is finished rendering, and copy it then instead.\r\n\r\nUnfortunately, we can only do this at a page granularity, which means potentially up to 4KB at either end of the copy bounds will also be locked. If the game touches this region, we still still fault and have to do the readback, even though the actual copy may not have been touched. This is likely where the performance won\'t be as good as EFB2Tex, and we can\'t get rid of the option entirely.\r\n\r\nWe can use this for other things, like hashless texture caching too. Instead of changing to PROT_NONE, we can change to PROT_READ, which means if the game modifies the memory backing these textures, we will fault then, and can force a re-hash/invalidate the cache entry. If we never fault, we know the texture hasn\'t changed, and therefore can skip hashing it entirely!\r\n\r\n**State:**\r\nDon\'t expect huge performance boosts across the board yet. Some games are faster, others not so much, and may be slower than master with EFB2RAM on, due to the extra page fault overhead. Particularly around those which place copies adjacent in memory, there is still some optimization to do.\r\n\r\nCurrently, it\'s only implemented in Vulkan, and dual core is not supported yet. This will come later. The easiest way to support DC will be via the AsyncRequests class, and then we can apply it on any thread.\r\n\r\n- [x] Base page locking support in Memmap (is this the best place to put it?)\r\n- [ ] Implement support for faulting from any thread, and executing callbacks on the GPU thread (Dual Core, AsyncRequests)\r\n- [x] Deferred EFB copies in texture cache base\r\n- [ ] Abstract texture readback on D3D\r\n- [ ] Deferring EFB copies on D3D\r\n- [ ] Abstract texture readback on D3D\r\n- [ ] Deferring EFB copies on OpenGL\r\n- [x] Abstract texture readback on Vulkan\r\n- [x] Deferring EFB copies on Vulkan\r\n- [x] Hashless texture cache (currently disabled by default)\r\n- [ ] Locking for paletted textures in texture cache\r\n- [ ] Make things generally faster!\r\n', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/events', 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'url': 'https://api.github.com/users/stenzek', 'gravatar_id': '', 'html_url': 'https://github.com/stenzek', 'id': 11288319, 'repos_url': 'https://api.github.com/users/stenzek/repos', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'login': 'stenzek', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'followers_url': 'https://api.github.com/users/stenzek/followers', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'type': 'User'}, 'number': 6128, 'assignee': None, 'comments': 6, 'updated_at': '2017-10-22T04:53:45Z', 'state': 'open', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6128.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6128.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6128'}, 'author_association': 'CONTRIBUTOR', 'labels': [{'color': 'fad8c7', 'name': 'RFC', 'id': 221809816, 'default': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/RFC'}, {'color': '0052cc', 'name': 'WIP', 'id': 221808232, 'default': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/WIP'}], 'title': 'Guest Memory Locking'}}, 'type': 'gh_issue_comment', 'title': 'Guest Memory Locking'}
2017-10-22T04:18:28.555716	{'action': 'edited', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6128#issuecomment-338450166', 'id': 6128, 'source': 'ghhookparser', 'author': 'iwubcode', 'body': "@stenzek - yeah, it definitely is different.  I copy the texture and call the underlying `Map` in one step.  However, the callee can wait to do whatever they want with the data (ex: `memcpy`) as long as the texture is still available and neither the `Unmap` or a new `Map` call hasn't occurred on the AbstractTexture.\r\n\r\nI also tried to keep complexity to a minimum.  If you ask for a texture readback, you get it, you don't need to have specified that in the configuration.  There's likely some trade-offs for that approach but it works well for our current use case (screenshot/video capture).\r\n\r\n---\r\n\r\nLike we've discussed on IRC (many times) it just pains me we have to rely on a kernel behavior when we are in complete control of the entire emulated system.  It just feels like there should be another way but I do understand the complexity.  It's definitely an interesting idea and am looking forward to what you can do with it.", 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'edited', 'sender': {'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15224722?v=4', 'url': 'https://api.github.com/users/iwubcode', 'gravatar_id': '', 'html_url': 'https://github.com/iwubcode', 'id': 15224722, 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'login': 'iwubcode', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'type': 'User'}, 'changes': {'body': {'from': "@stenzek - yeah, it definitely is different.  I copy the texture and call the underlying `Map` in one step.  However, the callee can wait to do whatever they want with the data (ex: `memcpy`) as long as the texture is still available and neither the `Unmap` or a new `Map` call hasn't occurred on the AbstractTexture.\r\n\r\nI also tried to keep complexity to a minimum.  If you ask for a texture readback, you get it, you don't need to have specified that in the configuration.  There's likely some trade-offs for that approach but it works well for our current use case (screenshot/video capture).\r\n\r\n---\r\n\r\nLike we've discussed on IRC (many times) it just pains me we have to rely on a kernel behavior when we are in complete control of the entire emulated system.  Anyway, I do think it's an interesting idea and am looking forward to what you can do with it."}}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128', 'created_at': '2017-10-22T04:17:48Z', 'user': {'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15224722?v=4', 'url': 'https://api.github.com/users/iwubcode', 'gravatar_id': '', 'html_url': 'https://github.com/iwubcode', 'id': 15224722, 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'login': 'iwubcode', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'type': 'User'}, 'updated_at': '2017-10-22T04:18:27Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338450166', 'body': "@stenzek - yeah, it definitely is different.  I copy the texture and call the underlying `Map` in one step.  However, the callee can wait to do whatever they want with the data (ex: `memcpy`) as long as the texture is still available and neither the `Unmap` or a new `Map` call hasn't occurred on the AbstractTexture.\r\n\r\nI also tried to keep complexity to a minimum.  If you ask for a texture readback, you get it, you don't need to have specified that in the configuration.  There's likely some trade-offs for that approach but it works well for our current use case (screenshot/video capture).\r\n\r\n---\r\n\r\nLike we've discussed on IRC (many times) it just pains me we have to rely on a kernel behavior when we are in complete control of the entire emulated system.  It just feels like there should be another way but I do understand the complexity.  It's definitely an interesting idea and am looking forward to what you can do with it.", 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128#issuecomment-338450166', 'id': 338450166, 'author_association': 'CONTRIBUTOR'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3764, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T03:19:39Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T03:32:41Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 142, 'private': False, 'forks_count': 952, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349153, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 142, 'stargazers_count': 3764, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3764, 'forks': 952, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128', 'milestone': None, 'locked': False, 'id': 267388678, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/comments', 'assignees': [], 'created_at': '2017-10-21T15:13:37Z', 'body': 'This PR is a huge work-in-progress, implementing guest memory page locking. I\'ve had this around for a while, but it\'s at the point where it\'s working in at least a few games, so it\'s worth getting comments, ideas for optimizations, etc. There\'s also a lot of debugging code left in which has to be removed.\r\n\r\nThere\'s also a few commits that aren\'t directly related from my other PRs to simplify the Vulkan implementation, it\'s likely they will be merged before this is finished.\r\n\r\nThe idea is nothing new, it\'s been floating around in IRC discussions for ages, but as far as I\'m aware nobody has implemented it to this level yet.\r\n\r\n**The problem:**\r\nCurrently, if "EFB Copies To Texture Only" is checked, we don\'t populate the guest memory where the copy is stored, instead zeroing it out. This leads to breakage in games which read this memory on the CPU, which is often used for object detection, visual effects, etc.\r\n\r\nIf this option is disabled, we perform the readback from the host\'s GPU to the guest RAM. This means the CPU has to wait until the GPU has finished rendering, introducing a synchronization point, stalling the CPU. This means large drops in FPS, depending on how many copies are happening in each frame. \r\n\r\nIt\'s possible the guest won\'t touch this RAM at all, and it is just using it for the GPU! Which means we stalled for nothing.\r\n\r\n**The solution:**\r\nIn this PR, we are essentially creating "Lazy EFB Copies". Instead of zeroing out the memory, we change the protection on the pages that back this memory to PROT_NONE. Therefore, if the guest does read the memory after the copy, we will get a page fault, and can perform the readback. If it doesn\'t read it, we can skip the readback. Well, we defer it until we know the GPU is finished rendering, and copy it then instead.\r\n\r\nUnfortunately, we can only do this at a page granularity, which means potentially up to 4KB at either end of the copy bounds will also be locked. If the game touches this region, we still still fault and have to do the readback, even though the actual copy may not have been touched. This is likely where the performance won\'t be as good as EFB2Tex, and we can\'t get rid of the option entirely.\r\n\r\nWe can use this for other things, like hashless texture caching too. Instead of changing to PROT_NONE, we can change to PROT_READ, which means if the game modifies the memory backing these textures, we will fault then, and can force a re-hash/invalidate the cache entry. If we never fault, we know the texture hasn\'t changed, and therefore can skip hashing it entirely!\r\n\r\n**State:**\r\nDon\'t expect huge performance boosts across the board yet. Some games are faster, others not so much, and may be slower than master with EFB2RAM on, due to the extra page fault overhead. Particularly around those which place copies adjacent in memory, there is still some optimization to do.\r\n\r\nCurrently, it\'s only implemented in Vulkan, and dual core is not supported yet. This will come later. The easiest way to support DC will be via the AsyncRequests class, and then we can apply it on any thread.\r\n\r\n- [x] Base page locking support in Memmap (is this the best place to put it?)\r\n- [ ] Implement support for faulting from any thread, and executing callbacks on the GPU thread (Dual Core, AsyncRequests)\r\n- [x] Deferred EFB copies in texture cache base\r\n- [ ] Abstract texture readback on D3D\r\n- [ ] Deferring EFB copies on D3D\r\n- [ ] Abstract texture readback on D3D\r\n- [ ] Deferring EFB copies on OpenGL\r\n- [x] Abstract texture readback on Vulkan\r\n- [x] Deferring EFB copies on Vulkan\r\n- [x] Hashless texture cache (currently disabled by default)\r\n- [ ] Locking for paletted textures in texture cache\r\n- [ ] Make things generally faster!\r\n', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/events', 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'url': 'https://api.github.com/users/stenzek', 'gravatar_id': '', 'html_url': 'https://github.com/stenzek', 'id': 11288319, 'repos_url': 'https://api.github.com/users/stenzek/repos', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'login': 'stenzek', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'followers_url': 'https://api.github.com/users/stenzek/followers', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'type': 'User'}, 'number': 6128, 'assignee': None, 'comments': 6, 'updated_at': '2017-10-22T04:18:27Z', 'state': 'open', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6128.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6128.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6128'}, 'author_association': 'CONTRIBUTOR', 'labels': [{'color': 'fad8c7', 'name': 'RFC', 'id': 221809816, 'default': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/RFC'}, {'color': '0052cc', 'name': 'WIP', 'id': 221808232, 'default': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/WIP'}], 'title': 'Guest Memory Locking'}}, 'type': 'gh_issue_comment', 'title': 'Guest Memory Locking'}
2017-10-22T04:17:49.917593	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6128#issuecomment-338450166', 'id': 6128, 'source': 'ghhookparser', 'author': 'iwubcode', 'body': "@stenzek - yeah, it definitely is different.  I copy the texture and call the underlying `Map` in one step.  However, the callee can wait to do whatever they want with the data (ex: `memcpy`) as long as the texture is still available and neither the `Unmap` or a new `Map` call hasn't occurred on the AbstractTexture.\r\n\r\nI also tried to keep complexity to a minimum.  If you ask for a texture readback, you get it, you don't need to have specified that in the configuration.  There's likely some trade-offs for that approach but it works well for our current use case (screenshot/video capture).\r\n\r\n---\r\n\r\nLike we've discussed on IRC (many times) it just pains me we have to rely on a kernel behavior when we are in complete control of the entire emulated system.  Anyway, I do think it's an interesting idea and am looking forward to what you can do with it.", 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'sender': {'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15224722?v=4', 'url': 'https://api.github.com/users/iwubcode', 'gravatar_id': '', 'html_url': 'https://github.com/iwubcode', 'id': 15224722, 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'login': 'iwubcode', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'type': 'User'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128', 'milestone': None, 'locked': False, 'id': 267388678, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/comments', 'assignees': [], 'created_at': '2017-10-21T15:13:37Z', 'body': 'This PR is a huge work-in-progress, implementing guest memory page locking. I\'ve had this around for a while, but it\'s at the point where it\'s working in at least a few games, so it\'s worth getting comments, ideas for optimizations, etc. There\'s also a lot of debugging code left in which has to be removed.\r\n\r\nThere\'s also a few commits that aren\'t directly related from my other PRs to simplify the Vulkan implementation, it\'s likely they will be merged before this is finished.\r\n\r\nThe idea is nothing new, it\'s been floating around in IRC discussions for ages, but as far as I\'m aware nobody has implemented it to this level yet.\r\n\r\n**The problem:**\r\nCurrently, if "EFB Copies To Texture Only" is checked, we don\'t populate the guest memory where the copy is stored, instead zeroing it out. This leads to breakage in games which read this memory on the CPU, which is often used for object detection, visual effects, etc.\r\n\r\nIf this option is disabled, we perform the readback from the host\'s GPU to the guest RAM. This means the CPU has to wait until the GPU has finished rendering, introducing a synchronization point, stalling the CPU. This means large drops in FPS, depending on how many copies are happening in each frame. \r\n\r\nIt\'s possible the guest won\'t touch this RAM at all, and it is just using it for the GPU! Which means we stalled for nothing.\r\n\r\n**The solution:**\r\nIn this PR, we are essentially creating "Lazy EFB Copies". Instead of zeroing out the memory, we change the protection on the pages that back this memory to PROT_NONE. Therefore, if the guest does read the memory after the copy, we will get a page fault, and can perform the readback. If it doesn\'t read it, we can skip the readback. Well, we defer it until we know the GPU is finished rendering, and copy it then instead.\r\n\r\nUnfortunately, we can only do this at a page granularity, which means potentially up to 4KB at either end of the copy bounds will also be locked. If the game touches this region, we still still fault and have to do the readback, even though the actual copy may not have been touched. This is likely where the performance won\'t be as good as EFB2Tex, and we can\'t get rid of the option entirely.\r\n\r\nWe can use this for other things, like hashless texture caching too. Instead of changing to PROT_NONE, we can change to PROT_READ, which means if the game modifies the memory backing these textures, we will fault then, and can force a re-hash/invalidate the cache entry. If we never fault, we know the texture hasn\'t changed, and therefore can skip hashing it entirely!\r\n\r\n**State:**\r\nDon\'t expect huge performance boosts across the board yet. Some games are faster, others not so much, and may be slower than master with EFB2RAM on, due to the extra page fault overhead. Particularly around those which place copies adjacent in memory, there is still some optimization to do.\r\n\r\nCurrently, it\'s only implemented in Vulkan, and dual core is not supported yet. This will come later. The easiest way to support DC will be via the AsyncRequests class, and then we can apply it on any thread.\r\n\r\n- [x] Base page locking support in Memmap (is this the best place to put it?)\r\n- [ ] Implement support for faulting from any thread, and executing callbacks on the GPU thread (Dual Core, AsyncRequests)\r\n- [x] Deferred EFB copies in texture cache base\r\n- [ ] Abstract texture readback on D3D\r\n- [ ] Deferring EFB copies on D3D\r\n- [ ] Abstract texture readback on D3D\r\n- [ ] Deferring EFB copies on OpenGL\r\n- [x] Abstract texture readback on Vulkan\r\n- [x] Deferring EFB copies on Vulkan\r\n- [x] Hashless texture cache (currently disabled by default)\r\n- [ ] Locking for paletted textures in texture cache\r\n- [ ] Make things generally faster!\r\n', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/events', 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'url': 'https://api.github.com/users/stenzek', 'gravatar_id': '', 'html_url': 'https://github.com/stenzek', 'id': 11288319, 'repos_url': 'https://api.github.com/users/stenzek/repos', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'login': 'stenzek', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'followers_url': 'https://api.github.com/users/stenzek/followers', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'type': 'User'}, 'number': 6128, 'assignee': None, 'comments': 5, 'updated_at': '2017-10-22T04:17:48Z', 'state': 'open', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6128.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6128.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6128'}, 'author_association': 'CONTRIBUTOR', 'labels': [{'color': 'fad8c7', 'name': 'RFC', 'id': 221809816, 'default': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/RFC'}, {'color': '0052cc', 'name': 'WIP', 'id': 221808232, 'default': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/WIP'}], 'title': 'Guest Memory Locking'}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128', 'created_at': '2017-10-22T04:17:48Z', 'user': {'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15224722?v=4', 'url': 'https://api.github.com/users/iwubcode', 'gravatar_id': '', 'html_url': 'https://github.com/iwubcode', 'id': 15224722, 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'login': 'iwubcode', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'type': 'User'}, 'updated_at': '2017-10-22T04:17:48Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338450166', 'body': "@stenzek - yeah, it definitely is different.  I copy the texture and call the underlying `Map` in one step.  However, the callee can wait to do whatever they want with the data (ex: `memcpy`) as long as the texture is still available and neither the `Unmap` or a new `Map` call hasn't occurred on the AbstractTexture.\r\n\r\nI also tried to keep complexity to a minimum.  If you ask for a texture readback, you get it, you don't need to have specified that in the configuration.  There's likely some trade-offs for that approach but it works well for our current use case (screenshot/video capture).\r\n\r\n---\r\n\r\nLike we've discussed on IRC (many times) it just pains me we have to rely on a kernel behavior when we are in complete control of the entire emulated system.  Anyway, I do think it's an interesting idea and am looking forward to what you can do with it.", 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128#issuecomment-338450166', 'id': 338450166, 'author_association': 'CONTRIBUTOR'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3764, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T03:19:39Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T03:32:41Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 142, 'private': False, 'forks_count': 952, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349153, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 142, 'stargazers_count': 3764, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3764, 'forks': 952, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}}, 'type': 'gh_issue_comment', 'title': 'Guest Memory Locking'}
2017-10-22T02:45:08.685623	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6128#issuecomment-338446871', 'id': 6128, 'source': 'ghhookparser', 'author': 'shuffle2', 'body': '@stenzek ah yea, i was only considering a single fault, if it happens many times for a single region (in the case of memcpy or w/e), it would get tricky...', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'sender': {'gists_url': 'https://api.github.com/users/shuffle2/gists{/gist_id}', 'avatar_url': 'https://avatars0.githubusercontent.com/u/113063?v=4', 'url': 'https://api.github.com/users/shuffle2', 'gravatar_id': '', 'html_url': 'https://github.com/shuffle2', 'id': 113063, 'repos_url': 'https://api.github.com/users/shuffle2/repos', 'events_url': 'https://api.github.com/users/shuffle2/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/shuffle2/subscriptions', 'starred_url': 'https://api.github.com/users/shuffle2/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/shuffle2/following{/other_user}', 'login': 'shuffle2', 'received_events_url': 'https://api.github.com/users/shuffle2/received_events', 'followers_url': 'https://api.github.com/users/shuffle2/followers', 'organizations_url': 'https://api.github.com/users/shuffle2/orgs', 'type': 'User'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128', 'milestone': None, 'locked': False, 'id': 267388678, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/comments', 'assignees': [], 'created_at': '2017-10-21T15:13:37Z', 'body': 'This PR is a huge work-in-progress, implementing guest memory page locking. I\'ve had this around for a while, but it\'s at the point where it\'s working in at least a few games, so it\'s worth getting comments, ideas for optimizations, etc. There\'s also a lot of debugging code left in which has to be removed.\r\n\r\nThere\'s also a few commits that aren\'t directly related from my other PRs to simplify the Vulkan implementation, it\'s likely they will be merged before this is finished.\r\n\r\nThe idea is nothing new, it\'s been floating around in IRC discussions for ages, but as far as I\'m aware nobody has implemented it to this level yet.\r\n\r\n**The problem:**\r\nCurrently, if "EFB Copies To Texture Only" is checked, we don\'t populate the guest memory where the copy is stored, instead zeroing it out. This leads to breakage in games which read this memory on the CPU, which is often used for object detection, visual effects, etc.\r\n\r\nIf this option is disabled, we perform the readback from the host\'s GPU to the guest RAM. This means the CPU has to wait until the GPU has finished rendering, introducing a synchronization point, stalling the CPU. This means large drops in FPS, depending on how many copies are happening in each frame. \r\n\r\nIt\'s possible the guest won\'t touch this RAM at all, and it is just using it for the GPU! Which means we stalled for nothing.\r\n\r\n**The solution:**\r\nIn this PR, we are essentially creating "Lazy EFB Copies". Instead of zeroing out the memory, we change the protection on the pages that back this memory to PROT_NONE. Therefore, if the guest does read the memory after the copy, we will get a page fault, and can perform the readback. If it doesn\'t read it, we can skip the readback. Well, we defer it until we know the GPU is finished rendering, and copy it then instead.\r\n\r\nUnfortunately, we can only do this at a page granularity, which means potentially up to 4KB at either end of the copy bounds will also be locked. If the game touches this region, we still still fault and have to do the readback, even though the actual copy may not have been touched. This is likely where the performance won\'t be as good as EFB2Tex, and we can\'t get rid of the option entirely.\r\n\r\nWe can use this for other things, like hashless texture caching too. Instead of changing to PROT_NONE, we can change to PROT_READ, which means if the game modifies the memory backing these textures, we will fault then, and can force a re-hash/invalidate the cache entry. If we never fault, we know the texture hasn\'t changed, and therefore can skip hashing it entirely!\r\n\r\n**State:**\r\nDon\'t expect huge performance boosts across the board yet. Some games are faster, others not so much, and may be slower than master with EFB2RAM on, due to the extra page fault overhead. Particularly around those which place copies adjacent in memory, there is still some optimization to do.\r\n\r\nCurrently, it\'s only implemented in Vulkan, and dual core is not supported yet. This will come later. The easiest way to support DC will be via the AsyncRequests class, and then we can apply it on any thread.\r\n\r\n- [x] Base page locking support in Memmap (is this the best place to put it?)\r\n- [ ] Implement support for faulting from any thread, and executing callbacks on the GPU thread (Dual Core, AsyncRequests)\r\n- [x] Deferred EFB copies in texture cache base\r\n- [ ] Abstract texture readback on D3D\r\n- [ ] Deferring EFB copies on D3D\r\n- [ ] Abstract texture readback on D3D\r\n- [ ] Deferring EFB copies on OpenGL\r\n- [x] Abstract texture readback on Vulkan\r\n- [x] Deferring EFB copies on Vulkan\r\n- [x] Hashless texture cache (currently disabled by default)\r\n- [ ] Locking for paletted textures in texture cache\r\n- [ ] Make things generally faster!\r\n', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/events', 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'url': 'https://api.github.com/users/stenzek', 'gravatar_id': '', 'html_url': 'https://github.com/stenzek', 'id': 11288319, 'repos_url': 'https://api.github.com/users/stenzek/repos', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'login': 'stenzek', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'followers_url': 'https://api.github.com/users/stenzek/followers', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'type': 'User'}, 'number': 6128, 'assignee': None, 'comments': 4, 'updated_at': '2017-10-22T02:45:07Z', 'state': 'open', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6128.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6128.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6128'}, 'author_association': 'CONTRIBUTOR', 'labels': [{'color': 'fad8c7', 'name': 'RFC', 'id': 221809816, 'default': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/RFC'}, {'color': '0052cc', 'name': 'WIP', 'id': 221808232, 'default': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/WIP'}], 'title': 'Guest Memory Locking'}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128', 'created_at': '2017-10-22T02:45:07Z', 'user': {'gists_url': 'https://api.github.com/users/shuffle2/gists{/gist_id}', 'avatar_url': 'https://avatars0.githubusercontent.com/u/113063?v=4', 'url': 'https://api.github.com/users/shuffle2', 'gravatar_id': '', 'html_url': 'https://github.com/shuffle2', 'id': 113063, 'repos_url': 'https://api.github.com/users/shuffle2/repos', 'events_url': 'https://api.github.com/users/shuffle2/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/shuffle2/subscriptions', 'starred_url': 'https://api.github.com/users/shuffle2/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/shuffle2/following{/other_user}', 'login': 'shuffle2', 'received_events_url': 'https://api.github.com/users/shuffle2/received_events', 'followers_url': 'https://api.github.com/users/shuffle2/followers', 'organizations_url': 'https://api.github.com/users/shuffle2/orgs', 'type': 'User'}, 'updated_at': '2017-10-22T02:45:07Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338446871', 'body': '@stenzek ah yea, i was only considering a single fault, if it happens many times for a single region (in the case of memcpy or w/e), it would get tricky...', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128#issuecomment-338446871', 'id': 338446871, 'author_association': 'CONTRIBUTOR'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3763, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T02:17:30Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T02:00:45Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 142, 'private': False, 'forks_count': 952, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349153, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 142, 'stargazers_count': 3763, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3763, 'forks': 952, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}}, 'type': 'gh_issue_comment', 'title': 'Guest Memory Locking'}
2017-10-22T02:42:39.947706	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6132#issuecomment-338446765', 'id': 6132, 'source': 'ghhookparser', 'author': 'shuffle2', 'body': 'lgtm', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'sender': {'gists_url': 'https://api.github.com/users/shuffle2/gists{/gist_id}', 'avatar_url': 'https://avatars0.githubusercontent.com/u/113063?v=4', 'url': 'https://api.github.com/users/shuffle2', 'gravatar_id': '', 'html_url': 'https://github.com/shuffle2', 'id': 113063, 'repos_url': 'https://api.github.com/users/shuffle2/repos', 'events_url': 'https://api.github.com/users/shuffle2/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/shuffle2/subscriptions', 'starred_url': 'https://api.github.com/users/shuffle2/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/shuffle2/following{/other_user}', 'login': 'shuffle2', 'received_events_url': 'https://api.github.com/users/shuffle2/received_events', 'followers_url': 'https://api.github.com/users/shuffle2/followers', 'organizations_url': 'https://api.github.com/users/shuffle2/orgs', 'type': 'User'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6132', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6132/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6132', 'milestone': None, 'locked': False, 'id': 267415013, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6132/comments', 'assignees': [], 'created_at': '2017-10-21T21:18:37Z', 'body': "A bunch of changes, looks mainly like bug fixes and code cleanup.\r\n\r\nNotable changes:\r\n- `cubeb_get_min_latency`'s signature was changed to take params via\r\n  pointer, requiring Dolphin code to be tweaked in two places.\r\n- A fix for kinetiknz/cubeb#320, as reported by @shuffle2\r\n- Fixed build on FreeBSD, as contributed by @endrift", 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6132/events', 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'number': 6132, 'assignee': None, 'comments': 0, 'updated_at': '2017-10-22T02:42:39Z', 'state': 'open', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6132.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6132', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6132.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6132'}, 'author_association': 'CONTRIBUTOR', 'labels': [], 'title': 'Externals: update cubeb to kinetiknz/cubeb@c2bd582'}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6132', 'created_at': '2017-10-22T02:42:39Z', 'user': {'gists_url': 'https://api.github.com/users/shuffle2/gists{/gist_id}', 'avatar_url': 'https://avatars0.githubusercontent.com/u/113063?v=4', 'url': 'https://api.github.com/users/shuffle2', 'gravatar_id': '', 'html_url': 'https://github.com/shuffle2', 'id': 113063, 'repos_url': 'https://api.github.com/users/shuffle2/repos', 'events_url': 'https://api.github.com/users/shuffle2/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/shuffle2/subscriptions', 'starred_url': 'https://api.github.com/users/shuffle2/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/shuffle2/following{/other_user}', 'login': 'shuffle2', 'received_events_url': 'https://api.github.com/users/shuffle2/received_events', 'followers_url': 'https://api.github.com/users/shuffle2/followers', 'organizations_url': 'https://api.github.com/users/shuffle2/orgs', 'type': 'User'}, 'updated_at': '2017-10-22T02:42:39Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338446765', 'body': 'lgtm', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6132#issuecomment-338446765', 'id': 338446765, 'author_association': 'CONTRIBUTOR'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3763, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T02:17:30Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T02:00:45Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 142, 'private': False, 'forks_count': 952, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349153, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 142, 'stargazers_count': 3763, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3763, 'forks': 952, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}}, 'type': 'gh_issue_comment', 'title': 'Externals: update cubeb to kinetiknz/cubeb@c2bd582'}
2017-10-22T01:24:52.410211	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6128#issuecomment-338443849', 'id': 6128, 'source': 'ghhookparser', 'author': 'stenzek', 'body': "@iwubcode Readback code may potentially be useful. I haven't looked at your implementation, but I suspect the way I did it here is different. I split it up into two parts, the copy to the staging texture, and the actual readback (CopyToStagingTexture and ReadStagingTexture). This is so the GPU copy can be queued and executed independently (earlier) of the memcpy().\r\n\r\nIn fact, it's a requirement for doing locking, since we can either (a) defer the copy entirely and face the same sync point as EFB2RAM, or (b) copy early, hope the GPU finishes, then when we fault, unlock the page and memcpy() it then. Also, when the fence is signaled, we could just copy back anyway. Haven't experimented to see if this works better than straight (b), yet.\r\n\r\nFor GL, I'm thinking using a persistent-mapped PBO plus a fence, and for D3D.. maybe copy+flush, then map on Read.", 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'sender': {'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'url': 'https://api.github.com/users/stenzek', 'gravatar_id': '', 'html_url': 'https://github.com/stenzek', 'id': 11288319, 'repos_url': 'https://api.github.com/users/stenzek/repos', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'login': 'stenzek', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'followers_url': 'https://api.github.com/users/stenzek/followers', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'type': 'User'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128', 'milestone': None, 'locked': False, 'id': 267388678, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/comments', 'assignees': [], 'created_at': '2017-10-21T15:13:37Z', 'body': 'This PR is a huge work-in-progress, implementing guest memory page locking. I\'ve had this around for a while, but it\'s at the point where it\'s working in at least a few games, so it\'s worth getting comments, ideas for optimizations, etc. There\'s also a lot of debugging code left in which has to be removed.\r\n\r\nThere\'s also a few commits that aren\'t directly related from my other PRs to simplify the Vulkan implementation, it\'s likely they will be merged before this is finished.\r\n\r\nThe idea is nothing new, it\'s been floating around in IRC discussions for ages, but as far as I\'m aware nobody has implemented it to this level yet.\r\n\r\n**The problem:**\r\nCurrently, if "EFB Copies To Texture Only" is checked, we don\'t populate the guest memory where the copy is stored, instead zeroing it out. This leads to breakage in games which read this memory on the CPU, which is often used for object detection, visual effects, etc.\r\n\r\nIf this option is disabled, we perform the readback from the host\'s GPU to the guest RAM. This means the CPU has to wait until the GPU has finished rendering, introducing a synchronization point, stalling the CPU. This means large drops in FPS, depending on how many copies are happening in each frame. \r\n\r\nIt\'s possible the guest won\'t touch this RAM at all, and it is just using it for the GPU! Which means we stalled for nothing.\r\n\r\n**The solution:**\r\nIn this PR, we are essentially creating "Lazy EFB Copies". Instead of zeroing out the memory, we change the protection on the pages that back this memory to PROT_NONE. Therefore, if the guest does read the memory after the copy, we will get a page fault, and can perform the readback. If it doesn\'t read it, we can skip the readback. Well, we defer it until we know the GPU is finished rendering, and copy it then instead.\r\n\r\nUnfortunately, we can only do this at a page granularity, which means potentially up to 4KB at either end of the copy bounds will also be locked. If the game touches this region, we still still fault and have to do the readback, even though the actual copy may not have been touched. This is likely where the performance won\'t be as good as EFB2Tex, and we can\'t get rid of the option entirely.\r\n\r\nWe can use this for other things, like hashless texture caching too. Instead of changing to PROT_NONE, we can change to PROT_READ, which means if the game modifies the memory backing these textures, we will fault then, and can force a re-hash/invalidate the cache entry. If we never fault, we know the texture hasn\'t changed, and therefore can skip hashing it entirely!\r\n\r\n**State:**\r\nDon\'t expect huge performance boosts across the board yet. Some games are faster, others not so much, and may be slower than master with EFB2RAM on, due to the extra page fault overhead. Particularly around those which place copies adjacent in memory, there is still some optimization to do.\r\n\r\nCurrently, it\'s only implemented in Vulkan, and dual core is not supported yet. This will come later. The easiest way to support DC will be via the AsyncRequests class, and then we can apply it on any thread.\r\n\r\n- [x] Base page locking support in Memmap (is this the best place to put it?)\r\n- [ ] Implement support for faulting from any thread, and executing callbacks on the GPU thread (Dual Core, AsyncRequests)\r\n- [x] Deferred EFB copies in texture cache base\r\n- [ ] Abstract texture readback on D3D\r\n- [ ] Deferring EFB copies on D3D\r\n- [ ] Abstract texture readback on D3D\r\n- [ ] Deferring EFB copies on OpenGL\r\n- [x] Abstract texture readback on Vulkan\r\n- [x] Deferring EFB copies on Vulkan\r\n- [x] Hashless texture cache (currently disabled by default)\r\n- [ ] Locking for paletted textures in texture cache\r\n- [ ] Make things generally faster!\r\n', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/events', 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'url': 'https://api.github.com/users/stenzek', 'gravatar_id': '', 'html_url': 'https://github.com/stenzek', 'id': 11288319, 'repos_url': 'https://api.github.com/users/stenzek/repos', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'login': 'stenzek', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'followers_url': 'https://api.github.com/users/stenzek/followers', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'type': 'User'}, 'number': 6128, 'assignee': None, 'comments': 3, 'updated_at': '2017-10-22T01:24:51Z', 'state': 'open', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6128.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6128.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6128'}, 'author_association': 'CONTRIBUTOR', 'labels': [{'color': 'fad8c7', 'name': 'RFC', 'id': 221809816, 'default': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/RFC'}, {'color': '0052cc', 'name': 'WIP', 'id': 221808232, 'default': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/WIP'}], 'title': 'Guest Memory Locking'}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128', 'created_at': '2017-10-22T01:24:51Z', 'user': {'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'url': 'https://api.github.com/users/stenzek', 'gravatar_id': '', 'html_url': 'https://github.com/stenzek', 'id': 11288319, 'repos_url': 'https://api.github.com/users/stenzek/repos', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'login': 'stenzek', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'followers_url': 'https://api.github.com/users/stenzek/followers', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'type': 'User'}, 'updated_at': '2017-10-22T01:24:51Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338443849', 'body': "@iwubcode Readback code may potentially be useful. I haven't looked at your implementation, but I suspect the way I did it here is different. I split it up into two parts, the copy to the staging texture, and the actual readback (CopyToStagingTexture and ReadStagingTexture). This is so the GPU copy can be queued and executed independently (earlier) of the memcpy().\r\n\r\nIn fact, it's a requirement for doing locking, since we can either (a) defer the copy entirely and face the same sync point as EFB2RAM, or (b) copy early, hope the GPU finishes, then when we fault, unlock the page and memcpy() it then. Also, when the fence is signaled, we could just copy back anyway. Haven't experimented to see if this works better than straight (b), yet.\r\n\r\nFor GL, I'm thinking using a persistent-mapped PBO plus a fence, and for D3D.. maybe copy+flush, then map on Read.", 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128#issuecomment-338443849', 'id': 338443849, 'author_association': 'CONTRIBUTOR'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3764, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-21T23:45:31Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T01:22:14Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 142, 'private': False, 'forks_count': 952, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349153, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 142, 'stargazers_count': 3764, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3764, 'forks': 952, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}}, 'type': 'gh_issue_comment', 'title': 'Guest Memory Locking'}
2017-10-22T01:09:14.189052	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6128#issuecomment-338443219', 'id': 6128, 'source': 'ghhookparser', 'author': 'stenzek', 'body': "> You can't prevent taking a fault in this case, but it should be pretty straightforward to check the actual faulting address (with byte granularity), and skip most of the work, no? Sorry if it's already implemented like that, haven't looked at patch.\r\n\r\n@shuffle2 Yep, we could do that, simulate the read in the fault handler, and leave the page locked. But faulting is expensive (plus the instruction decode etc), and I'm suspecting the access patterns will tend to have spatial locality, increasing the likelihood of faulting again shortly after on the same/adjacent pages. Therefore it's likely faster to just do the readback and unlock the whole page, and let the game carry on as usual.\r\n\r\nBut this is just a guess, I haven't tried it yet, mainly because of the added complexity of simulating the reads/writes.", 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'sender': {'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'url': 'https://api.github.com/users/stenzek', 'gravatar_id': '', 'html_url': 'https://github.com/stenzek', 'id': 11288319, 'repos_url': 'https://api.github.com/users/stenzek/repos', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'login': 'stenzek', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'followers_url': 'https://api.github.com/users/stenzek/followers', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'type': 'User'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128', 'milestone': None, 'locked': False, 'id': 267388678, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/comments', 'assignees': [], 'created_at': '2017-10-21T15:13:37Z', 'body': 'This PR is a huge work-in-progress, implementing guest memory page locking. I\'ve had this around for a while, but it\'s at the point where it\'s working in at least a few games, so it\'s worth getting comments, ideas for optimizations, etc. There\'s also a lot of debugging code left in which has to be removed.\r\n\r\nThere\'s also a few commits that aren\'t directly related from my other PRs to simplify the Vulkan implementation, it\'s likely they will be merged before this is finished.\r\n\r\nThe idea is nothing new, it\'s been floating around in IRC discussions for ages, but as far as I\'m aware nobody has implemented it to this level yet.\r\n\r\n**The problem:**\r\nCurrently, if "EFB Copies To Texture Only" is checked, we don\'t populate the guest memory where the copy is stored, instead zeroing it out. This leads to breakage in games which read this memory on the CPU, which is often used for object detection, visual effects, etc.\r\n\r\nIf this option is disabled, we perform the readback from the host\'s GPU to the guest RAM. This means the CPU has to wait until the GPU has finished rendering, introducing a synchronization point, stalling the CPU. This means large drops in FPS, depending on how many copies are happening in each frame. \r\n\r\nIt\'s possible the guest won\'t touch this RAM at all, and it is just using it for the GPU! Which means we stalled for nothing.\r\n\r\n**The solution:**\r\nIn this PR, we are essentially creating "Lazy EFB Copies". Instead of zeroing out the memory, we change the protection on the pages that back this memory to PROT_NONE. Therefore, if the guest does read the memory after the copy, we will get a page fault, and can perform the readback. If it doesn\'t read it, we can skip the readback. Well, we defer it until we know the GPU is finished rendering, and copy it then instead.\r\n\r\nUnfortunately, we can only do this at a page granularity, which means potentially up to 4KB at either end of the copy bounds will also be locked. If the game touches this region, we still still fault and have to do the readback, even though the actual copy may not have been touched. This is likely where the performance won\'t be as good as EFB2Tex, and we can\'t get rid of the option entirely.\r\n\r\nWe can use this for other things, like hashless texture caching too. Instead of changing to PROT_NONE, we can change to PROT_READ, which means if the game modifies the memory backing these textures, we will fault then, and can force a re-hash/invalidate the cache entry. If we never fault, we know the texture hasn\'t changed, and therefore can skip hashing it entirely!\r\n\r\n**State:**\r\nDon\'t expect huge performance boosts across the board yet. Some games are faster, others not so much, and may be slower than master with EFB2RAM on, due to the extra page fault overhead. Particularly around those which place copies adjacent in memory, there is still some optimization to do.\r\n\r\nCurrently, it\'s only implemented in Vulkan, and dual core is not supported yet. This will come later. The easiest way to support DC will be via the AsyncRequests class, and then we can apply it on any thread.\r\n\r\n- [x] Base page locking support in Memmap (is this the best place to put it?)\r\n- [ ] Implement support for faulting from any thread, and executing callbacks on the GPU thread (Dual Core, AsyncRequests)\r\n- [x] Deferred EFB copies in texture cache base\r\n- [ ] Abstract texture readback on D3D\r\n- [ ] Deferring EFB copies on D3D\r\n- [ ] Abstract texture readback on D3D\r\n- [ ] Deferring EFB copies on OpenGL\r\n- [x] Abstract texture readback on Vulkan\r\n- [x] Deferring EFB copies on Vulkan\r\n- [x] Hashless texture cache (currently disabled by default)\r\n- [ ] Locking for paletted textures in texture cache\r\n- [ ] Make things generally faster!\r\n', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/events', 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'url': 'https://api.github.com/users/stenzek', 'gravatar_id': '', 'html_url': 'https://github.com/stenzek', 'id': 11288319, 'repos_url': 'https://api.github.com/users/stenzek/repos', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'login': 'stenzek', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'followers_url': 'https://api.github.com/users/stenzek/followers', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'type': 'User'}, 'number': 6128, 'assignee': None, 'comments': 2, 'updated_at': '2017-10-22T01:09:13Z', 'state': 'open', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6128.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6128.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6128'}, 'author_association': 'CONTRIBUTOR', 'labels': [{'color': 'fad8c7', 'name': 'RFC', 'id': 221809816, 'default': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/RFC'}, {'color': '0052cc', 'name': 'WIP', 'id': 221808232, 'default': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/WIP'}], 'title': 'Guest Memory Locking'}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128', 'created_at': '2017-10-22T01:09:13Z', 'user': {'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'url': 'https://api.github.com/users/stenzek', 'gravatar_id': '', 'html_url': 'https://github.com/stenzek', 'id': 11288319, 'repos_url': 'https://api.github.com/users/stenzek/repos', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'login': 'stenzek', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'followers_url': 'https://api.github.com/users/stenzek/followers', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'type': 'User'}, 'updated_at': '2017-10-22T01:09:13Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338443219', 'body': "> You can't prevent taking a fault in this case, but it should be pretty straightforward to check the actual faulting address (with byte granularity), and skip most of the work, no? Sorry if it's already implemented like that, haven't looked at patch.\r\n\r\n@shuffle2 Yep, we could do that, simulate the read in the fault handler, and leave the page locked. But faulting is expensive (plus the instruction decode etc), and I'm suspecting the access patterns will tend to have spatial locality, increasing the likelihood of faulting again shortly after on the same/adjacent pages. Therefore it's likely faster to just do the readback and unlock the whole page, and let the game carry on as usual.\r\n\r\nBut this is just a guess, I haven't tried it yet, mainly because of the added complexity of simulating the reads/writes.", 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128#issuecomment-338443219', 'id': 338443219, 'author_association': 'CONTRIBUTOR'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3763, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-21T23:45:31Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-21T22:29:04Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 142, 'private': False, 'forks_count': 952, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349153, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 142, 'stargazers_count': 3763, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3763, 'forks': 952, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}}, 'type': 'gh_issue_comment', 'title': 'Guest Memory Locking'}
2017-10-21T23:46:35.360691	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6128#issuecomment-338440360', 'id': 6128, 'source': 'ghhookparser', 'author': 'iwubcode', 'body': "Nice job @stenzek , glad to see this is getting closer to fruition.  I imagine some of this will be simpler too once we get other things finished like your Abstract Pipeline and a texture cache cleanup.\r\n\r\nFor what it's worth, I have readback for all the backends in my Hybrid XFB PR.  After that gets merged, we might need to make some tweaks to fit what you need here, I haven't looked at it yet.\r\n\r\nAnyway, I'm excited to try this out!!", 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'sender': {'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15224722?v=4', 'url': 'https://api.github.com/users/iwubcode', 'gravatar_id': '', 'html_url': 'https://github.com/iwubcode', 'id': 15224722, 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'login': 'iwubcode', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'type': 'User'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128', 'milestone': None, 'locked': False, 'id': 267388678, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/comments', 'assignees': [], 'created_at': '2017-10-21T15:13:37Z', 'body': 'This PR is a huge work-in-progress, implementing guest memory page locking. I\'ve had this around for a while, but it\'s at the point where it\'s working in at least a few games, so it\'s worth getting comments, ideas for optimizations, etc. There\'s also a lot of debugging code left in which has to be removed.\r\n\r\nThere\'s also a few commits that aren\'t directly related from my other PRs to simplify the Vulkan implementation, it\'s likely they will be merged before this is finished.\r\n\r\nThe idea is nothing new, it\'s been floating around in IRC discussions for ages, but as far as I\'m aware nobody has implemented it to this level yet.\r\n\r\n**The problem:**\r\nCurrently, if "EFB Copies To Texture Only" is checked, we don\'t populate the guest memory where the copy is stored, instead zeroing it out. This leads to breakage in games which read this memory on the CPU, which is often used for object detection, visual effects, etc.\r\n\r\nIf this option is disabled, we perform the readback from the host\'s GPU to the guest RAM. This means the CPU has to wait until the GPU has finished rendering, introducing a synchronization point, stalling the CPU. This means large drops in FPS, depending on how many copies are happening in each frame. \r\n\r\nIt\'s possible the guest won\'t touch this RAM at all, and it is just using it for the GPU! Which means we stalled for nothing.\r\n\r\n**The solution:**\r\nIn this PR, we are essentially creating "Lazy EFB Copies". Instead of zeroing out the memory, we change the protection on the pages that back this memory to PROT_NONE. Therefore, if the guest does read the memory after the copy, we will get a page fault, and can perform the readback. If it doesn\'t read it, we can skip the readback. Well, we defer it until we know the GPU is finished rendering, and copy it then instead.\r\n\r\nUnfortunately, we can only do this at a page granularity, which means potentially up to 4KB at either end of the copy bounds will also be locked. If the game touches this region, we still still fault and have to do the readback, even though the actual copy may not have been touched. This is likely where the performance won\'t be as good as EFB2Tex, and we can\'t get rid of the option entirely.\r\n\r\nWe can use this for other things, like hashless texture caching too. Instead of changing to PROT_NONE, we can change to PROT_READ, which means if the game modifies the memory backing these textures, we will fault then, and can force a re-hash/invalidate the cache entry. If we never fault, we know the texture hasn\'t changed, and therefore can skip hashing it entirely!\r\n\r\n**State:**\r\nDon\'t expect huge performance boosts across the board yet. Some games are faster, others not so much, and may be slower than master with EFB2RAM on, due to the extra page fault overhead. Particularly around those which place copies adjacent in memory, there is still some optimization to do.\r\n\r\nCurrently, it\'s only implemented in Vulkan, and dual core is not supported yet. This will come later. The easiest way to support DC will be via the AsyncRequests class, and then we can apply it on any thread.\r\n\r\n- [x] Base page locking support in Memmap (is this the best place to put it?)\r\n- [ ] Implement support for faulting from any thread, and executing callbacks on the GPU thread (Dual Core, AsyncRequests)\r\n- [x] Deferred EFB copies in texture cache base\r\n- [ ] Abstract texture readback on D3D\r\n- [ ] Deferring EFB copies on D3D\r\n- [ ] Abstract texture readback on D3D\r\n- [ ] Deferring EFB copies on OpenGL\r\n- [x] Abstract texture readback on Vulkan\r\n- [x] Deferring EFB copies on Vulkan\r\n- [x] Hashless texture cache (currently disabled by default)\r\n- [ ] Locking for paletted textures in texture cache\r\n- [ ] Make things generally faster!\r\n', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/events', 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'url': 'https://api.github.com/users/stenzek', 'gravatar_id': '', 'html_url': 'https://github.com/stenzek', 'id': 11288319, 'repos_url': 'https://api.github.com/users/stenzek/repos', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'login': 'stenzek', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'followers_url': 'https://api.github.com/users/stenzek/followers', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'type': 'User'}, 'number': 6128, 'assignee': None, 'comments': 1, 'updated_at': '2017-10-21T23:46:34Z', 'state': 'open', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6128.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6128.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6128'}, 'author_association': 'CONTRIBUTOR', 'labels': [{'color': 'fad8c7', 'name': 'RFC', 'id': 221809816, 'default': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/RFC'}, {'color': '0052cc', 'name': 'WIP', 'id': 221808232, 'default': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/WIP'}], 'title': 'Guest Memory Locking'}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128', 'created_at': '2017-10-21T23:46:34Z', 'user': {'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15224722?v=4', 'url': 'https://api.github.com/users/iwubcode', 'gravatar_id': '', 'html_url': 'https://github.com/iwubcode', 'id': 15224722, 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'login': 'iwubcode', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'type': 'User'}, 'updated_at': '2017-10-21T23:46:34Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338440360', 'body': "Nice job @stenzek , glad to see this is getting closer to fruition.  I imagine some of this will be simpler too once we get other things finished like your Abstract Pipeline and a texture cache cleanup.\r\n\r\nFor what it's worth, I have readback for all the backends in my Hybrid XFB PR.  After that gets merged, we might need to make some tweaks to fit what you need here, I haven't looked at it yet.\r\n\r\nAnyway, I'm excited to try this out!!", 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128#issuecomment-338440360', 'id': 338440360, 'author_association': 'CONTRIBUTOR'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3763, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-21T23:45:31Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-21T22:29:04Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 142, 'private': False, 'forks_count': 952, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349115, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 142, 'stargazers_count': 3763, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3763, 'forks': 952, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}}, 'type': 'gh_issue_comment', 'title': 'Guest Memory Locking'}
2017-10-21T22:48:55.955087	{'action': 'edited', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6128#issuecomment-338437617', 'id': 6128, 'source': 'ghhookparser', 'author': 'shuffle2', 'body': '> If the game touches this region, we still still fault and have to do the readback, even though the actual copy may not have been touched.\r\n\r\nYou can\'t prevent taking a fault in this case, but it should be pretty straightforward to check the actual faulting address (with byte granularity), and skip most of the work, no? Sorry if it\'s already implemented like that, haven\'t looked at patch.\r\n\r\nI\'d expect a "nop fault" to be pretty cheap, although of course more overhead than doing nothing.', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'edited', 'sender': {'gists_url': 'https://api.github.com/users/shuffle2/gists{/gist_id}', 'avatar_url': 'https://avatars0.githubusercontent.com/u/113063?v=4', 'url': 'https://api.github.com/users/shuffle2', 'gravatar_id': '', 'html_url': 'https://github.com/shuffle2', 'id': 113063, 'repos_url': 'https://api.github.com/users/shuffle2/repos', 'events_url': 'https://api.github.com/users/shuffle2/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/shuffle2/subscriptions', 'starred_url': 'https://api.github.com/users/shuffle2/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/shuffle2/following{/other_user}', 'login': 'shuffle2', 'received_events_url': 'https://api.github.com/users/shuffle2/received_events', 'followers_url': 'https://api.github.com/users/shuffle2/followers', 'organizations_url': 'https://api.github.com/users/shuffle2/orgs', 'type': 'User'}, 'changes': {'body': {'from': "> If the game touches this region, we still still fault and have to do the readback, even though the actual copy may not have been touched.\r\n\r\nYou can't prevent taking a fault in this case, but it should be pretty straightforward to check the actual faulting address (with byte granularity), and skip most of the work, no? Sorry if it's already implemented like that, haven't looked at patch."}}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128', 'created_at': '2017-10-21T22:47:56Z', 'user': {'gists_url': 'https://api.github.com/users/shuffle2/gists{/gist_id}', 'avatar_url': 'https://avatars0.githubusercontent.com/u/113063?v=4', 'url': 'https://api.github.com/users/shuffle2', 'gravatar_id': '', 'html_url': 'https://github.com/shuffle2', 'id': 113063, 'repos_url': 'https://api.github.com/users/shuffle2/repos', 'events_url': 'https://api.github.com/users/shuffle2/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/shuffle2/subscriptions', 'starred_url': 'https://api.github.com/users/shuffle2/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/shuffle2/following{/other_user}', 'login': 'shuffle2', 'received_events_url': 'https://api.github.com/users/shuffle2/received_events', 'followers_url': 'https://api.github.com/users/shuffle2/followers', 'organizations_url': 'https://api.github.com/users/shuffle2/orgs', 'type': 'User'}, 'updated_at': '2017-10-21T22:48:55Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338437617', 'body': '> If the game touches this region, we still still fault and have to do the readback, even though the actual copy may not have been touched.\r\n\r\nYou can\'t prevent taking a fault in this case, but it should be pretty straightforward to check the actual faulting address (with byte granularity), and skip most of the work, no? Sorry if it\'s already implemented like that, haven\'t looked at patch.\r\n\r\nI\'d expect a "nop fault" to be pretty cheap, although of course more overhead than doing nothing.', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128#issuecomment-338437617', 'id': 338437617, 'author_association': 'CONTRIBUTOR'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3763, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-21T22:48:54Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-21T22:29:04Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 142, 'private': False, 'forks_count': 952, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349115, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 142, 'stargazers_count': 3763, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3763, 'forks': 952, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128', 'milestone': None, 'locked': False, 'id': 267388678, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/comments', 'assignees': [], 'created_at': '2017-10-21T15:13:37Z', 'body': 'This PR is a huge work-in-progress, implementing guest memory page locking. I\'ve had this around for a while, but it\'s at the point where it\'s working in at least a few games, so it\'s worth getting comments, ideas for optimizations, etc. There\'s also a lot of debugging code left in which has to be removed.\r\n\r\nThere\'s also a few commits that aren\'t directly related from my other PRs to simplify the Vulkan implementation, it\'s likely they will be merged before this is finished.\r\n\r\nThe idea is nothing new, it\'s been floating around in IRC discussions for ages, but as far as I\'m aware nobody has implemented it to this level yet.\r\n\r\n**The problem:**\r\nCurrently, if "EFB Copies To Texture Only" is checked, we don\'t populate the guest memory where the copy is stored, instead zeroing it out. This leads to breakage in games which read this memory on the CPU, which is often used for object detection, visual effects, etc.\r\n\r\nIf this option is disabled, we perform the readback from the host\'s GPU to the guest RAM. This means the CPU has to wait until the GPU has finished rendering, introducing a synchronization point, stalling the CPU. This means large drops in FPS, depending on how many copies are happening in each frame. \r\n\r\nIt\'s possible the guest won\'t touch this RAM at all, and it is just using it for the GPU! Which means we stalled for nothing.\r\n\r\n**The solution:**\r\nIn this PR, we are essentially creating "Lazy EFB Copies". Instead of zeroing out the memory, we change the protection on the pages that back this memory to PROT_NONE. Therefore, if the guest does read the memory after the copy, we will get a page fault, and can perform the readback. If it doesn\'t read it, we can skip the readback. Well, we defer it until we know the GPU is finished rendering, and copy it then instead.\r\n\r\nUnfortunately, we can only do this at a page granularity, which means potentially up to 4KB at either end of the copy bounds will also be locked. If the game touches this region, we still still fault and have to do the readback, even though the actual copy may not have been touched. This is likely where the performance won\'t be as good as EFB2Tex, and we can\'t get rid of the option entirely.\r\n\r\nWe can use this for other things, like hashless texture caching too. Instead of changing to PROT_NONE, we can change to PROT_READ, which means if the game modifies the memory backing these textures, we will fault then, and can force a re-hash/invalidate the cache entry. If we never fault, we know the texture hasn\'t changed, and therefore can skip hashing it entirely!\r\n\r\n**State:**\r\nDon\'t expect huge performance boosts across the board yet. Some games are faster, others not so much, and may be slower than master with EFB2RAM on, due to the extra page fault overhead. Particularly around those which place copies adjacent in memory, there is still some optimization to do.\r\n\r\nCurrently, it\'s only implemented in Vulkan, and dual core is not supported yet. This will come later. The easiest way to support DC will be via the AsyncRequests class, and then we can apply it on any thread.\r\n\r\n- [x] Base page locking support in Memmap (is this the best place to put it?)\r\n- [ ] Implement support for faulting from any thread, and executing callbacks on the GPU thread (Dual Core, AsyncRequests)\r\n- [x] Deferred EFB copies in texture cache base\r\n- [ ] Abstract texture readback on D3D\r\n- [ ] Deferring EFB copies on D3D\r\n- [ ] Abstract texture readback on D3D\r\n- [ ] Deferring EFB copies on OpenGL\r\n- [x] Abstract texture readback on Vulkan\r\n- [x] Deferring EFB copies on Vulkan\r\n- [x] Hashless texture cache (currently disabled by default)\r\n- [ ] Locking for paletted textures in texture cache\r\n- [ ] Make things generally faster!\r\n', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/events', 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'url': 'https://api.github.com/users/stenzek', 'gravatar_id': '', 'html_url': 'https://github.com/stenzek', 'id': 11288319, 'repos_url': 'https://api.github.com/users/stenzek/repos', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'login': 'stenzek', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'followers_url': 'https://api.github.com/users/stenzek/followers', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'type': 'User'}, 'number': 6128, 'assignee': None, 'comments': 1, 'updated_at': '2017-10-21T22:48:55Z', 'state': 'open', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6128.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6128.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6128'}, 'author_association': 'CONTRIBUTOR', 'labels': [{'color': 'fad8c7', 'name': 'RFC', 'id': 221809816, 'default': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/RFC'}, {'color': '0052cc', 'name': 'WIP', 'id': 221808232, 'default': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/WIP'}], 'title': 'Guest Memory Locking'}}, 'type': 'gh_issue_comment', 'title': 'Guest Memory Locking'}
2017-10-21T22:47:57.630851	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6128#issuecomment-338437617', 'id': 6128, 'source': 'ghhookparser', 'author': 'shuffle2', 'body': "> If the game touches this region, we still still fault and have to do the readback, even though the actual copy may not have been touched.\r\n\r\nYou can't prevent taking a fault in this case, but it should be pretty straightforward to check the actual faulting address (with byte granularity), and skip most of the work, no? Sorry if it's already implemented like that, haven't looked at patch.", 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'sender': {'gists_url': 'https://api.github.com/users/shuffle2/gists{/gist_id}', 'avatar_url': 'https://avatars0.githubusercontent.com/u/113063?v=4', 'url': 'https://api.github.com/users/shuffle2', 'gravatar_id': '', 'html_url': 'https://github.com/shuffle2', 'id': 113063, 'repos_url': 'https://api.github.com/users/shuffle2/repos', 'events_url': 'https://api.github.com/users/shuffle2/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/shuffle2/subscriptions', 'starred_url': 'https://api.github.com/users/shuffle2/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/shuffle2/following{/other_user}', 'login': 'shuffle2', 'received_events_url': 'https://api.github.com/users/shuffle2/received_events', 'followers_url': 'https://api.github.com/users/shuffle2/followers', 'organizations_url': 'https://api.github.com/users/shuffle2/orgs', 'type': 'User'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128', 'milestone': None, 'locked': False, 'id': 267388678, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/comments', 'assignees': [], 'created_at': '2017-10-21T15:13:37Z', 'body': 'This PR is a huge work-in-progress, implementing guest memory page locking. I\'ve had this around for a while, but it\'s at the point where it\'s working in at least a few games, so it\'s worth getting comments, ideas for optimizations, etc. There\'s also a lot of debugging code left in which has to be removed.\r\n\r\nThere\'s also a few commits that aren\'t directly related from my other PRs to simplify the Vulkan implementation, it\'s likely they will be merged before this is finished.\r\n\r\nThe idea is nothing new, it\'s been floating around in IRC discussions for ages, but as far as I\'m aware nobody has implemented it to this level yet.\r\n\r\n**The problem:**\r\nCurrently, if "EFB Copies To Texture Only" is checked, we don\'t populate the guest memory where the copy is stored, instead zeroing it out. This leads to breakage in games which read this memory on the CPU, which is often used for object detection, visual effects, etc.\r\n\r\nIf this option is disabled, we perform the readback from the host\'s GPU to the guest RAM. This means the CPU has to wait until the GPU has finished rendering, introducing a synchronization point, stalling the CPU. This means large drops in FPS, depending on how many copies are happening in each frame. \r\n\r\nIt\'s possible the guest won\'t touch this RAM at all, and it is just using it for the GPU! Which means we stalled for nothing.\r\n\r\n**The solution:**\r\nIn this PR, we are essentially creating "Lazy EFB Copies". Instead of zeroing out the memory, we change the protection on the pages that back this memory to PROT_NONE. Therefore, if the guest does read the memory after the copy, we will get a page fault, and can perform the readback. If it doesn\'t read it, we can skip the readback. Well, we defer it until we know the GPU is finished rendering, and copy it then instead.\r\n\r\nUnfortunately, we can only do this at a page granularity, which means potentially up to 4KB at either end of the copy bounds will also be locked. If the game touches this region, we still still fault and have to do the readback, even though the actual copy may not have been touched. This is likely where the performance won\'t be as good as EFB2Tex, and we can\'t get rid of the option entirely.\r\n\r\nWe can use this for other things, like hashless texture caching too. Instead of changing to PROT_NONE, we can change to PROT_READ, which means if the game modifies the memory backing these textures, we will fault then, and can force a re-hash/invalidate the cache entry. If we never fault, we know the texture hasn\'t changed, and therefore can skip hashing it entirely!\r\n\r\n**State:**\r\nDon\'t expect huge performance boosts across the board yet. Some games are faster, others not so much, and may be slower than master with EFB2RAM on, due to the extra page fault overhead. Particularly around those which place copies adjacent in memory, there is still some optimization to do.\r\n\r\nCurrently, it\'s only implemented in Vulkan, and dual core is not supported yet. This will come later. The easiest way to support DC will be via the AsyncRequests class, and then we can apply it on any thread.\r\n\r\n- [x] Base page locking support in Memmap (is this the best place to put it?)\r\n- [ ] Implement support for faulting from any thread, and executing callbacks on the GPU thread (Dual Core, AsyncRequests)\r\n- [x] Deferred EFB copies in texture cache base\r\n- [ ] Abstract texture readback on D3D\r\n- [ ] Deferring EFB copies on D3D\r\n- [ ] Abstract texture readback on D3D\r\n- [ ] Deferring EFB copies on OpenGL\r\n- [x] Abstract texture readback on Vulkan\r\n- [x] Deferring EFB copies on Vulkan\r\n- [x] Hashless texture cache (currently disabled by default)\r\n- [ ] Locking for paletted textures in texture cache\r\n- [ ] Make things generally faster!\r\n', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128/events', 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'url': 'https://api.github.com/users/stenzek', 'gravatar_id': '', 'html_url': 'https://github.com/stenzek', 'id': 11288319, 'repos_url': 'https://api.github.com/users/stenzek/repos', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'login': 'stenzek', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'followers_url': 'https://api.github.com/users/stenzek/followers', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'type': 'User'}, 'number': 6128, 'assignee': None, 'comments': 0, 'updated_at': '2017-10-21T22:47:56Z', 'state': 'open', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6128.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6128.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6128'}, 'author_association': 'CONTRIBUTOR', 'labels': [{'color': 'fad8c7', 'name': 'RFC', 'id': 221809816, 'default': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/RFC'}, {'color': '0052cc', 'name': 'WIP', 'id': 221808232, 'default': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/WIP'}], 'title': 'Guest Memory Locking'}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6128', 'created_at': '2017-10-21T22:47:56Z', 'user': {'gists_url': 'https://api.github.com/users/shuffle2/gists{/gist_id}', 'avatar_url': 'https://avatars0.githubusercontent.com/u/113063?v=4', 'url': 'https://api.github.com/users/shuffle2', 'gravatar_id': '', 'html_url': 'https://github.com/shuffle2', 'id': 113063, 'repos_url': 'https://api.github.com/users/shuffle2/repos', 'events_url': 'https://api.github.com/users/shuffle2/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/shuffle2/subscriptions', 'starred_url': 'https://api.github.com/users/shuffle2/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/shuffle2/following{/other_user}', 'login': 'shuffle2', 'received_events_url': 'https://api.github.com/users/shuffle2/received_events', 'followers_url': 'https://api.github.com/users/shuffle2/followers', 'organizations_url': 'https://api.github.com/users/shuffle2/orgs', 'type': 'User'}, 'updated_at': '2017-10-21T22:47:56Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338437617', 'body': "> If the game touches this region, we still still fault and have to do the readback, even though the actual copy may not have been touched.\r\n\r\nYou can't prevent taking a fault in this case, but it should be pretty straightforward to check the actual faulting address (with byte granularity), and skip most of the work, no? Sorry if it's already implemented like that, haven't looked at patch.", 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6128#issuecomment-338437617', 'id': 338437617, 'author_association': 'CONTRIBUTOR'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3763, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-21T21:42:11Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-21T22:29:04Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 143, 'private': False, 'forks_count': 952, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349115, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 143, 'stargazers_count': 3763, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3763, 'forks': 952, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}}, 'type': 'gh_issue_comment', 'title': 'Guest Memory Locking'}
2017-10-21T19:48:53.755598	{'action': 'deleted', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6127#issuecomment-338427360', 'id': 6127, 'source': 'ghhookparser', 'author': 'hackbar', 'body': '@dolpin-emu-bot rebuild', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'deleted', 'sender': {'gists_url': 'https://api.github.com/users/hackbar/gists{/gist_id}', 'avatar_url': 'https://avatars3.githubusercontent.com/u/7153163?v=4', 'url': 'https://api.github.com/users/hackbar', 'gravatar_id': '', 'html_url': 'https://github.com/hackbar', 'id': 7153163, 'repos_url': 'https://api.github.com/users/hackbar/repos', 'events_url': 'https://api.github.com/users/hackbar/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/hackbar/subscriptions', 'starred_url': 'https://api.github.com/users/hackbar/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/hackbar/following{/other_user}', 'login': 'hackbar', 'received_events_url': 'https://api.github.com/users/hackbar/received_events', 'followers_url': 'https://api.github.com/users/hackbar/followers', 'organizations_url': 'https://api.github.com/users/hackbar/orgs', 'type': 'User'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6127', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6127/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6127', 'milestone': None, 'locked': False, 'id': 267352819, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6127/comments', 'assignees': [], 'created_at': '2017-10-21T05:39:49Z', 'body': 'Title says all. For some reason, the current preferences file mentions Genymotion plugin and Android Studio will keep bugging the user to update this plugin after importing the Code Style preferences, even if the user never installed or intends to use Genymotion on their machine.\r\n\r\nAs GitHub will show the diff as binary, the change in this PR is simply removing the reference to the plugin in `installed.txt` file found inside the JAR, thus, fixing this problem. Everything else remains untouched.', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6127/events', 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'avatar_url': 'https://avatars0.githubusercontent.com/u/8005966?v=4', 'url': 'https://api.github.com/users/mbc07', 'gravatar_id': '', 'html_url': 'https://github.com/mbc07', 'id': 8005966, 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'login': 'mbc07', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'type': 'User'}, 'number': 6127, 'assignee': None, 'comments': 1, 'updated_at': '2017-10-21T19:47:24Z', 'state': 'open', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6127.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6127', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6127.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6127'}, 'author_association': 'CONTRIBUTOR', 'labels': [], 'title': "[Android] Don't install Genymotion plugin when importing Code Style preferences file"}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6127', 'created_at': '2017-10-21T19:39:20Z', 'user': {'gists_url': 'https://api.github.com/users/hackbar/gists{/gist_id}', 'avatar_url': 'https://avatars3.githubusercontent.com/u/7153163?v=4', 'url': 'https://api.github.com/users/hackbar', 'gravatar_id': '', 'html_url': 'https://github.com/hackbar', 'id': 7153163, 'repos_url': 'https://api.github.com/users/hackbar/repos', 'events_url': 'https://api.github.com/users/hackbar/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/hackbar/subscriptions', 'starred_url': 'https://api.github.com/users/hackbar/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/hackbar/following{/other_user}', 'login': 'hackbar', 'received_events_url': 'https://api.github.com/users/hackbar/received_events', 'followers_url': 'https://api.github.com/users/hackbar/followers', 'organizations_url': 'https://api.github.com/users/hackbar/orgs', 'type': 'User'}, 'updated_at': '2017-10-21T19:39:20Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338427360', 'body': '@dolpin-emu-bot rebuild', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6127#issuecomment-338427360', 'id': 338427360, 'author_association': 'CONTRIBUTOR'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3763, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-21T19:41:27Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-21T17:01:50Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 139, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349115, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 139, 'stargazers_count': 3763, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3763, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}}, 'type': 'gh_issue_comment', 'title': "[Android] Don't install Genymotion plugin when importing Code Style preferences file"}
2017-10-21T19:47:24.914958	{'action': 'deleted', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6127#issuecomment-338427798', 'id': 6127, 'source': 'ghhookparser', 'author': 'ligfx', 'body': '@dolphin-emu-bot rebuild', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'deleted', 'sender': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6127', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6127/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6127', 'milestone': None, 'locked': False, 'id': 267352819, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6127/comments', 'assignees': [], 'created_at': '2017-10-21T05:39:49Z', 'body': 'Title says all. For some reason, the current preferences file mentions Genymotion plugin and Android Studio will keep bugging the user to update this plugin after importing the Code Style preferences, even if the user never installed or intends to use Genymotion on their machine.\r\n\r\nAs GitHub will show the diff as binary, the change in this PR is simply removing the reference to the plugin in `installed.txt` file found inside the JAR, thus, fixing this problem. Everything else remains untouched.', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6127/events', 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'avatar_url': 'https://avatars0.githubusercontent.com/u/8005966?v=4', 'url': 'https://api.github.com/users/mbc07', 'gravatar_id': '', 'html_url': 'https://github.com/mbc07', 'id': 8005966, 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'login': 'mbc07', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'type': 'User'}, 'number': 6127, 'assignee': None, 'comments': 2, 'updated_at': '2017-10-21T19:47:21Z', 'state': 'open', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6127.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6127', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6127.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6127'}, 'author_association': 'CONTRIBUTOR', 'labels': [], 'title': "[Android] Don't install Genymotion plugin when importing Code Style preferences file"}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6127', 'created_at': '2017-10-21T19:47:21Z', 'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'updated_at': '2017-10-21T19:47:21Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338427798', 'body': '@dolphin-emu-bot rebuild', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6127#issuecomment-338427798', 'id': 338427798, 'author_association': 'CONTRIBUTOR'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3763, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-21T19:41:27Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-21T17:01:50Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 139, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349115, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 139, 'stargazers_count': 3763, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3763, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}}, 'type': 'gh_issue_comment', 'title': "[Android] Don't install Genymotion plugin when importing Code Style preferences file"}
2017-10-21T19:47:22.356779	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6127#issuecomment-338427798', 'id': 6127, 'source': 'ghhookparser', 'author': 'ligfx', 'body': '@dolphin-emu-bot rebuild', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'sender': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6127', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6127/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6127', 'milestone': None, 'locked': False, 'id': 267352819, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6127/comments', 'assignees': [], 'created_at': '2017-10-21T05:39:49Z', 'body': 'Title says all. For some reason, the current preferences file mentions Genymotion plugin and Android Studio will keep bugging the user to update this plugin after importing the Code Style preferences, even if the user never installed or intends to use Genymotion on their machine.\r\n\r\nAs GitHub will show the diff as binary, the change in this PR is simply removing the reference to the plugin in `installed.txt` file found inside the JAR, thus, fixing this problem. Everything else remains untouched.', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6127/events', 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'avatar_url': 'https://avatars0.githubusercontent.com/u/8005966?v=4', 'url': 'https://api.github.com/users/mbc07', 'gravatar_id': '', 'html_url': 'https://github.com/mbc07', 'id': 8005966, 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'login': 'mbc07', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'type': 'User'}, 'number': 6127, 'assignee': None, 'comments': 1, 'updated_at': '2017-10-21T19:47:21Z', 'state': 'open', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6127.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6127', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6127.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6127'}, 'author_association': 'CONTRIBUTOR', 'labels': [], 'title': "[Android] Don't install Genymotion plugin when importing Code Style preferences file"}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6127', 'created_at': '2017-10-21T19:47:21Z', 'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'updated_at': '2017-10-21T19:47:21Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338427798', 'body': '@dolphin-emu-bot rebuild', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6127#issuecomment-338427798', 'id': 338427798, 'author_association': 'CONTRIBUTOR'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3763, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-21T19:41:27Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-21T17:01:50Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 139, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349115, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 139, 'stargazers_count': 3763, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3763, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}}, 'type': 'gh_issue_comment', 'title': "[Android] Don't install Genymotion plugin when importing Code Style preferences file"}
2017-10-21T19:39:21.912480	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6127#issuecomment-338427360', 'id': 6127, 'source': 'ghhookparser', 'author': 'hackbar', 'body': '@dolpin-emu-bot rebuild', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'sender': {'gists_url': 'https://api.github.com/users/hackbar/gists{/gist_id}', 'avatar_url': 'https://avatars3.githubusercontent.com/u/7153163?v=4', 'url': 'https://api.github.com/users/hackbar', 'gravatar_id': '', 'html_url': 'https://github.com/hackbar', 'id': 7153163, 'repos_url': 'https://api.github.com/users/hackbar/repos', 'events_url': 'https://api.github.com/users/hackbar/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/hackbar/subscriptions', 'starred_url': 'https://api.github.com/users/hackbar/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/hackbar/following{/other_user}', 'login': 'hackbar', 'received_events_url': 'https://api.github.com/users/hackbar/received_events', 'followers_url': 'https://api.github.com/users/hackbar/followers', 'organizations_url': 'https://api.github.com/users/hackbar/orgs', 'type': 'User'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6127', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6127/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6127', 'milestone': None, 'locked': False, 'id': 267352819, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6127/comments', 'assignees': [], 'created_at': '2017-10-21T05:39:49Z', 'body': 'Title says all. For some reason, the current preferences file mentions Genymotion plugin and Android Studio will keep bugging the user to update this plugin after importing the Code Style preferences, even if the user never installed or intends to use Genymotion on their machine.\r\n\r\nAs GitHub will show the diff as binary, the change in this PR is simply removing the reference to the plugin in `installed.txt` file found inside the JAR, thus, fixing this problem. Everything else remains untouched.', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6127/events', 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'avatar_url': 'https://avatars0.githubusercontent.com/u/8005966?v=4', 'url': 'https://api.github.com/users/mbc07', 'gravatar_id': '', 'html_url': 'https://github.com/mbc07', 'id': 8005966, 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'login': 'mbc07', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'type': 'User'}, 'number': 6127, 'assignee': None, 'comments': 0, 'updated_at': '2017-10-21T19:39:20Z', 'state': 'open', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6127.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6127', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6127.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6127'}, 'author_association': 'CONTRIBUTOR', 'labels': [], 'title': "[Android] Don't install Genymotion plugin when importing Code Style preferences file"}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6127', 'created_at': '2017-10-21T19:39:20Z', 'user': {'gists_url': 'https://api.github.com/users/hackbar/gists{/gist_id}', 'avatar_url': 'https://avatars3.githubusercontent.com/u/7153163?v=4', 'url': 'https://api.github.com/users/hackbar', 'gravatar_id': '', 'html_url': 'https://github.com/hackbar', 'id': 7153163, 'repos_url': 'https://api.github.com/users/hackbar/repos', 'events_url': 'https://api.github.com/users/hackbar/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/hackbar/subscriptions', 'starred_url': 'https://api.github.com/users/hackbar/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/hackbar/following{/other_user}', 'login': 'hackbar', 'received_events_url': 'https://api.github.com/users/hackbar/received_events', 'followers_url': 'https://api.github.com/users/hackbar/followers', 'organizations_url': 'https://api.github.com/users/hackbar/orgs', 'type': 'User'}, 'updated_at': '2017-10-21T19:39:20Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338427360', 'body': '@dolpin-emu-bot rebuild', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6127#issuecomment-338427360', 'id': 338427360, 'author_association': 'CONTRIBUTOR'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3763, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-21T19:21:45Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-21T17:01:50Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 139, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349115, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 139, 'stargazers_count': 3763, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3763, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}}, 'type': 'gh_issue_comment', 'title': "[Android] Don't install Genymotion plugin when importing Code Style preferences file"}
2017-10-21T04:22:25.928909	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#issuecomment-338362861', 'id': 6118, 'source': 'ghhookparser', 'author': 'iwubcode', 'body': "@Tomcc - for what it's worth, I think the purple idea (or something else?) would be really handy to quickly analyze games and find out which ones might implore this technique.  I generally find lining up the log with pretty much anything to be fairly difficult and so I much prefer visual stuff.\r\n\r\nOff topic but I actually wish Dolphin had more visual debugging stuff.  I think it might be useful for new users trying to learn or if you're trying to investigate a problem.", 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'created', 'sender': {'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15224722?v=4', 'url': 'https://api.github.com/users/iwubcode', 'gravatar_id': '', 'html_url': 'https://github.com/iwubcode', 'id': 15224722, 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'login': 'iwubcode', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'type': 'User'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6118', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118', 'milestone': None, 'locked': False, 'id': 265624046, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118/comments', 'assignees': [], 'created_at': '2017-10-16T01:35:10Z', 'body': "Super Mario Galaxy renders fog and various other effects like lava and water by tinting higher mipmap levels.\r\nThis is a neat trick and all, but it means that by letting the host GPU handle mipmaps at resolutions higher than the wii could output (and especially by activating anisotropic filtering), the effect breaks down because the mipmaps get pushed much farther down from the camera than originally intended. In fact they almost disappear!\r\n\r\nBefore (6x IR):\r\n\r\n![00000000-3](https://user-images.githubusercontent.com/553214/31591619-402b7a76-b1d6-11e7-84ae-d3486e12f5d1.png)\r\n\r\nNote how the background star, lava and the reflections in the Starbits ice things are broken.\r\n\r\nWith the hack enabled (still 6x IR):\r\n![00000000-2](https://user-images.githubusercontent.com/553214/31591634-6fd44668-b1d6-11e7-9910-7ff3b765dae1.png)\r\n\r\nSo to fix this I did a bunch of things:\r\n- Added a checkbox in Graphics/Hacks. I added it as an Hack because the downside of this fix is that with this enabled lower LODs show unnecessarily closer! In any game that doesn't use LOD tricks, this causes blurrier textures (although more accurate to the original!)\r\nThis option is auto-disabled at 1x IR.\r\n- When the option is on, instead of using the native texture read functions, all shaders (normal and uber) go through a `texture_read` function. `texture_read` selects the LOD level by hand so that it can scale the ddx/ddy by the IR scale and get an approximation of the original values on real consoles. This is not super precise, I guess, along borders (where the gradients change quickly) but overall it seems to work pretty well! \r\nNote that the new function is also slower, because it has to compute the levels by hand! I couldn't see any real slowdown when playing on my computer, though.\r\n- When the option is on, it completely disables Anisotropic Filtering as well. Besides the fact that `textureLod` ignores it, Anisotropic is another effect that greatly pushes LODs out so you don't want to use it either.\r\n- Enabled that option by default in Super Mario Galaxy 1 & 2, because I think it makes no sense to play them at higher IR with broken graphics. Most textures don't seem to have more than 1 mipmaps anyway, except the ones used this way. weird.\r\n- Fixed a typo :D\r\n\r\nLet me know what you think!\r\n\r\n", 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118/events', 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/Tomcc/gists{/gist_id}', 'avatar_url': 'https://avatars3.githubusercontent.com/u/553214?v=4', 'url': 'https://api.github.com/users/Tomcc', 'gravatar_id': '', 'html_url': 'https://github.com/Tomcc', 'id': 553214, 'repos_url': 'https://api.github.com/users/Tomcc/repos', 'events_url': 'https://api.github.com/users/Tomcc/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/Tomcc/subscriptions', 'starred_url': 'https://api.github.com/users/Tomcc/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/Tomcc/following{/other_user}', 'login': 'Tomcc', 'received_events_url': 'https://api.github.com/users/Tomcc/received_events', 'followers_url': 'https://api.github.com/users/Tomcc/followers', 'organizations_url': 'https://api.github.com/users/Tomcc/orgs', 'type': 'User'}, 'number': 6118, 'assignee': None, 'comments': 72, 'updated_at': '2017-10-21T04:22:25Z', 'state': 'open', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6118.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6118', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6118.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118'}, 'author_association': 'NONE', 'labels': [], 'title': 'Resolution independent mipmaps (high IR Super Mario Galaxy Fix)'}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118', 'created_at': '2017-10-21T04:22:25Z', 'user': {'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15224722?v=4', 'url': 'https://api.github.com/users/iwubcode', 'gravatar_id': '', 'html_url': 'https://github.com/iwubcode', 'id': 15224722, 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'login': 'iwubcode', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'type': 'User'}, 'updated_at': '2017-10-21T04:22:25Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338362861', 'body': "@Tomcc - for what it's worth, I think the purple idea (or something else?) would be really handy to quickly analyze games and find out which ones might implore this technique.  I generally find lining up the log with pretty much anything to be fairly difficult and so I much prefer visual stuff.\r\n\r\nOff topic but I actually wish Dolphin had more visual debugging stuff.  I think it might be useful for new users trying to learn or if you're trying to investigate a problem.", 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6118#issuecomment-338362861', 'id': 338362861, 'author_association': 'CONTRIBUTOR'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3760, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-21T02:11:47Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-21T01:38:56Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 136, 'private': False, 'forks_count': 952, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349115, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 136, 'stargazers_count': 3760, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3760, 'forks': 952, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}}, 'type': 'gh_issue_comment', 'title': 'Resolution independent mipmaps (high IR Super Mario Galaxy Fix)'}
2017-10-21T00:39:27.213377	{'action': 'edited', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#issuecomment-338351562', 'id': 6118, 'source': 'ghhookparser', 'author': 'magcius', 'body': "The GPU will certainly do linear math on texels, since the GX doesn't have any gamma correction circuitry at all. It's likely the mipmaps were generated with an offline tool that was colorspace-correct but are incorrectly blended at runtime.", 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'raw': {'action': 'edited', 'sender': {'gists_url': 'https://api.github.com/users/magcius/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/40890?v=4', 'url': 'https://api.github.com/users/magcius', 'gravatar_id': '', 'html_url': 'https://github.com/magcius', 'id': 40890, 'repos_url': 'https://api.github.com/users/magcius/repos', 'events_url': 'https://api.github.com/users/magcius/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/magcius/subscriptions', 'starred_url': 'https://api.github.com/users/magcius/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/magcius/following{/other_user}', 'login': 'magcius', 'received_events_url': 'https://api.github.com/users/magcius/received_events', 'followers_url': 'https://api.github.com/users/magcius/followers', 'organizations_url': 'https://api.github.com/users/magcius/orgs', 'type': 'User'}, 'changes': {'body': {'from': "The GPU will certainly do linear math on texels, since the GX doesn't have any gamma correction circuitry at all. It's likely the mipmaps were generated with an offline tool that was colorspace-correct but incorrectly blended at runtime."}}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118', 'created_at': '2017-10-21T00:39:07Z', 'user': {'gists_url': 'https://api.github.com/users/magcius/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/40890?v=4', 'url': 'https://api.github.com/users/magcius', 'gravatar_id': '', 'html_url': 'https://github.com/magcius', 'id': 40890, 'repos_url': 'https://api.github.com/users/magcius/repos', 'events_url': 'https://api.github.com/users/magcius/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/magcius/subscriptions', 'starred_url': 'https://api.github.com/users/magcius/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/magcius/following{/other_user}', 'login': 'magcius', 'received_events_url': 'https://api.github.com/users/magcius/received_events', 'followers_url': 'https://api.github.com/users/magcius/followers', 'organizations_url': 'https://api.github.com/users/magcius/orgs', 'type': 'User'}, 'updated_at': '2017-10-21T00:39:26Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338351562', 'body': "The GPU will certainly do linear math on texels, since the GX doesn't have any gamma correction circuitry at all. It's likely the mipmaps were generated with an offline tool that was colorspace-correct but are incorrectly blended at runtime.", 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6118#issuecomment-338351562', 'id': 338351562, 'author_association': 'MEMBER'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3759, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-20T08:38:57Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-20T20:48:50Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 135, 'private': False, 'forks_count': 952, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349115, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 135, 'stargazers_count': 3759, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3759, 'forks': 952, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6118', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118', 'milestone': None, 'locked': False, 'id': 265624046, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118/comments', 'assignees': [], 'created_at': '2017-10-16T01:35:10Z', 'body': "Super Mario Galaxy renders fog and various other effects like lava and water by tinting higher mipmap levels.\r\nThis is a neat trick and all, but it means that by letting the host GPU handle mipmaps at resolutions higher than the wii could output (and especially by activating anisotropic filtering), the effect breaks down because the mipmaps get pushed much farther down from the camera than originally intended. In fact they almost disappear!\r\n\r\nBefore (6x IR):\r\n\r\n![00000000-3](https://user-images.githubusercontent.com/553214/31591619-402b7a76-b1d6-11e7-84ae-d3486e12f5d1.png)\r\n\r\nNote how the background star, lava and the reflections in the Starbits ice things are broken.\r\n\r\nWith the hack enabled (still 6x IR):\r\n![00000000-2](https://user-images.githubusercontent.com/553214/31591634-6fd44668-b1d6-11e7-9910-7ff3b765dae1.png)\r\n\r\nSo to fix this I did a bunch of things:\r\n- Added a checkbox in Graphics/Hacks. I added it as an Hack because the downside of this fix is that with this enabled lower LODs show unnecessarily closer! In any game that doesn't use LOD tricks, this causes blurrier textures (although more accurate to the original!)\r\nThis option is auto-disabled at 1x IR.\r\n- When the option is on, instead of using the native texture read functions, all shaders (normal and uber) go through a `texture_read` function. `texture_read` selects the LOD level by hand so that it can scale the ddx/ddy by the IR scale and get an approximation of the original values on real consoles. This is not super precise, I guess, along borders (where the gradients change quickly) but overall it seems to work pretty well! \r\nNote that the new function is also slower, because it has to compute the levels by hand! I couldn't see any real slowdown when playing on my computer, though.\r\n- When the option is on, it completely disables Anisotropic Filtering as well. Besides the fact that `textureLod` ignores it, Anisotropic is another effect that greatly pushes LODs out so you don't want to use it either.\r\n- Enabled that option by default in Super Mario Galaxy 1 & 2, because I think it makes no sense to play them at higher IR with broken graphics. Most textures don't seem to have more than 1 mipmaps anyway, except the ones used this way. weird.\r\n- Fixed a typo :D\r\n\r\nLet me know what you think!\r\n\r\n", 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118/events', 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/Tomcc/gists{/gist_id}', 'avatar_url': 'https://avatars3.githubusercontent.com/u/553214?v=4', 'url': 'https://api.github.com/users/Tomcc', 'gravatar_id': '', 'html_url': 'https://github.com/Tomcc', 'id': 553214, 'repos_url': 'https://api.github.com/users/Tomcc/repos', 'events_url': 'https://api.github.com/users/Tomcc/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/Tomcc/subscriptions', 'starred_url': 'https://api.github.com/users/Tomcc/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/Tomcc/following{/other_user}', 'login': 'Tomcc', 'received_events_url': 'https://api.github.com/users/Tomcc/received_events', 'followers_url': 'https://api.github.com/users/Tomcc/followers', 'organizations_url': 'https://api.github.com/users/Tomcc/orgs', 'type': 'User'}, 'number': 6118, 'assignee': None, 'comments': 72, 'updated_at': '2017-10-21T00:39:26Z', 'state': 'open', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6118.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6118', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6118.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118'}, 'author_association': 'NONE', 'labels': [], 'title': 'Resolution independent mipmaps (high IR Super Mario Galaxy Fix)'}}, 'type': 'gh_issue_comment', 'title': 'Resolution independent mipmaps (high IR Super Mario Galaxy Fix)'}

Recent 'gh_pull_request' events

2017-10-22T20:17:49.178677	{'base_sha': '6e9e681438887840d08928296bb08c0d226d1046', 'action': 'synchronize', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6134', 'id': 6134, 'source': 'ghhookparser', 'head_ref_name': 'soundstreamlifecycle', 'author': 'ligfx', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'head_sha': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'type': 'gh_pull_request', 'title': 'SoundStream: change Start/Stop lifecycle to Init/SetRunning/destruct'}
2017-10-22T19:57:18.850737	{'base_sha': '6e9e681438887840d08928296bb08c0d226d1046', 'action': 'synchronize', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6117', 'id': 6117, 'source': 'ghhookparser', 'head_ref_name': 'Lua_scripting', 'author': 'NickDriscoll', 'safe_author': False, 'repo': 'dolphin-emu/dolphin', 'head_sha': '16032050a91276e64f5007e7b6c674be4a44335b', 'type': 'gh_pull_request', 'title': 'Lua scripting (Gamecube only)'}
2017-10-22T18:18:01.209025	{'base_sha': '6e9e681438887840d08928296bb08c0d226d1046', 'action': 'synchronize', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6134', 'id': 6134, 'source': 'ghhookparser', 'head_ref_name': 'soundstreamlifecycle', 'author': 'ligfx', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'head_sha': 'ab57d4c15fe819989b583487f9e1674aac76b458', 'type': 'gh_pull_request', 'title': 'SoundStream: change Start/Stop lifecycle to Init/SetRunning/destruct'}
2017-10-22T18:18:00.069994	{'base_sha': '78d5dbe032d4390fbc3bbfc81768b68c2062fa8f', 'action': 'edited', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6134', 'id': 6134, 'source': 'ghhookparser', 'head_ref_name': 'soundstreamlifecycle', 'author': 'ligfx', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'head_sha': '38e0bcaa2ee527631b15fcf8247c5383cf302861', 'type': 'gh_pull_request', 'title': 'SoundStream: change Start/Stop lifecycle to Init/SetRunning/destruct'}
2017-10-22T15:40:00.626551	{'base_sha': '6e9e681438887840d08928296bb08c0d226d1046', 'action': 'synchronize', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6109', 'id': 6109, 'source': 'ghhookparser', 'head_ref_name': 'missing_wiiware_makers_2', 'author': 't27duck', 'safe_author': False, 'repo': 'dolphin-emu/dolphin', 'head_sha': 'b66a72eb8f3b4f5fbb1e36c88b34f41f19408eef', 'type': 'gh_pull_request', 'title': 'Update maker information to match the wiki'}
2017-10-22T14:42:26.724846	{'base_sha': '774fca4d019b788089f4a0d456e9c0ee12d9e214', 'action': 'closed', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6124', 'id': 6124, 'source': 'ghhookparser', 'head_ref_name': 'vulkan-shutdown-vxfb', 'author': 'leoetlino', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'head_sha': '271f1af8c9b679aae237b890efad37929349d7f1', 'type': 'gh_pull_request', 'title': 'Vulkan: Fix crash on shutdown with Virtual XFB enabled'}
2017-10-22T13:41:25.110872	{'base_sha': '774fca4d019b788089f4a0d456e9c0ee12d9e214', 'action': 'closed', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6131', 'id': 6131, 'source': 'ghhookparser', 'head_ref_name': 'wiiware_ini_file', 'author': 'leoetlino', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'head_sha': '43390f62c456363e9772251b875674382e9f6180', 'type': 'gh_pull_request', 'title': 'Add INI file for Midnight Bowling (WiiWare)'}
2017-10-22T13:39:41.696555	{'base_sha': '774fca4d019b788089f4a0d456e9c0ee12d9e214', 'action': 'closed', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6132', 'id': 6132, 'source': 'ghhookparser', 'head_ref_name': 'updatecubeb', 'author': 'leoetlino', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'head_sha': 'aa40c4a7cef69978368aeca0d34a4518334dc0fb', 'type': 'gh_pull_request', 'title': 'Externals: update cubeb to kinetiknz/cubeb@c2bd582'}
2017-10-22T13:38:36.053400	{'base_sha': '78d5dbe032d4390fbc3bbfc81768b68c2062fa8f', 'action': 'closed', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6133', 'id': 6133, 'source': 'ghhookparser', 'head_ref_name': 'soundstreamsetrunning', 'author': 'leoetlino', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'head_sha': 'b031d3316c64718b383e6339c4a6c12176bff4cb', 'type': 'gh_pull_request', 'title': 'AudioCommon: rename ClearAudioBuffer(mute) to SetSoundStreamRunning(running)'}
2017-10-22T06:56:15.086430	{'base_sha': '774fca4d019b788089f4a0d456e9c0ee12d9e214', 'action': 'synchronize', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118', 'id': 6118, 'source': 'ghhookparser', 'head_ref_name': 'master', 'author': 'Tomcc', 'safe_author': False, 'repo': 'dolphin-emu/dolphin', 'head_sha': 'c4fa13f72d83359041f87f84c7d02136d4999c1e', 'type': 'gh_pull_request', 'title': 'Resolution independent mipmaps (high IR Super Mario Galaxy Fix)'}
2017-10-22T06:21:39.277200	{'base_sha': '78d5dbe032d4390fbc3bbfc81768b68c2062fa8f', 'action': 'closed', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6136', 'id': 6136, 'source': 'ghhookparser', 'head_ref_name': 'fixtexturecachenogpudecode', 'author': 'stenzek', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'head_sha': '82129d30c90b6acf627c28137817107e62fad567', 'type': 'gh_pull_request', 'title': "TextureCache: don't create texture decoding resources if not enabled"}
2017-10-22T06:17:14.374903	{'base_sha': '78d5dbe032d4390fbc3bbfc81768b68c2062fa8f', 'action': 'synchronize', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6117', 'id': 6117, 'source': 'ghhookparser', 'head_ref_name': 'Lua_scripting', 'author': 'NickDriscoll', 'safe_author': False, 'repo': 'dolphin-emu/dolphin', 'head_sha': '935dc8a28ce77a2d9c6e2176b6a2ce864ab39c65', 'type': 'gh_pull_request', 'title': 'Lua scripting (Gamecube only)'}
2017-10-22T06:06:50.716079	{'base_sha': '78d5dbe032d4390fbc3bbfc81768b68c2062fa8f', 'action': 'synchronize', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6136', 'id': 6136, 'source': 'ghhookparser', 'head_ref_name': 'fixtexturecachenogpudecode', 'author': 'ligfx', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'head_sha': '82129d30c90b6acf627c28137817107e62fad567', 'type': 'gh_pull_request', 'title': "TextureCache: don't create texture decoding resources if not enabled"}
2017-10-22T06:01:23.413072	{'base_sha': '78d5dbe032d4390fbc3bbfc81768b68c2062fa8f', 'action': 'synchronize', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6117', 'id': 6117, 'source': 'ghhookparser', 'head_ref_name': 'Lua_scripting', 'author': 'NickDriscoll', 'safe_author': False, 'repo': 'dolphin-emu/dolphin', 'head_sha': '3b6cb7fd160857586ee56438ebe1dc7cb3c2fb2a', 'type': 'gh_pull_request', 'title': 'Lua scripting (Gamecube only)'}
2017-10-22T05:29:54.273044	{'base_sha': '78d5dbe032d4390fbc3bbfc81768b68c2062fa8f', 'action': 'closed', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6135', 'id': 6135, 'source': 'ghhookparser', 'head_ref_name': 'fixthps4', 'author': 'ligfx', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'head_sha': '7a7b71614b658247cec742e168b3eac57d9596b3', 'type': 'gh_pull_request', 'title': "(rfc) TextureCache: alloc 32MB palette buffer even when GPU texture decoding isn't supported"}
2017-10-22T05:29:45.554822	{'base_sha': '78d5dbe032d4390fbc3bbfc81768b68c2062fa8f', 'action': 'opened', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6136', 'id': 6136, 'source': 'ghhookparser', 'head_ref_name': 'fixtexturecachenogpudecode', 'author': 'ligfx', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'head_sha': 'f2d4a4154d13ebc7b336916293df6bea7f6e8343', 'type': 'gh_pull_request', 'title': "TextureCache: don't create texture decoding resources if not enabled"}
2017-10-22T05:22:11.556086	{'base_sha': '78d5dbe032d4390fbc3bbfc81768b68c2062fa8f', 'action': 'opened', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6135', 'id': 6135, 'source': 'ghhookparser', 'head_ref_name': 'fixthps4', 'author': 'ligfx', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'head_sha': '7a7b71614b658247cec742e168b3eac57d9596b3', 'type': 'gh_pull_request', 'title': "(rfc) TextureCache: alloc 32MB palette buffer even when GPU texture decoding isn't supported"}
2017-10-22T04:21:13.035082	{'base_sha': '774fca4d019b788089f4a0d456e9c0ee12d9e214', 'action': 'synchronize', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118', 'id': 6118, 'source': 'ghhookparser', 'head_ref_name': 'master', 'author': 'Tomcc', 'safe_author': False, 'repo': 'dolphin-emu/dolphin', 'head_sha': '89de49534316bb3bbe552f4801faca8dd818df4e', 'type': 'gh_pull_request', 'title': 'Resolution independent mipmaps (high IR Super Mario Galaxy Fix)'}
2017-10-22T03:19:38.958978	{'base_sha': '78d5dbe032d4390fbc3bbfc81768b68c2062fa8f', 'action': 'synchronize', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6117', 'id': 6117, 'source': 'ghhookparser', 'head_ref_name': 'Lua_scripting', 'author': 'NickDriscoll', 'safe_author': False, 'repo': 'dolphin-emu/dolphin', 'head_sha': 'bf1030e033b52373d07e5168f6542545c2c2f6ba', 'type': 'gh_pull_request', 'title': 'Lua scripting (Gamecube only)'}
2017-10-22T02:17:30.185186	{'base_sha': '774fca4d019b788089f4a0d456e9c0ee12d9e214', 'action': 'synchronize', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118', 'id': 6118, 'source': 'ghhookparser', 'head_ref_name': 'master', 'author': 'Tomcc', 'safe_author': False, 'repo': 'dolphin-emu/dolphin', 'head_sha': '8d27271a9a0b7658b7111a07f55042bda587dffc', 'type': 'gh_pull_request', 'title': 'Resolution independent mipmaps (high IR Super Mario Galaxy Fix)'}
2017-10-22T02:03:04.892960	{'base_sha': '774fca4d019b788089f4a0d456e9c0ee12d9e214', 'action': 'synchronize', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118', 'id': 6118, 'source': 'ghhookparser', 'head_ref_name': 'master', 'author': 'Tomcc', 'safe_author': False, 'repo': 'dolphin-emu/dolphin', 'head_sha': '7884be802309850198b1ca8ca7a35b8bc5c8a0b1', 'type': 'gh_pull_request', 'title': 'Resolution independent mipmaps (high IR Super Mario Galaxy Fix)'}
2017-10-21T23:45:31.729884	{'base_sha': '78d5dbe032d4390fbc3bbfc81768b68c2062fa8f', 'action': 'synchronize', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6129', 'id': 6129, 'source': 'ghhookparser', 'head_ref_name': 'globalmixernotsoundstream', 'author': 'ligfx', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'head_sha': '8ade34a064d842360fb59ad444c98ce6f25c847f', 'type': 'gh_pull_request', 'title': '(needs 6130, 6133, 6134) AudioCommon: allow changing stream parameters (backend, DPL2, etc.) at runtime'}
2017-10-21T23:42:49.209086	{'base_sha': '78d5dbe032d4390fbc3bbfc81768b68c2062fa8f', 'action': 'synchronize', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6134', 'id': 6134, 'source': 'ghhookparser', 'head_ref_name': 'soundstreamlifecycle', 'author': 'ligfx', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'head_sha': '38e0bcaa2ee527631b15fcf8247c5383cf302861', 'type': 'gh_pull_request', 'title': '(needs 6133) SoundStream: change Start/Stop lifecycle to Init/SetRunning/destruct'}
2017-10-21T23:39:45.500314	{'base_sha': '78d5dbe032d4390fbc3bbfc81768b68c2062fa8f', 'action': 'synchronize', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6134', 'id': 6134, 'source': 'ghhookparser', 'head_ref_name': 'soundstreamlifecycle', 'author': 'ligfx', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'head_sha': '0bdbac4427d2c367c73cf8a4a85754a812a6ab33', 'type': 'gh_pull_request', 'title': '(needs 6133) SoundStream: change Start/Stop lifecycle to Init/SetRunning/destruct'}
2017-10-21T23:36:26.121172	{'base_sha': '78d5dbe032d4390fbc3bbfc81768b68c2062fa8f', 'action': 'edited', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6129', 'id': 6129, 'source': 'ghhookparser', 'head_ref_name': 'globalmixernotsoundstream', 'author': 'ligfx', 'safe_author': True, 'repo': 'dolphin-emu/dolphin', 'head_sha': 'd84ac1bd6dcaa06370b1da1543cc2b83b8480b20', 'type': 'gh_pull_request', 'title': '(needs 6130, 6133, 6134) AudioCommon: allow changing stream parameters (backend, DPL2, etc.) at runtime'}

Recent 'gh_pull_request_comment' events

2017-10-22T11:17:10.478039	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146128540', 'id': 6118, 'source': 'ghhookparser', 'author': 'MerryMage', 'repo': 'dolphin-emu/dolphin', 'is_part_of_review': False, 'hash': 'c4fa13f72d83359041f87f84c7d02136d4999c1e', 'type': 'gh_pull_request_comment'}
2017-10-22T09:08:05.652410	{'action': 'edited', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146122151', 'id': 6118, 'source': 'ghhookparser', 'author': 'lioncash', 'repo': 'dolphin-emu/dolphin', 'is_part_of_review': False, 'hash': 'c4fa13f72d83359041f87f84c7d02136d4999c1e', 'type': 'gh_pull_request_comment'}
2017-10-22T06:56:53.718367	{'action': 'edited', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146123430', 'id': 6118, 'source': 'ghhookparser', 'author': 'Tomcc', 'repo': 'dolphin-emu/dolphin', 'is_part_of_review': False, 'hash': 'c4fa13f72d83359041f87f84c7d02136d4999c1e', 'type': 'gh_pull_request_comment'}
2017-10-22T06:56:43.001783	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146123430', 'id': 6118, 'source': 'ghhookparser', 'author': 'Tomcc', 'repo': 'dolphin-emu/dolphin', 'is_part_of_review': False, 'hash': 'c4fa13f72d83359041f87f84c7d02136d4999c1e', 'type': 'gh_pull_request_comment'}
2017-10-22T06:47:30.306607	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146123243', 'id': 6118, 'source': 'ghhookparser', 'author': 'Tomcc', 'repo': 'dolphin-emu/dolphin', 'is_part_of_review': False, 'hash': '89de49534316bb3bbe552f4801faca8dd818df4e', 'type': 'gh_pull_request_comment'}
2017-10-22T06:34:11.961451	{'action': 'edited', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146123089', 'id': 6118, 'source': 'ghhookparser', 'author': 'lioncash', 'repo': 'dolphin-emu/dolphin', 'is_part_of_review': False, 'hash': '89de49534316bb3bbe552f4801faca8dd818df4e', 'type': 'gh_pull_request_comment'}
2017-10-22T06:33:58.979026	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146123089', 'id': 6118, 'source': 'ghhookparser', 'author': 'lioncash', 'repo': 'dolphin-emu/dolphin', 'is_part_of_review': False, 'hash': '89de49534316bb3bbe552f4801faca8dd818df4e', 'type': 'gh_pull_request_comment'}
2017-10-22T06:07:07.080134	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6136#discussion_r146122680', 'id': 6136, 'source': 'ghhookparser', 'author': 'ligfx', 'repo': 'dolphin-emu/dolphin', 'is_part_of_review': False, 'hash': '82129d30c90b6acf627c28137817107e62fad567', 'type': 'gh_pull_request_comment'}
2017-10-22T06:05:21.016985	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6136#discussion_r146122655', 'id': 6136, 'source': 'ghhookparser', 'author': 'stenzek', 'repo': 'dolphin-emu/dolphin', 'is_part_of_review': True, 'hash': 'f2d4a4154d13ebc7b336916293df6bea7f6e8343', 'type': 'gh_pull_request_comment'}
2017-10-22T05:23:28.867793	{'action': 'edited', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146122151', 'id': 6118, 'source': 'ghhookparser', 'author': 'lioncash', 'repo': 'dolphin-emu/dolphin', 'is_part_of_review': False, 'hash': '89de49534316bb3bbe552f4801faca8dd818df4e', 'type': 'gh_pull_request_comment'}
2017-10-22T05:21:22.325804	{'action': 'edited', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146122151', 'id': 6118, 'source': 'ghhookparser', 'author': 'lioncash', 'repo': 'dolphin-emu/dolphin', 'is_part_of_review': False, 'hash': '89de49534316bb3bbe552f4801faca8dd818df4e', 'type': 'gh_pull_request_comment'}
2017-10-22T05:19:51.429142	{'action': 'edited', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146122151', 'id': 6118, 'source': 'ghhookparser', 'author': 'lioncash', 'repo': 'dolphin-emu/dolphin', 'is_part_of_review': False, 'hash': '89de49534316bb3bbe552f4801faca8dd818df4e', 'type': 'gh_pull_request_comment'}
2017-10-22T05:18:07.673518	{'action': 'edited', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146122151', 'id': 6118, 'source': 'ghhookparser', 'author': 'lioncash', 'repo': 'dolphin-emu/dolphin', 'is_part_of_review': False, 'hash': '89de49534316bb3bbe552f4801faca8dd818df4e', 'type': 'gh_pull_request_comment'}
2017-10-22T05:17:29.319164	{'action': 'edited', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146122151', 'id': 6118, 'source': 'ghhookparser', 'author': 'lioncash', 'repo': 'dolphin-emu/dolphin', 'is_part_of_review': False, 'hash': '89de49534316bb3bbe552f4801faca8dd818df4e', 'type': 'gh_pull_request_comment'}
2017-10-22T05:17:06.200725	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146122151', 'id': 6118, 'source': 'ghhookparser', 'author': 'lioncash', 'repo': 'dolphin-emu/dolphin', 'is_part_of_review': False, 'hash': '89de49534316bb3bbe552f4801faca8dd818df4e', 'type': 'gh_pull_request_comment'}
2017-10-22T04:43:28.688918	{'action': 'edited', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146120882', 'id': 6118, 'source': 'ghhookparser', 'author': 'iwubcode', 'repo': 'dolphin-emu/dolphin', 'is_part_of_review': False, 'hash': '89de49534316bb3bbe552f4801faca8dd818df4e', 'type': 'gh_pull_request_comment'}
2017-10-22T03:18:19.824327	{'action': 'edited', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146120882', 'id': 6118, 'source': 'ghhookparser', 'author': 'iwubcode', 'repo': 'dolphin-emu/dolphin', 'is_part_of_review': False, 'hash': '8d27271a9a0b7658b7111a07f55042bda587dffc', 'type': 'gh_pull_request_comment'}
2017-10-22T03:17:26.893068	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146120882', 'id': 6118, 'source': 'ghhookparser', 'author': 'iwubcode', 'repo': 'dolphin-emu/dolphin', 'is_part_of_review': False, 'hash': '8d27271a9a0b7658b7111a07f55042bda587dffc', 'type': 'gh_pull_request_comment'}
2017-10-21T22:58:05.914300	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6129#discussion_r146117435', 'id': 6129, 'source': 'ghhookparser', 'author': 'ligfx', 'repo': 'dolphin-emu/dolphin', 'is_part_of_review': False, 'hash': 'd14ccc8c7c1e718d1b51f7de179cc99f3d628eb4', 'type': 'gh_pull_request_comment'}
2017-10-21T22:57:59.539941	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6129#discussion_r146117433', 'id': 6129, 'source': 'ghhookparser', 'author': 'ligfx', 'repo': 'dolphin-emu/dolphin', 'is_part_of_review': False, 'hash': 'd14ccc8c7c1e718d1b51f7de179cc99f3d628eb4', 'type': 'gh_pull_request_comment'}
2017-10-21T22:44:42.380929	{'action': 'edited', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6123#discussion_r146117141', 'id': 6123, 'source': 'ghhookparser', 'author': 'lioncash', 'repo': 'dolphin-emu/dolphin', 'is_part_of_review': False, 'hash': 'fb6274f7bcabdc617d6aa65f07b277dd42b548ae', 'type': 'gh_pull_request_comment'}
2017-10-21T22:44:13.727693	{'action': 'edited', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6123#discussion_r146117141', 'id': 6123, 'source': 'ghhookparser', 'author': 'lioncash', 'repo': 'dolphin-emu/dolphin', 'is_part_of_review': False, 'hash': 'fb6274f7bcabdc617d6aa65f07b277dd42b548ae', 'type': 'gh_pull_request_comment'}
2017-10-21T22:43:53.048442	{'action': 'edited', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6123#discussion_r146117141', 'id': 6123, 'source': 'ghhookparser', 'author': 'lioncash', 'repo': 'dolphin-emu/dolphin', 'is_part_of_review': False, 'hash': 'fb6274f7bcabdc617d6aa65f07b277dd42b548ae', 'type': 'gh_pull_request_comment'}
2017-10-21T22:41:40.934255	{'action': 'created', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6123#discussion_r146117141', 'id': 6123, 'source': 'ghhookparser', 'author': 'lioncash', 'repo': 'dolphin-emu/dolphin', 'is_part_of_review': False, 'hash': 'fb6274f7bcabdc617d6aa65f07b277dd42b548ae', 'type': 'gh_pull_request_comment'}
2017-10-21T22:31:50.518318	{'action': 'edited', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6129#discussion_r146116854', 'id': 6129, 'source': 'ghhookparser', 'author': 'lioncash', 'repo': 'dolphin-emu/dolphin', 'is_part_of_review': False, 'hash': 'd14ccc8c7c1e718d1b51f7de179cc99f3d628eb4', 'type': 'gh_pull_request_comment'}

Recent 'gh_pull_request_review' events

2017-10-23T00:29:22.475424	{'pr_title': "NullSoundStream: don't call Mixer->Mix", 'action': 'submitted', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6130#pullrequestreview-71050973', 'comments': [], 'state': 'approved', 'source': 'ghhookparser', 'author': 'MerryMage', 'pr_id': 6130, 'repo': 'dolphin-emu/dolphin', 'type': 'gh_pull_request_review'}
2017-10-22T13:41:04.425372	{'pr_title': 'Add INI file for Midnight Bowling (WiiWare)', 'action': 'submitted', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6131#pullrequestreview-71033603', 'comments': [], 'state': 'approved', 'source': 'ghhookparser', 'author': 'leoetlino', 'pr_id': 6131, 'repo': 'dolphin-emu/dolphin', 'type': 'gh_pull_request_review'}
2017-10-22T13:38:26.984684	{'pr_title': 'AudioCommon: rename ClearAudioBuffer(mute) to SetSoundStreamRunning(running)', 'action': 'submitted', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6133#pullrequestreview-71033548', 'comments': [], 'state': 'approved', 'source': 'ghhookparser', 'author': 'leoetlino', 'pr_id': 6133, 'repo': 'dolphin-emu/dolphin', 'type': 'gh_pull_request_review'}
2017-10-22T11:17:10.473787	{'pr_title': 'Resolution independent mipmaps (high IR Super Mario Galaxy Fix)', 'action': 'submitted', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#pullrequestreview-71030206', 'comments': [{'commit_id': 'c4fa13f72d83359041f87f84c7d02136d4999c1e', 'diff_hunk': '@@ -101,12 +103,12 @@ union SamplerState\n   BitField<2, 1, Filter> mipmap_filter;\n   BitField<3, 2, AddressMode> wrap_u;\n   BitField<5, 2, AddressMode> wrap_v;\n-  BitField<7, 8, u32> min_lod;    // multiplied by 16\n-  BitField<15, 8, u32> max_lod;   // multiplied by 16\n-  BitField<23, 8, s32> lod_bias;  // multiplied by 32\n-  BitField<31, 1, u32> anisotropic_filtering;\n+  BitField<7, 16, s32> lod_bias;              // multiplied by 256\n+  BitField<23, 8, u32> min_lod;               // multiplied by 16\n+  BitField<31, 8, u32, StorageType> max_lod;  // multiplied by 16', 'created_at': '2017-10-22T11:17:08Z', 'user': {'gists_url': 'https://api.github.com/users/MerryMage/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/8682882?v=4', 'url': 'https://api.github.com/users/MerryMage', 'gravatar_id': '', 'html_url': 'https://github.com/MerryMage', 'id': 8682882, 'repos_url': 'https://api.github.com/users/MerryMage/repos', 'events_url': 'https://api.github.com/users/MerryMage/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/MerryMage/subscriptions', 'starred_url': 'https://api.github.com/users/MerryMage/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/MerryMage/following{/other_user}', 'login': 'MerryMage', 'received_events_url': 'https://api.github.com/users/MerryMage/received_events', 'followers_url': 'https://api.github.com/users/MerryMage/followers', 'organizations_url': 'https://api.github.com/users/MerryMage/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146128540', 'position': 19, 'pull_request_review_id': 71030206, 'updated_at': '2017-10-22T11:17:08Z', 'id': 146128540, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118', 'author_association': 'MEMBER', 'original_position': 19, 'body': 'This is likely to invoke undefined behaviour when these members are accessed. `max_lod` and `anisotropic_filtering` are not layout-compatible with the other members of this `union`.', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146128540', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146128540'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146128540'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118'}}, 'original_commit_id': 'c4fa13f72d83359041f87f84c7d02136d4999c1e', 'path': 'Source/Core/VideoCommon/RenderState.h'}], 'state': 'commented', 'source': 'ghhookparser', 'author': 'MerryMage', 'pr_id': 6118, 'repo': 'dolphin-emu/dolphin', 'type': 'gh_pull_request_review'}
2017-10-22T06:56:42.996728	{'pr_title': 'Resolution independent mipmaps (high IR Super Mario Galaxy Fix)', 'action': 'submitted', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#pullrequestreview-71025205', 'comments': [{'commit_id': 'c4fa13f72d83359041f87f84c7d02136d4999c1e', 'diff_hunk': "@@ -477,6 +477,131 @@ void TextureCacheBase::BindTextures()\n   }\n }\n \n+class ArbitraryMipmapDetector\n+{\n+private:\n+  using PixelRGBAf = std::array<float, 4>;\n+\n+public:\n+  explicit ArbitraryMipmapDetector() = default;\n+\n+  void AddLevel(u32 width, u32 height, u32 row_length, const u8* buffer)\n+  {\n+    levels.push_back({width, height, row_length, buffer});\n+  }\n+\n+  bool HasArbitraryMipmaps() const\n+  {\n+    if (levels.size() < 2)\n+      return false;\n+\n+    // This is the average per-pixel, per-channel difference in percent between what we\n+    // expect a normal blurred mipmap to look like and what we actually received\n+    constexpr auto THRESHOLD_PERCENT = 35.f;\n+\n+    downsample_buffer.resize(levels[0].height * levels[0].row_length);\n+\n+    for (std::size_t i = 0; i < levels.size() - 1; ++i)\n+    {\n+      const auto& level = levels[i];\n+      const auto& mip = levels[i + 1];\n+\n+      // Manually downsample the current layer with a simple box blur\n+      // This is not necessarily close to whatever the original artists used, however\n+      // It should still be closer than a thing that's not a downscale at all\n+      level.Downsample(downsample_buffer.data(), mip);\n+\n+      // Find the average difference between pixels in this level but downsampled\n+      // and the next level\n+      auto diff = mip.AverageDiff(downsample_buffer.data());\n+      if (diff > THRESHOLD_PERCENT)\n+        return true;\n+    }\n+    return false;\n+  }\n+\n+private:\n+  static float SRGBToLinear(u8 srgb_byte)\n+  {\n+    auto srgb_float = static_cast<float>(srgb_byte) / 256.f;\n+    // approximations found on\n+    // http://chilliant.blogspot.com/2012/08/srgb-approximations-for-hlsl.html\n+    return srgb_float * (srgb_float * (srgb_float * 0.305306011f + 0.682171111f) + 0.012522878f);\n+  }\n+\n+  static u8 LinearToSRGB(float linear)\n+  {\n+    return static_cast<u8>(std::max(1.055f * std::pow(linear, 0.416666667f) - 0.055f, 0.f) * 256.f);\n+  }\n+\n+  struct Level\n+  {\n+    u32 width;\n+    u32 height;\n+    u32 row_length;\n+    const u8* buffer;\n+\n+    PixelRGBAf Sample(u32 x, u32 y) const\n+    {\n+      const auto* p = buffer + (x + y * row_length) * 4;\n+      return {SRGBToLinear(p[0]), SRGBToLinear(p[1]), SRGBToLinear(p[2]), SRGBToLinear(p[3])};\n+    }\n+\n+    // Puts a downsampled image in dst. dst must be at least width*height*4\n+    void Downsample(u8* dst, const Level& dst_shape) const\n+    {\n+      for (u32 i = 0; i < dst_shape.height; ++i)\n+      {\n+        for (u32 j = 0; j < dst_shape.width; ++j)\n+        {\n+          auto x = j * 2;\n+          auto y = i * 2;\n+          const std::array<PixelRGBAf, 4> samples = {Sample(x, y), Sample(x + 1, y),\n+                                                     Sample(x, y + 1), Sample(x + 1, y + 1)};\n+          auto* dst_pixel = dst + (j + i * dst_shape.row_length) * 4;\n+          dst_pixel[0] =\n+              LinearToSRGB((samples[0][0] + samples[0][1] + samples[0][2] + samples[0][3]) * 0.25f);\n+          dst_pixel[1] =\n+              LinearToSRGB((samples[1][0] + samples[1][1] + samples[1][2] + samples[1][3]) * 0.25f);\n+          dst_pixel[2] =\n+              LinearToSRGB((samples[2][0] + samples[2][1] + samples[2][2] + samples[2][3]) * 0.25f);\n+          dst_pixel[3] =\n+              LinearToSRGB((samples[3][0] + samples[3][1] + samples[3][2] + samples[3][3]) * 0.25f);\n+        }\n+      }\n+    }\n+\n+    float AverageDiff(const u8* other) const\n+    {\n+      float average_diff = 0.f;\n+      const auto* ptr1 = buffer;\n+      const auto* ptr2 = other;\n+      for (u32 i = 0; i < height; ++i)\n+      {\n+        const auto* row1 = ptr1;\n+        const auto* row2 = ptr2;\n+        for (u32 j = 0; j < width; ++j, row1 += 4, row2 += 4)\n+        {\n+          average_diff += std::abs(row1[0] - row2[0]);\n+          average_diff += std::abs(row1[1] - row2[1]);\n+          average_diff += std::abs(row1[2] - row2[2]);\n+          average_diff += std::abs(row1[3] - row2[3]);\n+        }\n+        ptr1 += row_length;\n+        ptr2 += row_length;\n+      }\n+\n+      return average_diff / (width * height * 4) / 2.56f;\n+    }\n+  };\n+\n+  static std::vector<u8> downsample_buffer;", 'created_at': '2017-10-22T06:56:41Z', 'user': {'gists_url': 'https://api.github.com/users/Tomcc/gists{/gist_id}', 'avatar_url': 'https://avatars3.githubusercontent.com/u/553214?v=4', 'url': 'https://api.github.com/users/Tomcc', 'gravatar_id': '', 'html_url': 'https://github.com/Tomcc', 'id': 553214, 'repos_url': 'https://api.github.com/users/Tomcc/repos', 'events_url': 'https://api.github.com/users/Tomcc/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/Tomcc/subscriptions', 'starred_url': 'https://api.github.com/users/Tomcc/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/Tomcc/following{/other_user}', 'login': 'Tomcc', 'received_events_url': 'https://api.github.com/users/Tomcc/received_events', 'followers_url': 'https://api.github.com/users/Tomcc/followers', 'organizations_url': 'https://api.github.com/users/Tomcc/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146123430', 'position': None, 'pull_request_review_id': 71025205, 'updated_at': '2017-10-22T06:56:41Z', 'id': 146123430, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118', 'author_association': 'NONE', 'original_position': 122, 'in_reply_to_id': 146123089, 'body': "Actually, done. That way it doesn't keep any memory allocated at all.", 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146123430', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146123430'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146123430'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118'}}, 'original_commit_id': '89de49534316bb3bbe552f4801faca8dd818df4e', 'path': 'Source/Core/VideoCommon/TextureCacheBase.cpp'}], 'state': 'commented', 'source': 'ghhookparser', 'author': 'Tomcc', 'pr_id': 6118, 'repo': 'dolphin-emu/dolphin', 'type': 'gh_pull_request_review'}
2017-10-22T06:47:30.874523	{'pr_title': 'Resolution independent mipmaps (high IR Super Mario Galaxy Fix)', 'action': 'submitted', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#pullrequestreview-71025048', 'comments': [{'commit_id': '89de49534316bb3bbe552f4801faca8dd818df4e', 'diff_hunk': "@@ -477,6 +477,131 @@ void TextureCacheBase::BindTextures()\n   }\n }\n \n+class ArbitraryMipmapDetector\n+{\n+private:\n+  using PixelRGBAf = std::array<float, 4>;\n+\n+public:\n+  explicit ArbitraryMipmapDetector() = default;\n+\n+  void AddLevel(u32 width, u32 height, u32 row_length, const u8* buffer)\n+  {\n+    levels.push_back({width, height, row_length, buffer});\n+  }\n+\n+  bool HasArbitraryMipmaps() const\n+  {\n+    if (levels.size() < 2)\n+      return false;\n+\n+    // This is the average per-pixel, per-channel difference in percent between what we\n+    // expect a normal blurred mipmap to look like and what we actually received\n+    constexpr auto THRESHOLD_PERCENT = 35.f;\n+\n+    downsample_buffer.resize(levels[0].height * levels[0].row_length);\n+\n+    for (std::size_t i = 0; i < levels.size() - 1; ++i)\n+    {\n+      const auto& level = levels[i];\n+      const auto& mip = levels[i + 1];\n+\n+      // Manually downsample the current layer with a simple box blur\n+      // This is not necessarily close to whatever the original artists used, however\n+      // It should still be closer than a thing that's not a downscale at all\n+      level.Downsample(downsample_buffer.data(), mip);\n+\n+      // Find the average difference between pixels in this level but downsampled\n+      // and the next level\n+      auto diff = mip.AverageDiff(downsample_buffer.data());\n+      if (diff > THRESHOLD_PERCENT)\n+        return true;\n+    }\n+    return false;\n+  }\n+\n+private:\n+  static float SRGBToLinear(u8 srgb_byte)\n+  {\n+    auto srgb_float = static_cast<float>(srgb_byte) / 256.f;\n+    // approximations found on\n+    // http://chilliant.blogspot.com/2012/08/srgb-approximations-for-hlsl.html\n+    return srgb_float * (srgb_float * (srgb_float * 0.305306011f + 0.682171111f) + 0.012522878f);\n+  }\n+\n+  static u8 LinearToSRGB(float linear)\n+  {\n+    return static_cast<u8>(std::max(1.055f * std::pow(linear, 0.416666667f) - 0.055f, 0.f) * 256.f);\n+  }\n+\n+  struct Level\n+  {\n+    u32 width;\n+    u32 height;\n+    u32 row_length;\n+    const u8* buffer;\n+\n+    PixelRGBAf Sample(u32 x, u32 y) const\n+    {\n+      const auto* p = buffer + (x + y * row_length) * 4;\n+      return {SRGBToLinear(p[0]), SRGBToLinear(p[1]), SRGBToLinear(p[2]), SRGBToLinear(p[3])};\n+    }\n+\n+    // Puts a downsampled image in dst. dst must be at least width*height*4\n+    void Downsample(u8* dst, const Level& dst_shape) const\n+    {\n+      for (u32 i = 0; i < dst_shape.height; ++i)\n+      {\n+        for (u32 j = 0; j < dst_shape.width; ++j)\n+        {\n+          auto x = j * 2;\n+          auto y = i * 2;\n+          const std::array<PixelRGBAf, 4> samples = {Sample(x, y), Sample(x + 1, y),\n+                                                     Sample(x, y + 1), Sample(x + 1, y + 1)};\n+          auto* dst_pixel = dst + (j + i * dst_shape.row_length) * 4;\n+          dst_pixel[0] =\n+              LinearToSRGB((samples[0][0] + samples[0][1] + samples[0][2] + samples[0][3]) * 0.25f);\n+          dst_pixel[1] =\n+              LinearToSRGB((samples[1][0] + samples[1][1] + samples[1][2] + samples[1][3]) * 0.25f);\n+          dst_pixel[2] =\n+              LinearToSRGB((samples[2][0] + samples[2][1] + samples[2][2] + samples[2][3]) * 0.25f);\n+          dst_pixel[3] =\n+              LinearToSRGB((samples[3][0] + samples[3][1] + samples[3][2] + samples[3][3]) * 0.25f);\n+        }\n+      }\n+    }\n+\n+    float AverageDiff(const u8* other) const\n+    {\n+      float average_diff = 0.f;\n+      const auto* ptr1 = buffer;\n+      const auto* ptr2 = other;\n+      for (u32 i = 0; i < height; ++i)\n+      {\n+        const auto* row1 = ptr1;\n+        const auto* row2 = ptr2;\n+        for (u32 j = 0; j < width; ++j, row1 += 4, row2 += 4)\n+        {\n+          average_diff += std::abs(row1[0] - row2[0]);\n+          average_diff += std::abs(row1[1] - row2[1]);\n+          average_diff += std::abs(row1[2] - row2[2]);\n+          average_diff += std::abs(row1[3] - row2[3]);\n+        }\n+        ptr1 += row_length;\n+        ptr2 += row_length;\n+      }\n+\n+      return average_diff / (width * height * 4) / 2.56f;\n+    }\n+  };\n+\n+  static std::vector<u8> downsample_buffer;", 'created_at': '2017-10-22T06:47:29Z', 'user': {'gists_url': 'https://api.github.com/users/Tomcc/gists{/gist_id}', 'avatar_url': 'https://avatars3.githubusercontent.com/u/553214?v=4', 'url': 'https://api.github.com/users/Tomcc', 'gravatar_id': '', 'html_url': 'https://github.com/Tomcc', 'id': 553214, 'repos_url': 'https://api.github.com/users/Tomcc/repos', 'events_url': 'https://api.github.com/users/Tomcc/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/Tomcc/subscriptions', 'starred_url': 'https://api.github.com/users/Tomcc/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/Tomcc/following{/other_user}', 'login': 'Tomcc', 'received_events_url': 'https://api.github.com/users/Tomcc/received_events', 'followers_url': 'https://api.github.com/users/Tomcc/followers', 'organizations_url': 'https://api.github.com/users/Tomcc/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146123243', 'position': 122, 'pull_request_review_id': 71025048, 'updated_at': '2017-10-22T06:47:29Z', 'id': 146123243, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118', 'author_association': 'NONE', 'original_position': 122, 'in_reply_to_id': 146123089, 'body': "Aha, I misunderstood! Yeah the static was needed because I don't want to reallocate the underlying buffer for each texture we load - the `ArbitraryMipmapDetector` is recreated every time, it's not a singleton. \r\nMaking it a singleton is much dirtier IMO (you'd need to reset manually the internal state, visibility becomes a problem, etc) so the other option is passing the buffer to it from outside, which makes sense... but the `static` vector seemed like a decent way.\r\nI can change it to take a block of memory to use as a buffer from outside, then I could plug that into the `temp` pointer that we already have, if you want.", 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146123243', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146123243'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146123243'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118'}}, 'original_commit_id': '89de49534316bb3bbe552f4801faca8dd818df4e', 'path': 'Source/Core/VideoCommon/TextureCacheBase.cpp'}], 'state': 'commented', 'source': 'ghhookparser', 'author': 'Tomcc', 'pr_id': 6118, 'repo': 'dolphin-emu/dolphin', 'type': 'gh_pull_request_review'}
2017-10-22T06:33:58.974583	{'pr_title': 'Resolution independent mipmaps (high IR Super Mario Galaxy Fix)', 'action': 'submitted', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#pullrequestreview-71024863', 'comments': [{'commit_id': '89de49534316bb3bbe552f4801faca8dd818df4e', 'diff_hunk': "@@ -477,6 +477,131 @@ void TextureCacheBase::BindTextures()\n   }\n }\n \n+class ArbitraryMipmapDetector\n+{\n+private:\n+  using PixelRGBAf = std::array<float, 4>;\n+\n+public:\n+  explicit ArbitraryMipmapDetector() = default;\n+\n+  void AddLevel(u32 width, u32 height, u32 row_length, const u8* buffer)\n+  {\n+    levels.push_back({width, height, row_length, buffer});\n+  }\n+\n+  bool HasArbitraryMipmaps() const\n+  {\n+    if (levels.size() < 2)\n+      return false;\n+\n+    // This is the average per-pixel, per-channel difference in percent between what we\n+    // expect a normal blurred mipmap to look like and what we actually received\n+    constexpr auto THRESHOLD_PERCENT = 35.f;\n+\n+    downsample_buffer.resize(levels[0].height * levels[0].row_length);\n+\n+    for (std::size_t i = 0; i < levels.size() - 1; ++i)\n+    {\n+      const auto& level = levels[i];\n+      const auto& mip = levels[i + 1];\n+\n+      // Manually downsample the current layer with a simple box blur\n+      // This is not necessarily close to whatever the original artists used, however\n+      // It should still be closer than a thing that's not a downscale at all\n+      level.Downsample(downsample_buffer.data(), mip);\n+\n+      // Find the average difference between pixels in this level but downsampled\n+      // and the next level\n+      auto diff = mip.AverageDiff(downsample_buffer.data());\n+      if (diff > THRESHOLD_PERCENT)\n+        return true;\n+    }\n+    return false;\n+  }\n+\n+private:\n+  static float SRGBToLinear(u8 srgb_byte)\n+  {\n+    auto srgb_float = static_cast<float>(srgb_byte) / 256.f;\n+    // approximations found on\n+    // http://chilliant.blogspot.com/2012/08/srgb-approximations-for-hlsl.html\n+    return srgb_float * (srgb_float * (srgb_float * 0.305306011f + 0.682171111f) + 0.012522878f);\n+  }\n+\n+  static u8 LinearToSRGB(float linear)\n+  {\n+    return static_cast<u8>(std::max(1.055f * std::pow(linear, 0.416666667f) - 0.055f, 0.f) * 256.f);\n+  }\n+\n+  struct Level\n+  {\n+    u32 width;\n+    u32 height;\n+    u32 row_length;\n+    const u8* buffer;\n+\n+    PixelRGBAf Sample(u32 x, u32 y) const\n+    {\n+      const auto* p = buffer + (x + y * row_length) * 4;\n+      return {SRGBToLinear(p[0]), SRGBToLinear(p[1]), SRGBToLinear(p[2]), SRGBToLinear(p[3])};\n+    }\n+\n+    // Puts a downsampled image in dst. dst must be at least width*height*4\n+    void Downsample(u8* dst, const Level& dst_shape) const\n+    {\n+      for (u32 i = 0; i < dst_shape.height; ++i)\n+      {\n+        for (u32 j = 0; j < dst_shape.width; ++j)\n+        {\n+          auto x = j * 2;\n+          auto y = i * 2;\n+          const std::array<PixelRGBAf, 4> samples = {Sample(x, y), Sample(x + 1, y),\n+                                                     Sample(x, y + 1), Sample(x + 1, y + 1)};\n+          auto* dst_pixel = dst + (j + i * dst_shape.row_length) * 4;\n+          dst_pixel[0] =\n+              LinearToSRGB((samples[0][0] + samples[0][1] + samples[0][2] + samples[0][3]) * 0.25f);\n+          dst_pixel[1] =\n+              LinearToSRGB((samples[1][0] + samples[1][1] + samples[1][2] + samples[1][3]) * 0.25f);\n+          dst_pixel[2] =\n+              LinearToSRGB((samples[2][0] + samples[2][1] + samples[2][2] + samples[2][3]) * 0.25f);\n+          dst_pixel[3] =\n+              LinearToSRGB((samples[3][0] + samples[3][1] + samples[3][2] + samples[3][3]) * 0.25f);\n+        }\n+      }\n+    }\n+\n+    float AverageDiff(const u8* other) const\n+    {\n+      float average_diff = 0.f;\n+      const auto* ptr1 = buffer;\n+      const auto* ptr2 = other;\n+      for (u32 i = 0; i < height; ++i)\n+      {\n+        const auto* row1 = ptr1;\n+        const auto* row2 = ptr2;\n+        for (u32 j = 0; j < width; ++j, row1 += 4, row2 += 4)\n+        {\n+          average_diff += std::abs(row1[0] - row2[0]);\n+          average_diff += std::abs(row1[1] - row2[1]);\n+          average_diff += std::abs(row1[2] - row2[2]);\n+          average_diff += std::abs(row1[3] - row2[3]);\n+        }\n+        ptr1 += row_length;\n+        ptr2 += row_length;\n+      }\n+\n+      return average_diff / (width * height * 4) / 2.56f;\n+    }\n+  };\n+\n+  static std::vector<u8> downsample_buffer;", 'created_at': '2017-10-22T06:33:57Z', 'user': {'gists_url': 'https://api.github.com/users/lioncash/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/712067?v=4', 'url': 'https://api.github.com/users/lioncash', 'gravatar_id': '', 'html_url': 'https://github.com/lioncash', 'id': 712067, 'repos_url': 'https://api.github.com/users/lioncash/repos', 'events_url': 'https://api.github.com/users/lioncash/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/lioncash/subscriptions', 'starred_url': 'https://api.github.com/users/lioncash/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/lioncash/following{/other_user}', 'login': 'lioncash', 'received_events_url': 'https://api.github.com/users/lioncash/received_events', 'followers_url': 'https://api.github.com/users/lioncash/followers', 'organizations_url': 'https://api.github.com/users/lioncash/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146123089', 'position': 122, 'pull_request_review_id': 71024863, 'updated_at': '2017-10-22T06:33:57Z', 'id': 146123089, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118', 'author_association': 'OWNER', 'original_position': 122, 'body': "When I had asked if a local static was necessary instead of a class member, I meant as opposed to being a non-static class member (since a mutable static is easy to cause a data race with if ever used in a multi-threaded context). That, and this will essentially live until the program terminates once it's been initialized, which can waste resources.", 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146123089', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146123089'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146123089'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118'}}, 'original_commit_id': '89de49534316bb3bbe552f4801faca8dd818df4e', 'path': 'Source/Core/VideoCommon/TextureCacheBase.cpp'}], 'state': 'commented', 'source': 'ghhookparser', 'author': 'lioncash', 'pr_id': 6118, 'repo': 'dolphin-emu/dolphin', 'type': 'gh_pull_request_review'}
2017-10-22T06:07:07.903826	{'pr_title': "TextureCache: don't create texture decoding resources if not enabled", 'action': 'submitted', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6136#pullrequestreview-71024485', 'comments': [{'commit_id': '82129d30c90b6acf627c28137817107e62fad567', 'diff_hunk': '@@ -69,7 +69,8 @@ TextureCache::TextureCache()\n     glBindTexture(GL_TEXTURE_BUFFER, m_palette_resolv_texture);\n     glTexBuffer(GL_TEXTURE_BUFFER, GL_R16UI, m_palette_stream_buffer->m_buffer);\n \n-    CreateTextureDecodingResources();\n+    if (g_ActiveConfig.backend_info.bSupportsGPUTextureDecoding)', 'created_at': '2017-10-22T06:07:06Z', 'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146122680', 'position': 5, 'pull_request_review_id': 71024485, 'updated_at': '2017-10-22T06:07:06Z', 'id': 146122680, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6136', 'author_association': 'MEMBER', 'original_position': 5, 'in_reply_to_id': 146122655, 'body': 'Done!', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6136#discussion_r146122680', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6136#discussion_r146122680'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146122680'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6136'}}, 'original_commit_id': 'f2d4a4154d13ebc7b336916293df6bea7f6e8343', 'path': 'Source/Core/VideoBackends/OGL/TextureCache.cpp'}], 'state': 'commented', 'source': 'ghhookparser', 'author': 'ligfx', 'pr_id': 6136, 'repo': 'dolphin-emu/dolphin', 'type': 'gh_pull_request_review'}
2017-10-22T06:05:22.171659	{'pr_title': "TextureCache: don't create texture decoding resources if not enabled", 'action': 'submitted', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6136#pullrequestreview-71024457', 'comments': [{'commit_id': 'f2d4a4154d13ebc7b336916293df6bea7f6e8343', 'diff_hunk': '@@ -69,7 +69,8 @@ TextureCache::TextureCache()\n     glBindTexture(GL_TEXTURE_BUFFER, m_palette_resolv_texture);\n     glTexBuffer(GL_TEXTURE_BUFFER, GL_R16UI, m_palette_stream_buffer->m_buffer);\n \n-    CreateTextureDecodingResources();\n+    if (g_ActiveConfig.backend_info.bSupportsGPUTextureDecoding)', 'created_at': '2017-10-22T06:04:47Z', 'user': {'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'url': 'https://api.github.com/users/stenzek', 'gravatar_id': '', 'html_url': 'https://github.com/stenzek', 'id': 11288319, 'repos_url': 'https://api.github.com/users/stenzek/repos', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'login': 'stenzek', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'followers_url': 'https://api.github.com/users/stenzek/followers', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146122655', 'position': 5, 'pull_request_review_id': 71024457, 'updated_at': '2017-10-22T06:05:20Z', 'id': 146122655, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6136', 'author_association': 'MEMBER', 'original_position': 5, 'body': 'Should add this check in the destructor as well, line 80.', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6136#discussion_r146122655', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6136#discussion_r146122655'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146122655'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6136'}}, 'original_commit_id': 'f2d4a4154d13ebc7b336916293df6bea7f6e8343', 'path': 'Source/Core/VideoBackends/OGL/TextureCache.cpp'}], 'state': 'approved', 'source': 'ghhookparser', 'author': 'stenzek', 'pr_id': 6136, 'repo': 'dolphin-emu/dolphin', 'type': 'gh_pull_request_review'}
2017-10-22T06:05:21.633939	{'pr_title': "TextureCache: don't create texture decoding resources if not enabled", 'action': 'edited', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6136#pullrequestreview-71024457', 'comments': [{'commit_id': 'f2d4a4154d13ebc7b336916293df6bea7f6e8343', 'diff_hunk': '@@ -69,7 +69,8 @@ TextureCache::TextureCache()\n     glBindTexture(GL_TEXTURE_BUFFER, m_palette_resolv_texture);\n     glTexBuffer(GL_TEXTURE_BUFFER, GL_R16UI, m_palette_stream_buffer->m_buffer);\n \n-    CreateTextureDecodingResources();\n+    if (g_ActiveConfig.backend_info.bSupportsGPUTextureDecoding)', 'created_at': '2017-10-22T06:04:47Z', 'user': {'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'url': 'https://api.github.com/users/stenzek', 'gravatar_id': '', 'html_url': 'https://github.com/stenzek', 'id': 11288319, 'repos_url': 'https://api.github.com/users/stenzek/repos', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'login': 'stenzek', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'followers_url': 'https://api.github.com/users/stenzek/followers', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146122655', 'position': 5, 'pull_request_review_id': 71024457, 'updated_at': '2017-10-22T06:05:20Z', 'id': 146122655, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6136', 'author_association': 'MEMBER', 'original_position': 5, 'body': 'Should add this check in the destructor as well, line 80.', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6136#discussion_r146122655', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6136#discussion_r146122655'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146122655'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6136'}}, 'original_commit_id': 'f2d4a4154d13ebc7b336916293df6bea7f6e8343', 'path': 'Source/Core/VideoBackends/OGL/TextureCache.cpp'}], 'state': 'approved', 'source': 'ghhookparser', 'author': 'stenzek', 'pr_id': 6136, 'repo': 'dolphin-emu/dolphin', 'type': 'gh_pull_request_review'}
2017-10-22T05:17:06.918138	{'pr_title': 'Resolution independent mipmaps (high IR Super Mario Galaxy Fix)', 'action': 'submitted', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#pullrequestreview-71023857', 'comments': [{'commit_id': '89de49534316bb3bbe552f4801faca8dd818df4e', 'diff_hunk': '@@ -477,6 +477,125 @@ void TextureCacheBase::BindTextures()\n   }\n }\n \n+class ArbitraryMipmapDetector\n+{\n+private:\n+  using PixelRGBA = std::array<u8, 4>;\n+  using PixelRGBAf = std::array<float, 4>;\n+\n+  static float SRGBToLinear(u8 sRGBbyte) {\n+    auto sRGB = sRGBbyte / 256.f;\n+    //approximations found on http://chilliant.blogspot.com/2012/08/srgb-approximations-for-hlsl.html\n+    return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878);\n+  }\n+\n+  static u8 LinearToSRGB(float linear) {\n+    return std::max(1.055f * std::pow(linear, 0.416666667f) - 0.055f, 0.f) * 256.f;\n+  }\n+  \n+  struct Level {\n+    u32 width;\n+    u32 height;\n+    u32 row_length;\n+    const PixelRGBA* buffer;\n+\n+    PixelRGBAf Sample(u32 x, u32 y) const {\n+      auto& p = buffer[x + y * row_length];\n+      return {\n+        SRGBToLinear(p[0]),\n+        SRGBToLinear(p[1]),\n+        SRGBToLinear(p[2]),\n+        SRGBToLinear(p[3])\n+      };\n+    }\n+\n+    // Puts a downsampled image in dst. dst must be at least width*height*4\n+    void Downsample(PixelRGBA* dst, const Level& mip_shape) const {\n+      for (u32 i = 0; i < mip_shape.height; ++i) {\n+        for (u32 j = 0; j < mip_shape.width; ++j) {\n+          auto x = j * 2;\n+          auto y = i * 2;\n+          const std::array<PixelRGBAf, 4> samples = {\n+            Sample(x, y),\n+            Sample(x + 1, y),\n+            Sample(x, y + 1),\n+            Sample(x + 1, y + 1)\n+          };\n+          auto& dst_pixel = dst[j + i * mip_shape.row_length];\n+          dst_pixel[0] = LinearToSRGB((samples[0][0] + samples[0][1] + samples[0][2] + samples[0][3]) * 0.25f);\n+          dst_pixel[1] = LinearToSRGB((samples[1][0] + samples[1][1] + samples[1][2] + samples[1][3]) * 0.25f);\n+          dst_pixel[2] = LinearToSRGB((samples[2][0] + samples[2][1] + samples[2][2] + samples[2][3]) * 0.25f);\n+          dst_pixel[3] = LinearToSRGB((samples[3][0] + samples[3][1] + samples[3][2] + samples[3][3]) * 0.25f);\n+\n+        }\n+      }\n+    }\n+\n+    float AverageDiff(const PixelRGBA* other) const {\n+      float average_diff = 0.f;\n+      const auto* ptr1 = buffer;\n+      const auto* ptr2 = other;\n+      for (u32 i = 0; i < height; ++i) {\n+        auto row1 = ptr1;\n+        auto row2 = ptr2;\n+        for (u32 j = 0; j < width; ++j, ++row1, ++row2) {\n+          average_diff += std::abs((*row1)[0] - (*row2)[0]);\n+          average_diff += std::abs((*row1)[1] - (*row2)[1]);\n+          average_diff += std::abs((*row1)[2] - (*row2)[2]);\n+          average_diff += std::abs((*row1)[3] - (*row2)[3]);\n+        }\n+        ptr1 += row_length;\n+        ptr2 += row_length;\n+      }\n+\n+      return average_diff / (width * height * 4) / 2.56f;\n+    }\n+  };\n+\n+public:\n+  explicit ArbitraryMipmapDetector() {\n+\n+  }\n+\n+  void AddLevel(u32 width, u32 height, u32 row_length, const u8* buffer)\n+  {\n+    levels.push_back({ width, height, row_length, reinterpret_cast<const PixelRGBA*>(buffer) });', 'created_at': '2017-10-22T05:17:05Z', 'user': {'gists_url': 'https://api.github.com/users/lioncash/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/712067?v=4', 'url': 'https://api.github.com/users/lioncash', 'gravatar_id': '', 'html_url': 'https://github.com/lioncash', 'id': 712067, 'repos_url': 'https://api.github.com/users/lioncash/repos', 'events_url': 'https://api.github.com/users/lioncash/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/lioncash/subscriptions', 'starred_url': 'https://api.github.com/users/lioncash/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/lioncash/following{/other_user}', 'login': 'lioncash', 'received_events_url': 'https://api.github.com/users/lioncash/received_events', 'followers_url': 'https://api.github.com/users/lioncash/followers', 'organizations_url': 'https://api.github.com/users/lioncash/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146122151', 'position': None, 'pull_request_review_id': 71023857, 'updated_at': '2017-10-22T05:17:05Z', 'id': 146122151, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118', 'author_association': 'OWNER', 'original_position': 86, 'in_reply_to_id': 146095288, 'body': '[Wall of standardese part deux]\r\n\r\n> My feeling is `memcpy` may be fast but it\'s still slower than not doing it at all.\r\n\r\nNot always, that\'s why I said, it depends on your scenario. 99% of the time it will [optimize away]\r\n(https://godbolt.org/g/X4S13K) (If you want to lose your faith in MSVC a litte, assuming there\'s any still left, memcpy is actually better than manually shifting out the bytes from u8 data).\r\n\r\nIf it\'s a case where it demonstrably underperforms (as in no preconceived assumptions were made about the function, the assembly was actually looked at). Aside from calling the organization/design of the data and interface into question, you can use `offsetof` to get the struct offset of the member and then use that relative to your data buffer, and memcpy it out which may be better. Ditto if it\'s a buffer you need to put data into and opposed to read out of.\r\n\r\n> Yes, a \'struct overlay\' might be undefined behavior but imo things change all the time ...\r\n\r\nWhen you target a standard version. That undefined behavior doesn\'t change. That\'s why it\'s in a standard. Being negligent just because a problem hasn\'t already happened is not really that great an outlook to have (IMO), not only on undefined behavior. Doubly so, if it\'s related to software where others can be put at risk by it malfunctioning. It\'s an *entirely* preventable potential problem. This also causes more unnecessary work, should a problem occur.\r\n\r\nAlso, if those tests happen to invoke undefined behavior as well through the same manner, or through some other means, then I have bad news about the total reliability of those tests ;)\r\n\r\n> Unions seem reasonable but I was not aware accessing the non-last-set member is undefined behavior, isn\'t this a problem?\r\n\r\nIn C++, it depends, there are special allowances (I\'ll explain this later on). In C99 and C11, no, it\'s explicitly allowed, *however* it\'s allowed to trap, so you need to make sure you handle your data correctly depending on the platforms you target. This is specified in footnote 82 of the C99 standard. In the C11 standard, it\'s renumbered to footnote 92:\r\n\r\n> If the member used to access the contents of a union object is not the same as the member last used to store a value in the object, the appropriate part of the object representation of the value is reinterpreted as an object representation in the new type as described in 6.2.6 (a process sometimes called "type punning"). This might be a trap representation.\r\n\r\nNow, in C++, you are allowed to inspect a non-static member of an inactive struct in a *standard layout* union if and only if it shares a common initial sequence with the active struct in a union. This is specified in 9.3 ([class.union]) paragraph 1 in the C++17 standard:\r\n\r\n> In a union, at most one of the non-static data members can be active at any time, that is, the value of at most one of the non-static data members can be stored in a union at any time. [ *Note*: One special guarantee is made in order to simplify the use of unions: If a standard-layout union contains several standard-layout structs that share a common initial sequence (9.2), and if an object of this standard-layout union type contains one of the standard-layout structs, it is permitted to inspect the common initial sequence of any of standard-layout struct members; see 9.2. —*end note* ]\r\n\r\n9.2 ([class.mem]) paragraph 23 also says:\r\n\r\n> In a standard-layout union with an active member (9.3) of struct type `T1`, it is permitted to read a non-static data member `m` of another union member of struct type `T2` provided m is part of the common initial sequence of `T1` and `T2`. [ *Note*: Reading a volatile object through a non-volatile glvalue has undefined behavior (7.1.6.1). —*end note* ]\r\n\r\nNow, a *common initial sequence* is described as follows at 9.2 ([class.mem]) paragraph 20 in the C++17 standard:\r\n\r\n> The common initial sequence of two standard-layout struct (Clause 9) types is the longest sequence of non-static data members and bit-fields in declaration order, starting with the first such entity in each of the structs, such that corresponding entities have layout-compatible types and either neither entity is a bit-field or both are bit-fields with the same width. [ *Example:*\r\n> ```\r\n> struct A { int a; char b; };\r\n> struct B { const int b1; volatile char b2; };\r\n> struct C { int c; unsigned : 0; char b; };\r\n> struct D { int d; char b : 4; };\r\n> struct E { unsigned int e; char b; };\r\n> ```\r\n>The common initial sequence of `A` and `B` comprises all members of either class. The common initial sequence of `A` and `C` and of `A` and `D` comprises the first member in each case. The common initial sequence of `A` and `E` is empty. —*end example* ]\r\n\r\nWhat this means is if you have two structs such that are like so:\r\n\r\n```cpp\r\nstruct A\r\n{\r\n  uint8_t a;\r\n  uint16_t b;\r\n  uint32_t c;\r\n};\r\n\r\nstruct B\r\n{\r\n  uint8_t a;\r\n  uint16_t b;\r\n  uint32_t c;\r\n  uint64_t d;\r\n}\r\n```\r\n\r\nit\'s permissible to have a union like so:\r\n\r\n```cpp\r\nunion U\r\n{\r\n  A x;\r\n  B y;\r\n};\r\n```\r\n\r\nand inspect `a`, `b`, or `c` from either structs `A` or `B` regardless of their activity status in the union. *However* if `A` is active, it\'s undefined to access `B`\'s member `d`.\r\n\r\n\r\n> I\'m curious though, what solution do you prefer?\r\n\r\nIdeally, I don\'t put myself in a situation where I need to reinterpret data like that. It\'s usually an indicator of a flawed interface most of the time. However, when I do need to reinterpret data I use `memcpy` because it\'s the one that\'s least likely to screw up.\r\n', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146122151', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146122151'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146122151'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118'}}, 'original_commit_id': '8ee5c332cb2b0b45799ab3e629f40e10fed06c3d', 'path': 'Source/Core/VideoCommon/TextureCacheBase.cpp'}], 'state': 'commented', 'source': 'ghhookparser', 'author': 'lioncash', 'pr_id': 6118, 'repo': 'dolphin-emu/dolphin', 'type': 'gh_pull_request_review'}
2017-10-22T03:17:27.668236	{'pr_title': 'Resolution independent mipmaps (high IR Super Mario Galaxy Fix)', 'action': 'submitted', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#pullrequestreview-71022592', 'comments': [{'commit_id': '8d27271a9a0b7658b7111a07f55042bda587dffc', 'diff_hunk': '@@ -477,6 +477,125 @@ void TextureCacheBase::BindTextures()\n   }\n }\n \n+class ArbitraryMipmapDetector\n+{\n+private:\n+  using PixelRGBA = std::array<u8, 4>;\n+  using PixelRGBAf = std::array<float, 4>;\n+\n+  static float SRGBToLinear(u8 sRGBbyte) {\n+    auto sRGB = sRGBbyte / 256.f;\n+    //approximations found on http://chilliant.blogspot.com/2012/08/srgb-approximations-for-hlsl.html\n+    return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878);\n+  }\n+\n+  static u8 LinearToSRGB(float linear) {\n+    return std::max(1.055f * std::pow(linear, 0.416666667f) - 0.055f, 0.f) * 256.f;\n+  }\n+  \n+  struct Level {\n+    u32 width;\n+    u32 height;\n+    u32 row_length;\n+    const PixelRGBA* buffer;\n+\n+    PixelRGBAf Sample(u32 x, u32 y) const {\n+      auto& p = buffer[x + y * row_length];\n+      return {\n+        SRGBToLinear(p[0]),\n+        SRGBToLinear(p[1]),\n+        SRGBToLinear(p[2]),\n+        SRGBToLinear(p[3])\n+      };\n+    }\n+\n+    // Puts a downsampled image in dst. dst must be at least width*height*4\n+    void Downsample(PixelRGBA* dst, const Level& mip_shape) const {\n+      for (u32 i = 0; i < mip_shape.height; ++i) {\n+        for (u32 j = 0; j < mip_shape.width; ++j) {\n+          auto x = j * 2;\n+          auto y = i * 2;\n+          const std::array<PixelRGBAf, 4> samples = {\n+            Sample(x, y),\n+            Sample(x + 1, y),\n+            Sample(x, y + 1),\n+            Sample(x + 1, y + 1)\n+          };\n+          auto& dst_pixel = dst[j + i * mip_shape.row_length];\n+          dst_pixel[0] = LinearToSRGB((samples[0][0] + samples[0][1] + samples[0][2] + samples[0][3]) * 0.25f);\n+          dst_pixel[1] = LinearToSRGB((samples[1][0] + samples[1][1] + samples[1][2] + samples[1][3]) * 0.25f);\n+          dst_pixel[2] = LinearToSRGB((samples[2][0] + samples[2][1] + samples[2][2] + samples[2][3]) * 0.25f);\n+          dst_pixel[3] = LinearToSRGB((samples[3][0] + samples[3][1] + samples[3][2] + samples[3][3]) * 0.25f);\n+\n+        }\n+      }\n+    }\n+\n+    float AverageDiff(const PixelRGBA* other) const {\n+      float average_diff = 0.f;\n+      const auto* ptr1 = buffer;\n+      const auto* ptr2 = other;\n+      for (u32 i = 0; i < height; ++i) {\n+        auto row1 = ptr1;\n+        auto row2 = ptr2;\n+        for (u32 j = 0; j < width; ++j, ++row1, ++row2) {\n+          average_diff += std::abs((*row1)[0] - (*row2)[0]);\n+          average_diff += std::abs((*row1)[1] - (*row2)[1]);\n+          average_diff += std::abs((*row1)[2] - (*row2)[2]);\n+          average_diff += std::abs((*row1)[3] - (*row2)[3]);\n+        }\n+        ptr1 += row_length;\n+        ptr2 += row_length;\n+      }\n+\n+      return average_diff / (width * height * 4) / 2.56f;\n+    }\n+  };\n+\n+public:\n+  explicit ArbitraryMipmapDetector() {\n+\n+  }\n+\n+  void AddLevel(u32 width, u32 height, u32 row_length, const u8* buffer)\n+  {\n+    levels.push_back({ width, height, row_length, reinterpret_cast<const PixelRGBA*>(buffer) });', 'created_at': '2017-10-22T03:17:25Z', 'user': {'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15224722?v=4', 'url': 'https://api.github.com/users/iwubcode', 'gravatar_id': '', 'html_url': 'https://github.com/iwubcode', 'id': 15224722, 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'login': 'iwubcode', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146120882', 'position': None, 'pull_request_review_id': 71022592, 'updated_at': '2017-10-22T03:17:25Z', 'id': 146120882, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118', 'author_association': 'MEMBER', 'original_position': 86, 'in_reply_to_id': 146095288, 'body': "Thanks @lioncash .  Just discussing at this point, it's interesting to get opinions outside of the usual circle.  I haven't had time to absorb all the material you have given but I do really appreciate it.\r\n\r\nMy feeling is `memcpy` may be fast but it's still slower than not doing it at all.  In truly performant critical code the trade off may be worth it to some.\r\n\r\n> It's unfortunate and slightly disheartening that you would rather perpetuate non-compliant and undefined behavior equivalents over other methods of performing the same thing\r\n\r\nHonestly, I'm open to other solutions but I just haven't seen anything that I'm happy with.  Again, `memcpy` is fine in some situations but not all.\r\n\r\nUnions seem reasonable but I was not aware [accessing the non-last-set member is undefined behavior](https://stackoverflow.com/questions/11373203/accessing-inactive-union-member-and-undefined-behavior), isn't this a problem?\r\n\r\nYes, it might be undefined behavior but imo things change all the time, whether by changing code or changing compilers, or both!  That is why in production code you have unit-tests, acceptance tests, qa, and other such things to ensure that although some things may change, the end result is the same.  And when things do change, you come up with a new approach to the problem.\r\n\r\nI'm curious though, what solution do you prefer?\r\n\r\nMyself, for my Dolphin code, I'll likely look into `memcpy` as that seems to be the cleanest and the simplest solution.", 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146120882', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146120882'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146120882'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118'}}, 'original_commit_id': '8ee5c332cb2b0b45799ab3e629f40e10fed06c3d', 'path': 'Source/Core/VideoCommon/TextureCacheBase.cpp'}], 'state': 'commented', 'source': 'ghhookparser', 'author': 'iwubcode', 'pr_id': 6118, 'repo': 'dolphin-emu/dolphin', 'type': 'gh_pull_request_review'}
2017-10-21T22:58:05.909793	{'pr_title': '[wip] AudioCommon: allow changing stream parameters (backend, DPL2, etc.) at runtime', 'action': 'submitted', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6129#pullrequestreview-71019120', 'comments': [{'commit_id': 'd14ccc8c7c1e718d1b51f7de179cc99f3d628eb4', 'diff_hunk': '@@ -150,39 +121,110 @@ bool SupportsVolumeChanges(const std::string& backend)\n   return backend == BACKEND_CUBEB || backend == BACKEND_OPENAL || backend == BACKEND_XAUDIO2;\n }\n \n-void UpdateSoundStream()\n+template <class T>\n+static bool UpdateIfChanged(T& last, const T& current)\n {\n-  if (g_sound_stream)\n+  if (last == current)\n+    return false;\n+\n+  last = current;\n+  return true;\n+}\n+\n+static void RecreateSoundStreamIfNeeded()\n+{\n+  if (!GetMixer())\n+    return;\n+\n+  static std::string s_last_backend;\n+  static bool s_last_dpl2_enabled;\n+  static int s_last_latency;\n+\n+  const std::string& backend = SConfig::GetInstance().sBackend;\n+  const bool backend_changed = UpdateIfChanged(s_last_backend, backend);\n+  const bool dpl2_changed =\n+      UpdateIfChanged(s_last_dpl2_enabled, SConfig::GetInstance().bDPL2Decoder);\n+  const bool latency_changed = UpdateIfChanged(s_last_latency, SConfig::GetInstance().iLatency);\n+\n+  if (!s_sound_stream || backend_changed || dpl2_changed || latency_changed)\n   {\n-    int volume = SConfig::GetInstance().m_IsMuted ? 0 : SConfig::GetInstance().m_Volume;\n-    g_sound_stream->SetVolume(volume);\n+    if (s_sound_stream)\n+    {\n+      s_sound_stream->Stop();\n+      s_sound_stream.reset();\n+    }\n+\n+    if (backend == BACKEND_CUBEB)', 'created_at': '2017-10-21T22:58:04Z', 'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146117435', 'position': 128, 'pull_request_review_id': 71019120, 'updated_at': '2017-10-21T22:58:04Z', 'id': 146117435, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6129', 'author_association': 'MEMBER', 'original_position': 128, 'in_reply_to_id': 146116854, 'body': 'Nice, I like it.', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6129#discussion_r146117435', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6129#discussion_r146117435'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146117435'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6129'}}, 'original_commit_id': 'd14ccc8c7c1e718d1b51f7de179cc99f3d628eb4', 'path': 'Source/Core/AudioCommon/AudioCommon.cpp'}], 'state': 'commented', 'source': 'ghhookparser', 'author': 'ligfx', 'pr_id': 6129, 'repo': 'dolphin-emu/dolphin', 'type': 'gh_pull_request_review'}
2017-10-21T22:58:00.349228	{'pr_title': '[wip] AudioCommon: allow changing stream parameters (backend, DPL2, etc.) at runtime', 'action': 'submitted', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6129#pullrequestreview-71019118', 'comments': [{'commit_id': 'd14ccc8c7c1e718d1b51f7de179cc99f3d628eb4', 'diff_hunk': '@@ -17,8 +17,8 @@\n #include "Common/Logging/Log.h"\n #include "Core/ConfigManager.h"\n \n-// This shouldn\'t be a global, at least not here.\n-std::unique_ptr<SoundStream> g_sound_stream;\n+static std::unique_ptr<Mixer> s_mixer;', 'created_at': '2017-10-21T22:57:58Z', 'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146117433', 'position': 6, 'pull_request_review_id': 71019118, 'updated_at': '2017-10-21T22:57:58Z', 'id': 146117433, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6129', 'author_association': 'MEMBER', 'original_position': 6, 'in_reply_to_id': 146116764, 'body': 'By "automatically handled", do you mean that instead of deleting both the mixer and the sound stream, you\'d like to see it only have to delete the sound stream? I don\'t really see the benefit to that: the mixer, logically, isn\'t part of an output stream, but something that can be used separately (see #6130: there\'s no need to even call the Mix function).', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6129#discussion_r146117433', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6129#discussion_r146117433'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146117433'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6129'}}, 'original_commit_id': 'd14ccc8c7c1e718d1b51f7de179cc99f3d628eb4', 'path': 'Source/Core/AudioCommon/AudioCommon.cpp'}], 'state': 'commented', 'source': 'ghhookparser', 'author': 'ligfx', 'pr_id': 6129, 'repo': 'dolphin-emu/dolphin', 'type': 'gh_pull_request_review'}
2017-10-21T22:50:17.258265	{'pr_title': "[Android] Don't install Genymotion plugin when importing Code Style preferences file", 'action': 'submitted', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6127#pullrequestreview-71018965', 'comments': [], 'state': 'approved', 'source': 'ghhookparser', 'author': 'lioncash', 'pr_id': 6127, 'repo': 'dolphin-emu/dolphin', 'type': 'gh_pull_request_review'}
2017-10-21T22:48:36.934838	{'pr_title': 'Android: refactor and bugfix for input settings', 'action': 'submitted', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6123#pullrequestreview-71018942', 'comments': [], 'state': 'approved', 'source': 'ghhookparser', 'author': 'lioncash', 'pr_id': 6123, 'repo': 'dolphin-emu/dolphin', 'type': 'gh_pull_request_review'}
2017-10-21T22:41:40.929662	{'pr_title': 'Android: refactor and bugfix for input settings', 'action': 'submitted', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6123#pullrequestreview-71018840', 'comments': [{'commit_id': 'fb6274f7bcabdc617d6aa65f07b277dd42b548ae', 'diff_hunk': '@@ -60,117 +51,100 @@ public boolean onKeyDown(int keyCode, KeyEvent event)\n \t\t}\n \t}\n \n+\t@Override\n+\tpublic boolean dispatchKeyEvent(KeyEvent event)\n+\t{\n+\t\t// Handle this key if we care about it, otherwise pass it down the framework\n+\t\treturn onKeyEvent(event.getKeyCode(), event) || super.dispatchKeyEvent(event);\n+\t}\n+\n+\t@Override\n+\tpublic boolean dispatchGenericMotionEvent(MotionEvent event)\n+\t{\n+\t\t// Handle this event if we care about it, otherwise pass it down the framework\n+\t\treturn onMotionEvent(event) || super.dispatchGenericMotionEvent(event);\n+\t}\n \n-\t// Method that will be called within dispatchGenericMotionEvent\n-\t// that handles joystick/controller movements.\n \tprivate boolean onMotionEvent(MotionEvent event)\n \t{\n-\t\tif ((event.getSource() & InputDevice.SOURCE_CLASS_JOYSTICK) == 0)\n+\t\tif (((event.getSource() & InputDevice.SOURCE_CLASS_JOYSTICK) == 0))\n \t\t\treturn false;\n \n \t\tLog.debug("[MotionAlertDialog] Received motion event: " + event.getAction());\n \n \t\tInputDevice input = event.getDevice();\n-\t\tList<InputDevice.MotionRange> motions = input.getMotionRanges();\n-\t\tif (firstEvent)\n-\t\t{\n-\t\t\tm_values.clear();\n+\t\tList<InputDevice.MotionRange> motionRanges = input.getMotionRanges();\n \n-\t\t\tfor (InputDevice.MotionRange range : motions)\n-\t\t\t{\n-\t\t\t\tm_values.add(event.getAxisValue(range.getAxis()));\n-\t\t\t}\n-\n-\t\t\tfirstEvent = false;\n-\t\t}\n-\t\telse\n+\t\tint numMovedAxis = 0;\n+\t\tInputDevice.MotionRange lastMovedRange = null;\n+\t\tchar lastMovedDir = \'?\';\n+\t\tif (mWaitingForEvent)\n \t\t{\n-\t\t\tfor (int a = 0; a < motions.size(); ++a)\n+\t\t\t// Get only the axis that seem to have moved (more than .5)\n+\t\t\tfor (InputDevice.MotionRange range : motionRanges)\n \t\t\t{\n-\t\t\t\tInputDevice.MotionRange range = motions.get(a);\n-\n-\t\t\t\tif (m_values.get(a) > (event.getAxisValue(range.getAxis()) + 0.5f))\n-\t\t\t\t{\n-\t\t\t\t\tsaveInput(input, null, range, false);\n-\t\t\t\t}\n-\t\t\t\telse if (m_values.get(a) < (event.getAxisValue(range.getAxis()) - 0.5f))\n+\t\t\t\tint axis = range.getAxis();\n+\t\t\t\tfloat value = event.getAxisValue(axis);\n+\t\t\t\tif (Math.abs(value) > 0.5f)\n \t\t\t\t{\n-\t\t\t\t\tsaveInput(input, null, range, true);\n+\t\t\t\t\tnumMovedAxis++;\n+\t\t\t\t\tlastMovedRange = range;\n+\t\t\t\t\tlastMovedDir = value < 0.0f ? \'-\' : \'+\';\n \t\t\t\t}\n \t\t\t}\n+\n+\t\t\t// If only one axis moved, that\'s the winner.\n+\t\t\tif (numMovedAxis == 1)\n+\t\t\t{\n+\t\t\t\tmWaitingForEvent = false;\n+\t\t\t\tsaveMotionInput(input, lastMovedRange, lastMovedDir);\n+\t\t\t}\n \t\t}\n \n \t\treturn true;\n \t}\n \n-\t@Override\n-\tpublic boolean dispatchKeyEvent(KeyEvent event)\n+\t/**\n+\t * Saves the provided key input setting both to the INI file (so native code can use it) and as\n+\t * an Android preference (so it persists correctly and is human-readable.)\n+\t *\n+\t * @param keyEvent     KeyEvent of this key press.\n+\t */\n+\tprivate void saveKeyInput(KeyEvent keyEvent)\n \t{\n-\t\treturn onKeyDown(event.getKeyCode(), event) || super.dispatchKeyEvent(event);\n-\t}\n+\t\tInputDevice device = keyEvent.getDevice();\n+\t\tString bindStr = "Device \'" + device.getDescriptor() + "\'-Button " + keyEvent.getKeyCode();\n+\t\tString uiString = device.getName() + ": Button " + keyEvent.getKeyCode();\n \n-\t@Override\n-\tpublic boolean dispatchGenericMotionEvent(MotionEvent event)\n-\t{\n-\t\treturn onMotionEvent(event) || super.dispatchGenericMotionEvent(event);\n+\t\tsaveInput(bindStr, uiString);\n \t}\n \n \t/**\n-\t * Saves the provided input setting both to the INI file (so native code can use it) and as an\n-\t * Android preference (so it persists correctly, and is human-readable.)\n+\t * Saves the provided motion input setting both to the INI file (so native code can use it) and as\n+\t * an Android preference (so it persists correctly and is human-readable.)\n \t *\n-\t * @param device       Required; the InputDevice from which the input event originated.\n-\t * @param keyEvent     If the event was a button push, this KeyEvent represents it and is required.\n-\t * @param motionRange  If the event was an axis movement, this MotionRange represents it and is required.\n-\t * @param axisPositive If the event was an axis movement, this boolean indicates the direction and is required.\n+\t * @param device       InputDevice from which the input event originated.\n+\t * @param motionRange  MotionRange of the movement\n+\t * @param axisDir      Either \'-\' or \'+\'\n \t */\n-\tprivate void saveInput(InputDevice device, KeyEvent keyEvent, InputDevice.MotionRange motionRange, boolean axisPositive)\n+\tprivate void saveMotionInput(InputDevice device, InputDevice.MotionRange motionRange, char axisDir)\n \t{\n-\t\tString bindStr = null;\n-\t\tString uiString = null;\n+\t\tString bindStr = "Device \'" + device.getDescriptor() + "\'-Axis " + motionRange.getAxis() + axisDir;\n+\t\tString uiString = device.getName() + ": Axis " + motionRange.getAxis() + axisDir;\n \n-\t\tif (keyEvent != null)\n-\t\t{\n-\t\t\tbindStr = "Device \'" + device.getDescriptor() + "\'-Button " + keyEvent.getKeyCode();\n-\t\t\tuiString = device.getName() + ": Button " + keyEvent.getKeyCode();\n-\t\t}\n-\n-\t\tif (motionRange != null)\n-\t\t{\n-\t\t\tif (axisPositive)\n-\t\t\t{\n-\t\t\t\tbindStr = "Device \'" + device.getDescriptor() + "\'-Axis " + motionRange.getAxis() + "+";\n-\t\t\t\tuiString = device.getName() + ": Axis " + motionRange.getAxis() + "+";\n-\t\t\t}\n-\t\t\telse\n-\t\t\t{\n-\t\t\t\tbindStr = "Device \'" + device.getDescriptor() + "\'-Axis " + motionRange.getAxis() + "-";\n-\t\t\t\tuiString = device.getName() + ": Axis " + motionRange.getAxis() + "-";\n-\t\t\t}\n-\t\t}\n-\n-\t\tif (bindStr != null)\n-\t\t{\n-\t\t\tsetting.setValue(bindStr);\n-\t\t}\n-\t\telse\n-\t\t{\n-\t\t\tLog.error("[MotionAlertDialog] Failed to save input to INI.");\n-\t\t}\n+\t\tsaveInput(bindStr, uiString);\n+\t}\n \n+\t/** Save the input string to settings and SharedPreferences, then dismiss this Dialog. */', 'created_at': '2017-10-21T22:41:39Z', 'user': {'gists_url': 'https://api.github.com/users/lioncash/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/712067?v=4', 'url': 'https://api.github.com/users/lioncash', 'gravatar_id': '', 'html_url': 'https://github.com/lioncash', 'id': 712067, 'repos_url': 'https://api.github.com/users/lioncash/repos', 'events_url': 'https://api.github.com/users/lioncash/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/lioncash/subscriptions', 'starred_url': 'https://api.github.com/users/lioncash/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/lioncash/following{/other_user}', 'login': 'lioncash', 'received_events_url': 'https://api.github.com/users/lioncash/received_events', 'followers_url': 'https://api.github.com/users/lioncash/followers', 'organizations_url': 'https://api.github.com/users/lioncash/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146117141', 'position': 199, 'pull_request_review_id': 71018840, 'updated_at': '2017-10-21T22:41:39Z', 'id': 146117141, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6123', 'author_association': 'OWNER', 'original_position': 201, 'in_reply_to_id': 145523143, 'body': "Nah, it's fine. It's relatively self-explanatory in this case. Was more just a comment to ask if you had intended to put them there in the first place but had forgotten or something. ", 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6123#discussion_r146117141', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6123#discussion_r146117141'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146117141'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6123'}}, 'original_commit_id': '6f416aac56724c4e7833bf007738fe4bb46e7e81', 'path': 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/MotionAlertDialog.java'}], 'state': 'commented', 'source': 'ghhookparser', 'author': 'lioncash', 'pr_id': 6123, 'repo': 'dolphin-emu/dolphin', 'type': 'gh_pull_request_review'}
2017-10-21T22:31:21.324714	{'pr_title': '[wip] AudioCommon: allow changing stream parameters (backend, DPL2, etc.) at runtime', 'action': 'submitted', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6129#pullrequestreview-71018433', 'comments': [{'commit_id': 'd14ccc8c7c1e718d1b51f7de179cc99f3d628eb4', 'diff_hunk': '@@ -17,8 +17,8 @@\n #include "Common/Logging/Log.h"\n #include "Core/ConfigManager.h"\n \n-// This shouldn\'t be a global, at least not here.\n-std::unique_ptr<SoundStream> g_sound_stream;\n+static std::unique_ptr<Mixer> s_mixer;', 'created_at': '2017-10-21T22:14:01Z', 'user': {'gists_url': 'https://api.github.com/users/lioncash/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/712067?v=4', 'url': 'https://api.github.com/users/lioncash', 'gravatar_id': '', 'html_url': 'https://github.com/lioncash', 'id': 712067, 'repos_url': 'https://api.github.com/users/lioncash/repos', 'events_url': 'https://api.github.com/users/lioncash/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/lioncash/subscriptions', 'starred_url': 'https://api.github.com/users/lioncash/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/lioncash/following{/other_user}', 'login': 'lioncash', 'received_events_url': 'https://api.github.com/users/lioncash/received_events', 'followers_url': 'https://api.github.com/users/lioncash/followers', 'organizations_url': 'https://api.github.com/users/lioncash/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146116764', 'position': 6, 'pull_request_review_id': 71018433, 'updated_at': '2017-10-21T22:31:19Z', 'id': 146116764, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6129', 'author_association': 'OWNER', 'original_position': 6, 'body': "Would it not be better to have the `SoundStream` manage the lifetime of the mixer, so its destruction is automatically handled, but the old SoundStream simply has a means to transfer or 'hand off' its mixer over to the new one before destruction? It'd cut down on mutable static state a little.", 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6129#discussion_r146116764', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6129#discussion_r146116764'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146116764'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6129'}}, 'original_commit_id': 'd14ccc8c7c1e718d1b51f7de179cc99f3d628eb4', 'path': 'Source/Core/AudioCommon/AudioCommon.cpp'}, {'commit_id': 'd14ccc8c7c1e718d1b51f7de179cc99f3d628eb4', 'diff_hunk': '@@ -150,39 +121,110 @@ bool SupportsVolumeChanges(const std::string& backend)\n   return backend == BACKEND_CUBEB || backend == BACKEND_OPENAL || backend == BACKEND_XAUDIO2;\n }\n \n-void UpdateSoundStream()\n+template <class T>\n+static bool UpdateIfChanged(T& last, const T& current)\n {\n-  if (g_sound_stream)\n+  if (last == current)\n+    return false;\n+\n+  last = current;\n+  return true;\n+}\n+\n+static void RecreateSoundStreamIfNeeded()\n+{\n+  if (!GetMixer())\n+    return;\n+\n+  static std::string s_last_backend;\n+  static bool s_last_dpl2_enabled;\n+  static int s_last_latency;\n+\n+  const std::string& backend = SConfig::GetInstance().sBackend;\n+  const bool backend_changed = UpdateIfChanged(s_last_backend, backend);\n+  const bool dpl2_changed =\n+      UpdateIfChanged(s_last_dpl2_enabled, SConfig::GetInstance().bDPL2Decoder);\n+  const bool latency_changed = UpdateIfChanged(s_last_latency, SConfig::GetInstance().iLatency);\n+\n+  if (!s_sound_stream || backend_changed || dpl2_changed || latency_changed)\n   {\n-    int volume = SConfig::GetInstance().m_IsMuted ? 0 : SConfig::GetInstance().m_Volume;\n-    g_sound_stream->SetVolume(volume);\n+    if (s_sound_stream)\n+    {\n+      s_sound_stream->Stop();\n+      s_sound_stream.reset();\n+    }\n+\n+    if (backend == BACKEND_CUBEB)', 'created_at': '2017-10-21T22:20:44Z', 'user': {'gists_url': 'https://api.github.com/users/lioncash/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/712067?v=4', 'url': 'https://api.github.com/users/lioncash', 'gravatar_id': '', 'html_url': 'https://github.com/lioncash', 'id': 712067, 'repos_url': 'https://api.github.com/users/lioncash/repos', 'events_url': 'https://api.github.com/users/lioncash/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/lioncash/subscriptions', 'starred_url': 'https://api.github.com/users/lioncash/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/lioncash/following{/other_user}', 'login': 'lioncash', 'received_events_url': 'https://api.github.com/users/lioncash/received_events', 'followers_url': 'https://api.github.com/users/lioncash/followers', 'organizations_url': 'https://api.github.com/users/lioncash/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146116854', 'position': 128, 'pull_request_review_id': 71018433, 'updated_at': '2017-10-21T22:31:19Z', 'id': 146116854, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6129', 'author_association': 'OWNER', 'original_position': 128, 'body': 'The initial SoundStream creation itself can likely be put into it\'s own function like:\r\n\r\n```cpp\r\nstatic std::unique_ptr<SoundStream> CreateSoundStream(const std::string& backend)\r\n{\r\n  if (backend == BACKEND_CUBEB)\r\n    return std::make_unique<CubebStream>();\r\n\r\n  if (backend == BACKEND_OPENAL && OpenALStream::isValid())\r\n    return std::make_unique<OpenALStream>();\r\n\r\n  if (backend == BACKEND_NULLSOUND)\r\n    return std::make_unique<NullSound>();\r\n\r\n  if (backend == BACKEND_XAUDIO2)\r\n  {\r\n    if (XAudio2::isValid())\r\n      return std::make_unique<XAudio2>();\r\n\r\n    if (XAudio2_7::isValid())\r\n      return std::make_unique<XAudio2_7>();\r\n  }\r\n\r\n  if (backend == BACKEND_ALSA && AlsaSound::isValid())\r\n    return std::make_unique<AlsaSound>();\r\n\r\n  if (backend == BACKEND_PULSEAUDIO && PulseAudio::isValid())\r\n    return std::make_unique<PulseAudio>();\r\n\r\n  if (backend == BACKEND_OPENSLES && OpenSLESStream::isValid())\r\n    return std::make_unique<OpenSLESStream>();\r\n\r\n    WARN_LOG(AUDIO, "Could not initialize backend %s, using %s instead.", backend.c_str(),\r\n             BACKEND_NULLSOUND);\r\n    return std::make_unique<NullSound>();\r\n}\r\n```\r\n\r\nThen the recreation function can just become:\r\n\r\n```cpp\r\nstatic void RecreateSoundStreamIfNeeded()\r\n{\r\n  if (!GetMixer())\r\n    return;\r\n\r\n  static std::string s_last_backend;\r\n  static bool s_last_dpl2_enabled;\r\n  static int s_last_latency;\r\n\r\n  const std::string& backend = SConfig::GetInstance().sBackend;\r\n  const bool backend_changed = UpdateIfChanged(s_last_backend, backend);\r\n  const bool dpl2_changed =\r\n      UpdateIfChanged(s_last_dpl2_enabled, SConfig::GetInstance().bDPL2Decoder);\r\n  const bool latency_changed = UpdateIfChanged(s_last_latency, SConfig::GetInstance().iLatency);\r\n\r\n  if (s_sound_stream && !backend_changed && !dpl2_changed && !latency_changed)\r\n    return;\r\n\r\n  if (s_sound_stream)\r\n    s_sound_stream->Stop();\r\n\r\n  s_sound_stream = CreateSoundStream(backend);\r\n\r\n  if (!s_sound_stream->Start())\r\n  {\r\n    ERROR_LOG(AUDIO, "Could not start backend %s, using %s instead", backend.c_str(),\r\n              BACKEND_NULLSOUND);\r\n\r\n    s_sound_stream = std::make_unique<NullSound>();\r\n    s_sound_stream->Start();\r\n  }\r\n}\r\n```', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6129#discussion_r146116854', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6129#discussion_r146116854'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146116854'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6129'}}, 'original_commit_id': 'd14ccc8c7c1e718d1b51f7de179cc99f3d628eb4', 'path': 'Source/Core/AudioCommon/AudioCommon.cpp'}], 'state': 'commented', 'source': 'ghhookparser', 'author': 'lioncash', 'pr_id': 6129, 'repo': 'dolphin-emu/dolphin', 'type': 'gh_pull_request_review'}
2017-10-21T22:31:20.792124	{'pr_title': '[wip] AudioCommon: allow changing stream parameters (backend, DPL2, etc.) at runtime', 'action': 'edited', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6129#pullrequestreview-71018433', 'comments': [{'commit_id': 'd14ccc8c7c1e718d1b51f7de179cc99f3d628eb4', 'diff_hunk': '@@ -17,8 +17,8 @@\n #include "Common/Logging/Log.h"\n #include "Core/ConfigManager.h"\n \n-// This shouldn\'t be a global, at least not here.\n-std::unique_ptr<SoundStream> g_sound_stream;\n+static std::unique_ptr<Mixer> s_mixer;', 'created_at': '2017-10-21T22:14:01Z', 'user': {'gists_url': 'https://api.github.com/users/lioncash/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/712067?v=4', 'url': 'https://api.github.com/users/lioncash', 'gravatar_id': '', 'html_url': 'https://github.com/lioncash', 'id': 712067, 'repos_url': 'https://api.github.com/users/lioncash/repos', 'events_url': 'https://api.github.com/users/lioncash/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/lioncash/subscriptions', 'starred_url': 'https://api.github.com/users/lioncash/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/lioncash/following{/other_user}', 'login': 'lioncash', 'received_events_url': 'https://api.github.com/users/lioncash/received_events', 'followers_url': 'https://api.github.com/users/lioncash/followers', 'organizations_url': 'https://api.github.com/users/lioncash/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146116764', 'position': 6, 'pull_request_review_id': 71018433, 'updated_at': '2017-10-21T22:31:19Z', 'id': 146116764, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6129', 'author_association': 'OWNER', 'original_position': 6, 'body': "Would it not be better to have the `SoundStream` manage the lifetime of the mixer, so its destruction is automatically handled, but the old SoundStream simply has a means to transfer or 'hand off' its mixer over to the new one before destruction? It'd cut down on mutable static state a little.", 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6129#discussion_r146116764', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6129#discussion_r146116764'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146116764'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6129'}}, 'original_commit_id': 'd14ccc8c7c1e718d1b51f7de179cc99f3d628eb4', 'path': 'Source/Core/AudioCommon/AudioCommon.cpp'}, {'commit_id': 'd14ccc8c7c1e718d1b51f7de179cc99f3d628eb4', 'diff_hunk': '@@ -150,39 +121,110 @@ bool SupportsVolumeChanges(const std::string& backend)\n   return backend == BACKEND_CUBEB || backend == BACKEND_OPENAL || backend == BACKEND_XAUDIO2;\n }\n \n-void UpdateSoundStream()\n+template <class T>\n+static bool UpdateIfChanged(T& last, const T& current)\n {\n-  if (g_sound_stream)\n+  if (last == current)\n+    return false;\n+\n+  last = current;\n+  return true;\n+}\n+\n+static void RecreateSoundStreamIfNeeded()\n+{\n+  if (!GetMixer())\n+    return;\n+\n+  static std::string s_last_backend;\n+  static bool s_last_dpl2_enabled;\n+  static int s_last_latency;\n+\n+  const std::string& backend = SConfig::GetInstance().sBackend;\n+  const bool backend_changed = UpdateIfChanged(s_last_backend, backend);\n+  const bool dpl2_changed =\n+      UpdateIfChanged(s_last_dpl2_enabled, SConfig::GetInstance().bDPL2Decoder);\n+  const bool latency_changed = UpdateIfChanged(s_last_latency, SConfig::GetInstance().iLatency);\n+\n+  if (!s_sound_stream || backend_changed || dpl2_changed || latency_changed)\n   {\n-    int volume = SConfig::GetInstance().m_IsMuted ? 0 : SConfig::GetInstance().m_Volume;\n-    g_sound_stream->SetVolume(volume);\n+    if (s_sound_stream)\n+    {\n+      s_sound_stream->Stop();\n+      s_sound_stream.reset();\n+    }\n+\n+    if (backend == BACKEND_CUBEB)', 'created_at': '2017-10-21T22:20:44Z', 'user': {'gists_url': 'https://api.github.com/users/lioncash/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/712067?v=4', 'url': 'https://api.github.com/users/lioncash', 'gravatar_id': '', 'html_url': 'https://github.com/lioncash', 'id': 712067, 'repos_url': 'https://api.github.com/users/lioncash/repos', 'events_url': 'https://api.github.com/users/lioncash/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/lioncash/subscriptions', 'starred_url': 'https://api.github.com/users/lioncash/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/lioncash/following{/other_user}', 'login': 'lioncash', 'received_events_url': 'https://api.github.com/users/lioncash/received_events', 'followers_url': 'https://api.github.com/users/lioncash/followers', 'organizations_url': 'https://api.github.com/users/lioncash/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146116854', 'position': 128, 'pull_request_review_id': 71018433, 'updated_at': '2017-10-21T22:31:19Z', 'id': 146116854, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6129', 'author_association': 'OWNER', 'original_position': 128, 'body': 'The initial SoundStream creation itself can likely be put into it\'s own function like:\r\n\r\n```cpp\r\nstatic std::unique_ptr<SoundStream> CreateSoundStream(const std::string& backend)\r\n{\r\n  if (backend == BACKEND_CUBEB)\r\n    return std::make_unique<CubebStream>();\r\n\r\n  if (backend == BACKEND_OPENAL && OpenALStream::isValid())\r\n    return std::make_unique<OpenALStream>();\r\n\r\n  if (backend == BACKEND_NULLSOUND)\r\n    return std::make_unique<NullSound>();\r\n\r\n  if (backend == BACKEND_XAUDIO2)\r\n  {\r\n    if (XAudio2::isValid())\r\n      return std::make_unique<XAudio2>();\r\n\r\n    if (XAudio2_7::isValid())\r\n      return std::make_unique<XAudio2_7>();\r\n  }\r\n\r\n  if (backend == BACKEND_ALSA && AlsaSound::isValid())\r\n    return std::make_unique<AlsaSound>();\r\n\r\n  if (backend == BACKEND_PULSEAUDIO && PulseAudio::isValid())\r\n    return std::make_unique<PulseAudio>();\r\n\r\n  if (backend == BACKEND_OPENSLES && OpenSLESStream::isValid())\r\n    return std::make_unique<OpenSLESStream>();\r\n\r\n    WARN_LOG(AUDIO, "Could not initialize backend %s, using %s instead.", backend.c_str(),\r\n             BACKEND_NULLSOUND);\r\n    return std::make_unique<NullSound>();\r\n}\r\n```\r\n\r\nThen the recreation function can just become:\r\n\r\n```cpp\r\nstatic void RecreateSoundStreamIfNeeded()\r\n{\r\n  if (!GetMixer())\r\n    return;\r\n\r\n  static std::string s_last_backend;\r\n  static bool s_last_dpl2_enabled;\r\n  static int s_last_latency;\r\n\r\n  const std::string& backend = SConfig::GetInstance().sBackend;\r\n  const bool backend_changed = UpdateIfChanged(s_last_backend, backend);\r\n  const bool dpl2_changed =\r\n      UpdateIfChanged(s_last_dpl2_enabled, SConfig::GetInstance().bDPL2Decoder);\r\n  const bool latency_changed = UpdateIfChanged(s_last_latency, SConfig::GetInstance().iLatency);\r\n\r\n  if (s_sound_stream && !backend_changed && !dpl2_changed && !latency_changed)\r\n    return;\r\n\r\n  if (s_sound_stream)\r\n    s_sound_stream->Stop();\r\n\r\n  s_sound_stream = CreateSoundStream(backend);\r\n\r\n  if (!s_sound_stream->Start())\r\n  {\r\n    ERROR_LOG(AUDIO, "Could not start backend %s, using %s instead", backend.c_str(),\r\n              BACKEND_NULLSOUND);\r\n\r\n    s_sound_stream = std::make_unique<NullSound>();\r\n    s_sound_stream->Start();\r\n  }\r\n}\r\n```', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6129#discussion_r146116854', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6129#discussion_r146116854'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146116854'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6129'}}, 'original_commit_id': 'd14ccc8c7c1e718d1b51f7de179cc99f3d628eb4', 'path': 'Source/Core/AudioCommon/AudioCommon.cpp'}], 'state': 'commented', 'source': 'ghhookparser', 'author': 'lioncash', 'pr_id': 6129, 'repo': 'dolphin-emu/dolphin', 'type': 'gh_pull_request_review'}
2017-10-21T19:52:28.896507	{'pr_title': "[Android] Don't install Genymotion plugin when importing Code Style preferences file", 'action': 'submitted', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6127#pullrequestreview-71015849', 'comments': [], 'state': 'approved', 'source': 'ghhookparser', 'author': 'hackbar', 'pr_id': 6127, 'repo': 'dolphin-emu/dolphin', 'type': 'gh_pull_request_review'}
2017-10-21T07:47:42.249788	{'pr_title': 'Resolution independent mipmaps (high IR Super Mario Galaxy Fix)', 'action': 'submitted', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#pullrequestreview-71001656', 'comments': [{'commit_id': '8ee5c332cb2b0b45799ab3e629f40e10fed06c3d', 'diff_hunk': '@@ -797,19 +921,34 @@ TextureCacheBase::TCacheEntry* TextureCacheBase::Load(const u32 stage)\n   else if (!hires_tex)\n   {\n     size_t decoded_texture_size = expandedWidth * sizeof(u32) * expandedHeight;\n-    CheckTempSize(decoded_texture_size);\n+\n+    //allocate memory for all levels at once', 'created_at': '2017-10-21T07:47:40Z', 'user': {'gists_url': 'https://api.github.com/users/Tomcc/gists{/gist_id}', 'avatar_url': 'https://avatars3.githubusercontent.com/u/553214?v=4', 'url': 'https://api.github.com/users/Tomcc', 'gravatar_id': '', 'html_url': 'https://github.com/Tomcc', 'id': 553214, 'repos_url': 'https://api.github.com/users/Tomcc/repos', 'events_url': 'https://api.github.com/users/Tomcc/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/Tomcc/subscriptions', 'starred_url': 'https://api.github.com/users/Tomcc/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/Tomcc/following{/other_user}', 'login': 'Tomcc', 'received_events_url': 'https://api.github.com/users/Tomcc/received_events', 'followers_url': 'https://api.github.com/users/Tomcc/followers', 'organizations_url': 'https://api.github.com/users/Tomcc/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146099391', 'position': 151, 'pull_request_review_id': 71001656, 'updated_at': '2017-10-21T07:47:40Z', 'id': 146099391, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118', 'author_association': 'NONE', 'original_position': 151, 'in_reply_to_id': 146095135, 'body': 'That\'s great, thanks! I hope that will be the end of the style errors :P \r\n\r\nPS: maybe it could help to put "use this tool" on the Pull Request template, I had no idea!', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146099391', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146099391'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146099391'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118'}}, 'original_commit_id': '8ee5c332cb2b0b45799ab3e629f40e10fed06c3d', 'path': 'Source/Core/VideoCommon/TextureCacheBase.cpp'}], 'state': 'commented', 'source': 'ghhookparser', 'author': 'Tomcc', 'pr_id': 6118, 'repo': 'dolphin-emu/dolphin', 'type': 'gh_pull_request_review'}
2017-10-21T07:44:21.994459	{'pr_title': 'Resolution independent mipmaps (high IR Super Mario Galaxy Fix)', 'action': 'submitted', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#pullrequestreview-71001601', 'comments': [{'commit_id': '8ee5c332cb2b0b45799ab3e629f40e10fed06c3d', 'diff_hunk': '@@ -477,6 +477,125 @@ void TextureCacheBase::BindTextures()\n   }\n }\n \n+class ArbitraryMipmapDetector\n+{\n+private:\n+  using PixelRGBA = std::array<u8, 4>;\n+  using PixelRGBAf = std::array<float, 4>;\n+\n+  static float SRGBToLinear(u8 sRGBbyte) {\n+    auto sRGB = sRGBbyte / 256.f;\n+    //approximations found on http://chilliant.blogspot.com/2012/08/srgb-approximations-for-hlsl.html\n+    return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878);\n+  }\n+\n+  static u8 LinearToSRGB(float linear) {\n+    return std::max(1.055f * std::pow(linear, 0.416666667f) - 0.055f, 0.f) * 256.f;\n+  }\n+  \n+  struct Level {\n+    u32 width;\n+    u32 height;\n+    u32 row_length;\n+    const PixelRGBA* buffer;\n+\n+    PixelRGBAf Sample(u32 x, u32 y) const {\n+      auto& p = buffer[x + y * row_length];\n+      return {\n+        SRGBToLinear(p[0]),\n+        SRGBToLinear(p[1]),\n+        SRGBToLinear(p[2]),\n+        SRGBToLinear(p[3])\n+      };\n+    }\n+\n+    // Puts a downsampled image in dst. dst must be at least width*height*4\n+    void Downsample(PixelRGBA* dst, const Level& mip_shape) const {\n+      for (u32 i = 0; i < mip_shape.height; ++i) {\n+        for (u32 j = 0; j < mip_shape.width; ++j) {\n+          auto x = j * 2;\n+          auto y = i * 2;\n+          const std::array<PixelRGBAf, 4> samples = {\n+            Sample(x, y),\n+            Sample(x + 1, y),\n+            Sample(x, y + 1),\n+            Sample(x + 1, y + 1)\n+          };\n+          auto& dst_pixel = dst[j + i * mip_shape.row_length];\n+          dst_pixel[0] = LinearToSRGB((samples[0][0] + samples[0][1] + samples[0][2] + samples[0][3]) * 0.25f);\n+          dst_pixel[1] = LinearToSRGB((samples[1][0] + samples[1][1] + samples[1][2] + samples[1][3]) * 0.25f);\n+          dst_pixel[2] = LinearToSRGB((samples[2][0] + samples[2][1] + samples[2][2] + samples[2][3]) * 0.25f);\n+          dst_pixel[3] = LinearToSRGB((samples[3][0] + samples[3][1] + samples[3][2] + samples[3][3]) * 0.25f);\n+\n+        }\n+      }\n+    }\n+\n+    float AverageDiff(const PixelRGBA* other) const {\n+      float average_diff = 0.f;\n+      const auto* ptr1 = buffer;\n+      const auto* ptr2 = other;\n+      for (u32 i = 0; i < height; ++i) {\n+        auto row1 = ptr1;\n+        auto row2 = ptr2;\n+        for (u32 j = 0; j < width; ++j, ++row1, ++row2) {\n+          average_diff += std::abs((*row1)[0] - (*row2)[0]);\n+          average_diff += std::abs((*row1)[1] - (*row2)[1]);\n+          average_diff += std::abs((*row1)[2] - (*row2)[2]);\n+          average_diff += std::abs((*row1)[3] - (*row2)[3]);\n+        }\n+        ptr1 += row_length;\n+        ptr2 += row_length;\n+      }\n+\n+      return average_diff / (width * height * 4) / 2.56f;\n+    }\n+  };\n+\n+public:\n+  explicit ArbitraryMipmapDetector() {\n+\n+  }\n+\n+  void AddLevel(u32 width, u32 height, u32 row_length, const u8* buffer)\n+  {\n+    levels.push_back({ width, height, row_length, reinterpret_cast<const PixelRGBA*>(buffer) });', 'created_at': '2017-10-21T07:44:20Z', 'user': {'gists_url': 'https://api.github.com/users/Tomcc/gists{/gist_id}', 'avatar_url': 'https://avatars3.githubusercontent.com/u/553214?v=4', 'url': 'https://api.github.com/users/Tomcc', 'gravatar_id': '', 'html_url': 'https://github.com/Tomcc', 'id': 553214, 'repos_url': 'https://api.github.com/users/Tomcc/repos', 'events_url': 'https://api.github.com/users/Tomcc/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/Tomcc/subscriptions', 'starred_url': 'https://api.github.com/users/Tomcc/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/Tomcc/following{/other_user}', 'login': 'Tomcc', 'received_events_url': 'https://api.github.com/users/Tomcc/received_events', 'followers_url': 'https://api.github.com/users/Tomcc/followers', 'organizations_url': 'https://api.github.com/users/Tomcc/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146099342', 'position': 86, 'pull_request_review_id': 71001601, 'updated_at': '2017-10-21T07:44:20Z', 'id': 146099342, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118', 'author_association': 'NONE', 'original_position': 86, 'in_reply_to_id': 146095288, 'body': 'That\'s pretty cool, I didn\'t know about that. I\'ve often used this "reinterpret loose bytes as structs" trick and I never got bitten.\r\nI think in this case this would _in practice_ because if `malloc` is aligning your data to multiple of 4, you can\'t actually trigger the dangerous behavior.\r\nEvery `malloc` I\'ve ever seen allocates to at least 8 byte alignment, so on any of those, that code will work because the buffer comes straight from `malloc` _and_ the program is guaranteed to stay aligned.\r\nHowever yeah, passing in a pointer from the stack or that\'s a result of some weird pointer math could blow up, so that code is fragile. Thanks for the explanation!', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146099342', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146099342'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146099342'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118'}}, 'original_commit_id': '8ee5c332cb2b0b45799ab3e629f40e10fed06c3d', 'path': 'Source/Core/VideoCommon/TextureCacheBase.cpp'}], 'state': 'commented', 'source': 'ghhookparser', 'author': 'Tomcc', 'pr_id': 6118, 'repo': 'dolphin-emu/dolphin', 'type': 'gh_pull_request_review'}
2017-10-21T06:59:59.413707	{'pr_title': 'Resolution independent mipmaps (high IR Super Mario Galaxy Fix)', 'action': 'submitted', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#pullrequestreview-71000897', 'comments': [{'commit_id': '8ee5c332cb2b0b45799ab3e629f40e10fed06c3d', 'diff_hunk': '@@ -477,6 +477,125 @@ void TextureCacheBase::BindTextures()\n   }\n }\n \n+class ArbitraryMipmapDetector\n+{\n+private:\n+  using PixelRGBA = std::array<u8, 4>;\n+  using PixelRGBAf = std::array<float, 4>;\n+\n+  static float SRGBToLinear(u8 sRGBbyte) {\n+    auto sRGB = sRGBbyte / 256.f;\n+    //approximations found on http://chilliant.blogspot.com/2012/08/srgb-approximations-for-hlsl.html\n+    return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878);\n+  }\n+\n+  static u8 LinearToSRGB(float linear) {\n+    return std::max(1.055f * std::pow(linear, 0.416666667f) - 0.055f, 0.f) * 256.f;\n+  }\n+  \n+  struct Level {\n+    u32 width;\n+    u32 height;\n+    u32 row_length;\n+    const PixelRGBA* buffer;\n+\n+    PixelRGBAf Sample(u32 x, u32 y) const {\n+      auto& p = buffer[x + y * row_length];\n+      return {\n+        SRGBToLinear(p[0]),\n+        SRGBToLinear(p[1]),\n+        SRGBToLinear(p[2]),\n+        SRGBToLinear(p[3])\n+      };\n+    }\n+\n+    // Puts a downsampled image in dst. dst must be at least width*height*4\n+    void Downsample(PixelRGBA* dst, const Level& mip_shape) const {\n+      for (u32 i = 0; i < mip_shape.height; ++i) {\n+        for (u32 j = 0; j < mip_shape.width; ++j) {\n+          auto x = j * 2;\n+          auto y = i * 2;\n+          const std::array<PixelRGBAf, 4> samples = {\n+            Sample(x, y),\n+            Sample(x + 1, y),\n+            Sample(x, y + 1),\n+            Sample(x + 1, y + 1)\n+          };\n+          auto& dst_pixel = dst[j + i * mip_shape.row_length];\n+          dst_pixel[0] = LinearToSRGB((samples[0][0] + samples[0][1] + samples[0][2] + samples[0][3]) * 0.25f);\n+          dst_pixel[1] = LinearToSRGB((samples[1][0] + samples[1][1] + samples[1][2] + samples[1][3]) * 0.25f);\n+          dst_pixel[2] = LinearToSRGB((samples[2][0] + samples[2][1] + samples[2][2] + samples[2][3]) * 0.25f);\n+          dst_pixel[3] = LinearToSRGB((samples[3][0] + samples[3][1] + samples[3][2] + samples[3][3]) * 0.25f);\n+\n+        }\n+      }\n+    }\n+\n+    float AverageDiff(const PixelRGBA* other) const {\n+      float average_diff = 0.f;\n+      const auto* ptr1 = buffer;\n+      const auto* ptr2 = other;\n+      for (u32 i = 0; i < height; ++i) {\n+        auto row1 = ptr1;\n+        auto row2 = ptr2;\n+        for (u32 j = 0; j < width; ++j, ++row1, ++row2) {\n+          average_diff += std::abs((*row1)[0] - (*row2)[0]);\n+          average_diff += std::abs((*row1)[1] - (*row2)[1]);\n+          average_diff += std::abs((*row1)[2] - (*row2)[2]);\n+          average_diff += std::abs((*row1)[3] - (*row2)[3]);\n+        }\n+        ptr1 += row_length;\n+        ptr2 += row_length;\n+      }\n+\n+      return average_diff / (width * height * 4) / 2.56f;\n+    }\n+  };\n+\n+public:\n+  explicit ArbitraryMipmapDetector() {\n+\n+  }\n+\n+  void AddLevel(u32 width, u32 height, u32 row_length, const u8* buffer)\n+  {\n+    levels.push_back({ width, height, row_length, reinterpret_cast<const PixelRGBA*>(buffer) });', 'created_at': '2017-10-21T06:59:58Z', 'user': {'gists_url': 'https://api.github.com/users/lioncash/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/712067?v=4', 'url': 'https://api.github.com/users/lioncash', 'gravatar_id': '', 'html_url': 'https://github.com/lioncash', 'id': 712067, 'repos_url': 'https://api.github.com/users/lioncash/repos', 'events_url': 'https://api.github.com/users/lioncash/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/lioncash/subscriptions', 'starred_url': 'https://api.github.com/users/lioncash/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/lioncash/following{/other_user}', 'login': 'lioncash', 'received_events_url': 'https://api.github.com/users/lioncash/received_events', 'followers_url': 'https://api.github.com/users/lioncash/followers', 'organizations_url': 'https://api.github.com/users/lioncash/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146098595', 'position': 86, 'pull_request_review_id': 71000897, 'updated_at': '2017-10-21T06:59:58Z', 'id': 146098595, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118', 'author_association': 'OWNER', 'original_position': 86, 'in_reply_to_id': 146095288, 'body': "Note that performing alignment via `#pragma pack` can make code perform worse on certain platforms, as it's no longer naturally aligned in memory and may have to generate extra code to perform the retrieval of values from the struct (and make violations of the alignment requirements much easier, as all data members by default will no longer be aligned correctly). For example: [godbolt](https://godbolt.org/g/iyw2wJ)", 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146098595', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146098595'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146098595'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118'}}, 'original_commit_id': '8ee5c332cb2b0b45799ab3e629f40e10fed06c3d', 'path': 'Source/Core/VideoCommon/TextureCacheBase.cpp'}], 'state': 'commented', 'source': 'ghhookparser', 'author': 'lioncash', 'pr_id': 6118, 'repo': 'dolphin-emu/dolphin', 'type': 'gh_pull_request_review'}
2017-10-21T06:44:06.157857	{'pr_title': 'Resolution independent mipmaps (high IR Super Mario Galaxy Fix)', 'action': 'submitted', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#pullrequestreview-71000650', 'comments': [{'commit_id': '8ee5c332cb2b0b45799ab3e629f40e10fed06c3d', 'diff_hunk': '@@ -477,6 +477,125 @@ void TextureCacheBase::BindTextures()\n   }\n }\n \n+class ArbitraryMipmapDetector\n+{\n+private:\n+  using PixelRGBA = std::array<u8, 4>;\n+  using PixelRGBAf = std::array<float, 4>;\n+\n+  static float SRGBToLinear(u8 sRGBbyte) {\n+    auto sRGB = sRGBbyte / 256.f;\n+    //approximations found on http://chilliant.blogspot.com/2012/08/srgb-approximations-for-hlsl.html\n+    return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878);\n+  }\n+\n+  static u8 LinearToSRGB(float linear) {\n+    return std::max(1.055f * std::pow(linear, 0.416666667f) - 0.055f, 0.f) * 256.f;\n+  }\n+  \n+  struct Level {\n+    u32 width;\n+    u32 height;\n+    u32 row_length;\n+    const PixelRGBA* buffer;\n+\n+    PixelRGBAf Sample(u32 x, u32 y) const {\n+      auto& p = buffer[x + y * row_length];\n+      return {\n+        SRGBToLinear(p[0]),\n+        SRGBToLinear(p[1]),\n+        SRGBToLinear(p[2]),\n+        SRGBToLinear(p[3])\n+      };\n+    }\n+\n+    // Puts a downsampled image in dst. dst must be at least width*height*4\n+    void Downsample(PixelRGBA* dst, const Level& mip_shape) const {\n+      for (u32 i = 0; i < mip_shape.height; ++i) {\n+        for (u32 j = 0; j < mip_shape.width; ++j) {\n+          auto x = j * 2;\n+          auto y = i * 2;\n+          const std::array<PixelRGBAf, 4> samples = {\n+            Sample(x, y),\n+            Sample(x + 1, y),\n+            Sample(x, y + 1),\n+            Sample(x + 1, y + 1)\n+          };\n+          auto& dst_pixel = dst[j + i * mip_shape.row_length];\n+          dst_pixel[0] = LinearToSRGB((samples[0][0] + samples[0][1] + samples[0][2] + samples[0][3]) * 0.25f);\n+          dst_pixel[1] = LinearToSRGB((samples[1][0] + samples[1][1] + samples[1][2] + samples[1][3]) * 0.25f);\n+          dst_pixel[2] = LinearToSRGB((samples[2][0] + samples[2][1] + samples[2][2] + samples[2][3]) * 0.25f);\n+          dst_pixel[3] = LinearToSRGB((samples[3][0] + samples[3][1] + samples[3][2] + samples[3][3]) * 0.25f);\n+\n+        }\n+      }\n+    }\n+\n+    float AverageDiff(const PixelRGBA* other) const {\n+      float average_diff = 0.f;\n+      const auto* ptr1 = buffer;\n+      const auto* ptr2 = other;\n+      for (u32 i = 0; i < height; ++i) {\n+        auto row1 = ptr1;\n+        auto row2 = ptr2;\n+        for (u32 j = 0; j < width; ++j, ++row1, ++row2) {\n+          average_diff += std::abs((*row1)[0] - (*row2)[0]);\n+          average_diff += std::abs((*row1)[1] - (*row2)[1]);\n+          average_diff += std::abs((*row1)[2] - (*row2)[2]);\n+          average_diff += std::abs((*row1)[3] - (*row2)[3]);\n+        }\n+        ptr1 += row_length;\n+        ptr2 += row_length;\n+      }\n+\n+      return average_diff / (width * height * 4) / 2.56f;\n+    }\n+  };\n+\n+public:\n+  explicit ArbitraryMipmapDetector() {\n+\n+  }\n+\n+  void AddLevel(u32 width, u32 height, u32 row_length, const u8* buffer)\n+  {\n+    levels.push_back({ width, height, row_length, reinterpret_cast<const PixelRGBA*>(buffer) });', 'created_at': '2017-10-21T06:44:04Z', 'user': {'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15224722?v=4', 'url': 'https://api.github.com/users/iwubcode', 'gravatar_id': '', 'html_url': 'https://github.com/iwubcode', 'id': 15224722, 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'login': 'iwubcode', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146098343', 'position': 86, 'pull_request_review_id': 71000650, 'updated_at': '2017-10-21T06:44:04Z', 'id': 146098343, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118', 'author_association': 'MEMBER', 'original_position': 86, 'in_reply_to_id': 146095288, 'body': "Thanks for all the information @lioncash .  It'll take some time for me to digest and certainly too sleepy to do it now but I will look at it.\r\n\r\nI've always used `pragma pack` which I was told gets around alignment concerns where we deal with array of bytes a lot.  Again, it might not be standard conformant but for what I need in my day job, it'll do.\r\n\r\nAs for Dolphin, I'm fine with whatever you decide.  If you can look at HybridXFB's Software Texture and decide how best to change that too, that'd be helpful.", 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146098343', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146098343'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146098343'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118'}}, 'original_commit_id': '8ee5c332cb2b0b45799ab3e629f40e10fed06c3d', 'path': 'Source/Core/VideoCommon/TextureCacheBase.cpp'}], 'state': 'commented', 'source': 'ghhookparser', 'author': 'iwubcode', 'pr_id': 6118, 'repo': 'dolphin-emu/dolphin', 'type': 'gh_pull_request_review'}
2017-10-21T06:36:44.242101	{'pr_title': 'Resolution independent mipmaps (high IR Super Mario Galaxy Fix)', 'action': 'submitted', 'url': 'https://github.com/dolphin-emu/dolphin/pull/6118#pullrequestreview-71000549', 'comments': [{'commit_id': '8ee5c332cb2b0b45799ab3e629f40e10fed06c3d', 'diff_hunk': '@@ -477,6 +477,125 @@ void TextureCacheBase::BindTextures()\n   }\n }\n \n+class ArbitraryMipmapDetector\n+{\n+private:\n+  using PixelRGBA = std::array<u8, 4>;\n+  using PixelRGBAf = std::array<float, 4>;\n+\n+  static float SRGBToLinear(u8 sRGBbyte) {\n+    auto sRGB = sRGBbyte / 256.f;\n+    //approximations found on http://chilliant.blogspot.com/2012/08/srgb-approximations-for-hlsl.html\n+    return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878);\n+  }\n+\n+  static u8 LinearToSRGB(float linear) {\n+    return std::max(1.055f * std::pow(linear, 0.416666667f) - 0.055f, 0.f) * 256.f;\n+  }\n+  \n+  struct Level {\n+    u32 width;\n+    u32 height;\n+    u32 row_length;\n+    const PixelRGBA* buffer;\n+\n+    PixelRGBAf Sample(u32 x, u32 y) const {\n+      auto& p = buffer[x + y * row_length];\n+      return {\n+        SRGBToLinear(p[0]),\n+        SRGBToLinear(p[1]),\n+        SRGBToLinear(p[2]),\n+        SRGBToLinear(p[3])\n+      };\n+    }\n+\n+    // Puts a downsampled image in dst. dst must be at least width*height*4\n+    void Downsample(PixelRGBA* dst, const Level& mip_shape) const {\n+      for (u32 i = 0; i < mip_shape.height; ++i) {\n+        for (u32 j = 0; j < mip_shape.width; ++j) {\n+          auto x = j * 2;\n+          auto y = i * 2;\n+          const std::array<PixelRGBAf, 4> samples = {\n+            Sample(x, y),\n+            Sample(x + 1, y),\n+            Sample(x, y + 1),\n+            Sample(x + 1, y + 1)\n+          };\n+          auto& dst_pixel = dst[j + i * mip_shape.row_length];\n+          dst_pixel[0] = LinearToSRGB((samples[0][0] + samples[0][1] + samples[0][2] + samples[0][3]) * 0.25f);\n+          dst_pixel[1] = LinearToSRGB((samples[1][0] + samples[1][1] + samples[1][2] + samples[1][3]) * 0.25f);\n+          dst_pixel[2] = LinearToSRGB((samples[2][0] + samples[2][1] + samples[2][2] + samples[2][3]) * 0.25f);\n+          dst_pixel[3] = LinearToSRGB((samples[3][0] + samples[3][1] + samples[3][2] + samples[3][3]) * 0.25f);\n+\n+        }\n+      }\n+    }\n+\n+    float AverageDiff(const PixelRGBA* other) const {\n+      float average_diff = 0.f;\n+      const auto* ptr1 = buffer;\n+      const auto* ptr2 = other;\n+      for (u32 i = 0; i < height; ++i) {\n+        auto row1 = ptr1;\n+        auto row2 = ptr2;\n+        for (u32 j = 0; j < width; ++j, ++row1, ++row2) {\n+          average_diff += std::abs((*row1)[0] - (*row2)[0]);\n+          average_diff += std::abs((*row1)[1] - (*row2)[1]);\n+          average_diff += std::abs((*row1)[2] - (*row2)[2]);\n+          average_diff += std::abs((*row1)[3] - (*row2)[3]);\n+        }\n+        ptr1 += row_length;\n+        ptr2 += row_length;\n+      }\n+\n+      return average_diff / (width * height * 4) / 2.56f;\n+    }\n+  };\n+\n+public:\n+  explicit ArbitraryMipmapDetector() {\n+\n+  }\n+\n+  void AddLevel(u32 width, u32 height, u32 row_length, const u8* buffer)\n+  {\n+    levels.push_back({ width, height, row_length, reinterpret_cast<const PixelRGBA*>(buffer) });', 'created_at': '2017-10-21T06:36:42Z', 'user': {'gists_url': 'https://api.github.com/users/lioncash/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/712067?v=4', 'url': 'https://api.github.com/users/lioncash', 'gravatar_id': '', 'html_url': 'https://github.com/lioncash', 'id': 712067, 'repos_url': 'https://api.github.com/users/lioncash/repos', 'events_url': 'https://api.github.com/users/lioncash/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/lioncash/subscriptions', 'starred_url': 'https://api.github.com/users/lioncash/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/lioncash/following{/other_user}', 'login': 'lioncash', 'received_events_url': 'https://api.github.com/users/lioncash/received_events', 'followers_url': 'https://api.github.com/users/lioncash/followers', 'organizations_url': 'https://api.github.com/users/lioncash/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146098224', 'position': 86, 'pull_request_review_id': 71000549, 'updated_at': '2017-10-21T06:36:42Z', 'id': 146098224, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118', 'author_association': 'OWNER', 'original_position': 86, 'in_reply_to_id': 146095288, 'body': "In the standard there is the following in basic.lval:\r\n\r\n> If a program attempts to access the stored value of an object through a glvalue of other than one of the following types the behavior is undefined:\r\n>\r\n> (10.1) — the dynamic type of the object,\r\n> (10.2) — a cv-qualified version of the dynamic type of the object,\r\n> (10.3) — a type similar (as defined in 4.4) to the dynamic type of the object,\r\n> (10.4) — a type that is the signed or unsigned type corresponding to the dynamic type of the object,\r\n> (10.5) — a type that is the signed or unsigned type corresponding to a cv-qualified version of the dynamic type of the object,\r\n> (10.6) — an aggregate or union type that includes one of the aforementioned types among its elements or nonstatic data members (including, recursively, an element or non-static data member of a subaggregate or contained union),\r\n> (10.7) — a type that is a (possibly cv-qualified) base class type of the dynamic type of the object,\r\n> (10.8) — a char or unsigned char type.\r\n\r\nHowever many of these are carryovers from C that do not hold in C++ or are made non-applicable by other points in the standard, which is documented on [Core Issue 2051](http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#2051) so we are left with:\r\n\r\n> — the dynamic type of the object,\r\n> — the signed or unsigned type corresponding to the dynamic type of the object, or\r\n> — a char or unsigned char type.\r\n\r\n`char type` and `std::array<char type, size>` are *not* the same type. It's not well-defined to dereference the pointer from the conversion.\r\n\r\n\r\n@iwubcode That's breaking both alignment requirements and the strict aliasing rule at the same time depending on your struct. You're allowed to reinterpret_cast *to* a `char` or `unsigned char` (or `std::byte`), but not the other way around. These types have special allowance to provide byte-wise inspection of types. Doing that kind of casting is something that UBSan would flag if code was compiled with its checks enabled.\r\n\r\nWith regards to the alignment rules, the standard has the following at 5.2.10 ([expr.reinterpret.cast]) paragraph 7 in the C++17 draft standard (assume from this point on, when I say 'the standard' I mean the C++17 one):\r\n\r\n> An object pointer can be explicitly converted to an object pointer of a different type.71 When a prvalue v of object pointer type is converted to the object pointer type “pointer to *cv* T”, the result is `static_cast<cv T*>(static_cast<cv void*>(v))`. Converting a prvalue of type “pointer to T1” to the type “pointer to T2” (where T1 and T2 are object types and where the alignment requirements of T2 are no stricter than those of T1) and back to its original type yields the original pointer value.\r\n\r\nAnd to address what `stricter` means in this context, at 3.11 ([basic.align]) paragraph 5 in the standard states:\r\n\r\n> Alignments have an order from *weaker* to *stronger* or *stricter* alignments. Stricter alignments have larger alignment values. An address that satisfies an alignment requirement also satisfies any weaker valid alignment requirement.\r\n\r\nIf your struct has an alignment greater than that of a char type (i.e. greater than 1, the weakest alignment requirement), then it's undefined behavior. If you want to get the full type, in this case, you need to use `std::memcpy`, like:\r\n\r\n```cpp\r\nmystruct s;\r\nstd::memcpy(&s, ptr, sizeof(mystruct));\r\n```\r\n\r\nas it treats the input and destination as an `unsigned char*` internally, which satisfies both rules (src and dest have compatible alignment requirements, and use a type explicitly allowed for such an operation). C is more lax in this regard. C99 and C11 allow using unions to perform type punning. C++, however, does not.\r\n\r\nTacking onto what @magcius linked to, there's also a 2017 CppCon talk by John Regehr that also talks about undefined behavior [here](https://www.youtube.com/watch?v=v1COuU2vU_w)\r\n\r\n", 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146098224', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146098224'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146098224'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118'}}, 'original_commit_id': '8ee5c332cb2b0b45799ab3e629f40e10fed06c3d', 'path': 'Source/Core/VideoCommon/TextureCacheBase.cpp'}], 'state': 'commented', 'source': 'ghhookparser', 'author': 'lioncash', 'pr_id': 6118, 'repo': 'dolphin-emu/dolphin', 'type': 'gh_pull_request_review'}

Recent 'gh_push' events

2017-10-22T14:42:26.849745	{'forced': False, 'base_ref_name': None, 'created': False, 'commits': [{'hash': '271f1af8c9b679aae237b890efad37929349d7f1', 'author': {'name': 'Stenzek', 'username': 'stenzek', 'email': 'stenzek@gmail.com'}, 'message': 'Vulkan: Fix crash on shutdown with Virtual XFB enabled', 'modified': ['Source/Core/VideoBackends/Vulkan/main.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/271f1af8c9b679aae237b890efad37929349d7f1', 'added': [], 'removed': [], 'distinct': True}, {'hash': '6e9e681438887840d08928296bb08c0d226d1046', 'author': {'name': 'Leo Lam', 'username': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'message': 'Merge pull request #6124 from stenzek/vulkan-shutdown-vxfb\n\nVulkan: Fix crash on shutdown with Virtual XFB enabled', 'modified': ['Source/Core/VideoBackends/Vulkan/main.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/6e9e681438887840d08928296bb08c0d226d1046', 'added': [], 'removed': [], 'distinct': True}], 'after_sha': '6e9e681438887840d08928296bb08c0d226d1046', 'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'deleted': False, 'type': 'gh_push', 'before_sha': 'b0945c7fb6268b401f659b9a0e17952ba410d817', 'repo': 'dolphin-emu/dolphin', 'pusher': 'leoetlino'}
2017-10-22T13:41:25.241513	{'forced': False, 'base_ref_name': None, 'created': False, 'commits': [{'hash': '43390f62c456363e9772251b875674382e9f6180', 'author': {'name': 'Tony Drake', 'username': 't27duck', 'email': 't27duck@gmail.com'}, 'message': 'Add INI file for Midnight Bowling (WiiWare)\n\nWithout virtual xfb, the game will show distorted graphics once leaving\nthe title screen. This adds an INI file to make the game playable.\n\nThe wiki page for this game also notes the need for virtual xfb.', 'modified': [], 'url': 'https://github.com/dolphin-emu/dolphin/commit/43390f62c456363e9772251b875674382e9f6180', 'added': ['Data/Sys/GameSettings/WB8.ini'], 'removed': [], 'distinct': True}, {'hash': 'b0945c7fb6268b401f659b9a0e17952ba410d817', 'author': {'name': 'Leo Lam', 'username': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'message': 'Merge pull request #6131 from t27duck/wiiware_ini_file\n\nAdd INI file for Midnight Bowling (WiiWare)', 'modified': [], 'url': 'https://github.com/dolphin-emu/dolphin/commit/b0945c7fb6268b401f659b9a0e17952ba410d817', 'added': ['Data/Sys/GameSettings/WB8.ini'], 'removed': [], 'distinct': True}], 'after_sha': 'b0945c7fb6268b401f659b9a0e17952ba410d817', 'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'deleted': False, 'type': 'gh_push', 'before_sha': 'b002d9d94f6f58f36bcf7976087f5c0b27534b82', 'repo': 'dolphin-emu/dolphin', 'pusher': 'leoetlino'}
2017-10-22T13:39:41.984418	{'forced': False, 'base_ref_name': None, 'created': False, 'commits': [{'hash': 'aa40c4a7cef69978368aeca0d34a4518334dc0fb', 'author': {'name': 'Michael M', 'username': 'ligfx', 'email': 'mchtly@gmail.com'}, 'message': "Externals: update cubeb to kinetiknz/cubeb@c2bd582\n\nA bunch of changes, looks mainly like bug fixes and code cleanup.\n\nNotable changes:\n- `cubeb_get_min_latency`'s signature was changed to take params via\n  pointer, requiring Dolphin code to be tweaked in two places.\n- A fix for kinetiknz/cubeb#320, as reported by @shuffle2\n- Fixed build on FreeBSD (kinetiknz/cubeb#344), as contributed by @endrift", 'modified': ['Externals/cubeb/CMakeLists.txt', 'Externals/cubeb/include/cubeb/cubeb.h', 'Externals/cubeb/msvc/cubeb.vcxproj', 'Externals/cubeb/msvc/cubeb.vcxproj.filters', 'Externals/cubeb/src/cubeb-internal.h', 'Externals/cubeb/src/cubeb.c', 'Externals/cubeb/src/cubeb_alsa.c', 'Externals/cubeb/src/cubeb_audiotrack.c', 'Externals/cubeb/src/cubeb_audiounit.cpp', 'Externals/cubeb/src/cubeb_jack.cpp', 'Externals/cubeb/src/cubeb_kai.c', 'Externals/cubeb/src/cubeb_log.cpp', 'Externals/cubeb/src/cubeb_log.h', 'Externals/cubeb/src/cubeb_mixer.cpp', 'Externals/cubeb/src/cubeb_mixer.h', 'Externals/cubeb/src/cubeb_opensl.c', 'Externals/cubeb/src/cubeb_pulse.c', 'Externals/cubeb/src/cubeb_resampler.cpp', 'Externals/cubeb/src/cubeb_resampler_internal.h', 'Externals/cubeb/src/cubeb_ringbuffer.h', 'Externals/cubeb/src/cubeb_sndio.c', 'Externals/cubeb/src/cubeb_utils.h', 'Externals/cubeb/src/cubeb_wasapi.cpp', 'Externals/cubeb/src/cubeb_winmm.c', 'Externals/cubeb/src/speex/resample.c', 'Source/Core/AudioCommon/CubebStream.cpp', 'Source/Core/Core/HW/EXI/EXI_DeviceMic.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/aa40c4a7cef69978368aeca0d34a4518334dc0fb', 'added': ['Externals/cubeb/Config.cmake.in', 'Externals/cubeb/src/cubeb_strings.c', 'Externals/cubeb/src/cubeb_strings.h'], 'removed': ['Externals/cubeb/src/cubeb_utils.c'], 'distinct': True}, {'hash': 'b002d9d94f6f58f36bcf7976087f5c0b27534b82', 'author': {'name': 'Leo Lam', 'username': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'message': 'Merge pull request #6132 from ligfx/updatecubeb\n\nExternals: update cubeb to kinetiknz/cubeb@c2bd582', 'modified': ['Externals/cubeb/CMakeLists.txt', 'Externals/cubeb/include/cubeb/cubeb.h', 'Externals/cubeb/msvc/cubeb.vcxproj', 'Externals/cubeb/msvc/cubeb.vcxproj.filters', 'Externals/cubeb/src/cubeb-internal.h', 'Externals/cubeb/src/cubeb.c', 'Externals/cubeb/src/cubeb_alsa.c', 'Externals/cubeb/src/cubeb_audiotrack.c', 'Externals/cubeb/src/cubeb_audiounit.cpp', 'Externals/cubeb/src/cubeb_jack.cpp', 'Externals/cubeb/src/cubeb_kai.c', 'Externals/cubeb/src/cubeb_log.cpp', 'Externals/cubeb/src/cubeb_log.h', 'Externals/cubeb/src/cubeb_mixer.cpp', 'Externals/cubeb/src/cubeb_mixer.h', 'Externals/cubeb/src/cubeb_opensl.c', 'Externals/cubeb/src/cubeb_pulse.c', 'Externals/cubeb/src/cubeb_resampler.cpp', 'Externals/cubeb/src/cubeb_resampler_internal.h', 'Externals/cubeb/src/cubeb_ringbuffer.h', 'Externals/cubeb/src/cubeb_sndio.c', 'Externals/cubeb/src/cubeb_utils.h', 'Externals/cubeb/src/cubeb_wasapi.cpp', 'Externals/cubeb/src/cubeb_winmm.c', 'Externals/cubeb/src/speex/resample.c', 'Source/Core/AudioCommon/CubebStream.cpp', 'Source/Core/Core/HW/EXI/EXI_DeviceMic.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/b002d9d94f6f58f36bcf7976087f5c0b27534b82', 'added': ['Externals/cubeb/Config.cmake.in', 'Externals/cubeb/src/cubeb_strings.c', 'Externals/cubeb/src/cubeb_strings.h'], 'removed': ['Externals/cubeb/src/cubeb_utils.c'], 'distinct': True}], 'after_sha': 'b002d9d94f6f58f36bcf7976087f5c0b27534b82', 'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'deleted': False, 'type': 'gh_push', 'before_sha': 'a596424dc2c9230c1ebed813bd459a1a405b565d', 'repo': 'dolphin-emu/dolphin', 'pusher': 'leoetlino'}
2017-10-22T13:38:36.347148	{'forced': False, 'base_ref_name': None, 'created': False, 'commits': [{'hash': '7bcdd1a46a2e0964c0ea155d840cff1dbf573916', 'author': {'name': 'Michael M', 'username': 'ligfx', 'email': 'mchtly@gmail.com'}, 'message': 'SoundStream: remove unused m_muted and IsMuted', 'modified': ['Source/Core/AudioCommon/AlsaSoundStream.cpp', 'Source/Core/AudioCommon/NullSoundStream.cpp', 'Source/Core/AudioCommon/NullSoundStream.h', 'Source/Core/AudioCommon/OpenALStream.cpp', 'Source/Core/AudioCommon/SoundStream.h', 'Source/Core/AudioCommon/XAudio2Stream.cpp', 'Source/Core/AudioCommon/XAudio2_7Stream.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/7bcdd1a46a2e0964c0ea155d840cff1dbf573916', 'added': [], 'removed': [], 'distinct': True}, {'hash': 'd6985fc3e89a6d79a1476c6a0ed323c7b50791fe', 'author': {'name': 'Michael M', 'username': 'ligfx', 'email': 'mchtly@gmail.com'}, 'message': 'AudioCommon: rename ClearAudioBuffer(mute) to SetSoundStreamRunning(running)', 'modified': ['Source/Core/AudioCommon/AudioCommon.cpp', 'Source/Core/AudioCommon/AudioCommon.h', 'Source/Core/Core/HW/CPU.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/d6985fc3e89a6d79a1476c6a0ed323c7b50791fe', 'added': [], 'removed': [], 'distinct': True}, {'hash': 'b031d3316c64718b383e6339c4a6c12176bff4cb', 'author': {'name': 'Michael M', 'username': 'ligfx', 'email': 'mchtly@gmail.com'}, 'message': 'SoundStream: rename Clear(mute) to SetRunning(running)', 'modified': ['Source/Core/AudioCommon/AlsaSoundStream.cpp', 'Source/Core/AudioCommon/AlsaSoundStream.h', 'Source/Core/AudioCommon/AudioCommon.cpp', 'Source/Core/AudioCommon/OpenALStream.cpp', 'Source/Core/AudioCommon/OpenALStream.h', 'Source/Core/AudioCommon/SoundStream.h', 'Source/Core/AudioCommon/XAudio2Stream.cpp', 'Source/Core/AudioCommon/XAudio2Stream.h', 'Source/Core/AudioCommon/XAudio2_7Stream.cpp', 'Source/Core/AudioCommon/XAudio2_7Stream.h'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/b031d3316c64718b383e6339c4a6c12176bff4cb', 'added': [], 'removed': [], 'distinct': True}, {'hash': 'a596424dc2c9230c1ebed813bd459a1a405b565d', 'author': {'name': 'Leo Lam', 'username': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'message': 'Merge pull request #6133 from ligfx/soundstreamsetrunning\n\nAudioCommon: rename ClearAudioBuffer(mute) to SetSoundStreamRunning(running)', 'modified': ['Source/Core/AudioCommon/AlsaSoundStream.cpp', 'Source/Core/AudioCommon/AlsaSoundStream.h', 'Source/Core/AudioCommon/AudioCommon.cpp', 'Source/Core/AudioCommon/AudioCommon.h', 'Source/Core/AudioCommon/NullSoundStream.cpp', 'Source/Core/AudioCommon/NullSoundStream.h', 'Source/Core/AudioCommon/OpenALStream.cpp', 'Source/Core/AudioCommon/OpenALStream.h', 'Source/Core/AudioCommon/SoundStream.h', 'Source/Core/AudioCommon/XAudio2Stream.cpp', 'Source/Core/AudioCommon/XAudio2Stream.h', 'Source/Core/AudioCommon/XAudio2_7Stream.cpp', 'Source/Core/AudioCommon/XAudio2_7Stream.h', 'Source/Core/Core/HW/CPU.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/a596424dc2c9230c1ebed813bd459a1a405b565d', 'added': [], 'removed': [], 'distinct': True}], 'after_sha': 'a596424dc2c9230c1ebed813bd459a1a405b565d', 'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'deleted': False, 'type': 'gh_push', 'before_sha': 'd57d7b74d7ee056f4a5b869020b12481895e9832', 'repo': 'dolphin-emu/dolphin', 'pusher': 'leoetlino'}
2017-10-22T06:21:39.668960	{'forced': False, 'base_ref_name': None, 'created': False, 'commits': [{'hash': '82129d30c90b6acf627c28137817107e62fad567', 'author': {'name': 'Michael M', 'username': 'ligfx', 'email': 'mchtly@gmail.com'}, 'message': "TextureCache: don't create texture decoding resources if not enabled", 'modified': ['Source/Core/VideoBackends/OGL/TextureCache.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/82129d30c90b6acf627c28137817107e62fad567', 'added': [], 'removed': [], 'distinct': True}, {'hash': 'd57d7b74d7ee056f4a5b869020b12481895e9832', 'author': {'name': 'Stenzek', 'username': 'stenzek', 'email': 'stenzek@users.noreply.github.com'}, 'message': "Merge pull request #6136 from ligfx/fixtexturecachenogpudecode\n\nTextureCache: don't create texture decoding resources if not enabled", 'modified': ['Source/Core/VideoBackends/OGL/TextureCache.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/d57d7b74d7ee056f4a5b869020b12481895e9832', 'added': [], 'removed': [], 'distinct': True}], 'after_sha': 'd57d7b74d7ee056f4a5b869020b12481895e9832', 'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'deleted': False, 'type': 'gh_push', 'before_sha': '78d5dbe032d4390fbc3bbfc81768b68c2062fa8f', 'repo': 'dolphin-emu/dolphin', 'pusher': 'stenzek'}
2017-10-21T22:50:33.279469	{'forced': False, 'base_ref_name': None, 'created': False, 'commits': [{'hash': '9eaf95144f2b9c2e4bd0fe63f00a2a060ed9f4d9', 'author': {'name': 'Mateus B. Cassiano', 'username': 'mbc07', 'email': 'mbc07@live.com'}, 'message': "[Android] Don't install GenyMotion plugin when importing Code Style preferences file", 'modified': ['Source/Android/code-style-java.jar'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/9eaf95144f2b9c2e4bd0fe63f00a2a060ed9f4d9', 'added': [], 'removed': [], 'distinct': True}, {'hash': '78d5dbe032d4390fbc3bbfc81768b68c2062fa8f', 'author': {'name': 'Mat M', 'username': 'lioncash', 'email': 'mathew1800@gmail.com'}, 'message': "Merge pull request #6127 from mbc07/android-codestyle-fix\n\n[Android] Don't install Genymotion plugin when importing Code Style preferences file", 'modified': ['Source/Android/code-style-java.jar'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/78d5dbe032d4390fbc3bbfc81768b68c2062fa8f', 'added': [], 'removed': [], 'distinct': True}], 'after_sha': '78d5dbe032d4390fbc3bbfc81768b68c2062fa8f', 'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'deleted': False, 'type': 'gh_push', 'before_sha': 'bf71d1497ef4d00e5e19d0f125aa1d66f02274d3', 'repo': 'dolphin-emu/dolphin', 'pusher': 'lioncash'}
2017-10-21T22:48:56.130044	{'forced': False, 'base_ref_name': None, 'created': False, 'commits': [{'hash': 'b8d45ad4bede7d2cbf6cf4b5e32a89f7474cab0c', 'author': {'name': 'Mike Harris', 'username': 'hackbar', 'email': 'atarimike@gmail.com'}, 'message': 'Android: Refactor the saveInput function.\n\nIn its prior state, it had xor parameters, which is confusing.', 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/MotionAlertDialog.java'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/b8d45ad4bede7d2cbf6cf4b5e32a89f7474cab0c', 'added': [], 'removed': [], 'distinct': True}, {'hash': 'fb6274f7bcabdc617d6aa65f07b277dd42b548ae', 'author': {'name': 'Mike Harris', 'username': 'hackbar', 'email': 'atarimike@gmail.com'}, 'message': 'Android: Refactor onMotionEvent.\n\nThis works the same, but only looks for the initial event and ignores\nthe keyup / return to home. It handles joystick diagonals smarter, in\nthat it ignore diagonals until the stick moves in a more cardinal\ndirection.\n\nThis fixes an odd bug where the dpad up/down were switched (thread post\nI think found it -\nhttps://forums.dolphin-emu.org/Thread-arm64-version-on-shield-tv-x1-local-multiplayer-not-working-d-pad-mappings?pid=379918#pid379918)', 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/MotionAlertDialog.java'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/fb6274f7bcabdc617d6aa65f07b277dd42b548ae', 'added': [], 'removed': [], 'distinct': True}, {'hash': 'bf71d1497ef4d00e5e19d0f125aa1d66f02274d3', 'author': {'name': 'Mat M', 'username': 'lioncash', 'email': 'mathew1800@gmail.com'}, 'message': 'Merge pull request #6123 from hackbar/input-fix\n\nAndroid: refactor and bugfix for input settings', 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/MotionAlertDialog.java'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/bf71d1497ef4d00e5e19d0f125aa1d66f02274d3', 'added': [], 'removed': [], 'distinct': True}], 'after_sha': 'bf71d1497ef4d00e5e19d0f125aa1d66f02274d3', 'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'deleted': False, 'type': 'gh_push', 'before_sha': '774fca4d019b788089f4a0d456e9c0ee12d9e214', 'repo': 'dolphin-emu/dolphin', 'pusher': 'lioncash'}
2017-10-20T11:02:17.494196	{'forced': False, 'base_ref_name': None, 'created': False, 'commits': [{'hash': '5350e5de866545f18468661ee3bf566576d8a5d9', 'author': {'name': 'Pierre Bourdon', 'username': 'delroth', 'email': 'delroth@gmail.com'}, 'message': 'Add cookie consent validation. Courtesy of stupid EU decisions.', 'modified': ['dolweb/templates/_base.html'], 'url': 'https://github.com/dolphin-emu/www/commit/5350e5de866545f18468661ee3bf566576d8a5d9', 'added': [], 'removed': [], 'distinct': True}], 'after_sha': '5350e5de866545f18468661ee3bf566576d8a5d9', 'ref_name': 'stable', 'source': 'ghhookparser', 'ref_type': 'heads', 'deleted': False, 'type': 'gh_push', 'before_sha': '6a420806356dbdd84813c11383dc81725b836d0a', 'repo': 'dolphin-emu/www', 'pusher': 'delroth'}
2017-10-17T08:13:00.141182	{'forced': False, 'base_ref_name': None, 'created': False, 'commits': [{'hash': '9407d9ee0b4deca4ded47ee7528ecaccee2c63e0', 'author': {'name': 'Mike Harris', 'username': 'hackbar', 'email': 'atarimike@gmail.com'}, 'message': "Bump compile SDK and buildtools version to 26 (Oreo).\n\nBump the support lib version to 26. This allows for using property\nanimators (R.animator) in FragmentTransaction.setCustomAnimations.\n\nAdd the google maven repo, as from support lib 26 onwards, they're only\npublishing it in there.\n\nBump the gradle version while we're at it, keep Android Studio quiet.", 'modified': ['Source/Android/app/build.gradle', 'Source/Android/build.gradle'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/9407d9ee0b4deca4ded47ee7528ecaccee2c63e0', 'added': [], 'removed': [], 'distinct': True}, {'hash': '9fb0d9a664066adf494a40812ad98a954fe94ffc', 'author': {'name': 'Mike Harris', 'username': 'hackbar', 'email': 'atarimike@gmail.com'}, 'message': "Move all Activities and Fragments to the support library versions.\n\nIn the support lib, the code comes from the SDK, not the device like the\nframework version. This means we're shipping a more recent and less buggy\nversion.\n\nIt's also a good idea to keep the entire project on one version. We have a bit\nof a mix now. I think some of the Fragment animation issues were because of\nthis mixing.\n\nFor the leanback activities, AppCompatActivity requires AppCompat themes, which\nthey don't ship for Theme.Leanback. So use FragmentActivity instead (that's the\nparent of AppCompatActivity, but still in the support library). For passed\naround Activities, use FragmentActivity to work with both.", 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/AddDirectoryActivity.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameAdapter.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/PlatformPagerAdapter.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameDetailsDialog.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/MenuFragment.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/SaveLoadStateFragment.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/platform/PlatformGamesFragment.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivity.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragment.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragmentView.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/PermissionsHandler.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/StartupHandler.java'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/9fb0d9a664066adf494a40812ad98a954fe94ffc', 'added': [], 'removed': [], 'distinct': True}, {'hash': 'bb3f61296e8a436cc2543a9211e96081e07943ab', 'author': {'name': 'Mike Harris', 'username': 'hackbar', 'email': 'atarimike@gmail.com'}, 'message': 'Add a clearEmulation method.\n\nThis makes it clear that the Activity is being cleared and removes null as\na valid param. This improves readability (and logging slightly).\n\nFix spacing between [Tag] and message. This matches the rest of the log\nmessages.', 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/bb3f61296e8a436cc2543a9211e96081e07943ab', 'added': [], 'removed': [], 'distinct': True}, {'hash': '80d51c97abd6c379ca6c587d0e24079ac649626b', 'author': {'name': 'Mike Harris', 'username': 'hackbar', 'email': 'atarimike@gmail.com'}, 'message': 'Add dummy View that works around a bug with the nVidia Shield.\n\nWithout this View, the emulation SurfaceView acts like it has the\nhighest Z-value, blocking any other View. This includes the menu\nfragments and the screenshot ImageView.', 'modified': ['Source/Android/app/src/main/res/layout-television/activity_emulation.xml'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/80d51c97abd6c379ca6c587d0e24079ac649626b', 'added': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/NVidiaShieldWorkaroundView.java'], 'removed': [], 'distinct': True}, {'hash': 'cde003c5cc1de6b2caba21baa9e4050a2f30d112', 'author': {'name': 'Mike Harris', 'username': 'hackbar', 'email': 'atarimike@gmail.com'}, 'message': 'Remove EmulationActivity.MenuType. This should have been removed when\nSaveLoadStateFragment was refactored.', 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/cde003c5cc1de6b2caba21baa9e4050a2f30d112', 'added': [], 'removed': [], 'distinct': True}, {'hash': '80e1cc56b344a69aca0db07ebb2d9483d2b3d523', 'author': {'name': 'Mike Harris', 'username': 'hackbar', 'email': 'atarimike@gmail.com'}, 'message': 'Use weak references for the static Activity in NativeLibrary.\n\nAdd in null checks as well.', 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Java_GCAdapter.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Java_WiimoteAdapter.java'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/80e1cc56b344a69aca0db07ebb2d9483d2b3d523', 'added': [], 'removed': [], 'distinct': True}, {'hash': '25a08fc5ccebb8abac086416871ce27e39f10165', 'author': {'name': 'Mike Harris', 'username': 'hackbar', 'email': 'atarimike@gmail.com'}, 'message': 'Only postpone transistions on Activity creation.\n\nThis is causing bugs (no UI is rendered) when the Activity is rotated.', 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/25a08fc5ccebb8abac086416871ce27e39f10165', 'added': [], 'removed': [], 'distinct': True}, {'hash': 'd48c64457ad8b08ccd51d60608aa68e5c12a2766', 'author': {'name': 'Mike Harris', 'username': 'hackbar', 'email': 'atarimike@gmail.com'}, 'message': 'Start the postponed activity transition as soon as Picasso loads the\nimage.\n\nDoing it on the preDraw for the View is too complicated. This works just\nas well.', 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/d48c64457ad8b08ccd51d60608aa68e5c12a2766', 'added': [], 'removed': [], 'distinct': True}, {'hash': '4cab718065a126b204f38f1238fa1aae4c0591e3', 'author': {'name': 'Mike Harris', 'username': 'hackbar', 'email': 'atarimike@gmail.com'}, 'message': 'Move emulation lifecycle handling into EmulationFragment.\n\nThe Activity is responsible for just its views and menus and such. It\nsignals the Fragment via setGamePath, StartEmulation and StopEmulation.\n\nThe Fragment manages the actual emulation lifecycle. It is solely\nresponsible for calling the NativeLibrary lifecycle methods.\n\nWith this lifecycle simplification, the NativeLibrary no longer needs to\nkill the Activity. It happens normally now.\n\nThis simplifies a lot of things, live handling rotation.', 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.java', 'Source/Android/app/src/main/res/layout-television/activity_emulation.xml', 'Source/Android/app/src/main/res/layout/activity_emulation.xml', 'Source/Android/jni/MainAndroid.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/4cab718065a126b204f38f1238fa1aae4c0591e3', 'added': [], 'removed': [], 'distinct': True}, {'hash': 'c4d7814afa0e97784c6bc6b97dd9578c06867dd6', 'author': {'name': 'Mike Harris', 'username': 'hackbar', 'email': 'atarimike@gmail.com'}, 'message': "Collapse layouts with a framelayout root then another viewgroup.\n\nThere's no point to this, and it just slow things down (technically).", 'modified': ['Source/Android/app/src/main/res/layout-television/fragment_emulation.xml', 'Source/Android/app/src/main/res/layout/fragment_saveload_state.xml'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/c4d7814afa0e97784c6bc6b97dd9578c06867dd6', 'added': [], 'removed': [], 'distinct': True}, {'hash': '94ed30b0550f29b58774fcd28aa98d28562be985', 'author': {'name': 'Mike Harris', 'username': 'hackbar', 'email': 'atarimike@gmail.com'}, 'message': "Use the fragment backstack properly, and use fragment animations.\n\nMake the MenuFragment added and removed by fragment transactions only,\ninstead of being initially present in the XML. This fixes a glitch where\nit doesn't animate correctly the first time it's used.", 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/MenuFragment.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Animations.java', 'Source/Android/app/src/main/res/layout-television/activity_emulation.xml'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/94ed30b0550f29b58774fcd28aa98d28562be985', 'added': ['Source/Android/app/src/main/res/animator/menu_slide_in_from_left.xml', 'Source/Android/app/src/main/res/animator/menu_slide_in_from_right.xml', 'Source/Android/app/src/main/res/animator/menu_slide_out_to_left.xml', 'Source/Android/app/src/main/res/animator/menu_slide_out_to_right.xml'], 'removed': ['Source/Android/app/src/main/res/animator/menu_slide_in.xml', 'Source/Android/app/src/main/res/animator/menu_slide_out.xml'], 'distinct': True}, {'hash': 'd73100f0e41231da807be11a107801488eb6bff4', 'author': {'name': 'Mike Harris', 'username': 'hackbar', 'email': 'atarimike@gmail.com'}, 'message': 'Minor cleanup in EmulationActivity.\n\nMove the parameter extraction earlier on in onCreate. Mostly this moves\nsetting sIsGameCubeGame to before setContentView, which means\nEmulationFragment will always see it in a consistent state. Previously,\nthere was a race, which mean the controller overlay would randomly be\nWii controls for a GameCube game (since the default is false).\n\nUse the correct support version of things, ActivityOptionsCompat and\ntransitions\n\nRename static var mIsGameCubeGame to sIsGameCubeGame. s is static, m is\nmember.', 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/d73100f0e41231da807be11a107801488eb6bff4', 'added': [], 'removed': [], 'distinct': True}, {'hash': '0d785452554df0158376a2de8b5b81bcf8af3939', 'author': {'name': 'Mike Harris', 'username': 'hackbar', 'email': 'atarimike@gmail.com'}, 'message': 'Rename the param to setGamePath.', 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.java'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/0d785452554df0158376a2de8b5b81bcf8af3939', 'added': [], 'removed': [], 'distinct': True}, {'hash': '774fca4d019b788089f4a0d456e9c0ee12d9e214', 'author': {'name': 'Pierre Bourdon', 'username': 'delroth', 'email': 'delroth@gmail.com'}, 'message': 'Merge pull request #6107 from hackbar/cleanup\n\nAndroid UI: lots of cleanups, mainly around how Fragments are handled', 'modified': ['Source/Android/app/build.gradle', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/AddDirectoryActivity.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameAdapter.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/PlatformPagerAdapter.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameDetailsDialog.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/MenuFragment.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/SaveLoadStateFragment.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/platform/PlatformGamesFragment.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsActivity.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragment.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragmentView.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Animations.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Java_GCAdapter.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Java_WiimoteAdapter.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/PermissionsHandler.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/StartupHandler.java', 'Source/Android/app/src/main/res/layout-television/activity_emulation.xml', 'Source/Android/app/src/main/res/layout-television/fragment_emulation.xml', 'Source/Android/app/src/main/res/layout/activity_emulation.xml', 'Source/Android/app/src/main/res/layout/fragment_saveload_state.xml', 'Source/Android/build.gradle', 'Source/Android/jni/MainAndroid.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/774fca4d019b788089f4a0d456e9c0ee12d9e214', 'added': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/NVidiaShieldWorkaroundView.java', 'Source/Android/app/src/main/res/animator/menu_slide_in_from_left.xml', 'Source/Android/app/src/main/res/animator/menu_slide_in_from_right.xml', 'Source/Android/app/src/main/res/animator/menu_slide_out_to_left.xml', 'Source/Android/app/src/main/res/animator/menu_slide_out_to_right.xml'], 'removed': ['Source/Android/app/src/main/res/animator/menu_slide_in.xml', 'Source/Android/app/src/main/res/animator/menu_slide_out.xml'], 'distinct': True}], 'after_sha': '774fca4d019b788089f4a0d456e9c0ee12d9e214', 'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'deleted': False, 'type': 'gh_push', 'before_sha': '2dfbf866fb7ea70cf23f402b5106f5b38324a8e1', 'repo': 'dolphin-emu/dolphin', 'pusher': 'delroth'}
2017-10-12T07:43:32.918545	{'forced': False, 'base_ref_name': None, 'created': False, 'commits': [{'hash': '4d1418ed1b73ba95d467e0c59b733ddb4d981fd5', 'author': {'name': 'iwubcode', 'username': 'iwubcode', 'email': 'iwubcode@users.noreply.github.com'}, 'message': 'Turn on "Immediate Mode" which avoids VI calls and processes the XFB immediately', 'modified': ['runner/linux/Config-ogl/GFX.ini', 'runner/linux/Config-sw/GFX.ini', 'runner/windows/Config-dx-nv/GFX.ini'], 'url': 'https://github.com/dolphin-emu/fifoci/commit/4d1418ed1b73ba95d467e0c59b733ddb4d981fd5', 'added': [], 'removed': [], 'distinct': True}, {'hash': 'aff2dac3f93a86238493e94e9f86d048513dd027', 'author': {'name': 'Pierre Bourdon', 'username': 'delroth', 'email': 'delroth@gmail.com'}, 'message': 'Merge pull request #21 from iwubcode/xfb_immediate_mode\n\nTurn on "Immediate Mode" which avoids VI calls and processes the XFB right away', 'modified': ['runner/linux/Config-ogl/GFX.ini', 'runner/linux/Config-sw/GFX.ini', 'runner/windows/Config-dx-nv/GFX.ini'], 'url': 'https://github.com/dolphin-emu/fifoci/commit/aff2dac3f93a86238493e94e9f86d048513dd027', 'added': [], 'removed': [], 'distinct': True}], 'after_sha': 'aff2dac3f93a86238493e94e9f86d048513dd027', 'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'deleted': False, 'type': 'gh_push', 'before_sha': '4e78e656147c214483fc916bc862b49982fe399c', 'repo': 'dolphin-emu/fifoci', 'pusher': 'delroth'}
2017-10-12T07:43:20.514387	{'forced': False, 'base_ref_name': None, 'created': False, 'commits': [{'hash': '068c2a37b7e785fdc9bfffe9b63f0bc8f2f46e35', 'author': {'name': 'Patrick A. Ferry', 'username': 'ZephyrSurfer', 'email': 'ZephyrSurfer@users.noreply.github.com'}, 'message': 'Redirect lookup for the README.md file\n\nAn extension to the README was recently added but the file is also read from here and needs to be updated too.', 'modified': ['redirector/main.go'], 'url': 'https://github.com/dolphin-emu/sadm/commit/068c2a37b7e785fdc9bfffe9b63f0bc8f2f46e35', 'added': [], 'removed': [], 'distinct': True}, {'hash': '194ca6d0e0e361f6dec75a1ebd7f3e284c4057b9', 'author': {'name': 'Pierre Bourdon', 'username': 'delroth', 'email': 'delroth@gmail.com'}, 'message': 'Merge pull request #90 from ZephyrSurfer/patch-1\n\nRedirect lookup for the README.md file', 'modified': ['redirector/main.go'], 'url': 'https://github.com/dolphin-emu/sadm/commit/194ca6d0e0e361f6dec75a1ebd7f3e284c4057b9', 'added': [], 'removed': [], 'distinct': True}], 'after_sha': '194ca6d0e0e361f6dec75a1ebd7f3e284c4057b9', 'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'deleted': False, 'type': 'gh_push', 'before_sha': 'f40e9e46b77e71eb3ba6f25be4340a4e91c7a1e6', 'repo': 'dolphin-emu/sadm', 'pusher': 'delroth'}
2017-10-11T14:44:42.214831	{'forced': False, 'base_ref_name': None, 'created': False, 'commits': [{'hash': '4dfe6c08755882d2009b3fa70fa284f3cc398399', 'author': {'name': 'Dane Z. Bush', 'username': 'TheFreezebug', 'email': 'danebush45@yahoo.com'}, 'message': "MemArena: Name shared memory handle\n\nAssign a name to the CreateFileMapping handle on Win32 so third party\napplications can read from Dolphin's memory and integrate with the\ncurrent emulation.\n\nBuilt and tested, multiple sessions are still possible without\ncollisions.", 'modified': ['Source/Core/Common/MemArena.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/4dfe6c08755882d2009b3fa70fa284f3cc398399', 'added': [], 'removed': [], 'distinct': True}, {'hash': '2dfbf866fb7ea70cf23f402b5106f5b38324a8e1', 'author': {'name': 'Leo Lam', 'username': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'message': 'Merge pull request #6091 from TheFreezebug/patch-2\n\nMemArena: Name shared memory handle', 'modified': ['Source/Core/Common/MemArena.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/2dfbf866fb7ea70cf23f402b5106f5b38324a8e1', 'added': [], 'removed': [], 'distinct': True}], 'after_sha': '2dfbf866fb7ea70cf23f402b5106f5b38324a8e1', 'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'deleted': False, 'type': 'gh_push', 'before_sha': '90ca2e8042ce2d119dc4723f6ce82b1a60372aaa', 'repo': 'dolphin-emu/dolphin', 'pusher': 'leoetlino'}
2017-10-11T13:02:50.919769	{'forced': False, 'base_ref_name': None, 'created': False, 'commits': [{'hash': '80593f502e57126de26796ff405a940587d1b87d', 'author': {'name': 'Stenzek', 'username': 'stenzek', 'email': 'stenzek@gmail.com'}, 'message': "Vulkan: Fix bug where command buffer wouldn't be started after resize", 'modified': ['Source/Core/VideoBackends/Vulkan/Renderer.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/80593f502e57126de26796ff405a940587d1b87d', 'added': [], 'removed': [], 'distinct': True}, {'hash': 'cdf34a79f7457da8c1ec29096ed448b62ece478d', 'author': {'name': 'Stenzek', 'username': 'stenzek', 'email': 'stenzek@gmail.com'}, 'message': 'Vulkan: Set a flag to resize the swap chain when presenting fails\n\nDrivers can return VK_ERROR_OUT_OF_DATE_KHR from vkQueuePresentKHR, and\nwe should resize the image in this case, as well as when getting it back\nfrom vkAcquireNextImageKHR.', 'modified': ['Source/Core/VideoBackends/Vulkan/CommandBufferManager.cpp', 'Source/Core/VideoBackends/Vulkan/CommandBufferManager.h', 'Source/Core/VideoBackends/Vulkan/Renderer.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/cdf34a79f7457da8c1ec29096ed448b62ece478d', 'added': [], 'removed': [], 'distinct': True}, {'hash': '4301b8538df2d2728e624cfc2576758272dbb0c9', 'author': {'name': 'Stenzek', 'username': 'stenzek', 'email': 'stenzek@gmail.com'}, 'message': 'Vulkan: Only use oldSwapchain in response to VK_ERROR_OUT_OF_DATE_KHR\n\nSeems to be required on the latest NV driver, otherwise the presented\nimages are never shown.', 'modified': ['Source/Core/VideoBackends/Vulkan/CommandBufferManager.h', 'Source/Core/VideoBackends/Vulkan/Renderer.cpp', 'Source/Core/VideoBackends/Vulkan/Renderer.h', 'Source/Core/VideoBackends/Vulkan/SwapChain.cpp', 'Source/Core/VideoBackends/Vulkan/SwapChain.h'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/4301b8538df2d2728e624cfc2576758272dbb0c9', 'added': [], 'removed': [], 'distinct': True}, {'hash': '90ca2e8042ce2d119dc4723f6ce82b1a60372aaa', 'author': {'name': 'Stenzek', 'username': 'stenzek', 'email': 'stenzek@users.noreply.github.com'}, 'message': 'Merge pull request #6066 from stenzek/vulkan-resize\n\nVulkan: Fixes for window resizing', 'modified': ['Source/Core/VideoBackends/Vulkan/CommandBufferManager.cpp', 'Source/Core/VideoBackends/Vulkan/CommandBufferManager.h', 'Source/Core/VideoBackends/Vulkan/Renderer.cpp', 'Source/Core/VideoBackends/Vulkan/Renderer.h', 'Source/Core/VideoBackends/Vulkan/SwapChain.cpp', 'Source/Core/VideoBackends/Vulkan/SwapChain.h'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/90ca2e8042ce2d119dc4723f6ce82b1a60372aaa', 'added': [], 'removed': [], 'distinct': True}], 'after_sha': '90ca2e8042ce2d119dc4723f6ce82b1a60372aaa', 'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'deleted': False, 'type': 'gh_push', 'before_sha': 'd26eda3023a0d896f1992d9deffbbcc47195c2a3', 'repo': 'dolphin-emu/dolphin', 'pusher': 'stenzek'}
2017-10-11T11:01:43.719353	{'forced': False, 'base_ref_name': None, 'created': False, 'commits': [{'hash': '2974c56e500428ef6a769d3eb7f0f17ac74b84de', 'author': {'name': 'Léo Lam', 'username': 'leoetlino', 'email': 'leo@innovatetechnologi.es'}, 'message': 'ESFormats: Make Content easier to compare', 'modified': ['Source/Core/Core/IOS/ES/Formats.cpp', 'Source/Core/Core/IOS/ES/Formats.h'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/2974c56e500428ef6a769d3eb7f0f17ac74b84de', 'added': [], 'removed': [], 'distinct': True}, {'hash': '239167245dfea23f563429c30d07b3752dd83cad', 'author': {'name': 'Léo Lam', 'username': 'leoetlino', 'email': 'leo@innovatetechnologi.es'}, 'message': "Add a way to check the NAND for issues and fix them\n\nOld versions of Dolphin are so broken regarding NAND handling that\nwe need this to repair common issues and avoid issues with titles\nlike the System Menu or the Wii Shop.\n\nThis isn't an exhaustive check, but this will catch most issues\nand offer to fix them automatically (if possible).", 'modified': ['Source/Core/Core/WiiUtils.cpp', 'Source/Core/Core/WiiUtils.h', 'Source/Core/DolphinQt2/MenuBar.cpp', 'Source/Core/DolphinQt2/MenuBar.h', 'Source/Core/DolphinWX/Frame.h', 'Source/Core/DolphinWX/FrameTools.cpp', 'Source/Core/DolphinWX/Globals.h', 'Source/Core/DolphinWX/MainMenuBar.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/239167245dfea23f563429c30d07b3752dd83cad', 'added': [], 'removed': [], 'distinct': True}, {'hash': 'e1c0b8d01124f13d07d0b7bd0e271e88b1178d0d', 'author': {'name': 'Léo Lam', 'username': 'leoetlino', 'email': 'leo@innovatetechnologi.es'}, 'message': 'TitleDatabase: Add GetTitleName for title IDs', 'modified': ['Source/Core/Core/TitleDatabase.cpp', 'Source/Core/Core/TitleDatabase.h'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/e1c0b8d01124f13d07d0b7bd0e271e88b1178d0d', 'added': [], 'removed': [], 'distinct': True}, {'hash': '02e17594b06151e652a1b51ce1018ce4747feecd', 'author': {'name': 'Léo Lam', 'username': 'leoetlino', 'email': 'leo@innovatetechnologi.es'}, 'message': "WiiUtils: Attempt to fix the NAND more aggressively\n\nChange the repair logic to fix issues more aggressively by deleting bad\ntitles. This is necessary because of a bug in Dolphin's WAD boot code.\n\nThe UI code was updated to inform the user about titles that will be\ndeleted if they continue a repair, before deleting anything.", 'modified': ['Source/Core/Core/WiiUtils.cpp', 'Source/Core/Core/WiiUtils.h', 'Source/Core/DolphinQt2/MenuBar.cpp', 'Source/Core/DolphinWX/FrameTools.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/02e17594b06151e652a1b51ce1018ce4747feecd', 'added': [], 'removed': [], 'distinct': True}, {'hash': 'd26eda3023a0d896f1992d9deffbbcc47195c2a3', 'author': {'name': 'Leo Lam', 'username': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'message': 'Merge pull request #6096 from leoetlino/wii-fsck\n\nAdd a way to check the NAND for issues and fix them', 'modified': ['Source/Core/Core/IOS/ES/Formats.cpp', 'Source/Core/Core/IOS/ES/Formats.h', 'Source/Core/Core/TitleDatabase.cpp', 'Source/Core/Core/TitleDatabase.h', 'Source/Core/Core/WiiUtils.cpp', 'Source/Core/Core/WiiUtils.h', 'Source/Core/DolphinQt2/MenuBar.cpp', 'Source/Core/DolphinQt2/MenuBar.h', 'Source/Core/DolphinWX/Frame.h', 'Source/Core/DolphinWX/FrameTools.cpp', 'Source/Core/DolphinWX/Globals.h', 'Source/Core/DolphinWX/MainMenuBar.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/d26eda3023a0d896f1992d9deffbbcc47195c2a3', 'added': [], 'removed': [], 'distinct': True}], 'after_sha': 'd26eda3023a0d896f1992d9deffbbcc47195c2a3', 'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'deleted': False, 'type': 'gh_push', 'before_sha': 'ceed4d6f930f06aec6b68b353d99a19f46a0e26f', 'repo': 'dolphin-emu/dolphin', 'pusher': 'leoetlino'}
2017-10-11T11:00:43.268967	{'forced': False, 'base_ref_name': None, 'created': False, 'commits': [{'hash': 'aed0ac054327e4e182e541e3edc12421c16acb76', 'author': {'name': 'Sepalani', 'username': 'sepalani', 'email': 'sepalani@hotmail.fr'}, 'message': 'PPCSymbolDB: Load more SymbolMap symbols\n\nAllows to load data symbols from symbol map files.\n\nSymbols from all sections are loaded.\n\nThe data/function symbol type is set accordingly.', 'modified': ['Source/Core/Core/PowerPC/PPCSymbolDB.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/aed0ac054327e4e182e541e3edc12421c16acb76', 'added': [], 'removed': [], 'distinct': True}, {'hash': '0a301c0eec31ac69f0e606e369351d8da56bb4c2', 'author': {'name': 'Sepalani', 'username': 'sepalani', 'email': 'sepalani@hotmail.fr'}, 'message': 'PPCSymbolDB: Save data symbols properly\n\nData symbols were previously saved as function symbols.', 'modified': ['Source/Core/Core/PowerPC/PPCSymbolDB.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/0a301c0eec31ac69f0e606e369351d8da56bb4c2', 'added': [], 'removed': [], 'distinct': True}, {'hash': 'ceed4d6f930f06aec6b68b353d99a19f46a0e26f', 'author': {'name': 'Leo Lam', 'username': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'message': 'Merge pull request #6101 from sepalani/symbol-map-data\n\nPPCSymbolDB: Handle data symbols in SymbolMap properly', 'modified': ['Source/Core/Core/PowerPC/PPCSymbolDB.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/ceed4d6f930f06aec6b68b353d99a19f46a0e26f', 'added': [], 'removed': [], 'distinct': True}], 'after_sha': 'ceed4d6f930f06aec6b68b353d99a19f46a0e26f', 'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'deleted': False, 'type': 'gh_push', 'before_sha': 'bc6846ce3b7e3f52a5e010dd47c313c0d74f5f3d', 'repo': 'dolphin-emu/dolphin', 'pusher': 'leoetlino'}
2017-10-11T10:17:59.921920	{'forced': False, 'base_ref_name': None, 'created': False, 'commits': [{'hash': 'c71ce9a8eb06466d32c186a9ae1505bfebdefd01', 'author': {'name': 'Sepalani', 'username': 'sepalani', 'email': 'sepalani@hotmail.fr'}, 'message': 'MemoryWindow: base address search added', 'modified': ['Source/Core/DolphinWX/Debugger/MemoryWindow.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/c71ce9a8eb06466d32c186a9ae1505bfebdefd01', 'added': [], 'removed': [], 'distinct': True}, {'hash': 'bc6846ce3b7e3f52a5e010dd47c313c0d74f5f3d', 'author': {'name': 'Leo Lam', 'username': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'message': 'Merge pull request #5922 from sepalani/mem-base\n\nMemoryWindow: base address search added', 'modified': ['Source/Core/DolphinWX/Debugger/MemoryWindow.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/bc6846ce3b7e3f52a5e010dd47c313c0d74f5f3d', 'added': [], 'removed': [], 'distinct': True}], 'after_sha': 'bc6846ce3b7e3f52a5e010dd47c313c0d74f5f3d', 'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'deleted': False, 'type': 'gh_push', 'before_sha': '1fb9e793ac3cac16757c3cda3a4298bfff0daa3a', 'repo': 'dolphin-emu/dolphin', 'pusher': 'leoetlino'}
2017-10-11T09:51:52.215590	{'forced': False, 'base_ref_name': None, 'created': False, 'commits': [{'hash': '3c515608570ff5983ef6c9beceb7cd37ef8f94e0', 'author': {'name': 'Vladimir Panteleev', 'username': 'CyberShadow', 'email': 'git@thecybershadow.net'}, 'message': "CheatSearchTab: Add UI for manually adding an address\n\nSometimes an address is already known, e.g. from existing cheat\ncodes, and only inspecting the variable's value is desired.", 'modified': ['Source/Core/DolphinWX/Cheats/CheatSearchTab.cpp', 'Source/Core/DolphinWX/Cheats/CheatSearchTab.h'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/3c515608570ff5983ef6c9beceb7cd37ef8f94e0', 'added': [], 'removed': [], 'distinct': True}, {'hash': '1fb9e793ac3cac16757c3cda3a4298bfff0daa3a', 'author': {'name': 'Leo Lam', 'username': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'message': 'Merge pull request #6104 from CyberShadow/pull-20171006-091319\n\nCheatSearchTab: Add UI for manually adding an address', 'modified': ['Source/Core/DolphinWX/Cheats/CheatSearchTab.cpp', 'Source/Core/DolphinWX/Cheats/CheatSearchTab.h'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/1fb9e793ac3cac16757c3cda3a4298bfff0daa3a', 'added': [], 'removed': [], 'distinct': True}], 'after_sha': '1fb9e793ac3cac16757c3cda3a4298bfff0daa3a', 'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'deleted': False, 'type': 'gh_push', 'before_sha': '408bc36b8b4e1620e52bcee8adb3ddcb10504f69', 'repo': 'dolphin-emu/dolphin', 'pusher': 'leoetlino'}
2017-10-11T09:51:13.570780	{'forced': False, 'base_ref_name': None, 'created': False, 'commits': [{'hash': '322c395f338b265b25050b0cb75e6e1a07dabf43', 'author': {'name': 'Ethan Lee', 'username': 'flibitijibibo', 'email': 'flibitijibibo@gmail.com'}, 'message': 'Qt: Check showFileNameColumn, sort Hidden/ResizeMode calls by enum value', 'modified': ['Source/Core/DolphinQt2/GameList/GameList.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/322c395f338b265b25050b0cb75e6e1a07dabf43', 'added': [], 'removed': [], 'distinct': True}, {'hash': '408bc36b8b4e1620e52bcee8adb3ddcb10504f69', 'author': {'name': 'Leo Lam', 'username': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'message': 'Merge pull request #6097 from flibitijibibo/master\n\nQt: Check showFileNameColumn, sort Hidden/ResizeMode calls by enum value', 'modified': ['Source/Core/DolphinQt2/GameList/GameList.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/408bc36b8b4e1620e52bcee8adb3ddcb10504f69', 'added': [], 'removed': [], 'distinct': True}], 'after_sha': '408bc36b8b4e1620e52bcee8adb3ddcb10504f69', 'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'deleted': False, 'type': 'gh_push', 'before_sha': '53ccd41049fc33a8b196a7eb02029af178ce348a', 'repo': 'dolphin-emu/dolphin', 'pusher': 'leoetlino'}
2017-10-11T09:32:11.423365	{'forced': False, 'base_ref_name': None, 'created': False, 'commits': [{'hash': '468bf75a436682b7e34ff63b292bbd8c1271a8be', 'author': {'name': 'Léo Lam', 'username': 'leoetlino', 'email': 'leo@innovatetechnologi.es'}, 'message': "Qt: Don't crash when pressing the Return key", 'modified': ['Source/Core/DolphinQt2/GameList/GameList.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/468bf75a436682b7e34ff63b292bbd8c1271a8be', 'added': [], 'removed': [], 'distinct': True}, {'hash': '53ccd41049fc33a8b196a7eb02029af178ce348a', 'author': {'name': 'Leo Lam', 'username': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'message': "Merge pull request #6099 from leoetlino/activate\n\nQt: Don't crash when pressing the Return key", 'modified': ['Source/Core/DolphinQt2/GameList/GameList.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/53ccd41049fc33a8b196a7eb02029af178ce348a', 'added': [], 'removed': [], 'distinct': True}], 'after_sha': '53ccd41049fc33a8b196a7eb02029af178ce348a', 'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'deleted': False, 'type': 'gh_push', 'before_sha': '8163fa1acc11041becfa7befbe0b447501d7923e', 'repo': 'dolphin-emu/dolphin', 'pusher': 'leoetlino'}
2017-10-11T09:31:18.238923	{'forced': False, 'base_ref_name': None, 'created': False, 'commits': [{'hash': '8f56219ea8112fb3b9d33cf5eaf639d42726d69d', 'author': {'name': 'Léo Lam', 'username': 'leoetlino', 'email': 'leo@innovatetechnologi.es'}, 'message': 'Vulkan: Fix crash when Core initialisation fails\n\nThe Vulkan backend was not shutting down the AsyncShaderCompiler and\nsome other instances, causing asserts to hit, followed by a hard crash.', 'modified': ['Source/Core/VideoBackends/Vulkan/main.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/8f56219ea8112fb3b9d33cf5eaf639d42726d69d', 'added': [], 'removed': [], 'distinct': True}, {'hash': '8163fa1acc11041becfa7befbe0b447501d7923e', 'author': {'name': 'Leo Lam', 'username': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'message': 'Merge pull request #6100 from leoetlino/vulkan-shutdown\n\nVulkan: Fix crash when Core initialisation fails', 'modified': ['Source/Core/VideoBackends/Vulkan/main.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/8163fa1acc11041becfa7befbe0b447501d7923e', 'added': [], 'removed': [], 'distinct': True}], 'after_sha': '8163fa1acc11041becfa7befbe0b447501d7923e', 'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'deleted': False, 'type': 'gh_push', 'before_sha': '1c14881cc18b1b58d046507e5194e24bff513cc7', 'repo': 'dolphin-emu/dolphin', 'pusher': 'leoetlino'}
2017-10-11T09:28:30.061358	{'forced': False, 'base_ref_name': None, 'created': False, 'commits': [{'hash': 'e691ec126fbb1e987b7d8910694347b2d38dfca7', 'author': {'name': 'Vladimir Panteleev', 'username': 'CyberShadow', 'email': 'git@thecybershadow.net'}, 'message': "ActionReplay: Fix implementation of memory-copy zero codes\n\nThis fixes the implementation of the non-standard size-3 zero codes to\nconform to kenobi's specification.", 'modified': ['Source/Core/Core/ActionReplay.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/e691ec126fbb1e987b7d8910694347b2d38dfca7', 'added': [], 'removed': [], 'distinct': True}, {'hash': '187a599b366efb624c8d5322fa7003bea0120a73', 'author': {'name': 'Vladimir Panteleev', 'username': 'CyberShadow', 'email': 'git@thecybershadow.net'}, 'message': 'ActionReplay: Fix logging in Subtype_AddCode\n\nThe addition was being repeated (for logging) after it was committed\nto memory, thus causing bogus values to appear in the log.', 'modified': ['Source/Core/Core/ActionReplay.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/187a599b366efb624c8d5322fa7003bea0120a73', 'added': [], 'removed': [], 'distinct': True}, {'hash': '1c14881cc18b1b58d046507e5194e24bff513cc7', 'author': {'name': 'Leo Lam', 'username': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'message': 'Merge pull request #6105 from CyberShadow/pull-20171006-123219\n\nActionReplay: Fix implementation of memory-copy zero codes', 'modified': ['Source/Core/Core/ActionReplay.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/1c14881cc18b1b58d046507e5194e24bff513cc7', 'added': [], 'removed': [], 'distinct': True}], 'after_sha': '1c14881cc18b1b58d046507e5194e24bff513cc7', 'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'deleted': False, 'type': 'gh_push', 'before_sha': '0eafb2f2a25e89ee0447389a077c228962dfc0e1', 'repo': 'dolphin-emu/dolphin', 'pusher': 'leoetlino'}
2017-10-11T09:07:11.648626	{'forced': False, 'base_ref_name': None, 'created': False, 'commits': [{'hash': 'c8af9e5f7b5815c82d5db47c5c67e33dd8dbd8d5', 'author': {'name': 'Lioncash', 'username': 'lioncash', 'email': 'mathew1800@gmail.com'}, 'message': 'TextureConfig: Specialize std::hash for TextureConfig\n\nThis allows the hashing for TextureConfig instances to automatically be resolved instead of needing to directly specify it all the time.', 'modified': ['Source/Core/VideoCommon/TextureCacheBase.h', 'Source/Core/VideoCommon/TextureConfig.h'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/c8af9e5f7b5815c82d5db47c5c67e33dd8dbd8d5', 'added': [], 'removed': [], 'distinct': True}, {'hash': '0eafb2f2a25e89ee0447389a077c228962dfc0e1', 'author': {'name': 'Leo Lam', 'username': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'message': 'Merge pull request #6110 from lioncash/texture-config-hash\n\nTextureConfig: Specialize std::hash for TextureConfig', 'modified': ['Source/Core/VideoCommon/TextureCacheBase.h', 'Source/Core/VideoCommon/TextureConfig.h'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/0eafb2f2a25e89ee0447389a077c228962dfc0e1', 'added': [], 'removed': [], 'distinct': True}], 'after_sha': '0eafb2f2a25e89ee0447389a077c228962dfc0e1', 'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'deleted': False, 'type': 'gh_push', 'before_sha': '6230860925568a49487d66edb9bec734b63ec392', 'repo': 'dolphin-emu/dolphin', 'pusher': 'leoetlino'}
2017-10-11T09:05:51.702470	{'forced': False, 'base_ref_name': None, 'created': False, 'commits': [{'hash': 'edb5f855c28013e2782132251abd94bf1d040c13', 'author': {'name': 'Stenzek', 'username': 'stenzek', 'email': 'stenzek@gmail.com'}, 'message': 'VideoConfig: Prevent race condition on g_Config when refreshing\n\nThere was a race condition between the video thread and the host thread,\nif corrections need to be made by VerifyValidity(). Briefly, the config\nwill contain invalid values. Instead, pause emulation first, which will\nflush the video thread, update the config and correct it, then resume\nemulation, after which the video thread will detect the config has\nchanged and act accordingly.', 'modified': ['Source/Core/DolphinWX/VideoConfigDiag.cpp', 'Source/Core/VideoCommon/MainBase.cpp', 'Source/Core/VideoCommon/VideoConfig.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/edb5f855c28013e2782132251abd94bf1d040c13', 'added': [], 'removed': [], 'distinct': True}, {'hash': '6230860925568a49487d66edb9bec734b63ec392', 'author': {'name': 'Leo Lam', 'username': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'message': 'Merge pull request #6112 from stenzek/videoconfig-race\n\nVideoConfig: Prevent race condition on g_Config when refreshing', 'modified': ['Source/Core/DolphinWX/VideoConfigDiag.cpp', 'Source/Core/VideoCommon/MainBase.cpp', 'Source/Core/VideoCommon/VideoConfig.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/6230860925568a49487d66edb9bec734b63ec392', 'added': [], 'removed': [], 'distinct': True}], 'after_sha': '6230860925568a49487d66edb9bec734b63ec392', 'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'deleted': False, 'type': 'gh_push', 'before_sha': '1a4883ac5afd81ec3c6eb0795968d9ccef8c32f4', 'repo': 'dolphin-emu/dolphin', 'pusher': 'leoetlino'}
2017-10-09T15:49:38.673919	{'forced': False, 'base_ref_name': None, 'created': False, 'commits': [{'hash': '1d2863df97feaeb30498f47bc8c786a749b7fe02', 'author': {'name': 'wertercatt', 'username': 'wertercatt', 'email': 'wertcatt@gmail.com'}, 'message': 'tell GitHub to render the markdown', 'modified': [], 'url': 'https://github.com/dolphin-emu/sadm/commit/1d2863df97feaeb30498f47bc8c786a749b7fe02', 'added': ['README.md', 'buildbot/REQUIREMENTS.md', 'changes/REQUIREMENTS.md', 'ec2/README.md', 'redirector/README.md', 'symbols/REQUIREMENTS.md'], 'removed': ['README', 'buildbot/REQUIREMENTS', 'changes/REQUIREMENTS', 'ec2/README', 'redirector/README', 'symbols/REQUIREMENTS'], 'distinct': True}, {'hash': 'f40e9e46b77e71eb3ba6f25be4340a4e91c7a1e6', 'author': {'name': 'Pierre Bourdon', 'username': 'delroth', 'email': 'delroth@gmail.com'}, 'message': 'Merge pull request #89 from wertercatt/master\n\nGitHub: Render Markdown Code', 'modified': [], 'url': 'https://github.com/dolphin-emu/sadm/commit/f40e9e46b77e71eb3ba6f25be4340a4e91c7a1e6', 'added': ['README.md', 'buildbot/REQUIREMENTS.md', 'changes/REQUIREMENTS.md', 'ec2/README.md', 'redirector/README.md', 'symbols/REQUIREMENTS.md'], 'removed': ['README', 'buildbot/REQUIREMENTS', 'changes/REQUIREMENTS', 'ec2/README', 'redirector/README', 'symbols/REQUIREMENTS'], 'distinct': True}], 'after_sha': 'f40e9e46b77e71eb3ba6f25be4340a4e91c7a1e6', 'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'deleted': False, 'type': 'gh_push', 'before_sha': 'df2ca2e00df20de2920ac52abfa2eb05e9f564bb', 'repo': 'dolphin-emu/sadm', 'pusher': 'delroth'}
2017-10-08T11:34:19.909383	{'forced': False, 'base_ref_name': None, 'created': False, 'commits': [{'hash': '999c23b182ce0fe2262246ca3bac313d2d8dcedf', 'author': {'name': 'FoxP', 'username': 'FoxP', 'email': 'FoxP@users.noreply.github.com'}, 'message': "Add some missing WiiWare makers\n\nSome of my WiiWare games does not have a maker :\n- Blue's Journey : EAFPJ8\n- Magician Lord : EACPJ8\n- The King of Fighters '94 : EAGPJ8\n- The Last Ninja : C9XPGX\n- World Games : C9ZPGX", 'modified': ['Source/Core/DiscIO/Enums.cpp', 'Source/Core/DolphinQt2/GameList/GameFileCache.cpp', 'Source/Core/DolphinWX/GameListCtrl.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/999c23b182ce0fe2262246ca3bac313d2d8dcedf', 'added': [], 'removed': [], 'distinct': True}, {'hash': '1a4883ac5afd81ec3c6eb0795968d9ccef8c32f4', 'author': {'name': 'Leo Lam', 'username': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'message': 'Merge pull request #6102 from FoxP/patch-1\n\nAdd some missing WiiWare and Wii games makers', 'modified': ['Source/Core/DiscIO/Enums.cpp', 'Source/Core/DolphinQt2/GameList/GameFileCache.cpp', 'Source/Core/DolphinWX/GameListCtrl.cpp'], 'url': 'https://github.com/dolphin-emu/dolphin/commit/1a4883ac5afd81ec3c6eb0795968d9ccef8c32f4', 'added': [], 'removed': [], 'distinct': True}], 'after_sha': '1a4883ac5afd81ec3c6eb0795968d9ccef8c32f4', 'ref_name': 'master', 'source': 'ghhookparser', 'ref_type': 'heads', 'deleted': False, 'type': 'gh_push', 'before_sha': '5f0de43828666aef78e59d6f822cdb1392106e3e', 'repo': 'dolphin-emu/dolphin', 'pusher': 'leoetlino'}

Recent 'internal_log' events

2017-10-23T00:29:22.479088	{'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'lineno': 657, 'level': 'INFO', 'args': '()', 'msg': 'Starting new HTTPS connection (1): www.googleapis.com', 'source': 'logging', 'type': 'internal_log'}
2017-10-23T00:29:22.008129	{'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'lineno': 657, 'level': 'INFO', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com', 'source': 'logging', 'type': 'internal_log'}
2017-10-22T20:27:06.886165	{'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'lineno': 657, 'level': 'INFO', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com', 'source': 'logging', 'type': 'internal_log'}
2017-10-22T20:27:06.381215	{'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'lineno': 657, 'level': 'INFO', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com', 'source': 'logging', 'type': 'internal_log'}
2017-10-22T20:27:06.248897	{'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'lineno': 657, 'level': 'INFO', 'args': '()', 'msg': 'Starting new HTTPS connection (1): fifoci.dolphin-emu.org', 'source': 'logging', 'type': 'internal_log'}
2017-10-22T20:21:59.104891	{'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'lineno': 657, 'level': 'INFO', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com', 'source': 'logging', 'type': 'internal_log'}
2017-10-22T20:21:58.596508	{'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'lineno': 657, 'level': 'INFO', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com', 'source': 'logging', 'type': 'internal_log'}
2017-10-22T20:21:58.455616	{'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'lineno': 657, 'level': 'INFO', 'args': '()', 'msg': 'Starting new HTTPS connection (1): fifoci.dolphin-emu.org', 'source': 'logging', 'type': 'internal_log'}
2017-10-22T20:20:36.628045	{'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'lineno': 657, 'level': 'INFO', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com', 'source': 'logging', 'type': 'internal_log'}
2017-10-22T20:19:31.719805	{'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'lineno': 657, 'level': 'INFO', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com', 'source': 'logging', 'type': 'internal_log'}
2017-10-22T20:19:31.222928	{'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'lineno': 657, 'level': 'INFO', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com', 'source': 'logging', 'type': 'internal_log'}
2017-10-22T20:19:23.176161	{'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'lineno': 657, 'level': 'INFO', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com', 'source': 'logging', 'type': 'internal_log'}
2017-10-22T20:19:22.246339	{'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'lineno': 657, 'level': 'INFO', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com', 'source': 'logging', 'type': 'internal_log'}
2017-10-22T20:18:41.644553	{'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'lineno': 657, 'level': 'INFO', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com', 'source': 'logging', 'type': 'internal_log'}
2017-10-22T20:18:38.699360	{'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'lineno': 657, 'level': 'INFO', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com', 'source': 'logging', 'type': 'internal_log'}
2017-10-22T20:18:36.091251	{'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'lineno': 657, 'level': 'INFO', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com', 'source': 'logging', 'type': 'internal_log'}
2017-10-22T20:18:19.331018	{'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'lineno': 657, 'level': 'INFO', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com', 'source': 'logging', 'type': 'internal_log'}
2017-10-22T20:18:18.852267	{'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'lineno': 657, 'level': 'INFO', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com', 'source': 'logging', 'type': 'internal_log'}
2017-10-22T20:18:17.124000	{'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'lineno': 657, 'level': 'INFO', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com', 'source': 'logging', 'type': 'internal_log'}
2017-10-22T20:18:06.618346	{'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'lineno': 657, 'level': 'INFO', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com', 'source': 'logging', 'type': 'internal_log'}
2017-10-22T20:18:05.999930	{'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'lineno': 657, 'level': 'INFO', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com', 'source': 'logging', 'type': 'internal_log'}
2017-10-22T20:18:02.325201	{'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'lineno': 657, 'level': 'INFO', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com', 'source': 'logging', 'type': 'internal_log'}
2017-10-22T20:18:01.743127	{'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'lineno': 657, 'level': 'INFO', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com', 'source': 'logging', 'type': 'internal_log'}
2017-10-22T20:18:01.255734	{'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'lineno': 657, 'level': 'INFO', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com', 'source': 'logging', 'type': 'internal_log'}
2017-10-22T20:18:00.750348	{'pathname': '/home/central/venv/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py', 'lineno': 657, 'level': 'INFO', 'args': '()', 'msg': 'Starting new HTTPS connection (1): api.github.com', 'source': 'logging', 'type': 'internal_log'}

Recent 'irc_message' events

2017-10-23T00:29:45.528271	{'what': 'So does Dolphin :P', 'who': 'HdkR', 'type': 'irc_message', 'modes': {'o'}, 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:29:07.316889	{'what': 'I need to learn better testing', 'who': 'sepuluu', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:28:50.387165	{'what': 'HdkR, yes that seems like something I would be interested in', 'who': 'sepuluu', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:26:47.079484	{'what': 'I\'ve been digging through the makers "database" and looking for missing INI files for games I\'ve ripped', 'who': 't27duck', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:26:28.001565	{'what': 'true', 'who': 't27duck', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:26:22.572968	{'what': 't27duck, I would argue that there are things you can do in dolphin without any wii or gc game', 'who': 'mathieui', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:26:10.182233	{'what': "Improving unit tests is a good way to learn more things about the CPU side of things if you're curious about that side", 'who': 'HdkR', 'type': 'irc_message', 'modes': {'o'}, 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:26:03.590817	{'what': 'sepuluu, find something you want to do and hack away', 'who': 'mathieui', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:25:53.039256	{'what': 'Step one should probably be getting a cheap used Wii?', 'who': 't27duck', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:25:18.324040	{'what': 'Even doing work on the JIT can have small things in it :P', 'who': 'HdkR', 'type': 'irc_message', 'modes': {'o'}, 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:24:44.997900	{'what': 'I think I should start small', 'who': 'sepuluu', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:24:32.015494	{'what': 'Emulation covers such a broad spectrum that it is hard to just point someone at a single area to start with', 'who': 'HdkR', 'type': 'irc_message', 'modes': {'o'}, 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:24:11.700420	{'what': 'If you care about UI development or core features, doing RE things', 'who': 'HdkR', 'type': 'irc_message', 'modes': {'o'}, 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:23:52.772159	{'what': "It's really searching for something that would give you the most gratification", 'who': 'HdkR', 'type': 'irc_message', 'modes': {'o'}, 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:23:46.681700	{'what': 'that gives me hope HdkR :)', 'who': 'sepuluu', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:23:25.492700	{'what': 'I am a fan of this software and would like to contribute.  What would be the best way to begin? I am looking at bug tracker now', 'who': 'sepuluu', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:23:11.147316	{'what': 'Really depends on how much determination you have', 'who': 'HdkR', 'type': 'irc_message', 'modes': {'o'}, 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:22:53.392134	{'what': 'I started working on Dolphin with only basic C++ knowledge', 'who': 'HdkR', 'type': 'irc_message', 'modes': {'o'}, 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:22:14.836383	{'what': 'how experienced of a programmer must one be in order to contribute to dolphin?  I am looking for an open source project to work on, however I am currently learning C++ (have taken undergrad computer sciences courses in java) ', 'who': 'sepuluu', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-23T00:20:44.692680	{'what': 'hello', 'who': 'sepuluu', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-22T22:22:08.914409	{'what': 'Armada, link for the bt dongle on aliexpress?', 'who': 'skid_au', 'type': 'irc_message', 'modes': {'o'}, 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-22T22:20:03.454180	{'what': 'Sorry to keep spamming this, but the save state problem only appears to be triggered when you close the game and load the state after re opening it', 'who': 'merauder75', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-22T22:11:12.369344	{'what': '(From EXI_Devicememorycard)', 'who': 'merauder75', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-22T22:10:57.859541	{'what': 'From the debugger output on desktop, it does a bunch of reads, and when the error is thrown, it reads blocks 0-4, and 350-351', 'who': 'merauder75', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}
2017-10-22T21:58:20.118846	{'what': 'So it appears that this is not an Android-specific bug as I originally thought', 'who': 'merauder75', 'type': 'irc_message', 'modes': set(), 'where': '#dolphin-dev', 'direct': False, 'source': 'ircclient'}

Recent 'issue' events

2017-10-22T22:15:56.873131	{'update': 0, 'author': 'piltdownman', 'issue': 10600, 'type': 'issue', 'new': True, 'source': 'redmine', 'title': 'Memcard Manager crashes with certain memory card layouts'}
2017-10-22T07:12:36.605695	{'update': 3, 'author': 'JosJuice', 'issue': 10599, 'type': 'issue', 'new': False, 'source': 'redmine', 'title': "Tony Hawk's Pro Skater 4: textures flicker different colors"}
2017-10-22T04:22:24.408452	{'update': 2, 'author': 'ligfx', 'issue': 10599, 'type': 'issue', 'new': False, 'source': 'redmine', 'title': "Tony Hawk's Pro Skater 4: textures flicker different colors"}
2017-10-22T04:19:30.803888	{'update': 1, 'author': 'ligfx', 'issue': 10599, 'type': 'issue', 'new': False, 'source': 'redmine', 'title': "Tony Hawk's Pro Skater 4: textures flicker different colors"}
2017-10-22T04:16:30.846483	{'update': 0, 'author': 'ligfx', 'issue': 10599, 'type': 'issue', 'new': True, 'source': 'redmine', 'title': "Tony Hawk's Pro Skater 4: textures flicker different colors"}
2017-10-22T03:26:27.729352	{'update': 8, 'author': 'Hiddennight', 'issue': 10476, 'type': 'issue', 'new': False, 'source': 'redmine', 'title': 'Paper Mario: The Thousand Year Door Crashes after Bowser and Lord Crump get blown up by the superbombomb'}
2017-10-21T17:06:27.972609	{'update': 3, 'author': 'merauder75', 'issue': 10598, 'type': 'issue', 'new': False, 'source': 'redmine', 'title': '(Android) - Using save states breaks memory card saving in Pokemon Colosseum'}
2017-10-21T16:55:47.753564	{'update': 2, 'author': 'merauder75', 'issue': 10598, 'type': 'issue', 'new': False, 'source': 'redmine', 'title': '(Android) - Using save states breaks memory card saving in Pokemon Colosseum'}
2017-10-21T16:44:43.272710	{'update': 1, 'author': 'JosJuice', 'issue': 10598, 'type': 'issue', 'new': False, 'source': 'redmine', 'title': '(Android) - Using save states breaks memory card saving in Pokemon Colosseum'}
2017-10-21T16:36:23.488781	{'update': 0, 'author': 'merauder75', 'issue': 10598, 'type': 'issue', 'new': True, 'source': 'redmine', 'title': '(Android) - Using save states breaks memory card saving in Pokemon Colosseum'}
2017-10-20T17:15:27.515994	{'update': 4, 'author': 'leoetlino', 'issue': 10595, 'type': 'issue', 'new': False, 'source': 'redmine', 'title': 'Rapidly pausing and unpausing Dolphin.exe -d causes invalid reads or freezes'}
2017-10-20T17:15:14.373909	{'update': 4, 'author': 'leoetlino', 'issue': 10071, 'type': 'issue', 'new': False, 'source': 'redmine', 'title': 'Pausing and stepping in debug mode often crashes the game'}
2017-10-20T17:14:57.860685	{'update': 11, 'author': 'leoetlino', 'issue': 10132, 'type': 'issue', 'new': False, 'source': 'redmine', 'title': 'Breakpoints crash game after stepping'}
2017-10-20T17:05:39.304005	{'update': 3, 'author': 'ryanebola16', 'issue': 10595, 'type': 'issue', 'new': False, 'source': 'redmine', 'title': 'Rapidly pausing and unpausing Dolphin.exe -d causes invalid reads or freezes'}
2017-10-20T16:54:08.981300	{'update': 2, 'author': 'JMC4789', 'issue': 10595, 'type': 'issue', 'new': False, 'source': 'redmine', 'title': 'Rapidly pausing and unpausing Dolphin.exe -d causes invalid reads or freezes'}
2017-10-20T16:51:52.963306	{'update': 1, 'author': 'leoetlino', 'issue': 10595, 'type': 'issue', 'new': False, 'source': 'redmine', 'title': 'Rapidly pausing and unpausing Dolphin.exe -d causes invalid reads or freezes'}
2017-10-20T14:04:35.092907	{'update': 0, 'author': 'ryanebola16', 'issue': 10597, 'type': 'issue', 'new': True, 'source': 'redmine', 'title': 'Breakpoints "Active" and "Function" columns are confusing'}
2017-10-20T13:56:43.633982	{'update': 0, 'author': 'ryanebola16', 'issue': 10596, 'type': 'issue', 'new': True, 'source': 'redmine', 'title': 'Debug Perspectives are broken'}
2017-10-20T13:13:41.828002	{'update': 0, 'author': 'ryanebola16', 'issue': 10595, 'type': 'issue', 'new': True, 'source': 'redmine', 'title': 'Rapidly pausing and unpausing Dolphin.exe -d causes invalid reads or freezes'}
2017-10-20T11:35:22.998570	{'update': 3, 'author': 'ryanebola16', 'issue': 10594, 'type': 'issue', 'new': False, 'source': 'redmine', 'title': 'MemoryMap_Setup: Failed finding a memory base'}
2017-10-20T11:31:29.933933	{'update': 2, 'author': 'ryanebola16', 'issue': 10594, 'type': 'issue', 'new': False, 'source': 'redmine', 'title': 'MemoryMap_Setup: Failed finding a memory base'}
2017-10-20T11:20:26.352285	{'update': 1, 'author': 'JosJuice', 'issue': 10594, 'type': 'issue', 'new': False, 'source': 'redmine', 'title': 'MemoryMap_Setup: Failed finding a memory base'}
2017-10-20T11:14:37.348754	{'update': 1, 'author': 'ryanebola16', 'issue': 10589, 'type': 'issue', 'new': False, 'source': 'redmine', 'title': 'Reported PC from panic handlers are inconsistent'}
2017-10-20T11:13:23.726554	{'update': 0, 'author': 'ryanebola16', 'issue': 10594, 'type': 'issue', 'new': True, 'source': 'redmine', 'title': 'MemoryMap_Setup: Failed finding a memory base'}
2017-10-20T10:59:57.074033	{'update': 1, 'author': 'ryanebola16', 'issue': 10590, 'type': 'issue', 'new': False, 'source': 'redmine', 'title': 'Wrong PC addresses in memory breakpoint log'}

Recent 'pull_request_fifoci_status' events

2017-10-22T20:27:07.314988	{'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 6134, 'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'type': 'pull_request_fifoci_status'}
2017-10-22T20:21:59.548163	{'service': 'pr-fifoci-sw-lin-mesa', 'pr': 6134, 'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'type': 'pull_request_fifoci_status'}
2017-10-22T18:27:40.834670	{'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 6134, 'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'ab57d4c15fe819989b583487f9e1674aac76b458', 'type': 'pull_request_fifoci_status'}
2017-10-22T18:22:43.057811	{'service': 'pr-fifoci-sw-lin-mesa', 'pr': 6134, 'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'ab57d4c15fe819989b583487f9e1674aac76b458', 'type': 'pull_request_fifoci_status'}
2017-10-22T10:21:10.340005	{'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 6131, 'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '43390f62c456363e9772251b875674382e9f6180', 'type': 'pull_request_fifoci_status'}
2017-10-22T10:16:10.392557	{'service': 'pr-fifoci-sw-lin-mesa', 'pr': 6131, 'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '43390f62c456363e9772251b875674382e9f6180', 'type': 'pull_request_fifoci_status'}
2017-10-22T06:16:00.049318	{'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 6136, 'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '82129d30c90b6acf627c28137817107e62fad567', 'type': 'pull_request_fifoci_status'}
2017-10-22T06:11:04.603872	{'service': 'pr-fifoci-sw-lin-mesa', 'pr': 6136, 'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '82129d30c90b6acf627c28137817107e62fad567', 'type': 'pull_request_fifoci_status'}
2017-10-22T05:40:13.657455	{'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 6136, 'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'f2d4a4154d13ebc7b336916293df6bea7f6e8343', 'type': 'pull_request_fifoci_status'}
2017-10-22T05:34:01.817441	{'service': 'pr-fifoci-sw-lin-mesa', 'pr': 6136, 'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'f2d4a4154d13ebc7b336916293df6bea7f6e8343', 'type': 'pull_request_fifoci_status'}
2017-10-22T05:31:33.271781	{'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 6135, 'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '7a7b71614b658247cec742e168b3eac57d9596b3', 'type': 'pull_request_fifoci_status'}
2017-10-22T05:26:33.493814	{'service': 'pr-fifoci-sw-lin-mesa', 'pr': 6135, 'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '7a7b71614b658247cec742e168b3eac57d9596b3', 'type': 'pull_request_fifoci_status'}
2017-10-22T00:10:48.024775	{'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 6129, 'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '8ade34a064d842360fb59ad444c98ce6f25c847f', 'type': 'pull_request_fifoci_status'}
2017-10-22T00:02:23.260341	{'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 6134, 'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '38e0bcaa2ee527631b15fcf8247c5383cf302861', 'type': 'pull_request_fifoci_status'}
2017-10-21T23:53:55.102360	{'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 6129, 'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'd84ac1bd6dcaa06370b1da1543cc2b83b8480b20', 'type': 'pull_request_fifoci_status'}
2017-10-21T23:51:19.199568	{'service': 'pr-fifoci-sw-lin-mesa', 'pr': 6129, 'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '8ade34a064d842360fb59ad444c98ce6f25c847f', 'type': 'pull_request_fifoci_status'}
2017-10-21T23:47:30.260909	{'service': 'pr-fifoci-sw-lin-mesa', 'pr': 6134, 'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '38e0bcaa2ee527631b15fcf8247c5383cf302861', 'type': 'pull_request_fifoci_status'}
2017-10-21T23:44:45.142411	{'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 6133, 'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'b031d3316c64718b383e6339c4a6c12176bff4cb', 'type': 'pull_request_fifoci_status'}
2017-10-21T23:43:11.394246	{'service': 'pr-fifoci-sw-lin-mesa', 'pr': 6129, 'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'd84ac1bd6dcaa06370b1da1543cc2b83b8480b20', 'type': 'pull_request_fifoci_status'}
2017-10-21T23:39:26.591672	{'service': 'pr-fifoci-sw-lin-mesa', 'pr': 6134, 'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '767bc97439b34deb4f2038c3186a31ae376d6610', 'type': 'pull_request_fifoci_status'}
2017-10-21T23:35:36.971419	{'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 6133, 'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '7295d6719e38f4f64f1baa93e4927295b93c24e5', 'type': 'pull_request_fifoci_status'}
2017-10-21T23:34:31.940852	{'service': 'pr-fifoci-sw-lin-mesa', 'pr': 6133, 'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'b031d3316c64718b383e6339c4a6c12176bff4cb', 'type': 'pull_request_fifoci_status'}
2017-10-21T23:30:30.463604	{'service': 'pr-fifoci-sw-lin-mesa', 'pr': 6133, 'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '7295d6719e38f4f64f1baa93e4927295b93c24e5', 'type': 'pull_request_fifoci_status'}
2017-10-21T21:55:54.437898	{'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 6129, 'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'd14ccc8c7c1e718d1b51f7de179cc99f3d628eb4', 'type': 'pull_request_fifoci_status'}
2017-10-21T21:48:55.030638	{'service': 'pr-fifoci-sw-lin-mesa', 'pr': 6129, 'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'd14ccc8c7c1e718d1b51f7de179cc99f3d628eb4', 'type': 'pull_request_fifoci_status'}

Recent 'raw_bb_hook' events

2017-10-22T20:27:06.247585	{'bb_type': 'finished', 'raw': {'masterid': 1, 'state_string': 'finished', 'number': 783, 'results': 0, 'workerid': 6, 'url': 'https://buildbot.dolphin-emu.org/#builders/30/builds/783', 'builderid': 30, 'buildid': 12154, 'buildrequest': {'results': -1, 'submitted_at': 1508703498, 'claimed_by_masterid': 1, 'buildsetid': 4502, 'builderid': 30, 'priority': 0, 'complete_at': None, 'buildrequestid': 16228, 'claimed_at': 1508703608, 'waited_for': False, 'claimed': True, 'complete': False}, 'complete_at': 1508704026, 'buildrequestid': 16228, 'builder': {'masterids': [1], 'name': 'pr-fifoci-ogl-lin-mesa', 'builderid': 30, 'description': None, 'tags': []}, 'started_at': 1508703499, 'properties': {'codebase': ['', 'Build'], 'slavename': ['arch64', 'Worker (deprecated)'], 'buildername': ['pr-fifoci-ogl-lin-mesa', 'Builder'], 'project': ['', 'Build'], 'branchname': ['pr-6134', 'Trigger'], 'headrev': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'Trigger'], 'workername': ['arch64', 'Worker'], 'shortrev': ['15aabb', 'Trigger'], 'builddir': ['/home/fifoci/buildslave/pr-fifoci-ogl-lin-mesa', 'worker'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'pr_id': [6134, 'Trigger'], 'repository': ['', 'Build'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildnumber': [783, 'Build'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'revision': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'Build'], 'got_revision': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'GitNoBranch'], 'branch': ['refs/pull/6134/head', 'Build']}, 'buildset': {'complete_at': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'external_idstring': None, 'parent_relationship': 'Triggered from', 'submitted_at': 1508703498, 'parent_buildid': 12153, 'bsid': 4502, 'results': -1, 'sourcestamps': [{'codebase': '', 'patch': None, 'branch': 'refs/pull/6134/head', 'repository': '', 'created_at': 1508703498, 'ssid': 1286, 'project': '', 'revision': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc'}], 'complete': False}, 'complete': True}, 'type': 'raw_bb_hook', 'source': 'webserver'}
2017-10-22T20:21:58.454429	{'bb_type': 'finished', 'raw': {'masterid': 1, 'state_string': 'finished', 'number': 783, 'results': 0, 'workerid': 6, 'url': 'https://buildbot.dolphin-emu.org/#builders/17/builds/783', 'builderid': 17, 'buildid': 12155, 'buildrequest': {'results': -1, 'submitted_at': 1508703498, 'claimed_by_masterid': 1, 'buildsetid': 4502, 'builderid': 17, 'priority': 0, 'complete_at': None, 'buildrequestid': 16226, 'claimed_at': 1508703608, 'waited_for': False, 'claimed': True, 'complete': False}, 'complete_at': 1508703718, 'buildrequestid': 16226, 'builder': {'masterids': [1], 'name': 'pr-fifoci-sw-lin-mesa', 'builderid': 17, 'description': None, 'tags': []}, 'started_at': 1508703499, 'properties': {'codebase': ['', 'Build'], 'slavename': ['arch64', 'Worker (deprecated)'], 'buildername': ['pr-fifoci-sw-lin-mesa', 'Builder'], 'project': ['', 'Build'], 'branchname': ['pr-6134', 'Trigger'], 'headrev': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'Trigger'], 'workername': ['arch64', 'Worker'], 'shortrev': ['15aabb', 'Trigger'], 'builddir': ['/home/fifoci/buildslave/pr-fifoci-sw-lin-mesa', 'worker'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'pr_id': [6134, 'Trigger'], 'repository': ['', 'Build'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildnumber': [783, 'Build'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'revision': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'Build'], 'got_revision': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'GitNoBranch'], 'branch': ['refs/pull/6134/head', 'Build']}, 'buildset': {'complete_at': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'external_idstring': None, 'parent_relationship': 'Triggered from', 'submitted_at': 1508703498, 'parent_buildid': 12153, 'bsid': 4502, 'results': -1, 'sourcestamps': [{'codebase': '', 'patch': None, 'branch': 'refs/pull/6134/head', 'repository': '', 'created_at': 1508703498, 'ssid': 1286, 'project': '', 'revision': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc'}], 'complete': False}, 'complete': True}, 'type': 'raw_bb_hook', 'source': 'webserver'}
2017-10-22T20:20:36.624846	{'bb_type': 'finished', 'raw': {'masterid': 1, 'state_string': 'finished', 'number': 841, 'results': 0, 'workerid': 4, 'url': 'https://buildbot.dolphin-emu.org/#builders/7/builds/841', 'builderid': 7, 'buildid': 12159, 'buildrequest': {'results': -1, 'submitted_at': 1508703479, 'claimed_by_masterid': 1, 'buildsetid': 4501, 'builderid': 7, 'priority': 0, 'complete_at': None, 'buildrequestid': 16217, 'claimed_at': 1508703608, 'waited_for': False, 'claimed': True, 'complete': False}, 'complete_at': 1508703637, 'buildrequestid': 16217, 'builder': {'masterids': [1], 'name': 'pr-win-dbg-x64', 'builderid': 7, 'description': None, 'tags': []}, 'started_at': 1508703571, 'properties': {'slavename': ['windows', 'Worker (deprecated)'], 'baserev': ['6e9e681438887840d08928296bb08c0d226d1046', 'try build'], 'buildername': ['pr-win-dbg-x64', 'Builder'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'branchname': ['pr-6134', 'try build'], 'build_url': ['https://dl.dolphin-emu.org/prs/pr-6134-dolphin-latest-dbg-x64.7z', 'SetProperty'], 'workername': ['windows', 'Worker'], 'shortrev': ['15aabb', 'try build'], 'builddir': ['C:\\buildbot\\pr-win-dbg-x64', 'worker'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'pr_id': [6134, 'try build'], 'repository': ['', 'Build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'buildnumber': [841, 'Build'], 'scheduler': ['pr', 'Scheduler'], 'revision': [None, 'Build'], 'got_revision': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'GitNoBranch'], 'headrev': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'try build'], 'branch': ['refs/pull/6134/head', 'Build']}, 'buildset': {'complete_at': None, 'reason': "'try' job by user Central (on behalf of: ligfx)", 'external_idstring': '6134-15aabb', 'parent_relationship': None, 'submitted_at': 1508703479, 'parent_buildid': None, 'bsid': 4501, 'results': -1, 'sourcestamps': [{'codebase': '', 'patch': None, 'branch': 'refs/pull/6134/head', 'repository': '', 'created_at': 1508628910, 'ssid': 1266, 'project': '', 'revision': None}], 'complete': False}, 'complete': True}, 'type': 'raw_bb_hook', 'source': 'webserver'}
2017-10-22T20:19:31.382014	{'bb_type': 'starting', 'raw': {'masterid': 1, 'state_string': 'starting', 'number': 841, 'results': None, 'workerid': 4, 'url': 'https://buildbot.dolphin-emu.org/#builders/7/builds/841', 'builderid': 7, 'buildid': 12159, 'buildrequest': {'results': -1, 'submitted_at': 1508703479, 'claimed_by_masterid': 1, 'buildsetid': 4501, 'builderid': 7, 'priority': 0, 'complete_at': None, 'buildrequestid': 16217, 'claimed_at': 1508703571, 'waited_for': False, 'claimed': True, 'complete': False}, 'complete_at': None, 'buildrequestid': 16217, 'builder': {'masterids': [1], 'name': 'pr-win-dbg-x64', 'builderid': 7, 'description': None, 'tags': []}, 'started_at': 1508703571, 'properties': {'codebase': ['', 'Build'], 'baserev': ['6e9e681438887840d08928296bb08c0d226d1046', 'try build'], 'buildername': ['pr-win-dbg-x64', 'Builder'], 'project': ['', 'Build'], 'shortrev': ['15aabb', 'try build'], 'headrev': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'try build'], 'buildnumber': [841, 'Build'], 'pr_id': [6134, 'try build'], 'repository': ['', 'Build'], 'branchname': ['pr-6134', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'scheduler': ['pr', 'Scheduler'], 'revision': [None, 'Build'], 'branch': ['refs/pull/6134/head', 'Build']}, 'buildset': {'complete_at': None, 'reason': "'try' job by user Central (on behalf of: ligfx)", 'external_idstring': '6134-15aabb', 'parent_relationship': None, 'submitted_at': 1508703479, 'parent_buildid': None, 'bsid': 4501, 'results': -1, 'sourcestamps': [{'codebase': '', 'patch': None, 'branch': 'refs/pull/6134/head', 'repository': '', 'created_at': 1508628910, 'ssid': 1266, 'project': '', 'revision': None}], 'complete': False}, 'complete': False}, 'type': 'raw_bb_hook', 'source': 'webserver'}
2017-10-22T20:19:31.219452	{'bb_type': 'finished', 'raw': {'masterid': 1, 'state_string': 'finished', 'number': 844, 'results': 0, 'workerid': 4, 'url': 'https://buildbot.dolphin-emu.org/#builders/20/builds/844', 'builderid': 20, 'buildid': 12152, 'buildrequest': {'results': -1, 'submitted_at': 1508703479, 'claimed_by_masterid': 1, 'buildsetid': 4501, 'builderid': 20, 'priority': 0, 'complete_at': None, 'buildrequestid': 16219, 'claimed_at': 1508703480, 'waited_for': False, 'claimed': True, 'complete': False}, 'complete_at': 1508703571, 'buildrequestid': 16219, 'builder': {'masterids': [1], 'name': 'pr-win-x64', 'builderid': 20, 'description': None, 'tags': []}, 'started_at': 1508703480, 'properties': {'slavename': ['windows', 'Worker (deprecated)'], 'baserev': ['6e9e681438887840d08928296bb08c0d226d1046', 'try build'], 'buildername': ['pr-win-x64', 'Builder'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'branchname': ['pr-6134', 'try build'], 'build_url': ['https://dl.dolphin-emu.org/prs/pr-6134-dolphin-latest-x64.7z', 'SetProperty'], 'workername': ['windows', 'Worker'], 'shortrev': ['15aabb', 'try build'], 'builddir': ['C:\\buildbot\\pr-win-x64', 'worker'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'pr_id': [6134, 'try build'], 'repository': ['', 'Build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'buildnumber': [844, 'Build'], 'scheduler': ['pr', 'Scheduler'], 'revision': [None, 'Build'], 'got_revision': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'GitNoBranch'], 'headrev': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'try build'], 'branch': ['refs/pull/6134/head', 'Build']}, 'buildset': {'complete_at': None, 'reason': "'try' job by user Central (on behalf of: ligfx)", 'external_idstring': '6134-15aabb', 'parent_relationship': None, 'submitted_at': 1508703479, 'parent_buildid': None, 'bsid': 4501, 'results': -1, 'sourcestamps': [{'codebase': '', 'patch': None, 'branch': 'refs/pull/6134/head', 'repository': '', 'created_at': 1508628910, 'ssid': 1266, 'project': '', 'revision': None}], 'complete': False}, 'complete': True}, 'type': 'raw_bb_hook', 'source': 'webserver'}
2017-10-22T20:19:23.174880	{'bb_type': 'finished', 'raw': {'masterid': 1, 'state_string': 'finished', 'number': 848, 'results': 0, 'workerid': 9, 'url': 'https://buildbot.dolphin-emu.org/#builders/8/builds/848', 'builderid': 8, 'buildid': 12157, 'buildrequest': {'results': -1, 'submitted_at': 1508703479, 'claimed_by_masterid': 1, 'buildsetid': 4501, 'builderid': 8, 'priority': 0, 'complete_at': None, 'buildrequestid': 16218, 'claimed_at': 1508703498, 'waited_for': False, 'claimed': True, 'complete': False}, 'complete_at': 1508703563, 'buildrequestid': 16218, 'builder': {'masterids': [1], 'name': 'pr-android', 'builderid': 8, 'description': None, 'tags': []}, 'started_at': 1508703499, 'properties': {'codebase': ['', 'Build'], 'slavename': ['ubuntu', 'Worker (deprecated)'], 'buildername': ['pr-android', 'Builder'], 'project': ['', 'Build'], 'branchname': ['pr-6134', 'try build'], 'headrev': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'try build'], 'workername': ['ubuntu', 'Worker'], 'shortrev': ['15aabb', 'try build'], 'builddir': ['/var/lib/buildbot/slave/pr-android', 'worker'], 'buildnumber': [848, 'Build'], 'pr_id': [6134, 'try build'], 'repository': ['', 'Build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'baserev': ['6e9e681438887840d08928296bb08c0d226d1046', 'try build'], 'scheduler': ['pr', 'Scheduler'], 'revision': [None, 'Build'], 'got_revision': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'GitNoBranch'], 'branch': ['refs/pull/6134/head', 'Build']}, 'buildset': {'complete_at': None, 'reason': "'try' job by user Central (on behalf of: ligfx)", 'external_idstring': '6134-15aabb', 'parent_relationship': None, 'submitted_at': 1508703479, 'parent_buildid': None, 'bsid': 4501, 'results': -1, 'sourcestamps': [{'codebase': '', 'patch': None, 'branch': 'refs/pull/6134/head', 'repository': '', 'created_at': 1508628910, 'ssid': 1266, 'project': '', 'revision': None}], 'complete': False}, 'complete': True}, 'type': 'raw_bb_hook', 'source': 'webserver'}
2017-10-22T20:19:22.244691	{'bb_type': 'finished', 'raw': {'masterid': 1, 'state_string': 'finished', 'number': 840, 'results': 0, 'workerid': 12, 'url': 'https://buildbot.dolphin-emu.org/#builders/21/builds/840', 'builderid': 21, 'buildid': 12158, 'buildrequest': {'results': -1, 'submitted_at': 1508703479, 'claimed_by_masterid': 1, 'buildsetid': 4501, 'builderid': 21, 'priority': 0, 'complete_at': None, 'buildrequestid': 16220, 'claimed_at': 1508703516, 'waited_for': False, 'claimed': True, 'complete': False}, 'complete_at': 1508703562, 'buildrequestid': 16220, 'builder': {'masterids': [1], 'name': 'pr-deb-dbg-x64', 'builderid': 21, 'description': None, 'tags': []}, 'started_at': 1508703518, 'properties': {'workername': ['debian', 'Worker'], 'codebase': ['', 'Build'], 'slavename': ['debian', 'Worker (deprecated)'], 'buildername': ['pr-deb-dbg-x64', 'Builder'], 'project': ['', 'Build'], 'branchname': ['pr-6134', 'try build'], 'headrev': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'try build'], 'buildnumber': [840, 'Build'], 'shortrev': ['15aabb', 'try build'], 'builddir': ['/home/delroth/buildslave/pr-deb-dbg-x64', 'worker'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'pr_id': [6134, 'try build'], 'repository': ['', 'Build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'baserev': ['6e9e681438887840d08928296bb08c0d226d1046', 'try build'], 'scheduler': ['pr', 'Scheduler'], 'revision': [None, 'Build'], 'got_revision': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'GitNoBranch'], 'branch': ['refs/pull/6134/head', 'Build']}, 'buildset': {'complete_at': None, 'reason': "'try' job by user Central (on behalf of: ligfx)", 'external_idstring': '6134-15aabb', 'parent_relationship': None, 'submitted_at': 1508703479, 'parent_buildid': None, 'bsid': 4501, 'results': -1, 'sourcestamps': [{'codebase': '', 'patch': None, 'branch': 'refs/pull/6134/head', 'repository': '', 'created_at': 1508628910, 'ssid': 1266, 'project': '', 'revision': None}], 'complete': False}, 'complete': True}, 'type': 'raw_bb_hook', 'source': 'webserver'}
2017-10-22T20:18:41.643393	{'bb_type': 'finished', 'raw': {'masterid': 1, 'state_string': 'finished', 'number': 839, 'results': 0, 'workerid': 1, 'url': 'https://buildbot.dolphin-emu.org/#builders/33/builds/839', 'builderid': 33, 'buildid': 12148, 'buildrequest': {'results': -1, 'submitted_at': 1508703479, 'claimed_by_masterid': 1, 'buildsetid': 4501, 'builderid': 33, 'priority': 0, 'complete_at': None, 'buildrequestid': 16222, 'claimed_at': 1508703479, 'waited_for': False, 'claimed': True, 'complete': False}, 'complete_at': 1508703522, 'buildrequestid': 16222, 'builder': {'masterids': [1], 'name': 'pr-osx-x64', 'builderid': 33, 'description': None, 'tags': []}, 'started_at': 1508703480, 'properties': {'workername': ['osx', 'Worker'], 'codebase': ['', 'Build'], 'slavename': ['osx', 'Worker (deprecated)'], 'buildername': ['pr-osx-x64', 'Builder'], 'project': ['', 'Build'], 'branchname': ['pr-6134', 'try build'], 'headrev': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'try build'], 'buildnumber': [839, 'Build'], 'shortrev': ['15aabb', 'try build'], 'builddir': ['/Users/osxguest/buildslave/pr-osx-x64', 'worker'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'pr_id': [6134, 'try build'], 'repository': ['', 'Build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'baserev': ['6e9e681438887840d08928296bb08c0d226d1046', 'try build'], 'scheduler': ['pr', 'Scheduler'], 'revision': [None, 'Build'], 'got_revision': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'GitNoBranch'], 'branch': ['refs/pull/6134/head', 'Build']}, 'buildset': {'complete_at': None, 'reason': "'try' job by user Central (on behalf of: ligfx)", 'external_idstring': '6134-15aabb', 'parent_relationship': None, 'submitted_at': 1508703479, 'parent_buildid': None, 'bsid': 4501, 'results': -1, 'sourcestamps': [{'codebase': '', 'patch': None, 'branch': 'refs/pull/6134/head', 'repository': '', 'created_at': 1508628910, 'ssid': 1266, 'project': '', 'revision': None}], 'complete': False}, 'complete': True}, 'type': 'raw_bb_hook', 'source': 'webserver'}
2017-10-22T20:18:38.698180	{'bb_type': 'starting', 'raw': {'masterid': 1, 'state_string': 'starting', 'number': 840, 'results': None, 'workerid': 12, 'url': 'https://buildbot.dolphin-emu.org/#builders/21/builds/840', 'builderid': 21, 'buildid': 12158, 'buildrequest': {'results': -1, 'submitted_at': 1508703479, 'claimed_by_masterid': 1, 'buildsetid': 4501, 'builderid': 21, 'priority': 0, 'complete_at': None, 'buildrequestid': 16220, 'claimed_at': 1508703516, 'waited_for': False, 'claimed': True, 'complete': False}, 'complete_at': None, 'buildrequestid': 16220, 'builder': {'masterids': [1], 'name': 'pr-deb-dbg-x64', 'builderid': 21, 'description': None, 'tags': []}, 'started_at': 1508703518, 'properties': {'codebase': ['', 'Build'], 'baserev': ['6e9e681438887840d08928296bb08c0d226d1046', 'try build'], 'buildername': ['pr-deb-dbg-x64', 'Builder'], 'project': ['', 'Build'], 'shortrev': ['15aabb', 'try build'], 'headrev': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'try build'], 'buildnumber': [840, 'Build'], 'pr_id': [6134, 'try build'], 'repository': ['', 'Build'], 'branchname': ['pr-6134', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'scheduler': ['pr', 'Scheduler'], 'revision': [None, 'Build'], 'branch': ['refs/pull/6134/head', 'Build']}, 'buildset': {'complete_at': None, 'reason': "'try' job by user Central (on behalf of: ligfx)", 'external_idstring': '6134-15aabb', 'parent_relationship': None, 'submitted_at': 1508703479, 'parent_buildid': None, 'bsid': 4501, 'results': -1, 'sourcestamps': [{'codebase': '', 'patch': None, 'branch': 'refs/pull/6134/head', 'repository': '', 'created_at': 1508628910, 'ssid': 1266, 'project': '', 'revision': None}], 'complete': False}, 'complete': False}, 'type': 'raw_bb_hook', 'source': 'webserver'}
2017-10-22T20:18:36.090185	{'bb_type': 'finished', 'raw': {'masterid': 1, 'state_string': 'finished', 'number': 841, 'results': 0, 'workerid': 12, 'url': 'https://buildbot.dolphin-emu.org/#builders/6/builds/841', 'builderid': 6, 'buildid': 12149, 'buildrequest': {'results': -1, 'submitted_at': 1508703479, 'claimed_by_masterid': 1, 'buildsetid': 4501, 'builderid': 6, 'priority': 0, 'complete_at': None, 'buildrequestid': 16216, 'claimed_at': 1508703479, 'waited_for': False, 'claimed': True, 'complete': False}, 'complete_at': 1508703516, 'buildrequestid': 16216, 'builder': {'masterids': [1], 'name': 'pr-deb-x64', 'builderid': 6, 'description': None, 'tags': []}, 'started_at': 1508703480, 'properties': {'workername': ['debian', 'Worker'], 'codebase': ['', 'Build'], 'slavename': ['debian', 'Worker (deprecated)'], 'buildername': ['pr-deb-x64', 'Builder'], 'project': ['', 'Build'], 'branchname': ['pr-6134', 'try build'], 'headrev': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'try build'], 'buildnumber': [841, 'Build'], 'shortrev': ['15aabb', 'try build'], 'builddir': ['/home/delroth/buildslave/pr-deb-x64', 'worker'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'pr_id': [6134, 'try build'], 'repository': ['', 'Build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'baserev': ['6e9e681438887840d08928296bb08c0d226d1046', 'try build'], 'scheduler': ['pr', 'Scheduler'], 'revision': [None, 'Build'], 'got_revision': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'GitNoBranch'], 'branch': ['refs/pull/6134/head', 'Build']}, 'buildset': {'complete_at': None, 'reason': "'try' job by user Central (on behalf of: ligfx)", 'external_idstring': '6134-15aabb', 'parent_relationship': None, 'submitted_at': 1508703479, 'parent_buildid': None, 'bsid': 4501, 'results': -1, 'sourcestamps': [{'codebase': '', 'patch': None, 'branch': 'refs/pull/6134/head', 'repository': '', 'created_at': 1508628910, 'ssid': 1266, 'project': '', 'revision': None}], 'complete': False}, 'complete': True}, 'type': 'raw_bb_hook', 'source': 'webserver'}
2017-10-22T20:18:24.785085	{'bb_type': 'finished', 'raw': {'masterid': 1, 'state_string': 'finished', 'number': 783, 'results': 2, 'workerid': 11, 'url': 'https://buildbot.dolphin-emu.org/#builders/4/builds/783', 'builderid': 4, 'buildid': 12156, 'buildrequest': {'results': -1, 'submitted_at': 1508703498, 'claimed_by_masterid': 1, 'buildsetid': 4502, 'builderid': 4, 'priority': 0, 'complete_at': None, 'buildrequestid': 16224, 'claimed_at': 1508703498, 'waited_for': False, 'claimed': True, 'complete': False}, 'complete_at': 1508703505, 'buildrequestid': 16224, 'builder': {'masterids': [1], 'name': 'pr-fifoci-ogl-lin-intel', 'builderid': 4, 'description': None, 'tags': []}, 'started_at': 1508703499, 'properties': {'codebase': ['', 'Build'], 'slavename': ['delroth-nuc', 'Worker (deprecated)'], 'buildername': ['pr-fifoci-ogl-lin-intel', 'Builder'], 'project': ['', 'Build'], 'headrev': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'Trigger'], 'workername': ['delroth-nuc', 'Worker'], 'shortrev': ['15aabb', 'Trigger'], 'builddir': ['/data/buildslave/buildslave/pr-fifoci-ogl-lin-intel', 'worker'], 'buildnumber': [783, 'Build'], 'pr_id': [6134, 'Trigger'], 'repository': ['', 'Build'], 'branchname': ['pr-6134', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'revision': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'Build'], 'got_revision': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'GitNoBranch'], 'branch': ['refs/pull/6134/head', 'Build']}, 'buildset': {'complete_at': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'external_idstring': None, 'parent_relationship': 'Triggered from', 'submitted_at': 1508703498, 'parent_buildid': 12153, 'bsid': 4502, 'results': -1, 'sourcestamps': [{'codebase': '', 'patch': None, 'branch': 'refs/pull/6134/head', 'repository': '', 'created_at': 1508703498, 'ssid': 1286, 'project': '', 'revision': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc'}], 'complete': False}, 'complete': True}, 'type': 'raw_bb_hook', 'source': 'webserver'}
2017-10-22T20:18:19.140441	{'bb_type': 'starting', 'raw': {'masterid': 1, 'state_string': 'starting', 'number': 848, 'results': None, 'workerid': 9, 'url': 'https://buildbot.dolphin-emu.org/#builders/8/builds/848', 'builderid': 8, 'buildid': 12157, 'buildrequest': {'results': -1, 'submitted_at': 1508703479, 'claimed_by_masterid': 1, 'buildsetid': 4501, 'builderid': 8, 'priority': 0, 'complete_at': None, 'buildrequestid': 16218, 'claimed_at': 1508703498, 'waited_for': False, 'claimed': True, 'complete': False}, 'complete_at': None, 'buildrequestid': 16218, 'builder': {'masterids': [1], 'name': 'pr-android', 'builderid': 8, 'description': None, 'tags': []}, 'started_at': 1508703499, 'properties': {'codebase': ['', 'Build'], 'baserev': ['6e9e681438887840d08928296bb08c0d226d1046', 'try build'], 'buildername': ['pr-android', 'Builder'], 'project': ['', 'Build'], 'shortrev': ['15aabb', 'try build'], 'headrev': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'try build'], 'buildnumber': [848, 'Build'], 'pr_id': [6134, 'try build'], 'repository': ['', 'Build'], 'branchname': ['pr-6134', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'scheduler': ['pr', 'Scheduler'], 'revision': [None, 'Build'], 'branch': ['refs/pull/6134/head', 'Build']}, 'buildset': {'complete_at': None, 'reason': "'try' job by user Central (on behalf of: ligfx)", 'external_idstring': '6134-15aabb', 'parent_relationship': None, 'submitted_at': 1508703479, 'parent_buildid': None, 'bsid': 4501, 'results': -1, 'sourcestamps': [{'codebase': '', 'patch': None, 'branch': 'refs/pull/6134/head', 'repository': '', 'created_at': 1508628910, 'ssid': 1266, 'project': '', 'revision': None}], 'complete': False}, 'complete': False}, 'type': 'raw_bb_hook', 'source': 'webserver'}
2017-10-22T20:18:19.077609	{'bb_type': 'starting', 'raw': {'masterid': 1, 'state_string': 'starting', 'number': 783, 'results': None, 'workerid': 11, 'url': 'https://buildbot.dolphin-emu.org/#builders/4/builds/783', 'builderid': 4, 'buildid': 12156, 'buildrequest': {'results': -1, 'submitted_at': 1508703498, 'claimed_by_masterid': 1, 'buildsetid': 4502, 'builderid': 4, 'priority': 0, 'complete_at': None, 'buildrequestid': 16224, 'claimed_at': 1508703498, 'waited_for': False, 'claimed': True, 'complete': False}, 'complete_at': None, 'buildrequestid': 16224, 'builder': {'masterids': [1], 'name': 'pr-fifoci-ogl-lin-intel', 'builderid': 4, 'description': None, 'tags': []}, 'started_at': 1508703499, 'properties': {'codebase': ['', 'Build'], 'buildername': ['pr-fifoci-ogl-lin-intel', 'Builder'], 'project': ['', 'Build'], 'shortrev': ['15aabb', 'Trigger'], 'headrev': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'Trigger'], 'buildnumber': [783, 'Build'], 'branch': ['refs/pull/6134/head', 'Build'], 'repository': ['', 'Build'], 'branchname': ['pr-6134', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'revision': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'Build'], 'pr_id': [6134, 'Trigger']}, 'buildset': {'complete_at': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'external_idstring': None, 'parent_relationship': 'Triggered from', 'submitted_at': 1508703498, 'parent_buildid': 12153, 'bsid': 4502, 'results': -1, 'sourcestamps': [{'codebase': '', 'patch': None, 'branch': 'refs/pull/6134/head', 'repository': '', 'created_at': 1508703498, 'ssid': 1286, 'project': '', 'revision': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc'}], 'complete': False}, 'complete': False}, 'type': 'raw_bb_hook', 'source': 'webserver'}
2017-10-22T20:18:19.005319	{'bb_type': 'starting', 'raw': {'masterid': 1, 'state_string': 'starting', 'number': 783, 'results': None, 'workerid': 6, 'url': 'https://buildbot.dolphin-emu.org/#builders/17/builds/783', 'builderid': 17, 'buildid': 12155, 'buildrequest': {'results': -1, 'submitted_at': 1508703498, 'claimed_by_masterid': 1, 'buildsetid': 4502, 'builderid': 17, 'priority': 0, 'complete_at': None, 'buildrequestid': 16226, 'claimed_at': 1508703498, 'waited_for': False, 'claimed': True, 'complete': False}, 'complete_at': None, 'buildrequestid': 16226, 'builder': {'masterids': [1], 'name': 'pr-fifoci-sw-lin-mesa', 'builderid': 17, 'description': None, 'tags': []}, 'started_at': 1508703499, 'properties': {'codebase': ['', 'Build'], 'buildername': ['pr-fifoci-sw-lin-mesa', 'Builder'], 'project': ['', 'Build'], 'shortrev': ['15aabb', 'Trigger'], 'headrev': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'Trigger'], 'buildnumber': [783, 'Build'], 'branch': ['refs/pull/6134/head', 'Build'], 'repository': ['', 'Build'], 'branchname': ['pr-6134', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'revision': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'Build'], 'pr_id': [6134, 'Trigger']}, 'buildset': {'complete_at': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'external_idstring': None, 'parent_relationship': 'Triggered from', 'submitted_at': 1508703498, 'parent_buildid': 12153, 'bsid': 4502, 'results': -1, 'sourcestamps': [{'codebase': '', 'patch': None, 'branch': 'refs/pull/6134/head', 'repository': '', 'created_at': 1508703498, 'ssid': 1286, 'project': '', 'revision': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc'}], 'complete': False}, 'complete': False}, 'type': 'raw_bb_hook', 'source': 'webserver'}
2017-10-22T20:18:18.966250	{'bb_type': 'starting', 'raw': {'masterid': 1, 'state_string': 'starting', 'number': 783, 'results': None, 'workerid': 6, 'url': 'https://buildbot.dolphin-emu.org/#builders/30/builds/783', 'builderid': 30, 'buildid': 12154, 'buildrequest': {'results': -1, 'submitted_at': 1508703498, 'claimed_by_masterid': 1, 'buildsetid': 4502, 'builderid': 30, 'priority': 0, 'complete_at': None, 'buildrequestid': 16228, 'claimed_at': 1508703498, 'waited_for': False, 'claimed': True, 'complete': False}, 'complete_at': None, 'buildrequestid': 16228, 'builder': {'masterids': [1], 'name': 'pr-fifoci-ogl-lin-mesa', 'builderid': 30, 'description': None, 'tags': []}, 'started_at': 1508703499, 'properties': {'codebase': ['', 'Build'], 'buildername': ['pr-fifoci-ogl-lin-mesa', 'Builder'], 'project': ['', 'Build'], 'shortrev': ['15aabb', 'Trigger'], 'headrev': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'Trigger'], 'buildnumber': [783, 'Build'], 'branch': ['refs/pull/6134/head', 'Build'], 'repository': ['', 'Build'], 'branchname': ['pr-6134', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'revision': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'Build'], 'pr_id': [6134, 'Trigger']}, 'buildset': {'complete_at': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'external_idstring': None, 'parent_relationship': 'Triggered from', 'submitted_at': 1508703498, 'parent_buildid': 12153, 'bsid': 4502, 'results': -1, 'sourcestamps': [{'codebase': '', 'patch': None, 'branch': 'refs/pull/6134/head', 'repository': '', 'created_at': 1508703498, 'ssid': 1286, 'project': '', 'revision': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc'}], 'complete': False}, 'complete': False}, 'type': 'raw_bb_hook', 'source': 'webserver'}
2017-10-22T20:18:18.850850	{'bb_type': 'finished', 'raw': {'masterid': 1, 'state_string': 'finished', 'number': 850, 'results': 0, 'workerid': 9, 'url': 'https://buildbot.dolphin-emu.org/#builders/2/builds/850', 'builderid': 2, 'buildid': 12153, 'buildrequest': {'results': -1, 'submitted_at': 1508703479, 'claimed_by_masterid': 1, 'buildsetid': 4501, 'builderid': 2, 'priority': 0, 'complete_at': None, 'buildrequestid': 16215, 'claimed_at': 1508703486, 'waited_for': False, 'claimed': True, 'complete': False}, 'complete_at': 1508703499, 'buildrequestid': 16215, 'builder': {'masterids': [1], 'name': 'pr-ubu-x64', 'builderid': 2, 'description': None, 'tags': []}, 'started_at': 1508703486, 'properties': {'workername': ['ubuntu', 'Worker'], 'codebase': ['', 'Build'], 'slavename': ['ubuntu', 'Worker (deprecated)'], 'buildername': ['pr-ubu-x64', 'Builder'], 'project': ['', 'Build'], 'branchname': ['pr-6134', 'try build'], 'headrev': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'try build'], 'buildnumber': [850, 'Build'], 'shortrev': ['15aabb', 'try build'], 'builddir': ['/var/lib/buildbot/slave/pr-ubu-x64', 'worker'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'pr_id': [6134, 'try build'], 'repository': ['', 'Build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'baserev': ['6e9e681438887840d08928296bb08c0d226d1046', 'try build'], 'scheduler': ['pr', 'Scheduler'], 'revision': [None, 'Build'], 'got_revision': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'GitNoBranch'], 'branch': ['refs/pull/6134/head', 'Build']}, 'buildset': {'complete_at': None, 'reason': "'try' job by user Central (on behalf of: ligfx)", 'external_idstring': '6134-15aabb', 'parent_relationship': None, 'submitted_at': 1508703479, 'parent_buildid': None, 'bsid': 4501, 'results': -1, 'sourcestamps': [{'codebase': '', 'patch': None, 'branch': 'refs/pull/6134/head', 'repository': '', 'created_at': 1508628910, 'ssid': 1266, 'project': '', 'revision': None}], 'complete': False}, 'complete': True}, 'type': 'raw_bb_hook', 'source': 'webserver'}
2017-10-22T20:18:17.121838	{'bb_type': 'finished', 'raw': {'masterid': 1, 'state_string': 'finished', 'number': 841, 'results': 0, 'workerid': 8, 'url': 'https://buildbot.dolphin-emu.org/#builders/34/builds/841', 'builderid': 34, 'buildid': 12151, 'buildrequest': {'results': -1, 'submitted_at': 1508703479, 'claimed_by_masterid': 1, 'buildsetid': 4501, 'builderid': 34, 'priority': 0, 'complete_at': None, 'buildrequestid': 16223, 'claimed_at': 1508703480, 'waited_for': False, 'claimed': True, 'complete': False}, 'complete_at': 1508703497, 'buildrequestid': 16223, 'builder': {'masterids': [1], 'name': 'pr-freebsd-x64', 'builderid': 34, 'description': None, 'tags': []}, 'started_at': 1508703480, 'properties': {'workername': ['freebsd', 'Worker'], 'codebase': ['', 'Build'], 'slavename': ['freebsd', 'Worker (deprecated)'], 'buildername': ['pr-freebsd-x64', 'Builder'], 'project': ['', 'Build'], 'branchname': ['pr-6134', 'try build'], 'headrev': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'try build'], 'buildnumber': [841, 'Build'], 'shortrev': ['15aabb', 'try build'], 'builddir': ['/usr/home/buildbot/freebsd/pr-freebsd-x64', 'worker'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'pr_id': [6134, 'try build'], 'repository': ['', 'Build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'baserev': ['6e9e681438887840d08928296bb08c0d226d1046', 'try build'], 'scheduler': ['pr', 'Scheduler'], 'revision': [None, 'Build'], 'got_revision': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'GitNoBranch'], 'branch': ['refs/pull/6134/head', 'Build']}, 'buildset': {'complete_at': None, 'reason': "'try' job by user Central (on behalf of: ligfx)", 'external_idstring': '6134-15aabb', 'parent_relationship': None, 'submitted_at': 1508703479, 'parent_buildid': None, 'bsid': 4501, 'results': -1, 'sourcestamps': [{'codebase': '', 'patch': None, 'branch': 'refs/pull/6134/head', 'repository': '', 'created_at': 1508628910, 'ssid': 1266, 'project': '', 'revision': None}], 'complete': False}, 'complete': True}, 'type': 'raw_bb_hook', 'source': 'webserver'}
2017-10-22T20:18:06.616799	{'bb_type': 'starting', 'raw': {'masterid': 1, 'state_string': 'starting', 'number': 850, 'results': None, 'workerid': 9, 'url': 'https://buildbot.dolphin-emu.org/#builders/2/builds/850', 'builderid': 2, 'buildid': 12153, 'buildrequest': {'results': -1, 'submitted_at': 1508703479, 'claimed_by_masterid': 1, 'buildsetid': 4501, 'builderid': 2, 'priority': 0, 'complete_at': None, 'buildrequestid': 16215, 'claimed_at': 1508703486, 'waited_for': False, 'claimed': True, 'complete': False}, 'complete_at': None, 'buildrequestid': 16215, 'builder': {'masterids': [1], 'name': 'pr-ubu-x64', 'builderid': 2, 'description': None, 'tags': []}, 'started_at': 1508703486, 'properties': {'codebase': ['', 'Build'], 'baserev': ['6e9e681438887840d08928296bb08c0d226d1046', 'try build'], 'buildername': ['pr-ubu-x64', 'Builder'], 'project': ['', 'Build'], 'shortrev': ['15aabb', 'try build'], 'headrev': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'try build'], 'buildnumber': [850, 'Build'], 'pr_id': [6134, 'try build'], 'repository': ['', 'Build'], 'branchname': ['pr-6134', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'scheduler': ['pr', 'Scheduler'], 'revision': [None, 'Build'], 'branch': ['refs/pull/6134/head', 'Build']}, 'buildset': {'complete_at': None, 'reason': "'try' job by user Central (on behalf of: ligfx)", 'external_idstring': '6134-15aabb', 'parent_relationship': None, 'submitted_at': 1508703479, 'parent_buildid': None, 'bsid': 4501, 'results': -1, 'sourcestamps': [{'codebase': '', 'patch': None, 'branch': 'refs/pull/6134/head', 'repository': '', 'created_at': 1508628910, 'ssid': 1266, 'project': '', 'revision': None}], 'complete': False}, 'complete': False}, 'type': 'raw_bb_hook', 'source': 'webserver'}
2017-10-22T20:18:05.998883	{'bb_type': 'finished', 'raw': {'masterid': 1, 'state_string': 'finished', 'number': 840, 'results': 0, 'workerid': 9, 'url': 'https://buildbot.dolphin-emu.org/#builders/22/builds/840', 'builderid': 22, 'buildid': 12150, 'buildrequest': {'results': -1, 'submitted_at': 1508703479, 'claimed_by_masterid': 1, 'buildsetid': 4501, 'builderid': 22, 'priority': 0, 'complete_at': None, 'buildrequestid': 16221, 'claimed_at': 1508703479, 'waited_for': False, 'claimed': True, 'complete': False}, 'complete_at': 1508703486, 'buildrequestid': 16221, 'builder': {'masterids': [1], 'name': 'lint', 'builderid': 22, 'description': None, 'tags': []}, 'started_at': 1508703480, 'properties': {'codebase': ['', 'Build'], 'slavename': ['ubuntu', 'Worker (deprecated)'], 'buildername': ['lint', 'Builder'], 'project': ['', 'Build'], 'branchname': ['pr-6134', 'try build'], 'headrev': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'try build'], 'workername': ['ubuntu', 'Worker'], 'shortrev': ['15aabb', 'try build'], 'builddir': ['/var/lib/buildbot/slave/lint', 'worker'], 'buildnumber': [840, 'Build'], 'pr_id': [6134, 'try build'], 'repository': ['', 'Build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'baserev': ['6e9e681438887840d08928296bb08c0d226d1046', 'try build'], 'scheduler': ['pr', 'Scheduler'], 'revision': [None, 'Build'], 'got_revision': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'GitNoBranch'], 'branch': ['refs/pull/6134/head', 'Build']}, 'buildset': {'complete_at': None, 'reason': "'try' job by user Central (on behalf of: ligfx)", 'external_idstring': '6134-15aabb', 'parent_relationship': None, 'submitted_at': 1508703479, 'parent_buildid': None, 'bsid': 4501, 'results': -1, 'sourcestamps': [{'codebase': '', 'patch': None, 'branch': 'refs/pull/6134/head', 'repository': '', 'created_at': 1508628910, 'ssid': 1266, 'project': '', 'revision': None}], 'complete': False}, 'complete': True}, 'type': 'raw_bb_hook', 'source': 'webserver'}
2017-10-22T20:18:00.286600	{'bb_type': 'starting', 'raw': {'masterid': 1, 'state_string': 'starting', 'number': 841, 'results': None, 'workerid': 12, 'url': 'https://buildbot.dolphin-emu.org/#builders/6/builds/841', 'builderid': 6, 'buildid': 12149, 'buildrequest': {'results': -1, 'submitted_at': 1508703479, 'claimed_by_masterid': 1, 'buildsetid': 4501, 'builderid': 6, 'priority': 0, 'complete_at': None, 'buildrequestid': 16216, 'claimed_at': 1508703479, 'waited_for': False, 'claimed': True, 'complete': False}, 'complete_at': None, 'buildrequestid': 16216, 'builder': {'masterids': [1], 'name': 'pr-deb-x64', 'builderid': 6, 'description': None, 'tags': []}, 'started_at': 1508703480, 'properties': {'codebase': ['', 'Build'], 'baserev': ['6e9e681438887840d08928296bb08c0d226d1046', 'try build'], 'buildername': ['pr-deb-x64', 'Builder'], 'project': ['', 'Build'], 'shortrev': ['15aabb', 'try build'], 'headrev': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'try build'], 'buildnumber': [841, 'Build'], 'pr_id': [6134, 'try build'], 'repository': ['', 'Build'], 'branchname': ['pr-6134', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'scheduler': ['pr', 'Scheduler'], 'revision': [None, 'Build'], 'branch': ['refs/pull/6134/head', 'Build']}, 'buildset': {'complete_at': None, 'reason': "'try' job by user Central (on behalf of: ligfx)", 'external_idstring': '6134-15aabb', 'parent_relationship': None, 'submitted_at': 1508703479, 'parent_buildid': None, 'bsid': 4501, 'results': -1, 'sourcestamps': [{'codebase': '', 'patch': None, 'branch': 'refs/pull/6134/head', 'repository': '', 'created_at': 1508628910, 'ssid': 1266, 'project': '', 'revision': None}], 'complete': False}, 'complete': False}, 'type': 'raw_bb_hook', 'source': 'webserver'}
2017-10-22T20:18:00.279747	{'bb_type': 'starting', 'raw': {'masterid': 1, 'state_string': 'starting', 'number': 844, 'results': None, 'workerid': 4, 'url': 'https://buildbot.dolphin-emu.org/#builders/20/builds/844', 'builderid': 20, 'buildid': 12152, 'buildrequest': {'results': -1, 'submitted_at': 1508703479, 'claimed_by_masterid': 1, 'buildsetid': 4501, 'builderid': 20, 'priority': 0, 'complete_at': None, 'buildrequestid': 16219, 'claimed_at': 1508703480, 'waited_for': False, 'claimed': True, 'complete': False}, 'complete_at': None, 'buildrequestid': 16219, 'builder': {'masterids': [1], 'name': 'pr-win-x64', 'builderid': 20, 'description': None, 'tags': []}, 'started_at': 1508703480, 'properties': {'codebase': ['', 'Build'], 'baserev': ['6e9e681438887840d08928296bb08c0d226d1046', 'try build'], 'buildername': ['pr-win-x64', 'Builder'], 'project': ['', 'Build'], 'shortrev': ['15aabb', 'try build'], 'headrev': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'try build'], 'buildnumber': [844, 'Build'], 'pr_id': [6134, 'try build'], 'repository': ['', 'Build'], 'branchname': ['pr-6134', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'scheduler': ['pr', 'Scheduler'], 'revision': [None, 'Build'], 'branch': ['refs/pull/6134/head', 'Build']}, 'buildset': {'complete_at': None, 'reason': "'try' job by user Central (on behalf of: ligfx)", 'external_idstring': '6134-15aabb', 'parent_relationship': None, 'submitted_at': 1508703479, 'parent_buildid': None, 'bsid': 4501, 'results': -1, 'sourcestamps': [{'codebase': '', 'patch': None, 'branch': 'refs/pull/6134/head', 'repository': '', 'created_at': 1508628910, 'ssid': 1266, 'project': '', 'revision': None}], 'complete': False}, 'complete': False}, 'type': 'raw_bb_hook', 'source': 'webserver'}
2017-10-22T20:18:00.233061	{'bb_type': 'starting', 'raw': {'masterid': 1, 'state_string': 'starting', 'number': 841, 'results': None, 'workerid': 8, 'url': 'https://buildbot.dolphin-emu.org/#builders/34/builds/841', 'builderid': 34, 'buildid': 12151, 'buildrequest': {'results': -1, 'submitted_at': 1508703479, 'claimed_by_masterid': 1, 'buildsetid': 4501, 'builderid': 34, 'priority': 0, 'complete_at': None, 'buildrequestid': 16223, 'claimed_at': 1508703480, 'waited_for': False, 'claimed': True, 'complete': False}, 'complete_at': None, 'buildrequestid': 16223, 'builder': {'masterids': [1], 'name': 'pr-freebsd-x64', 'builderid': 34, 'description': None, 'tags': []}, 'started_at': 1508703480, 'properties': {'codebase': ['', 'Build'], 'baserev': ['6e9e681438887840d08928296bb08c0d226d1046', 'try build'], 'buildername': ['pr-freebsd-x64', 'Builder'], 'project': ['', 'Build'], 'shortrev': ['15aabb', 'try build'], 'headrev': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'try build'], 'buildnumber': [841, 'Build'], 'pr_id': [6134, 'try build'], 'repository': ['', 'Build'], 'branchname': ['pr-6134', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'scheduler': ['pr', 'Scheduler'], 'revision': [None, 'Build'], 'branch': ['refs/pull/6134/head', 'Build']}, 'buildset': {'complete_at': None, 'reason': "'try' job by user Central (on behalf of: ligfx)", 'external_idstring': '6134-15aabb', 'parent_relationship': None, 'submitted_at': 1508703479, 'parent_buildid': None, 'bsid': 4501, 'results': -1, 'sourcestamps': [{'codebase': '', 'patch': None, 'branch': 'refs/pull/6134/head', 'repository': '', 'created_at': 1508628910, 'ssid': 1266, 'project': '', 'revision': None}], 'complete': False}, 'complete': False}, 'type': 'raw_bb_hook', 'source': 'webserver'}
2017-10-22T20:18:00.202988	{'bb_type': 'starting', 'raw': {'masterid': 1, 'state_string': 'starting', 'number': 840, 'results': None, 'workerid': 9, 'url': 'https://buildbot.dolphin-emu.org/#builders/22/builds/840', 'builderid': 22, 'buildid': 12150, 'buildrequest': {'results': -1, 'submitted_at': 1508703479, 'claimed_by_masterid': 1, 'buildsetid': 4501, 'builderid': 22, 'priority': 0, 'complete_at': None, 'buildrequestid': 16221, 'claimed_at': 1508703479, 'waited_for': False, 'claimed': True, 'complete': False}, 'complete_at': None, 'buildrequestid': 16221, 'builder': {'masterids': [1], 'name': 'lint', 'builderid': 22, 'description': None, 'tags': []}, 'started_at': 1508703480, 'properties': {'codebase': ['', 'Build'], 'baserev': ['6e9e681438887840d08928296bb08c0d226d1046', 'try build'], 'buildername': ['lint', 'Builder'], 'project': ['', 'Build'], 'shortrev': ['15aabb', 'try build'], 'headrev': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'try build'], 'buildnumber': [840, 'Build'], 'pr_id': [6134, 'try build'], 'repository': ['', 'Build'], 'branchname': ['pr-6134', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'scheduler': ['pr', 'Scheduler'], 'revision': [None, 'Build'], 'branch': ['refs/pull/6134/head', 'Build']}, 'buildset': {'complete_at': None, 'reason': "'try' job by user Central (on behalf of: ligfx)", 'external_idstring': '6134-15aabb', 'parent_relationship': None, 'submitted_at': 1508703479, 'parent_buildid': None, 'bsid': 4501, 'results': -1, 'sourcestamps': [{'codebase': '', 'patch': None, 'branch': 'refs/pull/6134/head', 'repository': '', 'created_at': 1508628910, 'ssid': 1266, 'project': '', 'revision': None}], 'complete': False}, 'complete': False}, 'type': 'raw_bb_hook', 'source': 'webserver'}
2017-10-22T20:18:00.186413	{'bb_type': 'starting', 'raw': {'masterid': 1, 'state_string': 'starting', 'number': 839, 'results': None, 'workerid': 1, 'url': 'https://buildbot.dolphin-emu.org/#builders/33/builds/839', 'builderid': 33, 'buildid': 12148, 'buildrequest': {'results': -1, 'submitted_at': 1508703479, 'claimed_by_masterid': 1, 'buildsetid': 4501, 'builderid': 33, 'priority': 0, 'complete_at': None, 'buildrequestid': 16222, 'claimed_at': 1508703479, 'waited_for': False, 'claimed': True, 'complete': False}, 'complete_at': None, 'buildrequestid': 16222, 'builder': {'masterids': [1], 'name': 'pr-osx-x64', 'builderid': 33, 'description': None, 'tags': []}, 'started_at': 1508703480, 'properties': {'codebase': ['', 'Build'], 'baserev': ['6e9e681438887840d08928296bb08c0d226d1046', 'try build'], 'buildername': ['pr-osx-x64', 'Builder'], 'project': ['', 'Build'], 'shortrev': ['15aabb', 'try build'], 'headrev': ['15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'try build'], 'buildnumber': [839, 'Build'], 'pr_id': [6134, 'try build'], 'repository': ['', 'Build'], 'branchname': ['pr-6134', 'try build'], 'repo': ['dolphin-emu/dolphin', 'try build'], 'scheduler': ['pr', 'Scheduler'], 'revision': [None, 'Build'], 'branch': ['refs/pull/6134/head', 'Build']}, 'buildset': {'complete_at': None, 'reason': "'try' job by user Central (on behalf of: ligfx)", 'external_idstring': '6134-15aabb', 'parent_relationship': None, 'submitted_at': 1508703479, 'parent_buildid': None, 'bsid': 4501, 'results': -1, 'sourcestamps': [{'codebase': '', 'patch': None, 'branch': 'refs/pull/6134/head', 'repository': '', 'created_at': 1508628910, 'ssid': 1266, 'project': '', 'revision': None}], 'complete': False}, 'complete': False}, 'type': 'raw_bb_hook', 'source': 'webserver'}
2017-10-22T18:27:39.734220	{'bb_type': 'finished', 'raw': {'masterid': 1, 'state_string': 'finished', 'number': 782, 'results': 0, 'workerid': 6, 'url': 'https://buildbot.dolphin-emu.org/#builders/30/builds/782', 'builderid': 30, 'buildid': 12142, 'buildrequest': {'results': -1, 'submitted_at': 1508696311, 'claimed_by_masterid': 1, 'buildsetid': 4499, 'builderid': 30, 'priority': 0, 'complete_at': None, 'buildrequestid': 16212, 'claimed_at': 1508696409, 'waited_for': False, 'claimed': True, 'complete': False}, 'complete_at': 1508696860, 'buildrequestid': 16212, 'builder': {'masterids': [1], 'name': 'pr-fifoci-ogl-lin-mesa', 'builderid': 30, 'description': None, 'tags': []}, 'started_at': 1508696313, 'properties': {'codebase': ['', 'Build'], 'slavename': ['arch64', 'Worker (deprecated)'], 'buildername': ['pr-fifoci-ogl-lin-mesa', 'Builder'], 'project': ['', 'Build'], 'branchname': ['pr-6134', 'Trigger'], 'headrev': ['ab57d4c15fe819989b583487f9e1674aac76b458', 'Trigger'], 'workername': ['arch64', 'Worker'], 'shortrev': ['ab57d4', 'Trigger'], 'builddir': ['/home/fifoci/buildslave/pr-fifoci-ogl-lin-mesa', 'worker'], 'warnings-count': [43, 'WarningCountingShellCommand'], 'pr_id': [6134, 'Trigger'], 'repository': ['', 'Build'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildnumber': [782, 'Build'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'revision': ['ab57d4c15fe819989b583487f9e1674aac76b458', 'Build'], 'got_revision': ['ab57d4c15fe819989b583487f9e1674aac76b458', 'GitNoBranch'], 'branch': ['refs/pull/6134/head', 'Build']}, 'buildset': {'complete_at': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'external_idstring': None, 'parent_relationship': 'Triggered from', 'submitted_at': 1508696311, 'parent_buildid': 12141, 'bsid': 4499, 'results': -1, 'sourcestamps': [{'codebase': '', 'patch': None, 'branch': 'refs/pull/6134/head', 'repository': '', 'created_at': 1508696312, 'ssid': 1285, 'project': '', 'revision': 'ab57d4c15fe819989b583487f9e1674aac76b458'}], 'complete': False}, 'complete': True}, 'type': 'raw_bb_hook', 'source': 'webserver'}

Recent 'raw_gh_hook' events

2017-10-23T00:29:22.475523	{'gh_type': 'pull_request_review', 'raw': {'action': 'submitted', 'sender': {'gists_url': 'https://api.github.com/users/MerryMage/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/8682882?v=4', 'url': 'https://api.github.com/users/MerryMage', 'gravatar_id': '', 'html_url': 'https://github.com/MerryMage', 'id': 8682882, 'repos_url': 'https://api.github.com/users/MerryMage/repos', 'events_url': 'https://api.github.com/users/MerryMage/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/MerryMage/subscriptions', 'starred_url': 'https://api.github.com/users/MerryMage/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/MerryMage/following{/other_user}', 'login': 'MerryMage', 'received_events_url': 'https://api.github.com/users/MerryMage/received_events', 'followers_url': 'https://api.github.com/users/MerryMage/followers', 'organizations_url': 'https://api.github.com/users/MerryMage/orgs', 'type': 'User'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3767, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T20:17:49Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T21:43:57Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 138, 'private': False, 'forks_count': 953, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349184, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 138, 'stargazers_count': 3767, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3767, 'forks': 953, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}, 'review': {'commit_id': '6abd1c8c9941eac9d1c118a4a04baeec841b9c5f', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6130#pullrequestreview-71050973'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6130'}}, 'user': {'gists_url': 'https://api.github.com/users/MerryMage/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/8682882?v=4', 'url': 'https://api.github.com/users/MerryMage', 'gravatar_id': '', 'html_url': 'https://github.com/MerryMage', 'id': 8682882, 'repos_url': 'https://api.github.com/users/MerryMage/repos', 'events_url': 'https://api.github.com/users/MerryMage/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/MerryMage/subscriptions', 'starred_url': 'https://api.github.com/users/MerryMage/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/MerryMage/following{/other_user}', 'login': 'MerryMage', 'received_events_url': 'https://api.github.com/users/MerryMage/received_events', 'followers_url': 'https://api.github.com/users/MerryMage/followers', 'organizations_url': 'https://api.github.com/users/MerryMage/orgs', 'type': 'User'}, 'state': 'approved', 'submitted_at': '2017-10-23T00:29:20Z', 'body': '', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6130#pullrequestreview-71050973', 'id': 71050973, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6130', 'author_association': 'MEMBER'}, 'pull_request': {'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6130/comments', 'locked': False, 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'merge_commit_sha': '0ff269a57250b282fbbdcd583fd30da6ac787a6e', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6130', 'requested_reviewers': [], 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6130', 'id': 147961620, 'milestone': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6130/comments', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6130', 'assignees': [], 'created_at': '2017-10-21T20:36:22Z', 'body': 'There should be no reason to call `Mix()` and keep a buffer around. I followed the logic, and Mix() does this:\r\n- delegates to its MixerFifo members\r\n- which advance m_indexR\r\n- making `PushSamples()` a quick return if the buffer overflows\r\n- and making `AvailableSamples()` return 0\r\n- which is only used by Mix()', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/6abd1c8c9941eac9d1c118a4a04baeec841b9c5f', 'base': {'user': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'ref': 'master', 'sha': '774fca4d019b788089f4a0d456e9c0ee12d9e214', 'label': 'dolphin-emu:master', 'repo': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3767, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T20:17:49Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T21:43:57Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 138, 'private': False, 'forks_count': 953, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349184, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 138, 'stargazers_count': 3767, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3767, 'forks': 953, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}}, 'merged_at': None, 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'number': 6130, 'assignee': None, 'updated_at': '2017-10-23T00:29:20Z', 'state': 'open', 'head': {'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'ref': 'emptynullsoundstream', 'sha': '6abd1c8c9941eac9d1c118a4a04baeec841b9c5f', 'label': 'ligfx:emptynullsoundstream', 'repo': {'compare_url': 'https://api.github.com/repos/ligfx/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/ligfx/dolphin/releases{/id}', 'created_at': '2016-08-08T16:31:32Z', 'labels_url': 'https://api.github.com/repos/ligfx/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/ligfx/dolphin/statuses/{sha}', 'git_url': 'git://github.com/ligfx/dolphin.git', 'html_url': 'https://github.com/ligfx/dolphin', 'subscribers_url': 'https://api.github.com/repos/ligfx/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/ligfx/dolphin/hooks', 'homepage': 'https://github.com/dolphin-emu/dolphin', 'watchers_count': 0, 'svn_url': 'https://github.com/ligfx/dolphin', 'description': 'Personal development branch of dolphin-emu/dolphin.', 'full_name': 'ligfx/dolphin', 'branches_url': 'https://api.github.com/repos/ligfx/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/ligfx/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/ligfx/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:ligfx/dolphin.git', 'pulls_url': 'https://api.github.com/repos/ligfx/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/ligfx/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/ligfx/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T20:17:47Z', 'assignees_url': 'https://api.github.com/repos/ligfx/dolphin/assignees{/user}', 'updated_at': '2017-05-17T22:06:54Z', 'fork': True, 'tags_url': 'https://api.github.com/repos/ligfx/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/ligfx/dolphin/keys{/key_id}', 'default_branch': 'ligfx', 'open_issues_count': 0, 'private': False, 'forks_count': 0, 'git_refs_url': 'https://api.github.com/repos/ligfx/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/ligfx/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/ligfx/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/ligfx/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/ligfx/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/ligfx/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/ligfx/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/ligfx/dolphin/teams', 'has_projects': True, 'issues_url': 'https://api.github.com/repos/ligfx/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/ligfx/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/ligfx/dolphin', 'languages_url': 'https://api.github.com/repos/ligfx/dolphin/languages', 'id': 65220721, 'archived': False, 'merges_url': 'https://api.github.com/repos/ligfx/dolphin/merges', 'clone_url': 'https://github.com/ligfx/dolphin.git', 'comments_url': 'https://api.github.com/repos/ligfx/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/ligfx/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/ligfx/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/ligfx/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/ligfx/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 311856, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/ligfx/dolphin/git/trees{/sha}', 'open_issues': 0, 'stargazers_count': 0, 'milestones_url': 'https://api.github.com/repos/ligfx/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ligfx/dolphin/notifications{?since,all,participating}', 'watchers': 0, 'forks': 0, 'issue_events_url': 'https://api.github.com/repos/ligfx/dolphin/issues/events{/number}', 'has_issues': False}}, 'author_association': 'CONTRIBUTOR', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6130.diff', '_links': {'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/6abd1c8c9941eac9d1c118a4a04baeec841b9c5f'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6130/comments'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6130'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6130'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6130/commits'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6130/comments'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6130'}}, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6130/commits', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6130.patch', 'title': "NullSoundStream: don't call Mixer->Mix"}}, 'type': 'raw_gh_hook', 'source': 'webserver'}
2017-10-22T20:17:49.178756	{'gh_type': 'pull_request', 'raw': {'action': 'synchronize', 'after': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3768, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T19:57:18Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T17:19:26Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 138, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349184, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 138, 'stargazers_count': 3768, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3768, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'number': 6134, 'before': 'ab57d4c15fe819989b583487f9e1674aac76b458', 'sender': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}, 'pull_request': {'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6134/comments', 'locked': False, 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'merge_commit_sha': '1fa59e510fdfa6cd77664cc24cf912e9f8c2293c', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6134', 'commits': 3, 'requested_reviewers': [], 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6134', 'id': 147967741, 'milestone': None, 'maintainer_can_modify': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6134/comments', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6134', 'assignees': [], 'created_at': '2017-10-21T23:34:59Z', 'body': 'With the renaming of `AudioCommon::ClearAudioBuffer` and `SoundStream::Clear` to `AudioCommon::SetSoundStreamRunning` and `SoundStream::SetRunning` in #6133 (which this depends on), this seemed the next logical step, since some backends were effectively calling `SetRunning` on themselves internally anyways in their implementations of `Start()` and `Stop()`.', 'additions': 94, 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'rebaseable': None, 'review_comments': 0, 'merged': False, 'base': {'user': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'ref': 'master', 'sha': '6e9e681438887840d08928296bb08c0d226d1046', 'label': 'dolphin-emu:master', 'repo': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3768, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T19:57:18Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T17:19:26Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 138, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349184, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 138, 'stargazers_count': 3768, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3768, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}}, 'merged_at': None, 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'number': 6134, 'assignee': None, 'comments': 0, 'updated_at': '2017-10-22T20:17:47Z', 'state': 'open', 'head': {'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'ref': 'soundstreamlifecycle', 'sha': '15aabbaa61e320fc66ab3be0b4775e2edc585cdc', 'label': 'ligfx:soundstreamlifecycle', 'repo': {'compare_url': 'https://api.github.com/repos/ligfx/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/ligfx/dolphin/releases{/id}', 'created_at': '2016-08-08T16:31:32Z', 'labels_url': 'https://api.github.com/repos/ligfx/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/ligfx/dolphin/statuses/{sha}', 'git_url': 'git://github.com/ligfx/dolphin.git', 'html_url': 'https://github.com/ligfx/dolphin', 'subscribers_url': 'https://api.github.com/repos/ligfx/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/ligfx/dolphin/hooks', 'homepage': 'https://github.com/dolphin-emu/dolphin', 'watchers_count': 0, 'svn_url': 'https://github.com/ligfx/dolphin', 'description': 'Personal development branch of dolphin-emu/dolphin.', 'full_name': 'ligfx/dolphin', 'branches_url': 'https://api.github.com/repos/ligfx/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/ligfx/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/ligfx/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:ligfx/dolphin.git', 'pulls_url': 'https://api.github.com/repos/ligfx/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/ligfx/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/ligfx/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T20:17:47Z', 'assignees_url': 'https://api.github.com/repos/ligfx/dolphin/assignees{/user}', 'updated_at': '2017-05-17T22:06:54Z', 'fork': True, 'tags_url': 'https://api.github.com/repos/ligfx/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/ligfx/dolphin/keys{/key_id}', 'default_branch': 'ligfx', 'open_issues_count': 0, 'private': False, 'forks_count': 0, 'git_refs_url': 'https://api.github.com/repos/ligfx/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/ligfx/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/ligfx/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/ligfx/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/ligfx/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/ligfx/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/ligfx/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/ligfx/dolphin/teams', 'has_projects': True, 'issues_url': 'https://api.github.com/repos/ligfx/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/ligfx/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/ligfx/dolphin', 'languages_url': 'https://api.github.com/repos/ligfx/dolphin/languages', 'id': 65220721, 'archived': False, 'merges_url': 'https://api.github.com/repos/ligfx/dolphin/merges', 'clone_url': 'https://github.com/ligfx/dolphin.git', 'comments_url': 'https://api.github.com/repos/ligfx/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/ligfx/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/ligfx/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/ligfx/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/ligfx/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 311856, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/ligfx/dolphin/git/trees{/sha}', 'open_issues': 0, 'stargazers_count': 0, 'milestones_url': 'https://api.github.com/repos/ligfx/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ligfx/dolphin/notifications{?since,all,participating}', 'watchers': 0, 'forks': 0, 'issue_events_url': 'https://api.github.com/repos/ligfx/dolphin/issues/events{/number}', 'has_issues': False}}, 'author_association': 'CONTRIBUTOR', 'deletions': 97, 'mergeable': None, 'merged_by': None, 'changed_files': 18, 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6134.diff', '_links': {'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/15aabbaa61e320fc66ab3be0b4775e2edc585cdc'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6134/comments'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6134'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6134'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6134/commits'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6134/comments'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6134'}}, 'mergeable_state': 'unknown', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6134/commits', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6134.patch', 'title': 'SoundStream: change Start/Stop lifecycle to Init/SetRunning/destruct'}}, 'type': 'raw_gh_hook', 'source': 'webserver'}
2017-10-22T19:57:18.850817	{'gh_type': 'pull_request', 'raw': {'action': 'synchronize', 'after': '16032050a91276e64f5007e7b6c674be4a44335b', 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3768, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T18:18:01Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T17:19:26Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 138, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349184, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 138, 'stargazers_count': 3768, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3768, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'number': 6117, 'before': '935dc8a28ce77a2d9c6e2176b6a2ce864ab39c65', 'sender': {'gists_url': 'https://api.github.com/users/NickDriscoll/gists{/gist_id}', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8892329?v=4', 'url': 'https://api.github.com/users/NickDriscoll', 'gravatar_id': '', 'html_url': 'https://github.com/NickDriscoll', 'id': 8892329, 'repos_url': 'https://api.github.com/users/NickDriscoll/repos', 'events_url': 'https://api.github.com/users/NickDriscoll/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/NickDriscoll/subscriptions', 'starred_url': 'https://api.github.com/users/NickDriscoll/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/NickDriscoll/following{/other_user}', 'login': 'NickDriscoll', 'received_events_url': 'https://api.github.com/users/NickDriscoll/received_events', 'followers_url': 'https://api.github.com/users/NickDriscoll/followers', 'organizations_url': 'https://api.github.com/users/NickDriscoll/orgs', 'type': 'User'}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}, 'pull_request': {'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6117/comments', 'locked': False, 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'merge_commit_sha': '4b4ac3e6f95b10372c056a17e8b61244e2a09ed6', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6117', 'commits': 68, 'requested_reviewers': [], 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6117', 'id': 146579632, 'milestone': None, 'maintainer_can_modify': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6117/comments', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6117', 'assignees': [], 'created_at': '2017-10-14T01:05:24Z', 'body': "This branch adds a Lua console and Lua scripting capabilities to the Dolphin Emulator.\r\n\r\nSee the documentation on how to write scripts for Dolphin [Here](https://github.com/NickDriscoll/dolphin/blob/Lua_scripting/Lua.md)\r\n\r\nIt's GameCube only for now simply because I've had to sift through the source code myself to discern how Dolphin works, and I couldn't figure out Wiimotes.", 'additions': 26776, 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/16032050a91276e64f5007e7b6c674be4a44335b', 'rebaseable': None, 'review_comments': 66, 'merged': False, 'base': {'user': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'ref': 'master', 'sha': '6e9e681438887840d08928296bb08c0d226d1046', 'label': 'dolphin-emu:master', 'repo': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3768, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T18:18:01Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T17:19:26Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 138, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349184, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 138, 'stargazers_count': 3768, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3768, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}}, 'merged_at': None, 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/NickDriscoll/gists{/gist_id}', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8892329?v=4', 'url': 'https://api.github.com/users/NickDriscoll', 'gravatar_id': '', 'html_url': 'https://github.com/NickDriscoll', 'id': 8892329, 'repos_url': 'https://api.github.com/users/NickDriscoll/repos', 'events_url': 'https://api.github.com/users/NickDriscoll/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/NickDriscoll/subscriptions', 'starred_url': 'https://api.github.com/users/NickDriscoll/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/NickDriscoll/following{/other_user}', 'login': 'NickDriscoll', 'received_events_url': 'https://api.github.com/users/NickDriscoll/received_events', 'followers_url': 'https://api.github.com/users/NickDriscoll/followers', 'organizations_url': 'https://api.github.com/users/NickDriscoll/orgs', 'type': 'User'}, 'number': 6117, 'assignee': None, 'comments': 13, 'updated_at': '2017-10-22T19:57:17Z', 'state': 'open', 'head': {'user': {'gists_url': 'https://api.github.com/users/NickDriscoll/gists{/gist_id}', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8892329?v=4', 'url': 'https://api.github.com/users/NickDriscoll', 'gravatar_id': '', 'html_url': 'https://github.com/NickDriscoll', 'id': 8892329, 'repos_url': 'https://api.github.com/users/NickDriscoll/repos', 'events_url': 'https://api.github.com/users/NickDriscoll/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/NickDriscoll/subscriptions', 'starred_url': 'https://api.github.com/users/NickDriscoll/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/NickDriscoll/following{/other_user}', 'login': 'NickDriscoll', 'received_events_url': 'https://api.github.com/users/NickDriscoll/received_events', 'followers_url': 'https://api.github.com/users/NickDriscoll/followers', 'organizations_url': 'https://api.github.com/users/NickDriscoll/orgs', 'type': 'User'}, 'ref': 'Lua_scripting', 'sha': '16032050a91276e64f5007e7b6c674be4a44335b', 'label': 'NickDriscoll:Lua_scripting', 'repo': {'compare_url': 'https://api.github.com/repos/NickDriscoll/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/NickDriscoll/dolphin/releases{/id}', 'created_at': '2017-09-24T02:46:13Z', 'labels_url': 'https://api.github.com/repos/NickDriscoll/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/NickDriscoll/dolphin/statuses/{sha}', 'git_url': 'git://github.com/NickDriscoll/dolphin.git', 'html_url': 'https://github.com/NickDriscoll/dolphin', 'subscribers_url': 'https://api.github.com/repos/NickDriscoll/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/NickDriscoll/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 0, 'svn_url': 'https://github.com/NickDriscoll/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'NickDriscoll/dolphin', 'branches_url': 'https://api.github.com/repos/NickDriscoll/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/NickDriscoll/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/NickDriscoll/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:NickDriscoll/dolphin.git', 'pulls_url': 'https://api.github.com/repos/NickDriscoll/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/NickDriscoll/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/NickDriscoll/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T19:57:16Z', 'assignees_url': 'https://api.github.com/repos/NickDriscoll/dolphin/assignees{/user}', 'updated_at': '2017-09-24T02:46:40Z', 'fork': True, 'tags_url': 'https://api.github.com/repos/NickDriscoll/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/NickDriscoll/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 0, 'private': False, 'forks_count': 0, 'git_refs_url': 'https://api.github.com/repos/NickDriscoll/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/NickDriscoll/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/NickDriscoll/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/NickDriscoll/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/NickDriscoll/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/NickDriscoll/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/NickDriscoll/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/NickDriscoll/dolphin/teams', 'has_projects': True, 'issues_url': 'https://api.github.com/repos/NickDriscoll/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/NickDriscoll/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/NickDriscoll/gists{/gist_id}', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8892329?v=4', 'url': 'https://api.github.com/users/NickDriscoll', 'gravatar_id': '', 'html_url': 'https://github.com/NickDriscoll', 'id': 8892329, 'repos_url': 'https://api.github.com/users/NickDriscoll/repos', 'events_url': 'https://api.github.com/users/NickDriscoll/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/NickDriscoll/subscriptions', 'starred_url': 'https://api.github.com/users/NickDriscoll/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/NickDriscoll/following{/other_user}', 'login': 'NickDriscoll', 'received_events_url': 'https://api.github.com/users/NickDriscoll/received_events', 'followers_url': 'https://api.github.com/users/NickDriscoll/followers', 'organizations_url': 'https://api.github.com/users/NickDriscoll/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/NickDriscoll/dolphin', 'languages_url': 'https://api.github.com/repos/NickDriscoll/dolphin/languages', 'id': 104613871, 'archived': False, 'merges_url': 'https://api.github.com/repos/NickDriscoll/dolphin/merges', 'clone_url': 'https://github.com/NickDriscoll/dolphin.git', 'comments_url': 'https://api.github.com/repos/NickDriscoll/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/NickDriscoll/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/NickDriscoll/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/NickDriscoll/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/NickDriscoll/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 312177, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/NickDriscoll/dolphin/git/trees{/sha}', 'open_issues': 0, 'stargazers_count': 0, 'milestones_url': 'https://api.github.com/repos/NickDriscoll/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/NickDriscoll/dolphin/notifications{?since,all,participating}', 'watchers': 0, 'forks': 0, 'issue_events_url': 'https://api.github.com/repos/NickDriscoll/dolphin/issues/events{/number}', 'has_issues': False}}, 'author_association': 'NONE', 'deletions': 31, 'mergeable': None, 'merged_by': None, 'changed_files': 93, 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6117.diff', '_links': {'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/16032050a91276e64f5007e7b6c674be4a44335b'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6117/comments'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6117'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6117'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6117/commits'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6117/comments'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6117'}}, 'mergeable_state': 'unknown', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6117/commits', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6117.patch', 'title': 'Lua scripting (Gamecube only)'}}, 'type': 'raw_gh_hook', 'source': 'webserver'}
2017-10-22T18:18:01.209102	{'gh_type': 'pull_request', 'raw': {'action': 'synchronize', 'after': 'ab57d4c15fe819989b583487f9e1674aac76b458', 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3768, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T15:40:00Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T17:19:26Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 138, 'private': False, 'forks_count': 950, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349184, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 138, 'stargazers_count': 3768, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3768, 'forks': 950, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'number': 6134, 'before': '38e0bcaa2ee527631b15fcf8247c5383cf302861', 'sender': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}, 'pull_request': {'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6134/comments', 'locked': False, 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'merge_commit_sha': '700f020d4bc57f63ebb5eff6e6f4ac3602cf8e00', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6134', 'commits': 3, 'requested_reviewers': [], 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6134', 'id': 147967741, 'milestone': None, 'maintainer_can_modify': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6134/comments', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6134', 'assignees': [], 'created_at': '2017-10-21T23:34:59Z', 'body': 'With the renaming of `AudioCommon::ClearAudioBuffer` and `SoundStream::Clear` to `AudioCommon::SetSoundStreamRunning` and `SoundStream::SetRunning` in #6133 (which this depends on), this seemed the next logical step, since some backends were effectively calling `SetRunning` on themselves internally anyways in their implementations of `Start()` and `Stop()`.', 'additions': 93, 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/ab57d4c15fe819989b583487f9e1674aac76b458', 'rebaseable': None, 'review_comments': 0, 'merged': False, 'base': {'user': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'ref': 'master', 'sha': '6e9e681438887840d08928296bb08c0d226d1046', 'label': 'dolphin-emu:master', 'repo': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3768, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T15:40:00Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T17:19:26Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 138, 'private': False, 'forks_count': 950, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349184, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 138, 'stargazers_count': 3768, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3768, 'forks': 950, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}}, 'merged_at': None, 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'number': 6134, 'assignee': None, 'comments': 0, 'updated_at': '2017-10-22T18:18:00Z', 'state': 'open', 'head': {'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'ref': 'soundstreamlifecycle', 'sha': 'ab57d4c15fe819989b583487f9e1674aac76b458', 'label': 'ligfx:soundstreamlifecycle', 'repo': {'compare_url': 'https://api.github.com/repos/ligfx/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/ligfx/dolphin/releases{/id}', 'created_at': '2016-08-08T16:31:32Z', 'labels_url': 'https://api.github.com/repos/ligfx/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/ligfx/dolphin/statuses/{sha}', 'git_url': 'git://github.com/ligfx/dolphin.git', 'html_url': 'https://github.com/ligfx/dolphin', 'subscribers_url': 'https://api.github.com/repos/ligfx/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/ligfx/dolphin/hooks', 'homepage': 'https://github.com/dolphin-emu/dolphin', 'watchers_count': 0, 'svn_url': 'https://github.com/ligfx/dolphin', 'description': 'Personal development branch of dolphin-emu/dolphin.', 'full_name': 'ligfx/dolphin', 'branches_url': 'https://api.github.com/repos/ligfx/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/ligfx/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/ligfx/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:ligfx/dolphin.git', 'pulls_url': 'https://api.github.com/repos/ligfx/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/ligfx/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/ligfx/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T18:17:59Z', 'assignees_url': 'https://api.github.com/repos/ligfx/dolphin/assignees{/user}', 'updated_at': '2017-05-17T22:06:54Z', 'fork': True, 'tags_url': 'https://api.github.com/repos/ligfx/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/ligfx/dolphin/keys{/key_id}', 'default_branch': 'ligfx', 'open_issues_count': 0, 'private': False, 'forks_count': 0, 'git_refs_url': 'https://api.github.com/repos/ligfx/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/ligfx/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/ligfx/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/ligfx/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/ligfx/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/ligfx/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/ligfx/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/ligfx/dolphin/teams', 'has_projects': True, 'issues_url': 'https://api.github.com/repos/ligfx/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/ligfx/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/ligfx/dolphin', 'languages_url': 'https://api.github.com/repos/ligfx/dolphin/languages', 'id': 65220721, 'archived': False, 'merges_url': 'https://api.github.com/repos/ligfx/dolphin/merges', 'clone_url': 'https://github.com/ligfx/dolphin.git', 'comments_url': 'https://api.github.com/repos/ligfx/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/ligfx/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/ligfx/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/ligfx/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/ligfx/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 311851, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/ligfx/dolphin/git/trees{/sha}', 'open_issues': 0, 'stargazers_count': 0, 'milestones_url': 'https://api.github.com/repos/ligfx/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ligfx/dolphin/notifications{?since,all,participating}', 'watchers': 0, 'forks': 0, 'issue_events_url': 'https://api.github.com/repos/ligfx/dolphin/issues/events{/number}', 'has_issues': False}}, 'author_association': 'CONTRIBUTOR', 'deletions': 96, 'mergeable': None, 'merged_by': None, 'changed_files': 18, 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6134.diff', '_links': {'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/ab57d4c15fe819989b583487f9e1674aac76b458'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6134/comments'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6134'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6134'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6134/commits'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6134/comments'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6134'}}, 'mergeable_state': 'unknown', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6134/commits', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6134.patch', 'title': 'SoundStream: change Start/Stop lifecycle to Init/SetRunning/destruct'}}, 'type': 'raw_gh_hook', 'source': 'webserver'}
2017-10-22T18:18:00.070102	{'gh_type': 'pull_request', 'raw': {'action': 'edited', 'sender': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'changes': {'title': {'from': '(needs 6133) SoundStream: change Start/Stop lifecycle to Init/SetRunning/destruct'}}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3768, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T15:40:00Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T17:19:26Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 138, 'private': False, 'forks_count': 950, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349184, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 138, 'stargazers_count': 3768, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3768, 'forks': 950, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'number': 6134, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}, 'pull_request': {'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6134/comments', 'locked': False, 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'merge_commit_sha': '700f020d4bc57f63ebb5eff6e6f4ac3602cf8e00', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6134', 'commits': 8, 'requested_reviewers': [], 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6134', 'id': 147967741, 'milestone': None, 'maintainer_can_modify': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6134/comments', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6134', 'assignees': [], 'created_at': '2017-10-21T23:34:59Z', 'body': 'With the renaming of `AudioCommon::ClearAudioBuffer` and `SoundStream::Clear` to `AudioCommon::SetSoundStreamRunning` and `SoundStream::SetRunning` in #6133 (which this depends on), this seemed the next logical step, since some backends were effectively calling `SetRunning` on themselves internally anyways in their implementations of `Start()` and `Stop()`.', 'additions': 107, 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/38e0bcaa2ee527631b15fcf8247c5383cf302861', 'rebaseable': False, 'review_comments': 0, 'merged': False, 'base': {'user': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'ref': 'master', 'sha': '78d5dbe032d4390fbc3bbfc81768b68c2062fa8f', 'label': 'dolphin-emu:master', 'repo': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3768, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T15:40:00Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T17:19:26Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 138, 'private': False, 'forks_count': 950, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349184, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 138, 'stargazers_count': 3768, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3768, 'forks': 950, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}}, 'merged_at': None, 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'number': 6134, 'assignee': None, 'comments': 0, 'updated_at': '2017-10-22T18:17:59Z', 'state': 'open', 'head': {'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'ref': 'soundstreamlifecycle', 'sha': '38e0bcaa2ee527631b15fcf8247c5383cf302861', 'label': 'ligfx:soundstreamlifecycle', 'repo': {'compare_url': 'https://api.github.com/repos/ligfx/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/ligfx/dolphin/releases{/id}', 'created_at': '2016-08-08T16:31:32Z', 'labels_url': 'https://api.github.com/repos/ligfx/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/ligfx/dolphin/statuses/{sha}', 'git_url': 'git://github.com/ligfx/dolphin.git', 'html_url': 'https://github.com/ligfx/dolphin', 'subscribers_url': 'https://api.github.com/repos/ligfx/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/ligfx/dolphin/hooks', 'homepage': 'https://github.com/dolphin-emu/dolphin', 'watchers_count': 0, 'svn_url': 'https://github.com/ligfx/dolphin', 'description': 'Personal development branch of dolphin-emu/dolphin.', 'full_name': 'ligfx/dolphin', 'branches_url': 'https://api.github.com/repos/ligfx/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/ligfx/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/ligfx/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:ligfx/dolphin.git', 'pulls_url': 'https://api.github.com/repos/ligfx/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/ligfx/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/ligfx/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T06:06:49Z', 'assignees_url': 'https://api.github.com/repos/ligfx/dolphin/assignees{/user}', 'updated_at': '2017-05-17T22:06:54Z', 'fork': True, 'tags_url': 'https://api.github.com/repos/ligfx/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/ligfx/dolphin/keys{/key_id}', 'default_branch': 'ligfx', 'open_issues_count': 0, 'private': False, 'forks_count': 0, 'git_refs_url': 'https://api.github.com/repos/ligfx/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/ligfx/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/ligfx/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/ligfx/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/ligfx/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/ligfx/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/ligfx/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/ligfx/dolphin/teams', 'has_projects': True, 'issues_url': 'https://api.github.com/repos/ligfx/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/ligfx/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/ligfx/dolphin', 'languages_url': 'https://api.github.com/repos/ligfx/dolphin/languages', 'id': 65220721, 'archived': False, 'merges_url': 'https://api.github.com/repos/ligfx/dolphin/merges', 'clone_url': 'https://github.com/ligfx/dolphin.git', 'comments_url': 'https://api.github.com/repos/ligfx/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/ligfx/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/ligfx/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/ligfx/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/ligfx/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 311851, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/ligfx/dolphin/git/trees{/sha}', 'open_issues': 0, 'stargazers_count': 0, 'milestones_url': 'https://api.github.com/repos/ligfx/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ligfx/dolphin/notifications{?since,all,participating}', 'watchers': 0, 'forks': 0, 'issue_events_url': 'https://api.github.com/repos/ligfx/dolphin/issues/events{/number}', 'has_issues': False}}, 'author_association': 'CONTRIBUTOR', 'deletions': 125, 'mergeable': False, 'merged_by': None, 'changed_files': 22, 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6134.diff', '_links': {'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/38e0bcaa2ee527631b15fcf8247c5383cf302861'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6134/comments'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6134'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6134'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6134/commits'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6134/comments'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6134'}}, 'mergeable_state': 'dirty', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6134/commits', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6134.patch', 'title': 'SoundStream: change Start/Stop lifecycle to Init/SetRunning/destruct'}}, 'type': 'raw_gh_hook', 'source': 'webserver'}
2017-10-22T16:07:13.446425	{'gh_type': 'issue_comment', 'raw': {'action': 'created', 'sender': {'gists_url': 'https://api.github.com/users/psennermann/gists{/gist_id}', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6342467?v=4', 'url': 'https://api.github.com/users/psennermann', 'gravatar_id': '', 'html_url': 'https://github.com/psennermann', 'id': 6342467, 'repos_url': 'https://api.github.com/users/psennermann/repos', 'events_url': 'https://api.github.com/users/psennermann/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/psennermann/subscriptions', 'starred_url': 'https://api.github.com/users/psennermann/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/psennermann/following{/other_user}', 'login': 'psennermann', 'received_events_url': 'https://api.github.com/users/psennermann/received_events', 'followers_url': 'https://api.github.com/users/psennermann/followers', 'organizations_url': 'https://api.github.com/users/psennermann/orgs', 'type': 'User'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6111', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6111/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6111', 'milestone': None, 'locked': False, 'id': 264226506, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6111/comments', 'assignees': [], 'created_at': '2017-10-10T13:24:22Z', 'body': "Provides a speedup in shader compilation time compared to going through glslang.\r\n\r\nWe had this previously enabled but had to revert it because dynamic sampler indexing was broken somewhere between 384.xx and 385.xx. It is now fixed in 387.xx.\r\n\r\nShould let us close these issues. I'm still not sure why the glslang path breaks on some systems but not others, but using the extension doesn't seem to have this problem.\r\n\r\nhttps://bugs.dolphin-emu.org/issues/10527\r\nhttps://bugs.dolphin-emu.org/issues/10301\r\nhttps://bugs.dolphin-emu.org/issues/10224\r\nhttps://bugs.dolphin-emu.org/issues/10535", 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6111/events', 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'url': 'https://api.github.com/users/stenzek', 'gravatar_id': '', 'html_url': 'https://github.com/stenzek', 'id': 11288319, 'repos_url': 'https://api.github.com/users/stenzek/repos', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'login': 'stenzek', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'followers_url': 'https://api.github.com/users/stenzek/followers', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'type': 'User'}, 'number': 6111, 'assignee': None, 'comments': 2, 'updated_at': '2017-10-22T16:07:12Z', 'state': 'open', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6111.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6111', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6111.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6111'}, 'author_association': 'CONTRIBUTOR', 'labels': [], 'title': 'Vulkan: Use VK_NV_glsl extension where available, and skip glslang'}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6111', 'created_at': '2017-10-22T16:07:12Z', 'user': {'gists_url': 'https://api.github.com/users/psennermann/gists{/gist_id}', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6342467?v=4', 'url': 'https://api.github.com/users/psennermann', 'gravatar_id': '', 'html_url': 'https://github.com/psennermann', 'id': 6342467, 'repos_url': 'https://api.github.com/users/psennermann/repos', 'events_url': 'https://api.github.com/users/psennermann/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/psennermann/subscriptions', 'starred_url': 'https://api.github.com/users/psennermann/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/psennermann/following{/other_user}', 'login': 'psennermann', 'received_events_url': 'https://api.github.com/users/psennermann/received_events', 'followers_url': 'https://api.github.com/users/psennermann/followers', 'organizations_url': 'https://api.github.com/users/psennermann/orgs', 'type': 'User'}, 'updated_at': '2017-10-22T16:07:12Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338488791', 'body': "Everyone's on holiday? :-)", 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6111#issuecomment-338488791', 'id': 338488791, 'author_association': 'NONE'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3767, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T15:40:00Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T14:49:25Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 138, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349184, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 138, 'stargazers_count': 3767, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3767, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}}, 'type': 'raw_gh_hook', 'source': 'webserver'}
2017-10-22T15:40:00.626629	{'gh_type': 'pull_request', 'raw': {'action': 'synchronize', 'after': 'b66a72eb8f3b4f5fbb1e36c88b34f41f19408eef', 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3767, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T14:42:26Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T14:49:25Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 138, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349180, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 138, 'stargazers_count': 3767, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3767, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'number': 6109, 'before': '5f9663d15d9513eab668f1c681abe34db458e3e2', 'sender': {'gists_url': 'https://api.github.com/users/t27duck/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/545604?v=4', 'url': 'https://api.github.com/users/t27duck', 'gravatar_id': '', 'html_url': 'https://github.com/t27duck', 'id': 545604, 'repos_url': 'https://api.github.com/users/t27duck/repos', 'events_url': 'https://api.github.com/users/t27duck/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/t27duck/subscriptions', 'starred_url': 'https://api.github.com/users/t27duck/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/t27duck/following{/other_user}', 'login': 't27duck', 'received_events_url': 'https://api.github.com/users/t27duck/received_events', 'followers_url': 'https://api.github.com/users/t27duck/followers', 'organizations_url': 'https://api.github.com/users/t27duck/orgs', 'type': 'User'}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}, 'pull_request': {'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6109/comments', 'locked': False, 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'merge_commit_sha': 'a595dfb9c457b09f68cfdf628ec9f25a862f687c', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6109', 'commits': 1, 'requested_reviewers': [], 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6109', 'id': 145358828, 'milestone': None, 'maintainer_can_modify': True, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6109/comments', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6109', 'assignees': [], 'created_at': '2017-10-08T23:27:30Z', 'body': 'This updates the maker data to (mostly) mirror that of the Wiki:\r\nhttps://wiki.dolphin-emu.org/index.php?title=GameIDs\r\n\r\nOnly maker ids from that page are now included in Dolphin. This\r\nmeans no homebrew/unofficial makers.', 'additions': 211, 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/b66a72eb8f3b4f5fbb1e36c88b34f41f19408eef', 'rebaseable': None, 'review_comments': 0, 'merged': False, 'base': {'user': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'ref': 'master', 'sha': '6e9e681438887840d08928296bb08c0d226d1046', 'label': 'dolphin-emu:master', 'repo': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3767, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T14:42:26Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T14:49:25Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 138, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349180, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 138, 'stargazers_count': 3767, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3767, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}}, 'merged_at': None, 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/t27duck/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/545604?v=4', 'url': 'https://api.github.com/users/t27duck', 'gravatar_id': '', 'html_url': 'https://github.com/t27duck', 'id': 545604, 'repos_url': 'https://api.github.com/users/t27duck/repos', 'events_url': 'https://api.github.com/users/t27duck/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/t27duck/subscriptions', 'starred_url': 'https://api.github.com/users/t27duck/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/t27duck/following{/other_user}', 'login': 't27duck', 'received_events_url': 'https://api.github.com/users/t27duck/received_events', 'followers_url': 'https://api.github.com/users/t27duck/followers', 'organizations_url': 'https://api.github.com/users/t27duck/orgs', 'type': 'User'}, 'number': 6109, 'assignee': None, 'comments': 25, 'updated_at': '2017-10-22T15:39:59Z', 'state': 'open', 'head': {'user': {'gists_url': 'https://api.github.com/users/t27duck/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/545604?v=4', 'url': 'https://api.github.com/users/t27duck', 'gravatar_id': '', 'html_url': 'https://github.com/t27duck', 'id': 545604, 'repos_url': 'https://api.github.com/users/t27duck/repos', 'events_url': 'https://api.github.com/users/t27duck/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/t27duck/subscriptions', 'starred_url': 'https://api.github.com/users/t27duck/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/t27duck/following{/other_user}', 'login': 't27duck', 'received_events_url': 'https://api.github.com/users/t27duck/received_events', 'followers_url': 'https://api.github.com/users/t27duck/followers', 'organizations_url': 'https://api.github.com/users/t27duck/orgs', 'type': 'User'}, 'ref': 'missing_wiiware_makers_2', 'sha': 'b66a72eb8f3b4f5fbb1e36c88b34f41f19408eef', 'label': 't27duck:missing_wiiware_makers_2', 'repo': {'compare_url': 'https://api.github.com/repos/t27duck/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/t27duck/dolphin/releases{/id}', 'created_at': '2017-10-01T15:34:40Z', 'labels_url': 'https://api.github.com/repos/t27duck/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/t27duck/dolphin/statuses/{sha}', 'git_url': 'git://github.com/t27duck/dolphin.git', 'html_url': 'https://github.com/t27duck/dolphin', 'subscribers_url': 'https://api.github.com/repos/t27duck/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/t27duck/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 0, 'svn_url': 'https://github.com/t27duck/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 't27duck/dolphin', 'branches_url': 'https://api.github.com/repos/t27duck/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/t27duck/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/t27duck/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:t27duck/dolphin.git', 'pulls_url': 'https://api.github.com/repos/t27duck/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/t27duck/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/t27duck/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T15:39:58Z', 'assignees_url': 'https://api.github.com/repos/t27duck/dolphin/assignees{/user}', 'updated_at': '2017-10-01T15:35:06Z', 'fork': True, 'tags_url': 'https://api.github.com/repos/t27duck/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/t27duck/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 0, 'private': False, 'forks_count': 0, 'git_refs_url': 'https://api.github.com/repos/t27duck/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/t27duck/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/t27duck/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/t27duck/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/t27duck/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/t27duck/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/t27duck/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/t27duck/dolphin/teams', 'has_projects': True, 'issues_url': 'https://api.github.com/repos/t27duck/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/t27duck/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/t27duck/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/545604?v=4', 'url': 'https://api.github.com/users/t27duck', 'gravatar_id': '', 'html_url': 'https://github.com/t27duck', 'id': 545604, 'repos_url': 'https://api.github.com/users/t27duck/repos', 'events_url': 'https://api.github.com/users/t27duck/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/t27duck/subscriptions', 'starred_url': 'https://api.github.com/users/t27duck/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/t27duck/following{/other_user}', 'login': 't27duck', 'received_events_url': 'https://api.github.com/users/t27duck/received_events', 'followers_url': 'https://api.github.com/users/t27duck/followers', 'organizations_url': 'https://api.github.com/users/t27duck/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/t27duck/dolphin', 'languages_url': 'https://api.github.com/repos/t27duck/dolphin/languages', 'id': 105452407, 'archived': False, 'merges_url': 'https://api.github.com/repos/t27duck/dolphin/merges', 'clone_url': 'https://github.com/t27duck/dolphin.git', 'comments_url': 'https://api.github.com/repos/t27duck/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/t27duck/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/t27duck/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/t27duck/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/t27duck/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 311371, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/t27duck/dolphin/git/trees{/sha}', 'open_issues': 0, 'stargazers_count': 0, 'milestones_url': 'https://api.github.com/repos/t27duck/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/t27duck/dolphin/notifications{?since,all,participating}', 'watchers': 0, 'forks': 0, 'issue_events_url': 'https://api.github.com/repos/t27duck/dolphin/issues/events{/number}', 'has_issues': False}}, 'author_association': 'CONTRIBUTOR', 'deletions': 326, 'mergeable': None, 'merged_by': None, 'changed_files': 3, 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6109.diff', '_links': {'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/b66a72eb8f3b4f5fbb1e36c88b34f41f19408eef'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6109/comments'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6109'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6109'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6109/commits'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6109/comments'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6109'}}, 'mergeable_state': 'unknown', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6109/commits', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6109.patch', 'title': 'Update maker information to match the wiki'}}, 'type': 'raw_gh_hook', 'source': 'webserver'}
2017-10-22T14:42:26.849831	{'gh_type': 'push', 'raw': {'after': '6e9e681438887840d08928296bb08c0d226d1046', 'forced': False, 'head_commit': {'modified': ['Source/Core/VideoBackends/Vulkan/main.cpp'], 'timestamp': '2017-10-22T16:42:24+02:00', 'tree_id': '3083f25620f258c144a996f0428982628932aff3', 'committer': {'name': 'GitHub', 'username': 'web-flow', 'email': 'noreply@github.com'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/6e9e681438887840d08928296bb08c0d226d1046', 'added': [], 'removed': [], 'distinct': True, 'id': '6e9e681438887840d08928296bb08c0d226d1046', 'author': {'name': 'Leo Lam', 'username': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'message': 'Merge pull request #6124 from stenzek/vulkan-shutdown-vxfb\n\nVulkan: Fix crash on shutdown with Virtual XFB enabled'}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}, 'commits': [{'modified': ['Source/Core/VideoBackends/Vulkan/main.cpp'], 'timestamp': '2017-10-18T22:11:59+10:00', 'tree_id': 'dfded0ba43421ca17adcc98ed42ec2834f997eb1', 'committer': {'name': 'Stenzek', 'username': 'stenzek', 'email': 'stenzek@gmail.com'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/271f1af8c9b679aae237b890efad37929349d7f1', 'added': [], 'removed': [], 'distinct': True, 'id': '271f1af8c9b679aae237b890efad37929349d7f1', 'author': {'name': 'Stenzek', 'username': 'stenzek', 'email': 'stenzek@gmail.com'}, 'message': 'Vulkan: Fix crash on shutdown with Virtual XFB enabled'}, {'modified': ['Source/Core/VideoBackends/Vulkan/main.cpp'], 'timestamp': '2017-10-22T16:42:24+02:00', 'tree_id': '3083f25620f258c144a996f0428982628932aff3', 'committer': {'name': 'GitHub', 'username': 'web-flow', 'email': 'noreply@github.com'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/6e9e681438887840d08928296bb08c0d226d1046', 'added': [], 'removed': [], 'distinct': True, 'id': '6e9e681438887840d08928296bb08c0d226d1046', 'author': {'name': 'Leo Lam', 'username': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'message': 'Merge pull request #6124 from stenzek/vulkan-shutdown-vxfb\n\nVulkan: Fix crash on shutdown with Virtual XFB enabled'}], 'ref': 'refs/heads/master', 'sender': {'gists_url': 'https://api.github.com/users/leoetlino/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4209061?v=4', 'url': 'https://api.github.com/users/leoetlino', 'gravatar_id': '', 'html_url': 'https://github.com/leoetlino', 'id': 4209061, 'repos_url': 'https://api.github.com/users/leoetlino/repos', 'events_url': 'https://api.github.com/users/leoetlino/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/leoetlino/subscriptions', 'starred_url': 'https://api.github.com/users/leoetlino/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/leoetlino/following{/other_user}', 'login': 'leoetlino', 'received_events_url': 'https://api.github.com/users/leoetlino/received_events', 'followers_url': 'https://api.github.com/users/leoetlino/followers', 'organizations_url': 'https://api.github.com/users/leoetlino/orgs', 'type': 'User'}, 'compare': 'https://github.com/dolphin-emu/dolphin/compare/b0945c7fb626...6e9e68143888', 'deleted': False, 'pusher': {'name': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': 1374484077, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3766, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': 1508683346, 'organization': 'dolphin-emu', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T14:07:04Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 138, 'private': False, 'forks_count': 951, 'stargazers': 3766, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'name': 'dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'email': '', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'url': 'https://api.github.com/users/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'type': 'Organization'}, 'url': 'https://github.com/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'master_branch': 'master', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349180, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 138, 'stargazers_count': 3766, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3766, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'before': 'b0945c7fb6268b401f659b9a0e17952ba410d817', 'base_ref': None, 'created': False}, 'type': 'raw_gh_hook', 'source': 'webserver'}
2017-10-22T14:42:26.724924	{'gh_type': 'pull_request', 'raw': {'action': 'closed', 'sender': {'gists_url': 'https://api.github.com/users/leoetlino/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4209061?v=4', 'url': 'https://api.github.com/users/leoetlino', 'gravatar_id': '', 'html_url': 'https://github.com/leoetlino', 'id': 4209061, 'repos_url': 'https://api.github.com/users/leoetlino/repos', 'events_url': 'https://api.github.com/users/leoetlino/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/leoetlino/subscriptions', 'starred_url': 'https://api.github.com/users/leoetlino/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/leoetlino/following{/other_user}', 'login': 'leoetlino', 'received_events_url': 'https://api.github.com/users/leoetlino/received_events', 'followers_url': 'https://api.github.com/users/leoetlino/followers', 'organizations_url': 'https://api.github.com/users/leoetlino/orgs', 'type': 'User'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3766, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T14:42:25Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T14:07:04Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 138, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349180, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 138, 'stargazers_count': 3766, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3766, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'number': 6124, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}, 'pull_request': {'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6124/comments', 'locked': False, 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'merge_commit_sha': '6e9e681438887840d08928296bb08c0d226d1046', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6124', 'commits': 1, 'requested_reviewers': [], 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6124', 'id': 147283734, 'milestone': None, 'maintainer_can_modify': False, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6124/comments', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6124', 'assignees': [], 'created_at': '2017-10-18T12:14:38Z', 'body': 'Regression from PR #6100 \r\n\r\nAlso swaps the initialization order to StateTracker -> FramebufferManager, to match the reverse of FramebufferManager->StateTracker at shutdown.', 'additions': 2, 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/271f1af8c9b679aae237b890efad37929349d7f1', 'rebaseable': None, 'review_comments': 0, 'merged': True, 'base': {'user': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'ref': 'master', 'sha': '774fca4d019b788089f4a0d456e9c0ee12d9e214', 'label': 'dolphin-emu:master', 'repo': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3766, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T14:42:25Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T14:07:04Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 138, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349180, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 138, 'stargazers_count': 3766, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3766, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}}, 'merged_at': '2017-10-22T14:42:25Z', 'closed_at': '2017-10-22T14:42:25Z', 'user': {'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'url': 'https://api.github.com/users/stenzek', 'gravatar_id': '', 'html_url': 'https://github.com/stenzek', 'id': 11288319, 'repos_url': 'https://api.github.com/users/stenzek/repos', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'login': 'stenzek', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'followers_url': 'https://api.github.com/users/stenzek/followers', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'type': 'User'}, 'number': 6124, 'assignee': None, 'comments': 1, 'updated_at': '2017-10-22T14:42:25Z', 'state': 'closed', 'head': {'user': {'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'url': 'https://api.github.com/users/stenzek', 'gravatar_id': '', 'html_url': 'https://github.com/stenzek', 'id': 11288319, 'repos_url': 'https://api.github.com/users/stenzek/repos', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'login': 'stenzek', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'followers_url': 'https://api.github.com/users/stenzek/followers', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'type': 'User'}, 'ref': 'vulkan-shutdown-vxfb', 'sha': '271f1af8c9b679aae237b890efad37929349d7f1', 'label': 'stenzek:vulkan-shutdown-vxfb', 'repo': {'compare_url': 'https://api.github.com/repos/stenzek/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/stenzek/dolphin/releases{/id}', 'created_at': '2015-11-24T08:34:41Z', 'labels_url': 'https://api.github.com/repos/stenzek/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/stenzek/dolphin/statuses/{sha}', 'git_url': 'git://github.com/stenzek/dolphin.git', 'html_url': 'https://github.com/stenzek/dolphin', 'subscribers_url': 'https://api.github.com/repos/stenzek/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/stenzek/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 6, 'svn_url': 'https://github.com/stenzek/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'stenzek/dolphin', 'branches_url': 'https://api.github.com/repos/stenzek/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/stenzek/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/stenzek/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:stenzek/dolphin.git', 'pulls_url': 'https://api.github.com/repos/stenzek/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/stenzek/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/stenzek/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-21T15:10:24Z', 'assignees_url': 'https://api.github.com/repos/stenzek/dolphin/assignees{/user}', 'updated_at': '2017-05-30T22:35:50Z', 'fork': True, 'tags_url': 'https://api.github.com/repos/stenzek/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/stenzek/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 1, 'private': False, 'forks_count': 0, 'git_refs_url': 'https://api.github.com/repos/stenzek/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/stenzek/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/stenzek/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/stenzek/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/stenzek/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/stenzek/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/stenzek/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/stenzek/dolphin/teams', 'has_projects': True, 'issues_url': 'https://api.github.com/repos/stenzek/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/stenzek/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'url': 'https://api.github.com/users/stenzek', 'gravatar_id': '', 'html_url': 'https://github.com/stenzek', 'id': 11288319, 'repos_url': 'https://api.github.com/users/stenzek/repos', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'login': 'stenzek', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'followers_url': 'https://api.github.com/users/stenzek/followers', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/stenzek/dolphin', 'languages_url': 'https://api.github.com/repos/stenzek/dolphin/languages', 'id': 46777992, 'archived': False, 'merges_url': 'https://api.github.com/repos/stenzek/dolphin/merges', 'clone_url': 'https://github.com/stenzek/dolphin.git', 'comments_url': 'https://api.github.com/repos/stenzek/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/stenzek/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/stenzek/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/stenzek/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/stenzek/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 313527, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/stenzek/dolphin/git/trees{/sha}', 'open_issues': 1, 'stargazers_count': 6, 'milestones_url': 'https://api.github.com/repos/stenzek/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/stenzek/dolphin/notifications{?since,all,participating}', 'watchers': 6, 'forks': 0, 'issue_events_url': 'https://api.github.com/repos/stenzek/dolphin/issues/events{/number}', 'has_issues': False}}, 'author_association': 'CONTRIBUTOR', 'deletions': 2, 'mergeable': None, 'merged_by': {'gists_url': 'https://api.github.com/users/leoetlino/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4209061?v=4', 'url': 'https://api.github.com/users/leoetlino', 'gravatar_id': '', 'html_url': 'https://github.com/leoetlino', 'id': 4209061, 'repos_url': 'https://api.github.com/users/leoetlino/repos', 'events_url': 'https://api.github.com/users/leoetlino/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/leoetlino/subscriptions', 'starred_url': 'https://api.github.com/users/leoetlino/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/leoetlino/following{/other_user}', 'login': 'leoetlino', 'received_events_url': 'https://api.github.com/users/leoetlino/received_events', 'followers_url': 'https://api.github.com/users/leoetlino/followers', 'organizations_url': 'https://api.github.com/users/leoetlino/orgs', 'type': 'User'}, 'changed_files': 1, 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6124.diff', '_links': {'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/271f1af8c9b679aae237b890efad37929349d7f1'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6124/comments'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6124'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6124'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6124/commits'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6124/comments'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6124'}}, 'mergeable_state': 'unknown', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6124/commits', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6124.patch', 'title': 'Vulkan: Fix crash on shutdown with Virtual XFB enabled'}}, 'type': 'raw_gh_hook', 'source': 'webserver'}
2017-10-22T14:42:17.151831	{'gh_type': 'issue_comment', 'raw': {'action': 'created', 'sender': {'gists_url': 'https://api.github.com/users/leoetlino/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4209061?v=4', 'url': 'https://api.github.com/users/leoetlino', 'gravatar_id': '', 'html_url': 'https://github.com/leoetlino', 'id': 4209061, 'repos_url': 'https://api.github.com/users/leoetlino/repos', 'events_url': 'https://api.github.com/users/leoetlino/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/leoetlino/subscriptions', 'starred_url': 'https://api.github.com/users/leoetlino/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/leoetlino/following{/other_user}', 'login': 'leoetlino', 'received_events_url': 'https://api.github.com/users/leoetlino/received_events', 'followers_url': 'https://api.github.com/users/leoetlino/followers', 'organizations_url': 'https://api.github.com/users/leoetlino/orgs', 'type': 'User'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6124', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6124/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6124', 'milestone': None, 'locked': False, 'id': 266470573, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6124/comments', 'assignees': [], 'created_at': '2017-10-18T12:14:38Z', 'body': 'Regression from PR #6100 \r\n\r\nAlso swaps the initialization order to StateTracker -> FramebufferManager, to match the reverse of FramebufferManager->StateTracker at shutdown.', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6124/events', 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/stenzek/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/11288319?v=4', 'url': 'https://api.github.com/users/stenzek', 'gravatar_id': '', 'html_url': 'https://github.com/stenzek', 'id': 11288319, 'repos_url': 'https://api.github.com/users/stenzek/repos', 'events_url': 'https://api.github.com/users/stenzek/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/stenzek/subscriptions', 'starred_url': 'https://api.github.com/users/stenzek/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/stenzek/following{/other_user}', 'login': 'stenzek', 'received_events_url': 'https://api.github.com/users/stenzek/received_events', 'followers_url': 'https://api.github.com/users/stenzek/followers', 'organizations_url': 'https://api.github.com/users/stenzek/orgs', 'type': 'User'}, 'number': 6124, 'assignee': None, 'comments': 0, 'updated_at': '2017-10-22T14:42:16Z', 'state': 'open', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6124.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6124', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6124.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6124'}, 'author_association': 'CONTRIBUTOR', 'labels': [], 'title': 'Vulkan: Fix crash on shutdown with Virtual XFB enabled'}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6124', 'created_at': '2017-10-22T14:42:16Z', 'user': {'gists_url': 'https://api.github.com/users/leoetlino/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4209061?v=4', 'url': 'https://api.github.com/users/leoetlino', 'gravatar_id': '', 'html_url': 'https://github.com/leoetlino', 'id': 4209061, 'repos_url': 'https://api.github.com/users/leoetlino/repos', 'events_url': 'https://api.github.com/users/leoetlino/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/leoetlino/subscriptions', 'starred_url': 'https://api.github.com/users/leoetlino/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/leoetlino/following{/other_user}', 'login': 'leoetlino', 'received_events_url': 'https://api.github.com/users/leoetlino/received_events', 'followers_url': 'https://api.github.com/users/leoetlino/followers', 'organizations_url': 'https://api.github.com/users/leoetlino/orgs', 'type': 'User'}, 'updated_at': '2017-10-22T14:42:16Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338482704', 'body': 'Whoops, missed the fact that FramebufferManager _depends_ on StateTracker... Sorry about the regression :/', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6124#issuecomment-338482704', 'id': 338482704, 'author_association': 'MEMBER'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3766, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T13:41:24Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T14:07:04Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 139, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349180, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 139, 'stargazers_count': 3766, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3766, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}}, 'type': 'raw_gh_hook', 'source': 'webserver'}
2017-10-22T13:41:25.241558	{'gh_type': 'push', 'raw': {'after': 'b0945c7fb6268b401f659b9a0e17952ba410d817', 'forced': False, 'head_commit': {'modified': [], 'timestamp': '2017-10-22T15:41:23+02:00', 'tree_id': '968defe08c8ffc873b7da2f3f1f5c35a82fa7210', 'committer': {'name': 'GitHub', 'username': 'web-flow', 'email': 'noreply@github.com'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/b0945c7fb6268b401f659b9a0e17952ba410d817', 'added': ['Data/Sys/GameSettings/WB8.ini'], 'removed': [], 'distinct': True, 'id': 'b0945c7fb6268b401f659b9a0e17952ba410d817', 'author': {'name': 'Leo Lam', 'username': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'message': 'Merge pull request #6131 from t27duck/wiiware_ini_file\n\nAdd INI file for Midnight Bowling (WiiWare)'}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}, 'commits': [{'modified': [], 'timestamp': '2017-10-21T16:43:38-04:00', 'tree_id': 'f8e47dc13715ebf4766abfa198d516002718d2e7', 'committer': {'name': 'Tony Drake', 'username': 't27duck', 'email': 't27duck@gmail.com'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/43390f62c456363e9772251b875674382e9f6180', 'added': ['Data/Sys/GameSettings/WB8.ini'], 'removed': [], 'distinct': True, 'id': '43390f62c456363e9772251b875674382e9f6180', 'author': {'name': 'Tony Drake', 'username': 't27duck', 'email': 't27duck@gmail.com'}, 'message': 'Add INI file for Midnight Bowling (WiiWare)\n\nWithout virtual xfb, the game will show distorted graphics once leaving\nthe title screen. This adds an INI file to make the game playable.\n\nThe wiki page for this game also notes the need for virtual xfb.'}, {'modified': [], 'timestamp': '2017-10-22T15:41:23+02:00', 'tree_id': '968defe08c8ffc873b7da2f3f1f5c35a82fa7210', 'committer': {'name': 'GitHub', 'username': 'web-flow', 'email': 'noreply@github.com'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/b0945c7fb6268b401f659b9a0e17952ba410d817', 'added': ['Data/Sys/GameSettings/WB8.ini'], 'removed': [], 'distinct': True, 'id': 'b0945c7fb6268b401f659b9a0e17952ba410d817', 'author': {'name': 'Leo Lam', 'username': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'message': 'Merge pull request #6131 from t27duck/wiiware_ini_file\n\nAdd INI file for Midnight Bowling (WiiWare)'}], 'ref': 'refs/heads/master', 'sender': {'gists_url': 'https://api.github.com/users/leoetlino/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4209061?v=4', 'url': 'https://api.github.com/users/leoetlino', 'gravatar_id': '', 'html_url': 'https://github.com/leoetlino', 'id': 4209061, 'repos_url': 'https://api.github.com/users/leoetlino/repos', 'events_url': 'https://api.github.com/users/leoetlino/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/leoetlino/subscriptions', 'starred_url': 'https://api.github.com/users/leoetlino/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/leoetlino/following{/other_user}', 'login': 'leoetlino', 'received_events_url': 'https://api.github.com/users/leoetlino/received_events', 'followers_url': 'https://api.github.com/users/leoetlino/followers', 'organizations_url': 'https://api.github.com/users/leoetlino/orgs', 'type': 'User'}, 'compare': 'https://github.com/dolphin-emu/dolphin/compare/b002d9d94f6f...b0945c7fb626', 'deleted': False, 'pusher': {'name': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': 1374484077, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3765, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': 1508679684, 'organization': 'dolphin-emu', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T12:16:08Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 139, 'private': False, 'forks_count': 951, 'stargazers': 3765, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'name': 'dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'email': '', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'url': 'https://api.github.com/users/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'type': 'Organization'}, 'url': 'https://github.com/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'master_branch': 'master', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349160, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 139, 'stargazers_count': 3765, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3765, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'before': 'b002d9d94f6f58f36bcf7976087f5c0b27534b82', 'base_ref': None, 'created': False}, 'type': 'raw_gh_hook', 'source': 'webserver'}
2017-10-22T13:41:25.110909	{'gh_type': 'pull_request', 'raw': {'action': 'closed', 'sender': {'gists_url': 'https://api.github.com/users/leoetlino/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4209061?v=4', 'url': 'https://api.github.com/users/leoetlino', 'gravatar_id': '', 'html_url': 'https://github.com/leoetlino', 'id': 4209061, 'repos_url': 'https://api.github.com/users/leoetlino/repos', 'events_url': 'https://api.github.com/users/leoetlino/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/leoetlino/subscriptions', 'starred_url': 'https://api.github.com/users/leoetlino/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/leoetlino/following{/other_user}', 'login': 'leoetlino', 'received_events_url': 'https://api.github.com/users/leoetlino/received_events', 'followers_url': 'https://api.github.com/users/leoetlino/followers', 'organizations_url': 'https://api.github.com/users/leoetlino/orgs', 'type': 'User'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3765, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T13:41:24Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T12:16:08Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 139, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349160, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 139, 'stargazers_count': 3765, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3765, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'number': 6131, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}, 'pull_request': {'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6131/comments', 'locked': False, 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'merge_commit_sha': 'b0945c7fb6268b401f659b9a0e17952ba410d817', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6131', 'commits': 1, 'requested_reviewers': [], 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6131', 'id': 147962152, 'milestone': None, 'maintainer_can_modify': False, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6131/comments', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6131', 'assignees': [], 'created_at': '2017-10-21T20:49:40Z', 'body': 'Without virtual xfb, the game will show distorted graphics once leaving\r\nthe title screen. This adds an INI file to make the game playable.\r\n\r\nThe wiki page for this game also notes the need for virtual xfb.', 'additions': 22, 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/43390f62c456363e9772251b875674382e9f6180', 'rebaseable': None, 'review_comments': 0, 'merged': True, 'base': {'user': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'ref': 'master', 'sha': '774fca4d019b788089f4a0d456e9c0ee12d9e214', 'label': 'dolphin-emu:master', 'repo': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3765, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T13:41:24Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T12:16:08Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 139, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349160, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 139, 'stargazers_count': 3765, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3765, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}}, 'merged_at': '2017-10-22T13:41:24Z', 'closed_at': '2017-10-22T13:41:24Z', 'user': {'gists_url': 'https://api.github.com/users/t27duck/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/545604?v=4', 'url': 'https://api.github.com/users/t27duck', 'gravatar_id': '', 'html_url': 'https://github.com/t27duck', 'id': 545604, 'repos_url': 'https://api.github.com/users/t27duck/repos', 'events_url': 'https://api.github.com/users/t27duck/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/t27duck/subscriptions', 'starred_url': 'https://api.github.com/users/t27duck/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/t27duck/following{/other_user}', 'login': 't27duck', 'received_events_url': 'https://api.github.com/users/t27duck/received_events', 'followers_url': 'https://api.github.com/users/t27duck/followers', 'organizations_url': 'https://api.github.com/users/t27duck/orgs', 'type': 'User'}, 'number': 6131, 'assignee': None, 'comments': 0, 'updated_at': '2017-10-22T13:41:24Z', 'state': 'closed', 'head': {'user': {'gists_url': 'https://api.github.com/users/t27duck/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/545604?v=4', 'url': 'https://api.github.com/users/t27duck', 'gravatar_id': '', 'html_url': 'https://github.com/t27duck', 'id': 545604, 'repos_url': 'https://api.github.com/users/t27duck/repos', 'events_url': 'https://api.github.com/users/t27duck/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/t27duck/subscriptions', 'starred_url': 'https://api.github.com/users/t27duck/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/t27duck/following{/other_user}', 'login': 't27duck', 'received_events_url': 'https://api.github.com/users/t27duck/received_events', 'followers_url': 'https://api.github.com/users/t27duck/followers', 'organizations_url': 'https://api.github.com/users/t27duck/orgs', 'type': 'User'}, 'ref': 'wiiware_ini_file', 'sha': '43390f62c456363e9772251b875674382e9f6180', 'label': 't27duck:wiiware_ini_file', 'repo': {'compare_url': 'https://api.github.com/repos/t27duck/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/t27duck/dolphin/releases{/id}', 'created_at': '2017-10-01T15:34:40Z', 'labels_url': 'https://api.github.com/repos/t27duck/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/t27duck/dolphin/statuses/{sha}', 'git_url': 'git://github.com/t27duck/dolphin.git', 'html_url': 'https://github.com/t27duck/dolphin', 'subscribers_url': 'https://api.github.com/repos/t27duck/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/t27duck/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 0, 'svn_url': 'https://github.com/t27duck/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 't27duck/dolphin', 'branches_url': 'https://api.github.com/repos/t27duck/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/t27duck/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/t27duck/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:t27duck/dolphin.git', 'pulls_url': 'https://api.github.com/repos/t27duck/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/t27duck/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/t27duck/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-21T20:45:42Z', 'assignees_url': 'https://api.github.com/repos/t27duck/dolphin/assignees{/user}', 'updated_at': '2017-10-01T15:35:06Z', 'fork': True, 'tags_url': 'https://api.github.com/repos/t27duck/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/t27duck/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 0, 'private': False, 'forks_count': 0, 'git_refs_url': 'https://api.github.com/repos/t27duck/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/t27duck/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/t27duck/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/t27duck/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/t27duck/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/t27duck/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/t27duck/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/t27duck/dolphin/teams', 'has_projects': True, 'issues_url': 'https://api.github.com/repos/t27duck/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/t27duck/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/t27duck/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/545604?v=4', 'url': 'https://api.github.com/users/t27duck', 'gravatar_id': '', 'html_url': 'https://github.com/t27duck', 'id': 545604, 'repos_url': 'https://api.github.com/users/t27duck/repos', 'events_url': 'https://api.github.com/users/t27duck/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/t27duck/subscriptions', 'starred_url': 'https://api.github.com/users/t27duck/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/t27duck/following{/other_user}', 'login': 't27duck', 'received_events_url': 'https://api.github.com/users/t27duck/received_events', 'followers_url': 'https://api.github.com/users/t27duck/followers', 'organizations_url': 'https://api.github.com/users/t27duck/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/t27duck/dolphin', 'languages_url': 'https://api.github.com/repos/t27duck/dolphin/languages', 'id': 105452407, 'archived': False, 'merges_url': 'https://api.github.com/repos/t27duck/dolphin/merges', 'clone_url': 'https://github.com/t27duck/dolphin.git', 'comments_url': 'https://api.github.com/repos/t27duck/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/t27duck/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/t27duck/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/t27duck/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/t27duck/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 311371, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/t27duck/dolphin/git/trees{/sha}', 'open_issues': 0, 'stargazers_count': 0, 'milestones_url': 'https://api.github.com/repos/t27duck/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/t27duck/dolphin/notifications{?since,all,participating}', 'watchers': 0, 'forks': 0, 'issue_events_url': 'https://api.github.com/repos/t27duck/dolphin/issues/events{/number}', 'has_issues': False}}, 'author_association': 'CONTRIBUTOR', 'deletions': 0, 'mergeable': None, 'merged_by': {'gists_url': 'https://api.github.com/users/leoetlino/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4209061?v=4', 'url': 'https://api.github.com/users/leoetlino', 'gravatar_id': '', 'html_url': 'https://github.com/leoetlino', 'id': 4209061, 'repos_url': 'https://api.github.com/users/leoetlino/repos', 'events_url': 'https://api.github.com/users/leoetlino/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/leoetlino/subscriptions', 'starred_url': 'https://api.github.com/users/leoetlino/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/leoetlino/following{/other_user}', 'login': 'leoetlino', 'received_events_url': 'https://api.github.com/users/leoetlino/received_events', 'followers_url': 'https://api.github.com/users/leoetlino/followers', 'organizations_url': 'https://api.github.com/users/leoetlino/orgs', 'type': 'User'}, 'changed_files': 1, 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6131.diff', '_links': {'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/43390f62c456363e9772251b875674382e9f6180'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6131/comments'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6131'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6131'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6131/commits'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6131/comments'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6131'}}, 'mergeable_state': 'unknown', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6131/commits', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6131.patch', 'title': 'Add INI file for Midnight Bowling (WiiWare)'}}, 'type': 'raw_gh_hook', 'source': 'webserver'}
2017-10-22T13:41:04.425421	{'gh_type': 'pull_request_review', 'raw': {'action': 'submitted', 'sender': {'gists_url': 'https://api.github.com/users/leoetlino/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4209061?v=4', 'url': 'https://api.github.com/users/leoetlino', 'gravatar_id': '', 'html_url': 'https://github.com/leoetlino', 'id': 4209061, 'repos_url': 'https://api.github.com/users/leoetlino/repos', 'events_url': 'https://api.github.com/users/leoetlino/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/leoetlino/subscriptions', 'starred_url': 'https://api.github.com/users/leoetlino/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/leoetlino/following{/other_user}', 'login': 'leoetlino', 'received_events_url': 'https://api.github.com/users/leoetlino/received_events', 'followers_url': 'https://api.github.com/users/leoetlino/followers', 'organizations_url': 'https://api.github.com/users/leoetlino/orgs', 'type': 'User'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3765, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T13:39:40Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T12:16:08Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 140, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349160, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 140, 'stargazers_count': 3765, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3765, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}, 'review': {'commit_id': '43390f62c456363e9772251b875674382e9f6180', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6131#pullrequestreview-71033603'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6131'}}, 'user': {'gists_url': 'https://api.github.com/users/leoetlino/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4209061?v=4', 'url': 'https://api.github.com/users/leoetlino', 'gravatar_id': '', 'html_url': 'https://github.com/leoetlino', 'id': 4209061, 'repos_url': 'https://api.github.com/users/leoetlino/repos', 'events_url': 'https://api.github.com/users/leoetlino/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/leoetlino/subscriptions', 'starred_url': 'https://api.github.com/users/leoetlino/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/leoetlino/following{/other_user}', 'login': 'leoetlino', 'received_events_url': 'https://api.github.com/users/leoetlino/received_events', 'followers_url': 'https://api.github.com/users/leoetlino/followers', 'organizations_url': 'https://api.github.com/users/leoetlino/orgs', 'type': 'User'}, 'state': 'approved', 'submitted_at': '2017-10-22T13:41:03Z', 'body': '', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6131#pullrequestreview-71033603', 'id': 71033603, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6131', 'author_association': 'MEMBER'}, 'pull_request': {'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6131/comments', 'locked': False, 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'merge_commit_sha': 'ecfa524571f86df7e587e9fb544df8c85982e795', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6131', 'requested_reviewers': [], 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6131', 'id': 147962152, 'milestone': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6131/comments', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6131', 'assignees': [], 'created_at': '2017-10-21T20:49:40Z', 'body': 'Without virtual xfb, the game will show distorted graphics once leaving\r\nthe title screen. This adds an INI file to make the game playable.\r\n\r\nThe wiki page for this game also notes the need for virtual xfb.', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/43390f62c456363e9772251b875674382e9f6180', 'base': {'user': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'ref': 'master', 'sha': '774fca4d019b788089f4a0d456e9c0ee12d9e214', 'label': 'dolphin-emu:master', 'repo': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3765, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T13:39:40Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T12:16:08Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 140, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349160, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 140, 'stargazers_count': 3765, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3765, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}}, 'merged_at': None, 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/t27duck/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/545604?v=4', 'url': 'https://api.github.com/users/t27duck', 'gravatar_id': '', 'html_url': 'https://github.com/t27duck', 'id': 545604, 'repos_url': 'https://api.github.com/users/t27duck/repos', 'events_url': 'https://api.github.com/users/t27duck/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/t27duck/subscriptions', 'starred_url': 'https://api.github.com/users/t27duck/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/t27duck/following{/other_user}', 'login': 't27duck', 'received_events_url': 'https://api.github.com/users/t27duck/received_events', 'followers_url': 'https://api.github.com/users/t27duck/followers', 'organizations_url': 'https://api.github.com/users/t27duck/orgs', 'type': 'User'}, 'number': 6131, 'assignee': None, 'updated_at': '2017-10-22T13:41:03Z', 'state': 'open', 'head': {'user': {'gists_url': 'https://api.github.com/users/t27duck/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/545604?v=4', 'url': 'https://api.github.com/users/t27duck', 'gravatar_id': '', 'html_url': 'https://github.com/t27duck', 'id': 545604, 'repos_url': 'https://api.github.com/users/t27duck/repos', 'events_url': 'https://api.github.com/users/t27duck/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/t27duck/subscriptions', 'starred_url': 'https://api.github.com/users/t27duck/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/t27duck/following{/other_user}', 'login': 't27duck', 'received_events_url': 'https://api.github.com/users/t27duck/received_events', 'followers_url': 'https://api.github.com/users/t27duck/followers', 'organizations_url': 'https://api.github.com/users/t27duck/orgs', 'type': 'User'}, 'ref': 'wiiware_ini_file', 'sha': '43390f62c456363e9772251b875674382e9f6180', 'label': 't27duck:wiiware_ini_file', 'repo': {'compare_url': 'https://api.github.com/repos/t27duck/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/t27duck/dolphin/releases{/id}', 'created_at': '2017-10-01T15:34:40Z', 'labels_url': 'https://api.github.com/repos/t27duck/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/t27duck/dolphin/statuses/{sha}', 'git_url': 'git://github.com/t27duck/dolphin.git', 'html_url': 'https://github.com/t27duck/dolphin', 'subscribers_url': 'https://api.github.com/repos/t27duck/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/t27duck/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 0, 'svn_url': 'https://github.com/t27duck/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 't27duck/dolphin', 'branches_url': 'https://api.github.com/repos/t27duck/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/t27duck/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/t27duck/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:t27duck/dolphin.git', 'pulls_url': 'https://api.github.com/repos/t27duck/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/t27duck/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/t27duck/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-21T20:45:42Z', 'assignees_url': 'https://api.github.com/repos/t27duck/dolphin/assignees{/user}', 'updated_at': '2017-10-01T15:35:06Z', 'fork': True, 'tags_url': 'https://api.github.com/repos/t27duck/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/t27duck/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 0, 'private': False, 'forks_count': 0, 'git_refs_url': 'https://api.github.com/repos/t27duck/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/t27duck/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/t27duck/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/t27duck/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/t27duck/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/t27duck/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/t27duck/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/t27duck/dolphin/teams', 'has_projects': True, 'issues_url': 'https://api.github.com/repos/t27duck/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/t27duck/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/t27duck/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/545604?v=4', 'url': 'https://api.github.com/users/t27duck', 'gravatar_id': '', 'html_url': 'https://github.com/t27duck', 'id': 545604, 'repos_url': 'https://api.github.com/users/t27duck/repos', 'events_url': 'https://api.github.com/users/t27duck/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/t27duck/subscriptions', 'starred_url': 'https://api.github.com/users/t27duck/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/t27duck/following{/other_user}', 'login': 't27duck', 'received_events_url': 'https://api.github.com/users/t27duck/received_events', 'followers_url': 'https://api.github.com/users/t27duck/followers', 'organizations_url': 'https://api.github.com/users/t27duck/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/t27duck/dolphin', 'languages_url': 'https://api.github.com/repos/t27duck/dolphin/languages', 'id': 105452407, 'archived': False, 'merges_url': 'https://api.github.com/repos/t27duck/dolphin/merges', 'clone_url': 'https://github.com/t27duck/dolphin.git', 'comments_url': 'https://api.github.com/repos/t27duck/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/t27duck/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/t27duck/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/t27duck/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/t27duck/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 311371, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/t27duck/dolphin/git/trees{/sha}', 'open_issues': 0, 'stargazers_count': 0, 'milestones_url': 'https://api.github.com/repos/t27duck/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/t27duck/dolphin/notifications{?since,all,participating}', 'watchers': 0, 'forks': 0, 'issue_events_url': 'https://api.github.com/repos/t27duck/dolphin/issues/events{/number}', 'has_issues': False}}, 'author_association': 'CONTRIBUTOR', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6131.diff', '_links': {'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/43390f62c456363e9772251b875674382e9f6180'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6131/comments'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6131'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6131'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6131/commits'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6131/comments'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6131'}}, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6131/commits', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6131.patch', 'title': 'Add INI file for Midnight Bowling (WiiWare)'}}, 'type': 'raw_gh_hook', 'source': 'webserver'}
2017-10-22T13:39:41.984451	{'gh_type': 'push', 'raw': {'after': 'b002d9d94f6f58f36bcf7976087f5c0b27534b82', 'forced': False, 'head_commit': {'modified': ['Externals/cubeb/CMakeLists.txt', 'Externals/cubeb/include/cubeb/cubeb.h', 'Externals/cubeb/msvc/cubeb.vcxproj', 'Externals/cubeb/msvc/cubeb.vcxproj.filters', 'Externals/cubeb/src/cubeb-internal.h', 'Externals/cubeb/src/cubeb.c', 'Externals/cubeb/src/cubeb_alsa.c', 'Externals/cubeb/src/cubeb_audiotrack.c', 'Externals/cubeb/src/cubeb_audiounit.cpp', 'Externals/cubeb/src/cubeb_jack.cpp', 'Externals/cubeb/src/cubeb_kai.c', 'Externals/cubeb/src/cubeb_log.cpp', 'Externals/cubeb/src/cubeb_log.h', 'Externals/cubeb/src/cubeb_mixer.cpp', 'Externals/cubeb/src/cubeb_mixer.h', 'Externals/cubeb/src/cubeb_opensl.c', 'Externals/cubeb/src/cubeb_pulse.c', 'Externals/cubeb/src/cubeb_resampler.cpp', 'Externals/cubeb/src/cubeb_resampler_internal.h', 'Externals/cubeb/src/cubeb_ringbuffer.h', 'Externals/cubeb/src/cubeb_sndio.c', 'Externals/cubeb/src/cubeb_utils.h', 'Externals/cubeb/src/cubeb_wasapi.cpp', 'Externals/cubeb/src/cubeb_winmm.c', 'Externals/cubeb/src/speex/resample.c', 'Source/Core/AudioCommon/CubebStream.cpp', 'Source/Core/Core/HW/EXI/EXI_DeviceMic.cpp'], 'timestamp': '2017-10-22T15:39:39+02:00', 'tree_id': '1f14e6d26d65dcdf70691942ad5b6bc357b92ff7', 'committer': {'name': 'GitHub', 'username': 'web-flow', 'email': 'noreply@github.com'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/b002d9d94f6f58f36bcf7976087f5c0b27534b82', 'added': ['Externals/cubeb/Config.cmake.in', 'Externals/cubeb/src/cubeb_strings.c', 'Externals/cubeb/src/cubeb_strings.h'], 'removed': ['Externals/cubeb/src/cubeb_utils.c'], 'distinct': True, 'id': 'b002d9d94f6f58f36bcf7976087f5c0b27534b82', 'author': {'name': 'Leo Lam', 'username': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'message': 'Merge pull request #6132 from ligfx/updatecubeb\n\nExternals: update cubeb to kinetiknz/cubeb@c2bd582'}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}, 'commits': [{'modified': ['Externals/cubeb/CMakeLists.txt', 'Externals/cubeb/include/cubeb/cubeb.h', 'Externals/cubeb/msvc/cubeb.vcxproj', 'Externals/cubeb/msvc/cubeb.vcxproj.filters', 'Externals/cubeb/src/cubeb-internal.h', 'Externals/cubeb/src/cubeb.c', 'Externals/cubeb/src/cubeb_alsa.c', 'Externals/cubeb/src/cubeb_audiotrack.c', 'Externals/cubeb/src/cubeb_audiounit.cpp', 'Externals/cubeb/src/cubeb_jack.cpp', 'Externals/cubeb/src/cubeb_kai.c', 'Externals/cubeb/src/cubeb_log.cpp', 'Externals/cubeb/src/cubeb_log.h', 'Externals/cubeb/src/cubeb_mixer.cpp', 'Externals/cubeb/src/cubeb_mixer.h', 'Externals/cubeb/src/cubeb_opensl.c', 'Externals/cubeb/src/cubeb_pulse.c', 'Externals/cubeb/src/cubeb_resampler.cpp', 'Externals/cubeb/src/cubeb_resampler_internal.h', 'Externals/cubeb/src/cubeb_ringbuffer.h', 'Externals/cubeb/src/cubeb_sndio.c', 'Externals/cubeb/src/cubeb_utils.h', 'Externals/cubeb/src/cubeb_wasapi.cpp', 'Externals/cubeb/src/cubeb_winmm.c', 'Externals/cubeb/src/speex/resample.c', 'Source/Core/AudioCommon/CubebStream.cpp', 'Source/Core/Core/HW/EXI/EXI_DeviceMic.cpp'], 'timestamp': '2017-10-21T14:28:39-07:00', 'tree_id': '19d5f71687557156f92516ce61fe23cdd006da48', 'committer': {'name': 'Michael M', 'username': 'ligfx', 'email': 'mchtly@gmail.com'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/aa40c4a7cef69978368aeca0d34a4518334dc0fb', 'added': ['Externals/cubeb/Config.cmake.in', 'Externals/cubeb/src/cubeb_strings.c', 'Externals/cubeb/src/cubeb_strings.h'], 'removed': ['Externals/cubeb/src/cubeb_utils.c'], 'distinct': True, 'id': 'aa40c4a7cef69978368aeca0d34a4518334dc0fb', 'author': {'name': 'Michael M', 'username': 'ligfx', 'email': 'mchtly@gmail.com'}, 'message': "Externals: update cubeb to kinetiknz/cubeb@c2bd582\n\nA bunch of changes, looks mainly like bug fixes and code cleanup.\n\nNotable changes:\n- `cubeb_get_min_latency`'s signature was changed to take params via\n  pointer, requiring Dolphin code to be tweaked in two places.\n- A fix for kinetiknz/cubeb#320, as reported by @shuffle2\n- Fixed build on FreeBSD (kinetiknz/cubeb#344), as contributed by @endrift"}, {'modified': ['Externals/cubeb/CMakeLists.txt', 'Externals/cubeb/include/cubeb/cubeb.h', 'Externals/cubeb/msvc/cubeb.vcxproj', 'Externals/cubeb/msvc/cubeb.vcxproj.filters', 'Externals/cubeb/src/cubeb-internal.h', 'Externals/cubeb/src/cubeb.c', 'Externals/cubeb/src/cubeb_alsa.c', 'Externals/cubeb/src/cubeb_audiotrack.c', 'Externals/cubeb/src/cubeb_audiounit.cpp', 'Externals/cubeb/src/cubeb_jack.cpp', 'Externals/cubeb/src/cubeb_kai.c', 'Externals/cubeb/src/cubeb_log.cpp', 'Externals/cubeb/src/cubeb_log.h', 'Externals/cubeb/src/cubeb_mixer.cpp', 'Externals/cubeb/src/cubeb_mixer.h', 'Externals/cubeb/src/cubeb_opensl.c', 'Externals/cubeb/src/cubeb_pulse.c', 'Externals/cubeb/src/cubeb_resampler.cpp', 'Externals/cubeb/src/cubeb_resampler_internal.h', 'Externals/cubeb/src/cubeb_ringbuffer.h', 'Externals/cubeb/src/cubeb_sndio.c', 'Externals/cubeb/src/cubeb_utils.h', 'Externals/cubeb/src/cubeb_wasapi.cpp', 'Externals/cubeb/src/cubeb_winmm.c', 'Externals/cubeb/src/speex/resample.c', 'Source/Core/AudioCommon/CubebStream.cpp', 'Source/Core/Core/HW/EXI/EXI_DeviceMic.cpp'], 'timestamp': '2017-10-22T15:39:39+02:00', 'tree_id': '1f14e6d26d65dcdf70691942ad5b6bc357b92ff7', 'committer': {'name': 'GitHub', 'username': 'web-flow', 'email': 'noreply@github.com'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/b002d9d94f6f58f36bcf7976087f5c0b27534b82', 'added': ['Externals/cubeb/Config.cmake.in', 'Externals/cubeb/src/cubeb_strings.c', 'Externals/cubeb/src/cubeb_strings.h'], 'removed': ['Externals/cubeb/src/cubeb_utils.c'], 'distinct': True, 'id': 'b002d9d94f6f58f36bcf7976087f5c0b27534b82', 'author': {'name': 'Leo Lam', 'username': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'message': 'Merge pull request #6132 from ligfx/updatecubeb\n\nExternals: update cubeb to kinetiknz/cubeb@c2bd582'}], 'ref': 'refs/heads/master', 'sender': {'gists_url': 'https://api.github.com/users/leoetlino/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4209061?v=4', 'url': 'https://api.github.com/users/leoetlino', 'gravatar_id': '', 'html_url': 'https://github.com/leoetlino', 'id': 4209061, 'repos_url': 'https://api.github.com/users/leoetlino/repos', 'events_url': 'https://api.github.com/users/leoetlino/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/leoetlino/subscriptions', 'starred_url': 'https://api.github.com/users/leoetlino/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/leoetlino/following{/other_user}', 'login': 'leoetlino', 'received_events_url': 'https://api.github.com/users/leoetlino/received_events', 'followers_url': 'https://api.github.com/users/leoetlino/followers', 'organizations_url': 'https://api.github.com/users/leoetlino/orgs', 'type': 'User'}, 'compare': 'https://github.com/dolphin-emu/dolphin/compare/a596424dc2c9...b002d9d94f6f', 'deleted': False, 'pusher': {'name': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': 1374484077, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3765, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': 1508679580, 'organization': 'dolphin-emu', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T12:16:08Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 140, 'private': False, 'forks_count': 951, 'stargazers': 3765, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'name': 'dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'email': '', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'url': 'https://api.github.com/users/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'type': 'Organization'}, 'url': 'https://github.com/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'master_branch': 'master', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349160, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 140, 'stargazers_count': 3765, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3765, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'before': 'a596424dc2c9230c1ebed813bd459a1a405b565d', 'base_ref': None, 'created': False}, 'type': 'raw_gh_hook', 'source': 'webserver'}
2017-10-22T13:39:41.696589	{'gh_type': 'pull_request', 'raw': {'action': 'closed', 'sender': {'gists_url': 'https://api.github.com/users/leoetlino/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4209061?v=4', 'url': 'https://api.github.com/users/leoetlino', 'gravatar_id': '', 'html_url': 'https://github.com/leoetlino', 'id': 4209061, 'repos_url': 'https://api.github.com/users/leoetlino/repos', 'events_url': 'https://api.github.com/users/leoetlino/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/leoetlino/subscriptions', 'starred_url': 'https://api.github.com/users/leoetlino/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/leoetlino/following{/other_user}', 'login': 'leoetlino', 'received_events_url': 'https://api.github.com/users/leoetlino/received_events', 'followers_url': 'https://api.github.com/users/leoetlino/followers', 'organizations_url': 'https://api.github.com/users/leoetlino/orgs', 'type': 'User'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3765, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T13:39:40Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T12:16:08Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 140, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349160, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 140, 'stargazers_count': 3765, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3765, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'number': 6132, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}, 'pull_request': {'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6132/comments', 'locked': False, 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'merge_commit_sha': 'b002d9d94f6f58f36bcf7976087f5c0b27534b82', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6132', 'commits': 1, 'requested_reviewers': [], 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6132', 'id': 147963286, 'milestone': None, 'maintainer_can_modify': False, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6132/comments', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6132', 'assignees': [], 'created_at': '2017-10-21T21:18:37Z', 'body': "A bunch of changes, looks mainly like bug fixes and code cleanup.\r\n\r\nNotable changes:\r\n- `cubeb_get_min_latency`'s signature was changed to take params via\r\n  pointer, requiring Dolphin code to be tweaked in two places.\r\n- A fix for kinetiknz/cubeb#320, as reported by @shuffle2\r\n- Fixed build on FreeBSD, as contributed by @endrift", 'additions': 1049, 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/aa40c4a7cef69978368aeca0d34a4518334dc0fb', 'rebaseable': None, 'review_comments': 0, 'merged': True, 'base': {'user': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'ref': 'master', 'sha': '774fca4d019b788089f4a0d456e9c0ee12d9e214', 'label': 'dolphin-emu:master', 'repo': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3765, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T13:39:40Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T12:16:08Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 140, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349160, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 140, 'stargazers_count': 3765, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3765, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}}, 'merged_at': '2017-10-22T13:39:40Z', 'closed_at': '2017-10-22T13:39:40Z', 'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'number': 6132, 'assignee': None, 'comments': 1, 'updated_at': '2017-10-22T13:39:40Z', 'state': 'closed', 'head': {'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'ref': 'updatecubeb', 'sha': 'aa40c4a7cef69978368aeca0d34a4518334dc0fb', 'label': 'ligfx:updatecubeb', 'repo': {'compare_url': 'https://api.github.com/repos/ligfx/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/ligfx/dolphin/releases{/id}', 'created_at': '2016-08-08T16:31:32Z', 'labels_url': 'https://api.github.com/repos/ligfx/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/ligfx/dolphin/statuses/{sha}', 'git_url': 'git://github.com/ligfx/dolphin.git', 'html_url': 'https://github.com/ligfx/dolphin', 'subscribers_url': 'https://api.github.com/repos/ligfx/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/ligfx/dolphin/hooks', 'homepage': 'https://github.com/dolphin-emu/dolphin', 'watchers_count': 0, 'svn_url': 'https://github.com/ligfx/dolphin', 'description': 'Personal development branch of dolphin-emu/dolphin.', 'full_name': 'ligfx/dolphin', 'branches_url': 'https://api.github.com/repos/ligfx/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/ligfx/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/ligfx/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:ligfx/dolphin.git', 'pulls_url': 'https://api.github.com/repos/ligfx/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/ligfx/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/ligfx/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T06:06:49Z', 'assignees_url': 'https://api.github.com/repos/ligfx/dolphin/assignees{/user}', 'updated_at': '2017-05-17T22:06:54Z', 'fork': True, 'tags_url': 'https://api.github.com/repos/ligfx/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/ligfx/dolphin/keys{/key_id}', 'default_branch': 'ligfx', 'open_issues_count': 0, 'private': False, 'forks_count': 0, 'git_refs_url': 'https://api.github.com/repos/ligfx/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/ligfx/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/ligfx/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/ligfx/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/ligfx/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/ligfx/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/ligfx/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/ligfx/dolphin/teams', 'has_projects': True, 'issues_url': 'https://api.github.com/repos/ligfx/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/ligfx/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/ligfx/dolphin', 'languages_url': 'https://api.github.com/repos/ligfx/dolphin/languages', 'id': 65220721, 'archived': False, 'merges_url': 'https://api.github.com/repos/ligfx/dolphin/merges', 'clone_url': 'https://github.com/ligfx/dolphin.git', 'comments_url': 'https://api.github.com/repos/ligfx/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/ligfx/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/ligfx/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/ligfx/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/ligfx/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 311851, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/ligfx/dolphin/git/trees{/sha}', 'open_issues': 0, 'stargazers_count': 0, 'milestones_url': 'https://api.github.com/repos/ligfx/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ligfx/dolphin/notifications{?since,all,participating}', 'watchers': 0, 'forks': 0, 'issue_events_url': 'https://api.github.com/repos/ligfx/dolphin/issues/events{/number}', 'has_issues': False}}, 'author_association': 'CONTRIBUTOR', 'deletions': 592, 'mergeable': None, 'merged_by': {'gists_url': 'https://api.github.com/users/leoetlino/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4209061?v=4', 'url': 'https://api.github.com/users/leoetlino', 'gravatar_id': '', 'html_url': 'https://github.com/leoetlino', 'id': 4209061, 'repos_url': 'https://api.github.com/users/leoetlino/repos', 'events_url': 'https://api.github.com/users/leoetlino/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/leoetlino/subscriptions', 'starred_url': 'https://api.github.com/users/leoetlino/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/leoetlino/following{/other_user}', 'login': 'leoetlino', 'received_events_url': 'https://api.github.com/users/leoetlino/received_events', 'followers_url': 'https://api.github.com/users/leoetlino/followers', 'organizations_url': 'https://api.github.com/users/leoetlino/orgs', 'type': 'User'}, 'changed_files': 31, 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6132.diff', '_links': {'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/aa40c4a7cef69978368aeca0d34a4518334dc0fb'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6132/comments'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6132'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6132'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6132/commits'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6132/comments'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6132'}}, 'mergeable_state': 'unknown', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6132/commits', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6132.patch', 'title': 'Externals: update cubeb to kinetiknz/cubeb@c2bd582'}}, 'type': 'raw_gh_hook', 'source': 'webserver'}
2017-10-22T13:38:36.347237	{'gh_type': 'push', 'raw': {'after': 'a596424dc2c9230c1ebed813bd459a1a405b565d', 'forced': False, 'head_commit': {'modified': ['Source/Core/AudioCommon/AlsaSoundStream.cpp', 'Source/Core/AudioCommon/AlsaSoundStream.h', 'Source/Core/AudioCommon/AudioCommon.cpp', 'Source/Core/AudioCommon/AudioCommon.h', 'Source/Core/AudioCommon/NullSoundStream.cpp', 'Source/Core/AudioCommon/NullSoundStream.h', 'Source/Core/AudioCommon/OpenALStream.cpp', 'Source/Core/AudioCommon/OpenALStream.h', 'Source/Core/AudioCommon/SoundStream.h', 'Source/Core/AudioCommon/XAudio2Stream.cpp', 'Source/Core/AudioCommon/XAudio2Stream.h', 'Source/Core/AudioCommon/XAudio2_7Stream.cpp', 'Source/Core/AudioCommon/XAudio2_7Stream.h', 'Source/Core/Core/HW/CPU.cpp'], 'timestamp': '2017-10-22T15:38:34+02:00', 'tree_id': '7b5dc83c1844b6655eea3c87c2c69f0c06def7fc', 'committer': {'name': 'GitHub', 'username': 'web-flow', 'email': 'noreply@github.com'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/a596424dc2c9230c1ebed813bd459a1a405b565d', 'added': [], 'removed': [], 'distinct': True, 'id': 'a596424dc2c9230c1ebed813bd459a1a405b565d', 'author': {'name': 'Leo Lam', 'username': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'message': 'Merge pull request #6133 from ligfx/soundstreamsetrunning\n\nAudioCommon: rename ClearAudioBuffer(mute) to SetSoundStreamRunning(running)'}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}, 'commits': [{'modified': ['Source/Core/AudioCommon/AlsaSoundStream.cpp', 'Source/Core/AudioCommon/NullSoundStream.cpp', 'Source/Core/AudioCommon/NullSoundStream.h', 'Source/Core/AudioCommon/OpenALStream.cpp', 'Source/Core/AudioCommon/SoundStream.h', 'Source/Core/AudioCommon/XAudio2Stream.cpp', 'Source/Core/AudioCommon/XAudio2_7Stream.cpp'], 'timestamp': '2017-10-21T16:28:04-07:00', 'tree_id': 'be4e3413edce0d1ec85385a5a95915e320fe6ad5', 'committer': {'name': 'Michael M', 'username': 'ligfx', 'email': 'mchtly@gmail.com'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/7bcdd1a46a2e0964c0ea155d840cff1dbf573916', 'added': [], 'removed': [], 'distinct': True, 'id': '7bcdd1a46a2e0964c0ea155d840cff1dbf573916', 'author': {'name': 'Michael M', 'username': 'ligfx', 'email': 'mchtly@gmail.com'}, 'message': 'SoundStream: remove unused m_muted and IsMuted'}, {'modified': ['Source/Core/AudioCommon/AudioCommon.cpp', 'Source/Core/AudioCommon/AudioCommon.h', 'Source/Core/Core/HW/CPU.cpp'], 'timestamp': '2017-10-21T16:28:04-07:00', 'tree_id': '9db1d555b628bc30f183a1d4c528056970bc462d', 'committer': {'name': 'Michael M', 'username': 'ligfx', 'email': 'mchtly@gmail.com'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/d6985fc3e89a6d79a1476c6a0ed323c7b50791fe', 'added': [], 'removed': [], 'distinct': True, 'id': 'd6985fc3e89a6d79a1476c6a0ed323c7b50791fe', 'author': {'name': 'Michael M', 'username': 'ligfx', 'email': 'mchtly@gmail.com'}, 'message': 'AudioCommon: rename ClearAudioBuffer(mute) to SetSoundStreamRunning(running)'}, {'modified': ['Source/Core/AudioCommon/AlsaSoundStream.cpp', 'Source/Core/AudioCommon/AlsaSoundStream.h', 'Source/Core/AudioCommon/AudioCommon.cpp', 'Source/Core/AudioCommon/OpenALStream.cpp', 'Source/Core/AudioCommon/OpenALStream.h', 'Source/Core/AudioCommon/SoundStream.h', 'Source/Core/AudioCommon/XAudio2Stream.cpp', 'Source/Core/AudioCommon/XAudio2Stream.h', 'Source/Core/AudioCommon/XAudio2_7Stream.cpp', 'Source/Core/AudioCommon/XAudio2_7Stream.h'], 'timestamp': '2017-10-21T16:28:04-07:00', 'tree_id': '3c4b0e19c9539220c4850ce6e8e63107edf138a9', 'committer': {'name': 'Michael M', 'username': 'ligfx', 'email': 'mchtly@gmail.com'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/b031d3316c64718b383e6339c4a6c12176bff4cb', 'added': [], 'removed': [], 'distinct': True, 'id': 'b031d3316c64718b383e6339c4a6c12176bff4cb', 'author': {'name': 'Michael M', 'username': 'ligfx', 'email': 'mchtly@gmail.com'}, 'message': 'SoundStream: rename Clear(mute) to SetRunning(running)'}, {'modified': ['Source/Core/AudioCommon/AlsaSoundStream.cpp', 'Source/Core/AudioCommon/AlsaSoundStream.h', 'Source/Core/AudioCommon/AudioCommon.cpp', 'Source/Core/AudioCommon/AudioCommon.h', 'Source/Core/AudioCommon/NullSoundStream.cpp', 'Source/Core/AudioCommon/NullSoundStream.h', 'Source/Core/AudioCommon/OpenALStream.cpp', 'Source/Core/AudioCommon/OpenALStream.h', 'Source/Core/AudioCommon/SoundStream.h', 'Source/Core/AudioCommon/XAudio2Stream.cpp', 'Source/Core/AudioCommon/XAudio2Stream.h', 'Source/Core/AudioCommon/XAudio2_7Stream.cpp', 'Source/Core/AudioCommon/XAudio2_7Stream.h', 'Source/Core/Core/HW/CPU.cpp'], 'timestamp': '2017-10-22T15:38:34+02:00', 'tree_id': '7b5dc83c1844b6655eea3c87c2c69f0c06def7fc', 'committer': {'name': 'GitHub', 'username': 'web-flow', 'email': 'noreply@github.com'}, 'url': 'https://github.com/dolphin-emu/dolphin/commit/a596424dc2c9230c1ebed813bd459a1a405b565d', 'added': [], 'removed': [], 'distinct': True, 'id': 'a596424dc2c9230c1ebed813bd459a1a405b565d', 'author': {'name': 'Leo Lam', 'username': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'message': 'Merge pull request #6133 from ligfx/soundstreamsetrunning\n\nAudioCommon: rename ClearAudioBuffer(mute) to SetSoundStreamRunning(running)'}], 'ref': 'refs/heads/master', 'sender': {'gists_url': 'https://api.github.com/users/leoetlino/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4209061?v=4', 'url': 'https://api.github.com/users/leoetlino', 'gravatar_id': '', 'html_url': 'https://github.com/leoetlino', 'id': 4209061, 'repos_url': 'https://api.github.com/users/leoetlino/repos', 'events_url': 'https://api.github.com/users/leoetlino/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/leoetlino/subscriptions', 'starred_url': 'https://api.github.com/users/leoetlino/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/leoetlino/following{/other_user}', 'login': 'leoetlino', 'received_events_url': 'https://api.github.com/users/leoetlino/received_events', 'followers_url': 'https://api.github.com/users/leoetlino/followers', 'organizations_url': 'https://api.github.com/users/leoetlino/orgs', 'type': 'User'}, 'compare': 'https://github.com/dolphin-emu/dolphin/compare/d57d7b74d7ee...a596424dc2c9', 'deleted': False, 'pusher': {'name': 'leoetlino', 'email': 'leolino.lam@gmail.com'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': 1374484077, 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3765, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': 1508679515, 'organization': 'dolphin-emu', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T12:16:08Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 141, 'private': False, 'forks_count': 951, 'stargazers': 3765, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'name': 'dolphin-emu', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'email': '', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'url': 'https://api.github.com/users/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'type': 'Organization'}, 'url': 'https://github.com/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'master_branch': 'master', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349160, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 141, 'stargazers_count': 3765, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3765, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'before': 'd57d7b74d7ee056f4a5b869020b12481895e9832', 'base_ref': None, 'created': False}, 'type': 'raw_gh_hook', 'source': 'webserver'}
2017-10-22T13:38:36.053479	{'gh_type': 'pull_request', 'raw': {'action': 'closed', 'sender': {'gists_url': 'https://api.github.com/users/leoetlino/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4209061?v=4', 'url': 'https://api.github.com/users/leoetlino', 'gravatar_id': '', 'html_url': 'https://github.com/leoetlino', 'id': 4209061, 'repos_url': 'https://api.github.com/users/leoetlino/repos', 'events_url': 'https://api.github.com/users/leoetlino/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/leoetlino/subscriptions', 'starred_url': 'https://api.github.com/users/leoetlino/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/leoetlino/following{/other_user}', 'login': 'leoetlino', 'received_events_url': 'https://api.github.com/users/leoetlino/received_events', 'followers_url': 'https://api.github.com/users/leoetlino/followers', 'organizations_url': 'https://api.github.com/users/leoetlino/orgs', 'type': 'User'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3765, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T13:38:35Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T12:16:08Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 141, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349160, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 141, 'stargazers_count': 3765, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3765, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'number': 6133, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}, 'pull_request': {'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6133/comments', 'locked': False, 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'merge_commit_sha': 'a596424dc2c9230c1ebed813bd459a1a405b565d', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6133', 'commits': 3, 'requested_reviewers': [], 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6133', 'id': 147963718, 'milestone': None, 'maintainer_can_modify': False, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6133/comments', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6133', 'assignees': [], 'created_at': '2017-10-21T21:30:08Z', 'body': 'Much easier to understand.', 'additions': 24, 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/b031d3316c64718b383e6339c4a6c12176bff4cb', 'rebaseable': None, 'review_comments': 0, 'merged': True, 'base': {'user': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'ref': 'master', 'sha': '78d5dbe032d4390fbc3bbfc81768b68c2062fa8f', 'label': 'dolphin-emu:master', 'repo': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3765, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T13:38:35Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T12:16:08Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 141, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349160, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 141, 'stargazers_count': 3765, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3765, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}}, 'merged_at': '2017-10-22T13:38:35Z', 'closed_at': '2017-10-22T13:38:35Z', 'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'number': 6133, 'assignee': None, 'comments': 0, 'updated_at': '2017-10-22T13:38:35Z', 'state': 'closed', 'head': {'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'ref': 'soundstreamsetrunning', 'sha': 'b031d3316c64718b383e6339c4a6c12176bff4cb', 'label': 'ligfx:soundstreamsetrunning', 'repo': {'compare_url': 'https://api.github.com/repos/ligfx/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/ligfx/dolphin/releases{/id}', 'created_at': '2016-08-08T16:31:32Z', 'labels_url': 'https://api.github.com/repos/ligfx/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/ligfx/dolphin/statuses/{sha}', 'git_url': 'git://github.com/ligfx/dolphin.git', 'html_url': 'https://github.com/ligfx/dolphin', 'subscribers_url': 'https://api.github.com/repos/ligfx/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/ligfx/dolphin/hooks', 'homepage': 'https://github.com/dolphin-emu/dolphin', 'watchers_count': 0, 'svn_url': 'https://github.com/ligfx/dolphin', 'description': 'Personal development branch of dolphin-emu/dolphin.', 'full_name': 'ligfx/dolphin', 'branches_url': 'https://api.github.com/repos/ligfx/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/ligfx/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/ligfx/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:ligfx/dolphin.git', 'pulls_url': 'https://api.github.com/repos/ligfx/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/ligfx/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/ligfx/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T06:06:49Z', 'assignees_url': 'https://api.github.com/repos/ligfx/dolphin/assignees{/user}', 'updated_at': '2017-05-17T22:06:54Z', 'fork': True, 'tags_url': 'https://api.github.com/repos/ligfx/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/ligfx/dolphin/keys{/key_id}', 'default_branch': 'ligfx', 'open_issues_count': 0, 'private': False, 'forks_count': 0, 'git_refs_url': 'https://api.github.com/repos/ligfx/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/ligfx/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/ligfx/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/ligfx/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/ligfx/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/ligfx/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/ligfx/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/ligfx/dolphin/teams', 'has_projects': True, 'issues_url': 'https://api.github.com/repos/ligfx/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/ligfx/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/ligfx/dolphin', 'languages_url': 'https://api.github.com/repos/ligfx/dolphin/languages', 'id': 65220721, 'archived': False, 'merges_url': 'https://api.github.com/repos/ligfx/dolphin/merges', 'clone_url': 'https://github.com/ligfx/dolphin.git', 'comments_url': 'https://api.github.com/repos/ligfx/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/ligfx/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/ligfx/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/ligfx/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/ligfx/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 311851, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/ligfx/dolphin/git/trees{/sha}', 'open_issues': 0, 'stargazers_count': 0, 'milestones_url': 'https://api.github.com/repos/ligfx/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ligfx/dolphin/notifications{?since,all,participating}', 'watchers': 0, 'forks': 0, 'issue_events_url': 'https://api.github.com/repos/ligfx/dolphin/issues/events{/number}', 'has_issues': False}}, 'author_association': 'CONTRIBUTOR', 'deletions': 39, 'mergeable': None, 'merged_by': {'gists_url': 'https://api.github.com/users/leoetlino/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4209061?v=4', 'url': 'https://api.github.com/users/leoetlino', 'gravatar_id': '', 'html_url': 'https://github.com/leoetlino', 'id': 4209061, 'repos_url': 'https://api.github.com/users/leoetlino/repos', 'events_url': 'https://api.github.com/users/leoetlino/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/leoetlino/subscriptions', 'starred_url': 'https://api.github.com/users/leoetlino/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/leoetlino/following{/other_user}', 'login': 'leoetlino', 'received_events_url': 'https://api.github.com/users/leoetlino/received_events', 'followers_url': 'https://api.github.com/users/leoetlino/followers', 'organizations_url': 'https://api.github.com/users/leoetlino/orgs', 'type': 'User'}, 'changed_files': 14, 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6133.diff', '_links': {'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/b031d3316c64718b383e6339c4a6c12176bff4cb'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6133/comments'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6133'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6133'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6133/commits'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6133/comments'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6133'}}, 'mergeable_state': 'unknown', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6133/commits', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6133.patch', 'title': 'AudioCommon: rename ClearAudioBuffer(mute) to SetSoundStreamRunning(running)'}}, 'type': 'raw_gh_hook', 'source': 'webserver'}
2017-10-22T13:38:26.984778	{'gh_type': 'pull_request_review', 'raw': {'action': 'submitted', 'sender': {'gists_url': 'https://api.github.com/users/leoetlino/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4209061?v=4', 'url': 'https://api.github.com/users/leoetlino', 'gravatar_id': '', 'html_url': 'https://github.com/leoetlino', 'id': 4209061, 'repos_url': 'https://api.github.com/users/leoetlino/repos', 'events_url': 'https://api.github.com/users/leoetlino/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/leoetlino/subscriptions', 'starred_url': 'https://api.github.com/users/leoetlino/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/leoetlino/following{/other_user}', 'login': 'leoetlino', 'received_events_url': 'https://api.github.com/users/leoetlino/received_events', 'followers_url': 'https://api.github.com/users/leoetlino/followers', 'organizations_url': 'https://api.github.com/users/leoetlino/orgs', 'type': 'User'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3765, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T06:56:14Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T12:16:08Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 142, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349160, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 142, 'stargazers_count': 3765, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3765, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}, 'review': {'commit_id': 'b031d3316c64718b383e6339c4a6c12176bff4cb', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6133#pullrequestreview-71033548'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6133'}}, 'user': {'gists_url': 'https://api.github.com/users/leoetlino/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4209061?v=4', 'url': 'https://api.github.com/users/leoetlino', 'gravatar_id': '', 'html_url': 'https://github.com/leoetlino', 'id': 4209061, 'repos_url': 'https://api.github.com/users/leoetlino/repos', 'events_url': 'https://api.github.com/users/leoetlino/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/leoetlino/subscriptions', 'starred_url': 'https://api.github.com/users/leoetlino/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/leoetlino/following{/other_user}', 'login': 'leoetlino', 'received_events_url': 'https://api.github.com/users/leoetlino/received_events', 'followers_url': 'https://api.github.com/users/leoetlino/followers', 'organizations_url': 'https://api.github.com/users/leoetlino/orgs', 'type': 'User'}, 'state': 'approved', 'submitted_at': '2017-10-22T13:38:25Z', 'body': '', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6133#pullrequestreview-71033548', 'id': 71033548, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6133', 'author_association': 'MEMBER'}, 'pull_request': {'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6133/comments', 'locked': False, 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'merge_commit_sha': '41beb09a2e2e2cfc91c56f91082340ef13b66ab8', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6133', 'requested_reviewers': [], 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6133', 'id': 147963718, 'milestone': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6133/comments', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6133', 'assignees': [], 'created_at': '2017-10-21T21:30:08Z', 'body': 'Much easier to understand.', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/b031d3316c64718b383e6339c4a6c12176bff4cb', 'base': {'user': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'ref': 'master', 'sha': '78d5dbe032d4390fbc3bbfc81768b68c2062fa8f', 'label': 'dolphin-emu:master', 'repo': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3765, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T06:56:14Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T12:16:08Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 142, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349160, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 142, 'stargazers_count': 3765, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3765, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}}, 'merged_at': None, 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'number': 6133, 'assignee': None, 'updated_at': '2017-10-22T13:38:25Z', 'state': 'open', 'head': {'user': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'ref': 'soundstreamsetrunning', 'sha': 'b031d3316c64718b383e6339c4a6c12176bff4cb', 'label': 'ligfx:soundstreamsetrunning', 'repo': {'compare_url': 'https://api.github.com/repos/ligfx/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/ligfx/dolphin/releases{/id}', 'created_at': '2016-08-08T16:31:32Z', 'labels_url': 'https://api.github.com/repos/ligfx/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/ligfx/dolphin/statuses/{sha}', 'git_url': 'git://github.com/ligfx/dolphin.git', 'html_url': 'https://github.com/ligfx/dolphin', 'subscribers_url': 'https://api.github.com/repos/ligfx/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/ligfx/dolphin/hooks', 'homepage': 'https://github.com/dolphin-emu/dolphin', 'watchers_count': 0, 'svn_url': 'https://github.com/ligfx/dolphin', 'description': 'Personal development branch of dolphin-emu/dolphin.', 'full_name': 'ligfx/dolphin', 'branches_url': 'https://api.github.com/repos/ligfx/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/ligfx/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/ligfx/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:ligfx/dolphin.git', 'pulls_url': 'https://api.github.com/repos/ligfx/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/ligfx/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/ligfx/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T06:06:49Z', 'assignees_url': 'https://api.github.com/repos/ligfx/dolphin/assignees{/user}', 'updated_at': '2017-05-17T22:06:54Z', 'fork': True, 'tags_url': 'https://api.github.com/repos/ligfx/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/ligfx/dolphin/keys{/key_id}', 'default_branch': 'ligfx', 'open_issues_count': 0, 'private': False, 'forks_count': 0, 'git_refs_url': 'https://api.github.com/repos/ligfx/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/ligfx/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/ligfx/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/ligfx/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/ligfx/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/ligfx/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/ligfx/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/ligfx/dolphin/teams', 'has_projects': True, 'issues_url': 'https://api.github.com/repos/ligfx/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/ligfx/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/ligfx/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/594093?v=4', 'url': 'https://api.github.com/users/ligfx', 'gravatar_id': '', 'html_url': 'https://github.com/ligfx', 'id': 594093, 'repos_url': 'https://api.github.com/users/ligfx/repos', 'events_url': 'https://api.github.com/users/ligfx/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/ligfx/subscriptions', 'starred_url': 'https://api.github.com/users/ligfx/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/ligfx/following{/other_user}', 'login': 'ligfx', 'received_events_url': 'https://api.github.com/users/ligfx/received_events', 'followers_url': 'https://api.github.com/users/ligfx/followers', 'organizations_url': 'https://api.github.com/users/ligfx/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/ligfx/dolphin', 'languages_url': 'https://api.github.com/repos/ligfx/dolphin/languages', 'id': 65220721, 'archived': False, 'merges_url': 'https://api.github.com/repos/ligfx/dolphin/merges', 'clone_url': 'https://github.com/ligfx/dolphin.git', 'comments_url': 'https://api.github.com/repos/ligfx/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/ligfx/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/ligfx/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/ligfx/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/ligfx/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 311851, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/ligfx/dolphin/git/trees{/sha}', 'open_issues': 0, 'stargazers_count': 0, 'milestones_url': 'https://api.github.com/repos/ligfx/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ligfx/dolphin/notifications{?since,all,participating}', 'watchers': 0, 'forks': 0, 'issue_events_url': 'https://api.github.com/repos/ligfx/dolphin/issues/events{/number}', 'has_issues': False}}, 'author_association': 'CONTRIBUTOR', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6133.diff', '_links': {'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/b031d3316c64718b383e6339c4a6c12176bff4cb'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6133/comments'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6133'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6133'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6133/commits'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6133/comments'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6133'}}, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6133/commits', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6133.patch', 'title': 'AudioCommon: rename ClearAudioBuffer(mute) to SetSoundStreamRunning(running)'}}, 'type': 'raw_gh_hook', 'source': 'webserver'}
2017-10-22T11:17:10.478103	{'gh_type': 'pull_request_review_comment', 'raw': {'action': 'created', 'sender': {'gists_url': 'https://api.github.com/users/MerryMage/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/8682882?v=4', 'url': 'https://api.github.com/users/MerryMage', 'gravatar_id': '', 'html_url': 'https://github.com/MerryMage', 'id': 8682882, 'repos_url': 'https://api.github.com/users/MerryMage/repos', 'events_url': 'https://api.github.com/users/MerryMage/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/MerryMage/subscriptions', 'starred_url': 'https://api.github.com/users/MerryMage/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/MerryMage/following{/other_user}', 'login': 'MerryMage', 'received_events_url': 'https://api.github.com/users/MerryMage/received_events', 'followers_url': 'https://api.github.com/users/MerryMage/followers', 'organizations_url': 'https://api.github.com/users/MerryMage/orgs', 'type': 'User'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3764, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T06:56:14Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T03:32:41Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 142, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349160, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 142, 'stargazers_count': 3764, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3764, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'comment': {'commit_id': 'c4fa13f72d83359041f87f84c7d02136d4999c1e', 'diff_hunk': '@@ -101,12 +103,12 @@ union SamplerState\n   BitField<2, 1, Filter> mipmap_filter;\n   BitField<3, 2, AddressMode> wrap_u;\n   BitField<5, 2, AddressMode> wrap_v;\n-  BitField<7, 8, u32> min_lod;    // multiplied by 16\n-  BitField<15, 8, u32> max_lod;   // multiplied by 16\n-  BitField<23, 8, s32> lod_bias;  // multiplied by 32\n-  BitField<31, 1, u32> anisotropic_filtering;\n+  BitField<7, 16, s32> lod_bias;              // multiplied by 256\n+  BitField<23, 8, u32> min_lod;               // multiplied by 16\n+  BitField<31, 8, u32, StorageType> max_lod;  // multiplied by 16', 'created_at': '2017-10-22T11:17:08Z', 'user': {'gists_url': 'https://api.github.com/users/MerryMage/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/8682882?v=4', 'url': 'https://api.github.com/users/MerryMage', 'gravatar_id': '', 'html_url': 'https://github.com/MerryMage', 'id': 8682882, 'repos_url': 'https://api.github.com/users/MerryMage/repos', 'events_url': 'https://api.github.com/users/MerryMage/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/MerryMage/subscriptions', 'starred_url': 'https://api.github.com/users/MerryMage/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/MerryMage/following{/other_user}', 'login': 'MerryMage', 'received_events_url': 'https://api.github.com/users/MerryMage/received_events', 'followers_url': 'https://api.github.com/users/MerryMage/followers', 'organizations_url': 'https://api.github.com/users/MerryMage/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146128540', 'position': 19, 'pull_request_review_id': 71030206, 'updated_at': '2017-10-22T11:17:08Z', 'id': 146128540, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118', 'author_association': 'MEMBER', 'original_position': 19, 'body': 'This is likely to invoke undefined behaviour when these members are accessed. `max_lod` and `anisotropic_filtering` are not layout-compatible with the other members of this `union`.', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146128540', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6118#discussion_r146128540'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/146128540'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118'}}, 'original_commit_id': 'c4fa13f72d83359041f87f84c7d02136d4999c1e', 'path': 'Source/Core/VideoCommon/RenderState.h'}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}, 'pull_request': {'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118/comments', 'locked': False, 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'merge_commit_sha': '2374a2e9497b2ab7c321b53e07aaecbeea10cb86', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118', 'requested_reviewers': [], 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6118', 'id': 146681228, 'milestone': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118/comments', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118', 'assignees': [], 'created_at': '2017-10-16T01:35:10Z', 'body': "Super Mario Galaxy renders fog and various other effects like lava and water by tinting higher mipmap levels.\r\nThis is a neat trick and all, but it means that by letting the host GPU handle mipmaps at resolutions higher than the wii could output (and especially by activating anisotropic filtering), the effect breaks down because the mipmaps get pushed much farther down from the camera than originally intended. In fact they almost disappear!\r\n\r\nBefore (6x IR):\r\n\r\n![00000000-3](https://user-images.githubusercontent.com/553214/31591619-402b7a76-b1d6-11e7-84ae-d3486e12f5d1.png)\r\n\r\nNote how the background star, lava and the reflections in the Starbits ice things are broken.\r\n\r\nWith the hack enabled (still 6x IR):\r\n![00000000-2](https://user-images.githubusercontent.com/553214/31591634-6fd44668-b1d6-11e7-9910-7ff3b765dae1.png)\r\n\r\nSo to fix this I did a bunch of things:\r\n- Added a checkbox in Graphics/Hacks. I added it as an Hack because the downside of this fix is that with this enabled lower LODs show unnecessarily closer! In any game that doesn't use LOD tricks, this causes blurrier textures (although more accurate to the original!)\r\nThis option is auto-disabled at 1x IR.\r\n- When the option is on, instead of using the native texture read functions, all shaders (normal and uber) go through a `texture_read` function. `texture_read` selects the LOD level by hand so that it can scale the ddx/ddy by the IR scale and get an approximation of the original values on real consoles. This is not super precise, I guess, along borders (where the gradients change quickly) but overall it seems to work pretty well! \r\nNote that the new function is also slower, because it has to compute the levels by hand! I couldn't see any real slowdown when playing on my computer, though.\r\n- When the option is on, it completely disables Anisotropic Filtering as well. Besides the fact that `textureLod` ignores it, Anisotropic is another effect that greatly pushes LODs out so you don't want to use it either.\r\n- Enabled that option by default in Super Mario Galaxy 1 & 2, because I think it makes no sense to play them at higher IR with broken graphics. Most textures don't seem to have more than 1 mipmaps anyway, except the ones used this way. weird.\r\n- Fixed a typo :D\r\n\r\nLet me know what you think!\r\n\r\n", 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/c4fa13f72d83359041f87f84c7d02136d4999c1e', 'base': {'user': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'ref': 'master', 'sha': '774fca4d019b788089f4a0d456e9c0ee12d9e214', 'label': 'dolphin-emu:master', 'repo': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3764, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T06:56:14Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T03:32:41Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 142, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349160, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 142, 'stargazers_count': 3764, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3764, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}}, 'merged_at': None, 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/Tomcc/gists{/gist_id}', 'avatar_url': 'https://avatars3.githubusercontent.com/u/553214?v=4', 'url': 'https://api.github.com/users/Tomcc', 'gravatar_id': '', 'html_url': 'https://github.com/Tomcc', 'id': 553214, 'repos_url': 'https://api.github.com/users/Tomcc/repos', 'events_url': 'https://api.github.com/users/Tomcc/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/Tomcc/subscriptions', 'starred_url': 'https://api.github.com/users/Tomcc/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/Tomcc/following{/other_user}', 'login': 'Tomcc', 'received_events_url': 'https://api.github.com/users/Tomcc/received_events', 'followers_url': 'https://api.github.com/users/Tomcc/followers', 'organizations_url': 'https://api.github.com/users/Tomcc/orgs', 'type': 'User'}, 'number': 6118, 'assignee': None, 'updated_at': '2017-10-22T11:17:08Z', 'state': 'open', 'head': {'user': {'gists_url': 'https://api.github.com/users/Tomcc/gists{/gist_id}', 'avatar_url': 'https://avatars3.githubusercontent.com/u/553214?v=4', 'url': 'https://api.github.com/users/Tomcc', 'gravatar_id': '', 'html_url': 'https://github.com/Tomcc', 'id': 553214, 'repos_url': 'https://api.github.com/users/Tomcc/repos', 'events_url': 'https://api.github.com/users/Tomcc/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/Tomcc/subscriptions', 'starred_url': 'https://api.github.com/users/Tomcc/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/Tomcc/following{/other_user}', 'login': 'Tomcc', 'received_events_url': 'https://api.github.com/users/Tomcc/received_events', 'followers_url': 'https://api.github.com/users/Tomcc/followers', 'organizations_url': 'https://api.github.com/users/Tomcc/orgs', 'type': 'User'}, 'ref': 'master', 'sha': 'c4fa13f72d83359041f87f84c7d02136d4999c1e', 'label': 'Tomcc:master', 'repo': {'compare_url': 'https://api.github.com/repos/Tomcc/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/Tomcc/dolphin/releases{/id}', 'created_at': '2017-10-15T02:55:38Z', 'labels_url': 'https://api.github.com/repos/Tomcc/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/Tomcc/dolphin/statuses/{sha}', 'git_url': 'git://github.com/Tomcc/dolphin.git', 'html_url': 'https://github.com/Tomcc/dolphin', 'subscribers_url': 'https://api.github.com/repos/Tomcc/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/Tomcc/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 0, 'svn_url': 'https://github.com/Tomcc/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'Tomcc/dolphin', 'branches_url': 'https://api.github.com/repos/Tomcc/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/Tomcc/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/Tomcc/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:Tomcc/dolphin.git', 'pulls_url': 'https://api.github.com/repos/Tomcc/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/Tomcc/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/Tomcc/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T06:56:12Z', 'assignees_url': 'https://api.github.com/repos/Tomcc/dolphin/assignees{/user}', 'updated_at': '2017-10-15T02:56:05Z', 'fork': True, 'tags_url': 'https://api.github.com/repos/Tomcc/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/Tomcc/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 0, 'private': False, 'forks_count': 0, 'git_refs_url': 'https://api.github.com/repos/Tomcc/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/Tomcc/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/Tomcc/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/Tomcc/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/Tomcc/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/Tomcc/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/Tomcc/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/Tomcc/dolphin/teams', 'has_projects': True, 'issues_url': 'https://api.github.com/repos/Tomcc/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/Tomcc/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/Tomcc/gists{/gist_id}', 'avatar_url': 'https://avatars3.githubusercontent.com/u/553214?v=4', 'url': 'https://api.github.com/users/Tomcc', 'gravatar_id': '', 'html_url': 'https://github.com/Tomcc', 'id': 553214, 'repos_url': 'https://api.github.com/users/Tomcc/repos', 'events_url': 'https://api.github.com/users/Tomcc/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/Tomcc/subscriptions', 'starred_url': 'https://api.github.com/users/Tomcc/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/Tomcc/following{/other_user}', 'login': 'Tomcc', 'received_events_url': 'https://api.github.com/users/Tomcc/received_events', 'followers_url': 'https://api.github.com/users/Tomcc/followers', 'organizations_url': 'https://api.github.com/users/Tomcc/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/Tomcc/dolphin', 'languages_url': 'https://api.github.com/repos/Tomcc/dolphin/languages', 'id': 106979123, 'archived': False, 'merges_url': 'https://api.github.com/repos/Tomcc/dolphin/merges', 'clone_url': 'https://github.com/Tomcc/dolphin.git', 'comments_url': 'https://api.github.com/repos/Tomcc/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/Tomcc/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/Tomcc/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/Tomcc/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/Tomcc/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 311448, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/Tomcc/dolphin/git/trees{/sha}', 'open_issues': 0, 'stargazers_count': 0, 'milestones_url': 'https://api.github.com/repos/Tomcc/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Tomcc/dolphin/notifications{?since,all,participating}', 'watchers': 0, 'forks': 0, 'issue_events_url': 'https://api.github.com/repos/Tomcc/dolphin/issues/events{/number}', 'has_issues': False}}, 'author_association': 'NONE', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6118.diff', '_links': {'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/c4fa13f72d83359041f87f84c7d02136d4999c1e'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118/comments'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118/commits'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118/comments'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6118'}}, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118/commits', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6118.patch', 'title': 'Resolution independent mipmaps (high IR Super Mario Galaxy Fix)'}}, 'type': 'raw_gh_hook', 'source': 'webserver'}
2017-10-22T11:17:10.473882	{'gh_type': 'pull_request_review', 'raw': {'action': 'submitted', 'sender': {'gists_url': 'https://api.github.com/users/MerryMage/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/8682882?v=4', 'url': 'https://api.github.com/users/MerryMage', 'gravatar_id': '', 'html_url': 'https://github.com/MerryMage', 'id': 8682882, 'repos_url': 'https://api.github.com/users/MerryMage/repos', 'events_url': 'https://api.github.com/users/MerryMage/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/MerryMage/subscriptions', 'starred_url': 'https://api.github.com/users/MerryMage/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/MerryMage/following{/other_user}', 'login': 'MerryMage', 'received_events_url': 'https://api.github.com/users/MerryMage/received_events', 'followers_url': 'https://api.github.com/users/MerryMage/followers', 'organizations_url': 'https://api.github.com/users/MerryMage/orgs', 'type': 'User'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3764, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T06:56:14Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T03:32:41Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 142, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349160, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 142, 'stargazers_count': 3764, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3764, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}, 'review': {'commit_id': 'c4fa13f72d83359041f87f84c7d02136d4999c1e', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6118#pullrequestreview-71030206'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118'}}, 'user': {'gists_url': 'https://api.github.com/users/MerryMage/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/8682882?v=4', 'url': 'https://api.github.com/users/MerryMage', 'gravatar_id': '', 'html_url': 'https://github.com/MerryMage', 'id': 8682882, 'repos_url': 'https://api.github.com/users/MerryMage/repos', 'events_url': 'https://api.github.com/users/MerryMage/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/MerryMage/subscriptions', 'starred_url': 'https://api.github.com/users/MerryMage/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/MerryMage/following{/other_user}', 'login': 'MerryMage', 'received_events_url': 'https://api.github.com/users/MerryMage/received_events', 'followers_url': 'https://api.github.com/users/MerryMage/followers', 'organizations_url': 'https://api.github.com/users/MerryMage/orgs', 'type': 'User'}, 'state': 'commented', 'submitted_at': '2017-10-22T11:17:08Z', 'body': None, 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6118#pullrequestreview-71030206', 'id': 71030206, 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118', 'author_association': 'MEMBER'}, 'pull_request': {'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118/comments', 'locked': False, 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'merge_commit_sha': '2374a2e9497b2ab7c321b53e07aaecbeea10cb86', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118', 'requested_reviewers': [], 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6118', 'id': 146681228, 'milestone': None, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118/comments', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118', 'assignees': [], 'created_at': '2017-10-16T01:35:10Z', 'body': "Super Mario Galaxy renders fog and various other effects like lava and water by tinting higher mipmap levels.\r\nThis is a neat trick and all, but it means that by letting the host GPU handle mipmaps at resolutions higher than the wii could output (and especially by activating anisotropic filtering), the effect breaks down because the mipmaps get pushed much farther down from the camera than originally intended. In fact they almost disappear!\r\n\r\nBefore (6x IR):\r\n\r\n![00000000-3](https://user-images.githubusercontent.com/553214/31591619-402b7a76-b1d6-11e7-84ae-d3486e12f5d1.png)\r\n\r\nNote how the background star, lava and the reflections in the Starbits ice things are broken.\r\n\r\nWith the hack enabled (still 6x IR):\r\n![00000000-2](https://user-images.githubusercontent.com/553214/31591634-6fd44668-b1d6-11e7-9910-7ff3b765dae1.png)\r\n\r\nSo to fix this I did a bunch of things:\r\n- Added a checkbox in Graphics/Hacks. I added it as an Hack because the downside of this fix is that with this enabled lower LODs show unnecessarily closer! In any game that doesn't use LOD tricks, this causes blurrier textures (although more accurate to the original!)\r\nThis option is auto-disabled at 1x IR.\r\n- When the option is on, instead of using the native texture read functions, all shaders (normal and uber) go through a `texture_read` function. `texture_read` selects the LOD level by hand so that it can scale the ddx/ddy by the IR scale and get an approximation of the original values on real consoles. This is not super precise, I guess, along borders (where the gradients change quickly) but overall it seems to work pretty well! \r\nNote that the new function is also slower, because it has to compute the levels by hand! I couldn't see any real slowdown when playing on my computer, though.\r\n- When the option is on, it completely disables Anisotropic Filtering as well. Besides the fact that `textureLod` ignores it, Anisotropic is another effect that greatly pushes LODs out so you don't want to use it either.\r\n- Enabled that option by default in Super Mario Galaxy 1 & 2, because I think it makes no sense to play them at higher IR with broken graphics. Most textures don't seem to have more than 1 mipmaps anyway, except the ones used this way. weird.\r\n- Fixed a typo :D\r\n\r\nLet me know what you think!\r\n\r\n", 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/c4fa13f72d83359041f87f84c7d02136d4999c1e', 'base': {'user': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'ref': 'master', 'sha': '774fca4d019b788089f4a0d456e9c0ee12d9e214', 'label': 'dolphin-emu:master', 'repo': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3764, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T06:56:14Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T03:32:41Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 142, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349160, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 142, 'stargazers_count': 3764, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3764, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}}, 'merged_at': None, 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/Tomcc/gists{/gist_id}', 'avatar_url': 'https://avatars3.githubusercontent.com/u/553214?v=4', 'url': 'https://api.github.com/users/Tomcc', 'gravatar_id': '', 'html_url': 'https://github.com/Tomcc', 'id': 553214, 'repos_url': 'https://api.github.com/users/Tomcc/repos', 'events_url': 'https://api.github.com/users/Tomcc/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/Tomcc/subscriptions', 'starred_url': 'https://api.github.com/users/Tomcc/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/Tomcc/following{/other_user}', 'login': 'Tomcc', 'received_events_url': 'https://api.github.com/users/Tomcc/received_events', 'followers_url': 'https://api.github.com/users/Tomcc/followers', 'organizations_url': 'https://api.github.com/users/Tomcc/orgs', 'type': 'User'}, 'number': 6118, 'assignee': None, 'updated_at': '2017-10-22T11:17:08Z', 'state': 'open', 'head': {'user': {'gists_url': 'https://api.github.com/users/Tomcc/gists{/gist_id}', 'avatar_url': 'https://avatars3.githubusercontent.com/u/553214?v=4', 'url': 'https://api.github.com/users/Tomcc', 'gravatar_id': '', 'html_url': 'https://github.com/Tomcc', 'id': 553214, 'repos_url': 'https://api.github.com/users/Tomcc/repos', 'events_url': 'https://api.github.com/users/Tomcc/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/Tomcc/subscriptions', 'starred_url': 'https://api.github.com/users/Tomcc/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/Tomcc/following{/other_user}', 'login': 'Tomcc', 'received_events_url': 'https://api.github.com/users/Tomcc/received_events', 'followers_url': 'https://api.github.com/users/Tomcc/followers', 'organizations_url': 'https://api.github.com/users/Tomcc/orgs', 'type': 'User'}, 'ref': 'master', 'sha': 'c4fa13f72d83359041f87f84c7d02136d4999c1e', 'label': 'Tomcc:master', 'repo': {'compare_url': 'https://api.github.com/repos/Tomcc/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/Tomcc/dolphin/releases{/id}', 'created_at': '2017-10-15T02:55:38Z', 'labels_url': 'https://api.github.com/repos/Tomcc/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/Tomcc/dolphin/statuses/{sha}', 'git_url': 'git://github.com/Tomcc/dolphin.git', 'html_url': 'https://github.com/Tomcc/dolphin', 'subscribers_url': 'https://api.github.com/repos/Tomcc/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/Tomcc/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 0, 'svn_url': 'https://github.com/Tomcc/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'Tomcc/dolphin', 'branches_url': 'https://api.github.com/repos/Tomcc/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/Tomcc/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/Tomcc/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:Tomcc/dolphin.git', 'pulls_url': 'https://api.github.com/repos/Tomcc/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/Tomcc/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/Tomcc/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T06:56:12Z', 'assignees_url': 'https://api.github.com/repos/Tomcc/dolphin/assignees{/user}', 'updated_at': '2017-10-15T02:56:05Z', 'fork': True, 'tags_url': 'https://api.github.com/repos/Tomcc/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/Tomcc/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 0, 'private': False, 'forks_count': 0, 'git_refs_url': 'https://api.github.com/repos/Tomcc/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/Tomcc/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/Tomcc/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/Tomcc/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/Tomcc/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/Tomcc/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/Tomcc/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/Tomcc/dolphin/teams', 'has_projects': True, 'issues_url': 'https://api.github.com/repos/Tomcc/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/Tomcc/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/Tomcc/gists{/gist_id}', 'avatar_url': 'https://avatars3.githubusercontent.com/u/553214?v=4', 'url': 'https://api.github.com/users/Tomcc', 'gravatar_id': '', 'html_url': 'https://github.com/Tomcc', 'id': 553214, 'repos_url': 'https://api.github.com/users/Tomcc/repos', 'events_url': 'https://api.github.com/users/Tomcc/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/Tomcc/subscriptions', 'starred_url': 'https://api.github.com/users/Tomcc/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/Tomcc/following{/other_user}', 'login': 'Tomcc', 'received_events_url': 'https://api.github.com/users/Tomcc/received_events', 'followers_url': 'https://api.github.com/users/Tomcc/followers', 'organizations_url': 'https://api.github.com/users/Tomcc/orgs', 'type': 'User'}, 'url': 'https://api.github.com/repos/Tomcc/dolphin', 'languages_url': 'https://api.github.com/repos/Tomcc/dolphin/languages', 'id': 106979123, 'archived': False, 'merges_url': 'https://api.github.com/repos/Tomcc/dolphin/merges', 'clone_url': 'https://github.com/Tomcc/dolphin.git', 'comments_url': 'https://api.github.com/repos/Tomcc/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/Tomcc/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/Tomcc/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/Tomcc/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/Tomcc/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 311448, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/Tomcc/dolphin/git/trees{/sha}', 'open_issues': 0, 'stargazers_count': 0, 'milestones_url': 'https://api.github.com/repos/Tomcc/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Tomcc/dolphin/notifications{?since,all,participating}', 'watchers': 0, 'forks': 0, 'issue_events_url': 'https://api.github.com/repos/Tomcc/dolphin/issues/events{/number}', 'has_issues': False}}, 'author_association': 'NONE', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6118.diff', '_links': {'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/c4fa13f72d83359041f87f84c7d02136d4999c1e'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118/comments'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118'}, 'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118/commits'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118/comments'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/6118'}}, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118/commits', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6118.patch', 'title': 'Resolution independent mipmaps (high IR Super Mario Galaxy Fix)'}}, 'type': 'raw_gh_hook', 'source': 'webserver'}
2017-10-22T09:33:21.516485	{'gh_type': 'issue_comment', 'raw': {'action': 'created', 'sender': {'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6598209?v=4', 'url': 'https://api.github.com/users/JMC47', 'gravatar_id': '', 'html_url': 'https://github.com/JMC47', 'id': 6598209, 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'login': 'JMC47', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'type': 'User'}, 'issue': {'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6118', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118/labels{/name}', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118', 'milestone': None, 'locked': False, 'id': 265624046, 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118/comments', 'assignees': [], 'created_at': '2017-10-16T01:35:10Z', 'body': "Super Mario Galaxy renders fog and various other effects like lava and water by tinting higher mipmap levels.\r\nThis is a neat trick and all, but it means that by letting the host GPU handle mipmaps at resolutions higher than the wii could output (and especially by activating anisotropic filtering), the effect breaks down because the mipmaps get pushed much farther down from the camera than originally intended. In fact they almost disappear!\r\n\r\nBefore (6x IR):\r\n\r\n![00000000-3](https://user-images.githubusercontent.com/553214/31591619-402b7a76-b1d6-11e7-84ae-d3486e12f5d1.png)\r\n\r\nNote how the background star, lava and the reflections in the Starbits ice things are broken.\r\n\r\nWith the hack enabled (still 6x IR):\r\n![00000000-2](https://user-images.githubusercontent.com/553214/31591634-6fd44668-b1d6-11e7-9910-7ff3b765dae1.png)\r\n\r\nSo to fix this I did a bunch of things:\r\n- Added a checkbox in Graphics/Hacks. I added it as an Hack because the downside of this fix is that with this enabled lower LODs show unnecessarily closer! In any game that doesn't use LOD tricks, this causes blurrier textures (although more accurate to the original!)\r\nThis option is auto-disabled at 1x IR.\r\n- When the option is on, instead of using the native texture read functions, all shaders (normal and uber) go through a `texture_read` function. `texture_read` selects the LOD level by hand so that it can scale the ddx/ddy by the IR scale and get an approximation of the original values on real consoles. This is not super precise, I guess, along borders (where the gradients change quickly) but overall it seems to work pretty well! \r\nNote that the new function is also slower, because it has to compute the levels by hand! I couldn't see any real slowdown when playing on my computer, though.\r\n- When the option is on, it completely disables Anisotropic Filtering as well. Besides the fact that `textureLod` ignores it, Anisotropic is another effect that greatly pushes LODs out so you don't want to use it either.\r\n- Enabled that option by default in Super Mario Galaxy 1 & 2, because I think it makes no sense to play them at higher IR with broken graphics. Most textures don't seem to have more than 1 mipmaps anyway, except the ones used this way. weird.\r\n- Fixed a typo :D\r\n\r\nLet me know what you think!\r\n\r\n", 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118/events', 'closed_at': None, 'user': {'gists_url': 'https://api.github.com/users/Tomcc/gists{/gist_id}', 'avatar_url': 'https://avatars3.githubusercontent.com/u/553214?v=4', 'url': 'https://api.github.com/users/Tomcc', 'gravatar_id': '', 'html_url': 'https://github.com/Tomcc', 'id': 553214, 'repos_url': 'https://api.github.com/users/Tomcc/repos', 'events_url': 'https://api.github.com/users/Tomcc/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/Tomcc/subscriptions', 'starred_url': 'https://api.github.com/users/Tomcc/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/Tomcc/following{/other_user}', 'login': 'Tomcc', 'received_events_url': 'https://api.github.com/users/Tomcc/received_events', 'followers_url': 'https://api.github.com/users/Tomcc/followers', 'organizations_url': 'https://api.github.com/users/Tomcc/orgs', 'type': 'User'}, 'number': 6118, 'assignee': None, 'comments': 73, 'updated_at': '2017-10-22T09:33:20Z', 'state': 'open', 'pull_request': {'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/6118.diff', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6118', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/6118.patch', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/6118'}, 'author_association': 'NONE', 'labels': [], 'title': 'Resolution independent mipmaps (high IR Super Mario Galaxy Fix)'}, 'comment': {'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/6118', 'created_at': '2017-10-22T09:33:20Z', 'user': {'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6598209?v=4', 'url': 'https://api.github.com/users/JMC47', 'gravatar_id': '', 'html_url': 'https://github.com/JMC47', 'id': 6598209, 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'login': 'JMC47', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'type': 'User'}, 'updated_at': '2017-10-22T09:33:20Z', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/338464097', 'body': '@dolphin-emu-bot rebuild', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/6118#issuecomment-338464097', 'id': 338464097, 'author_association': 'CONTRIBUTOR'}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3764, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'full_name': 'dolphin-emu/dolphin', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'name': 'dolphin', 'pushed_at': '2017-10-22T06:56:14Z', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'updated_at': '2017-10-22T03:32:41Z', 'fork': False, 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'has_downloads': True, 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'default_branch': 'master', 'open_issues_count': 142, 'private': False, 'forks_count': 951, 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'has_projects': False, 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'owner': {'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'url': 'https://api.github.com/users/dolphin-emu', 'gravatar_id': '', 'html_url': 'https://github.com/dolphin-emu', 'id': 5050316, 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'login': 'dolphin-emu', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'type': 'Organization'}, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'id': 11577304, 'archived': False, 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'language': 'C++', 'has_pages': False, 'size': 349160, 'mirror_url': None, 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'open_issues': 142, 'stargazers_count': 3764, 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'watchers': 3764, 'forks': 951, 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'has_issues': False}, 'organization': {'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'url': 'https://api.github.com/orgs/dolphin-emu', 'login': 'dolphin-emu', 'description': '', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5050316?v=4', 'id': 5050316, 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}'}}, 'type': 'raw_gh_hook', 'source': 'webserver'}
2017-10-22T09:08:05.652472	{'gh_type': 'pull_request_review_comment', 'raw': {'action': 'edited', 'sender': {'gists_url': 'https://api.github.com/users/lioncash/gists{/gist_id}', 'avatar_url': 'https://avatars1.githubusercontent.com/u/712067?v=4', 'url': 'https://api.github.com/users/lioncash', 'gravatar_id': '', 'html_url': 'https://github.com/lioncash', 'id': 712067, 'repos_url': 'https://api.github.com/users/lioncash/repos', 'events_url': 'https://api.github.com/users/lioncash/events{/privacy}', 'site_admin': False, 'subscriptions_url': 'https://api.github.com/users/lioncash/subscriptions', 'starred_url': 'https://api.github.com/users/lioncash/starred{/owner}{/repo}', 'following_url': 'https://api.github.com/users/lioncash/following{/other_user}', 'login': 'lioncash', 'received_events_url': 'https://api.github.com/users/lioncash/received_events', 'followers_url': 'https://api.github.com/users/lioncash/followers', 'organizations_url': 'https://api.github.com/users/lioncash/orgs', 'type': 'User'}, 'changes': {'body': {'from': '[Wall of standardese part deux]\r\n\r\n> My feeling is `memcpy` may be fast but it\'s still slower than not doing it at all.\r\n\r\nNot always, that\'s why I said, it depends on your scenario. 99% of the time it will [optimize away](https://godbolt.org/g/X4S13K) (If you want to lose your faith in MSVC a litte, assuming there\'s any still left, memcpy is actually better than manually shifting out the bytes from u8 data). Similar to how 99% of the time invocations of the undefined-behavior equivalent doesn\'t do anything wrong.\r\n\r\nIf it\'s a case where it demonstrably underperforms (as in no preconceived assumptions were made about the function, the assembly was actually looked at). Aside from calling the organization/design of the data and interface into question, you can use `offsetof` to get the struct offset of the member and then use that relative to your data buffer, and memcpy it out which may be better. Ditto if it\'s a buffer you need to put data into and opposed to read out of.\r\n\r\n> Yes, a \'struct overlay\' might be undefined behavior but imo things change all the time ...\r\n\r\nWhen you target a standard version. That undefined behavior doesn\'t change. Being negligent just because a problem hasn\'t already happened is not really that great an outlook to have (IMO), not only on undefined behavior. Doubly so, if it\'s related to software where others can be put at risk by it malfunctioning. It\'s an *entirely* preventable potential problem. This also causes more unnecessary work, should a problem occur.\r\n\r\nAlso, if those tests happen to invoke undefined behavior as well through the same manner, or through some other means, then I have bad news about the total reliability of those tests ;)\r\n\r\n> Unions seem reasonable but I was not aware accessing the non-last-set member is undefined behavior, isn\'t this a problem?\r\n\r\nIn C++, it depends, there are special allowances (I\'ll explain this later on). In C99 and C11, no, it\'s explicitly allowed, *however* it\'s allowed to trap, so you need to make sure you handle your data correctly depending on the platforms you target. This is specified in footnote 82 of the C99 standard. In the C11 standard, it\'s renumbered to footnote 92:\r\n\r\n> If the member used to access the contents of a union object is not the same as the member last used to store a value in the object, the appropriate part of the object representation of the value is reinterpreted as an object representation in the new type as described in 6.2.6 (a process sometimes called "type punning"). This might be a trap representation.\r\n\r\nNow, in C++ (and C as well), you are allowed to inspect a non-static member of an inactive struct in a *standard layout* union if and only if it shares a common initial sequence with the active struct in a union. This is specified in 9.3 ([class.union]) paragraph 1 in the C++17 standard:\r\n\r\n> In a union, at most one of the non-static data members can be active at any time, that is, the value of at most one of the non-static data members can be stored in a union at any time. [ *Note*: One special guarantee is made in order to simplify the use of unions: If a standard-layout union contains several standard-layout structs that share a common initial sequence (9.2), and if an object of this standard-layout union type contains one of the standard-layout structs, it is permitted to inspect the common initial sequence of any of standard-layout struct members; see 9.2. —*end note* ]\r\n\r\n9.2 ([class.mem]) paragraph 23 also says:\r\n\r\n> In a standard-layout union with an active member (9.3) of struct type `T1`, it is permitted to read a non-static data member `m` of another union member of struct type `T2` provided m is part of the common initial sequence of `T1` and `T2`. [ *Note*: Reading a volatile object through a non-volatile glvalue has undefined behavior (7.1.6.1). —*end note* ]\r\n\r\nNow, a *common initial sequence* is described as follows at 9.2 ([class.mem]) paragraph 20 in the C++17 standard:\r\n\r\n> The common initial sequence of two standard-layout struct (Clause 9) types is the longest sequence of non-static data members and bit-fields in declaration order, starting with the first such entity in each of the structs, such that corresponding entities have layout-compatible types and either neither entity is a bit-field or both are bit-fields with the same width. [ *Example:*\r\n> ```\r\n> struct A { int a; char b; };\r\n> struct B { const int b1; volatile char b2; };\r\n> struct C { int c; unsigned : 0; char b; };\r\n> struct D { int d; char b : 4; };\r\n> struct E { unsigned int e; char b; };\r\n> ```\r\n>The common initial sequence of `A` and `B` comprises all members of either class. The common initial sequence of `A` and `C` and of `A` and `D` comprises the first member in each case. The common initial sequence of `A` and `E` is empty. —*end example* ]\r\n\r\nWhat this means is if you have two structs that are like so:\r\n\r\n```cpp\r\nstruct A\r\n{\r\n  uint8_t a;\r\n  uint16_t b;\r\n  uint32_t c;\r\n};\r\n\r\nstruct B\r\n{\r\n  uint8_t a;\r\n  uint16_t b;\r\n  uint32_t c;\r\n  uint64_t d;\r\n}\r\n```\r\n\r\nit\'s permissible to have a union like so:\r\n\r\n```cpp\r\nunion U\r\n{\r\n  A x;\r\n  B y;\r\n};\r\n```\r\n\r\nand inspect `a`, `b`, or `c` from either structs `A` or `B` regardless of their activity status in the union. *However* if `A` is active, it\'s undefined to access `B`\'s member `d`.\r\n\r\n\r\n> I\'m curious though, what solution do you prefer?\r\n\r\nIdeally, I don\'t put myself in a situation where I need to reinterpret data like that. It\'s usually an indicator of a flawed interface most of the time. However, when I do need to reinterpret data I use `memcpy` because it\'s the one that\'s least likely to screw up.\r\n'}}, 'repository': {'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'created_at': '2013-07-22T09:07:57Z', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'html_url': 'https://github.com/dolphin-emu/dolphin', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'has_wiki': True, 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'homepage': 'https://dolphin-emu.org/', 'watchers_count': 3764, 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two