Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(188)

Issue 7200033: Fix crashes when loading gles2.cc on browser startup, and during playback. (Closed)

Created:
9 years, 6 months ago by Ami GONE FROM CHROMIUM
Modified:
9 years, 6 months ago
CC:
chromium-reviews, hclam+watch_chromium.org, sjl, ddorwin+watch_chromium.org, fischman+watch_chromium.org, jam, apatrick_chromium, joi+watch-content_chromium.org, acolwell GONE FROM CHROMIUM, annacc, ajwong+watch_chromium.org, scherkus (not reviewing), vjain, cfreeman, vhiremath
Visibility:
Public.

Description

Fix crashes when loading gles2.cc on browser startup, and during playback. Startup crash was being caused by deleting the Context3D object out from under a running OmxVideoDecodeAccelerator, which would trigger a SEGV in the GPU process, which would cause a Graphics3DContextLost callback to be fired on the plugin, which is implemented as an assert(false). The delete that kicked all this off was not actually necessary, so removed it. During-playback crash was being caused by a lack of synchronization between the GPU command buffer mechanism and the PPAPI impl IPC mechanism (triggered much more commonly in DEBUG mode, which explains why these weren't seen so much before). While debugging this cleaned up and documented some of the bogusity I found that I didn't want to clean all in one CL: - Emit type of unhandled message in GpuChannel, and document TODO to fix poor code structure that confused me. - Emit EGL error code on CHECK-failures in EGL<->GLES translator. - Simplify GpuVideoService a bit and remove redundant map lookups. - Fix ppapi_tests.gypi: my r89636 was too ambitious and ran into the limits of my understanding of .gyp. This version is less factored but has the benefit of producing actually-working example plugins. BUG=none TEST=manually running gles2.{html,cc} works every time. No crashes. Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=89775

Patch Set 1 : . #

Total comments: 7

Patch Set 2 : . #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+90 lines, -93 lines) Patch
M content/common/gpu/gpu_channel.cc View 2 chunks +7 lines, -1 line 0 comments Download
M content/common/gpu/media/gles2_texture_to_egl_image_translator.cc View 2 chunks +2 lines, -1 line 0 comments Download
M content/common/gpu/media/gpu_video_service.h View 1 chunk +0 lines, -5 lines 0 comments Download
M content/common/gpu/media/gpu_video_service.cc View 2 chunks +14 lines, -21 lines 0 comments Download
M content/common/gpu/media/omx_video_decode_accelerator.cc View 1 chunk +3 lines, -4 lines 0 comments Download
M ppapi/examples/gles2/gles2.cc View 1 10 chunks +40 lines, -17 lines 1 comment Download
M ppapi/ppapi_tests.gypi View 10 chunks +24 lines, -44 lines 0 comments Download

Messages

Total messages: 7 (0 generated)
Ami GONE FROM CHROMIUM
apatrick: please review gpu_channel.cc brettw: FYI see ppapi_tests (FYI since you reviewed the CL that ...
9 years, 6 months ago (2011-06-20 18:39:19 UTC) #1
apatrick_chromium
LGTM for gpu_channel.cc.
9 years, 6 months ago (2011-06-20 18:47:54 UTC) #2
brettw
gypi LGTM
9 years, 6 months ago (2011-06-20 19:21:55 UTC) #3
Ami GONE FROM CHROMIUM
+vjain,cfreeman,vhiremath as FYIs.
9 years, 6 months ago (2011-06-20 20:22:27 UTC) #4
vrk (LEFT CHROMIUM)
LGTM w/ nits Coool I'm super excited for the noncrashiness! http://codereview.chromium.org/7200033/diff/2001/content/common/gpu/gpu_channel.cc File content/common/gpu/gpu_channel.cc (right): http://codereview.chromium.org/7200033/diff/2001/content/common/gpu/gpu_channel.cc#newcode333 ...
9 years, 6 months ago (2011-06-20 22:22:17 UTC) #5
Ami GONE FROM CHROMIUM
http://codereview.chromium.org/7200033/diff/2001/ppapi/examples/gles2/gles2.cc File ppapi/examples/gles2/gles2.cc (right): http://codereview.chromium.org/7200033/diff/2001/ppapi/examples/gles2/gles2.cc#newcode310 ppapi/examples/gles2/gles2.cc:310: if (surface_) On 2011/06/20 22:22:17, Victoria Kirst wrote: > ...
9 years, 6 months ago (2011-06-20 22:27:22 UTC) #6
scherkus (not reviewing)
9 years, 6 months ago (2011-06-21 01:17:18 UTC) #7
LGTM

http://codereview.chromium.org/7200033/diff/9001/ppapi/examples/gles2/gles2.cc
File ppapi/examples/gles2/gles2.cc (right):

http://codereview.chromium.org/7200033/diff/9001/ppapi/examples/gles2/gles2.c...
ppapi/examples/gles2/gles2.cc:74: gles2_if_->Finish(context_->pp_resource());
wow yeah that's a lot of manual FinishGL-ing :\

Powered by Google App Engine
This is Rietveld 408576698