summaryrefslogtreecommitdiffstats
path: root/content/common/gpu
diff options
context:
space:
mode:
authorhshi@chromium.org <hshi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-16 00:53:42 +0000
committerhshi@chromium.org <hshi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-16 00:53:42 +0000
commit224016e9a37f89694e8d15e320de261c1399bfe9 (patch)
tree32ce1bbf981c26115bb6c11a10e290998774fb6a /content/common/gpu
parent1b416c962754e6dfe031084a1aeedf82108965fb (diff)
downloadchromium_src-224016e9a37f89694e8d15e320de261c1399bfe9.zip
chromium_src-224016e9a37f89694e8d15e320de261c1399bfe9.tar.gz
chromium_src-224016e9a37f89694e8d15e320de261c1399bfe9.tar.bz2
Buffer returned textures from render to VDA
This is CrOS ARM only hot fix for tearing/out of order frames caused by render/decode synchronization issues until we understand the underlying problem (presumably in the driver) better. The main effect of this change is to add an extra delay of 2 frames between draw and decode to clearly separate both. We had a similar hack in Flash when synchronization was broken (then in particular > 2 was used to achieve sufficient delay). We have a total of 8 PictureBuffers in flight but only need about 4 for smooth playback. (With this change we are down to 6 which is still sufficient.) BUG=chromium:225563 AUTHOR=ihf@chromium.org TEST=Ran on Daisy with different problematic videos and did not notice problems. TBR=sheu TBR=xhwang NOTRY=true Original Review CL: https://codereview.chromium.org/14238003/ Landing this on behalf of ihf@ - CQ is down. Review URL: https://codereview.chromium.org/13994020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194267 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/common/gpu')
-rw-r--r--content/common/gpu/media/exynos_video_decode_accelerator.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/content/common/gpu/media/exynos_video_decode_accelerator.cc b/content/common/gpu/media/exynos_video_decode_accelerator.cc
index 43089b9..0948ccc 100644
--- a/content/common/gpu/media/exynos_video_decode_accelerator.cc
+++ b/content/common/gpu/media/exynos_video_decode_accelerator.cc
@@ -1285,9 +1285,10 @@ void ExynosVideoDecodeAccelerator::EnqueueGsc() {
}
// Enqueue a GSC output, only if we need one
+ // TODO(ihf): Revert to size > 0 once issue 225563 is fixed.
if (gsc_input_buffer_queued_count_ != 0 &&
gsc_output_buffer_queued_count_ == 0 &&
- !gsc_free_output_buffers_.empty()) {
+ gsc_free_output_buffers_.size() > 2) {
const int old_gsc_outputs_queued = gsc_output_buffer_queued_count_;
if (!EnqueueGscOutputRecord())
return;