{"action":"created","issue":{"url":"https://api.github.com/repos/PCSX2/pcsx2/issues/796","labels_url":"https://api.github.com/repos/PCSX2/pcsx2/issues/796/labels{/name}","comments_url":"https://api.github.com/repos/PCSX2/pcsx2/issues/796/comments","events_url":"https://api.github.com/repos/PCSX2/pcsx2/issues/796/events","html_url":"https://github.com/PCSX2/pcsx2/issues/796","id":103594329,"number":796,"title":"[Feature request] GSdx: detect supported instruction sets on runtime.","user":{"login":"willkuer","id":11938782,"avatar_url":"https://avatars.githubusercontent.com/u/11938782?v=3","gravatar_id":"","url":"https://api.github.com/users/willkuer","html_url":"https://github.com/willkuer","followers_url":"https://api.github.com/users/willkuer/followers","following_url":"https://api.github.com/users/willkuer/following{/other_user}","gists_url":"https://api.github.com/users/willkuer/gists{/gist_id}","starred_url":"https://api.github.com/users/willkuer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/willkuer/subscriptions","organizations_url":"https://api.github.com/users/willkuer/orgs","repos_url":"https://api.github.com/users/willkuer/repos","events_url":"https://api.github.com/users/willkuer/events{/privacy}","received_events_url":"https://api.github.com/users/willkuer/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":10,"created_at":"2015-08-27T21:00:41Z","updated_at":"2015-09-05T09:06:28Z","closed_at":null,"body":"Current implementation creates five different forks of the same code using sse2, ssse3, sse4.1, avx, avx2 which are selected at build time. The user then can choose one of these plugins during runtime. Unfortunately most user don't know anything about instruction sets and are puzzled which of these five plugins is the best.\r\n\r\nWould it be possible to merge all forks into one and outsource only the instruction set dependent part interfacing necessary functions which then gets dynamically loaded at runtime?\r\n\r\nI don't know how the structure of gsdx is and where the instruction codes make the difference but I would believe oop should enable such a possibility. I would even believe due to maintainability reasons you should already have every implemented...\r\n\r\nThe advantages are:\r\nSimplification of plugin selection.\r\nPossibly easier introduction of new/other promising instruction sets.\r\n\r\nDisadvantages are most probably:\r\nIncreased code complexicity\r\nStealing time of developers for more important stuff."},"comment":{"url":"https://api.github.com/repos/PCSX2/pcsx2/issues/comments/137934914","html_url":"https://github.com/PCSX2/pcsx2/issues/796#issuecomment-137934914","issue_url":"https://api.github.com/repos/PCSX2/pcsx2/issues/796","id":137934914,"user":{"login":"gregory38","id":1569559,"avatar_url":"https://avatars.githubusercontent.com/u/1569559?v=3","gravatar_id":"","url":"https://api.github.com/users/gregory38","html_url":"https://github.com/gregory38","followers_url":"https://api.github.com/users/gregory38/followers","following_url":"https://api.github.com/users/gregory38/following{/other_user}","gists_url":"https://api.github.com/users/gregory38/gists{/gist_id}","starred_url":"https://api.github.com/users/gregory38/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gregory38/subscriptions","organizations_url":"https://api.github.com/users/gregory38/orgs","repos_url":"https://api.github.com/users/gregory38/repos","events_url":"https://api.github.com/users/gregory38/events{/privacy}","received_events_url":"https://api.github.com/users/gregory38/received_events","type":"User","site_admin":false},"created_at":"2015-09-05T09:06:28Z","updated_at":"2015-09-05T09:06:28Z","body":"Honestly there are code everywhere in gsdx. It would be painful to split the code properly.\n1/ drop avx1 and sse3. The former is not really faster and the later is used by few cpu (can still dl an old versions). It will reduce the choice for the users.\n2/ maybe add a mechanism in plugin selection to select by priority avx2/sse4/sse2."}}