{"action":"created","issue":{"url":"https://api.github.com/repos/libretro/RetroArch/issues/4782","repository_url":"https://api.github.com/repos/libretro/RetroArch","labels_url":"https://api.github.com/repos/libretro/RetroArch/issues/4782/labels{/name}","comments_url":"https://api.github.com/repos/libretro/RetroArch/issues/4782/comments","events_url":"https://api.github.com/repos/libretro/RetroArch/issues/4782/events","html_url":"https://github.com/libretro/RetroArch/issues/4782","id":217019884,"number":4782,"title":"DISPMANX - triple buffer disable likely cause of extreme slowdown","user":{"login":"dukesilverfan","id":20389961,"avatar_url":"https://avatars2.githubusercontent.com/u/20389961?v=3","gravatar_id":"","url":"https://api.github.com/users/dukesilverfan","html_url":"https://github.com/dukesilverfan","followers_url":"https://api.github.com/users/dukesilverfan/followers","following_url":"https://api.github.com/users/dukesilverfan/following{/other_user}","gists_url":"https://api.github.com/users/dukesilverfan/gists{/gist_id}","starred_url":"https://api.github.com/users/dukesilverfan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dukesilverfan/subscriptions","organizations_url":"https://api.github.com/users/dukesilverfan/orgs","repos_url":"https://api.github.com/users/dukesilverfan/repos","events_url":"https://api.github.com/users/dukesilverfan/events{/privacy}","received_events_url":"https://api.github.com/users/dukesilverfan/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2017-03-26T01:50:13Z","updated_at":"2017-03-27T16:17:07Z","closed_at":null,"body":"## Description\r\n\r\nRemoval of triple buffer in dispmanx driver is believe to be causing severe slowdowns on RPI across all cores when retroarch.cfg video_driver is set to 'dispmanx'.\r\n\r\n### Expected behavior\r\n\r\nDispmanx is the preferred video driver for reducing input lag compared to the default gl as shown by testing user brunnis performed. As of the release of RetroPie 4.1, use of dispmanx as the video driver worked perfectly and reduced input lag by one frame across all cores. No slowdown or screen stutter was experienced due to using dispmanx compared to the default video driver gl.\r\n\r\n### Actual behavior\r\n\r\nIn the RetroPie 4.2 build, the commit https://github.com/libretro/RetroArch/commit/0b75671c21ec1e891779031b6435ad18debe3e60 is believed to have caused the severe slowdown across all cores on RPI. For example, The Lost Levels on lr-snes98x2010 is unplayable with extreme slowdown and screen stutter. This is verified in other cores such as lr-nestopia and others.\r\n\r\n### Steps to reproduce the bug\r\n\r\n1. Clean install of RetroPie 4.1 on a Raspberry Pi 3\r\n2. Change video_driver to 'dispmanx'\r\n3. All cores work great, no slowdown caused by video driver\r\n\r\n4. Clean install of RetroPie 4.2 on same Raspberry Pi 3\r\n5. Change video_driver to 'dispmanx'\r\n6. All cores are choppy, some unplayable. The Lost Levels on lr-snes98x2010 is a great showcase of this.\r\n\r\n### Bisect Results\r\n\r\nThis occurred sometime between Nov. 5, 2016 and Mar. 20, 2017, most likely with commit https://github.com/libretro/RetroArch/commit/0b75671c21ec1e891779031b6435ad18debe3e60 on Feb 12, 2017.\r\n\r\n### Version/Commit\r\n\r\nhttps://github.com/libretro/RetroArch/commit/0b75671c21ec1e891779031b6435ad18debe3e60\r\n\r\n### Environment information\r\n\r\n- OS: Retropie 4.2\r\n\r\n\r\n<bountysource-plugin>\r\n\r\n---\r\nWant to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/43446495-dispmanx-triple-buffer-disable-likely-cause-of-extreme-slowdown?utm_campaign=plugin&utm_content=tracker%2F296058&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F296058&utm_medium=issues&utm_source=github).\r\n</bountysource-plugin>"},"comment":{"url":"https://api.github.com/repos/libretro/RetroArch/issues/comments/289504250","html_url":"https://github.com/libretro/RetroArch/issues/4782#issuecomment-289504250","issue_url":"https://api.github.com/repos/libretro/RetroArch/issues/4782","id":289504250,"user":{"login":"tobiasjakobi","id":6507947,"avatar_url":"https://avatars3.githubusercontent.com/u/6507947?v=3","gravatar_id":"","url":"https://api.github.com/users/tobiasjakobi","html_url":"https://github.com/tobiasjakobi","followers_url":"https://api.github.com/users/tobiasjakobi/followers","following_url":"https://api.github.com/users/tobiasjakobi/following{/other_user}","gists_url":"https://api.github.com/users/tobiasjakobi/gists{/gist_id}","starred_url":"https://api.github.com/users/tobiasjakobi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tobiasjakobi/subscriptions","organizations_url":"https://api.github.com/users/tobiasjakobi/orgs","repos_url":"https://api.github.com/users/tobiasjakobi/repos","events_url":"https://api.github.com/users/tobiasjakobi/events{/privacy}","received_events_url":"https://api.github.com/users/tobiasjakobi/received_events","type":"User","site_admin":false},"created_at":"2017-03-27T16:17:07Z","updated_at":"2017-03-27T16:17:07Z","body":"From a quick look, vc_dispmanx_update_submit_sync() might be causing this.\r\n\r\nIf we assume a refresh rate of e.g. 60Hz, then the interval between frames is around 16ms. Under the assumption that the calls to dispmanx_surface_update() are equally distributed in this interval, then submit_sync() blocks for 8ms on average. Which is quite a lot."}}
{"actor":{"display_login":"tobiasjakobi"}}