diff options
author | fischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-21 01:30:32 +0000 |
---|---|---|
committer | fischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-21 01:30:32 +0000 |
commit | c64edcc0969bba17342bc2f3864342049e83a864 (patch) | |
tree | 4069d993f811a6398f2fd2ac1faa92e8a82a8525 /ppapi/ppapi_tests.gypi | |
parent | c84cda4d2fa1caccd94623e2d254a8566a916f9c (diff) | |
download | chromium_src-c64edcc0969bba17342bc2f3864342049e83a864.zip chromium_src-c64edcc0969bba17342bc2f3864342049e83a864.tar.gz chromium_src-c64edcc0969bba17342bc2f3864342049e83a864.tar.bz2 |
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.
Review URL: http://codereview.chromium.org/7200033
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@89775 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/ppapi_tests.gypi')
-rw-r--r-- | ppapi/ppapi_tests.gypi | 68 |
1 files changed, 24 insertions, 44 deletions
diff --git a/ppapi/ppapi_tests.gypi b/ppapi/ppapi_tests.gypi index 7758aeb..31afe66 100644 --- a/ppapi/ppapi_tests.gypi +++ b/ppapi/ppapi_tests.gypi @@ -197,61 +197,32 @@ ['OS!="win" and OS!="mac"', { 'targets': [ { - 'target_name': 'ppapi_example_base_skeleton', + 'target_name': 'ppapi_example_skeleton', 'type': 'none', 'direct_dependent_settings': { 'product_name': '>(_target_name)', 'conditions': [ ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', { 'cflags': ['-fvisibility=hidden'], - 'variables': { 'concrete_type': 'shared_library' }, + 'type': 'shared_library', # -gstabs, used in the official builds, causes an ICE. Simply remove # it. 'cflags!': ['-gstabs'], }], ['OS=="win"', { - 'variables': { 'concrete_type': 'shared_library' }, + 'type': 'shared_library', }], ['OS=="mac"', { - 'variables': { 'concrete_type': 'loadable_module' }, + 'type': 'loadable_module', }], ], }, }, { - 'target_name': 'ppapi_example_cpp_skeleton', - 'type': 'none', - 'direct_dependent_settings': { - 'type': '>(concrete_type)', - }, - 'dependencies': [ - 'ppapi_example_base_skeleton', - 'ppapi.gyp:ppapi_cpp', - ], - 'export_dependent_settings': [ - 'ppapi_example_base_skeleton', - 'ppapi.gyp:ppapi_cpp', - ], - }, - { - 'target_name': 'ppapi_example_c_skeleton', - 'type': 'none', - 'direct_dependent_settings': { - 'type': '>(concrete_type)', - }, - 'dependencies': [ - 'ppapi_example_base_skeleton', - 'ppapi.gyp:ppapi_c', - ], - 'export_dependent_settings': [ - 'ppapi_example_base_skeleton', - 'ppapi.gyp:ppapi_c', - ], - }, - { 'target_name': 'ppapi_example_c_stub', 'dependencies': [ - 'ppapi_example_c_skeleton', + 'ppapi_example_skeleton', + 'ppapi.gyp:ppapi_c', ], 'sources': [ 'examples/stub/stub.c', @@ -260,7 +231,8 @@ { 'target_name': 'ppapi_example_cc_stub', 'dependencies': [ - 'ppapi_example_cpp_skeleton', + 'ppapi_example_skeleton', + 'ppapi.gyp:ppapi_cpp', ], 'sources': [ 'examples/stub/stub.cc', @@ -269,7 +241,8 @@ { 'target_name': 'ppapi_example_audio', 'dependencies': [ - 'ppapi_example_cpp_skeleton', + 'ppapi_example_skeleton', + 'ppapi.gyp:ppapi_cpp', ], 'sources': [ 'examples/audio/audio.cc', @@ -278,7 +251,8 @@ { 'target_name': 'ppapi_example_file_chooser', 'dependencies': [ - 'ppapi_example_cpp_skeleton', + 'ppapi_example_skeleton', + 'ppapi.gyp:ppapi_cpp', ], 'sources': [ 'examples/file_chooser/file_chooser.cc', @@ -287,7 +261,8 @@ { 'target_name': 'ppapi_example_graphics_2d', 'dependencies': [ - 'ppapi_example_c_skeleton', + 'ppapi_example_skeleton', + 'ppapi.gyp:ppapi_c', ], 'sources': [ 'examples/2d/graphics_2d_example.c', @@ -296,7 +271,8 @@ { 'target_name': 'ppapi_example_paint_manager', 'dependencies': [ - 'ppapi_example_cpp_skeleton', + 'ppapi_example_skeleton', + 'ppapi.gyp:ppapi_cpp', ], 'sources': [ 'examples/2d/paint_manager_example.cc', @@ -305,7 +281,8 @@ { 'target_name': 'ppapi_example_post_message', 'dependencies': [ - 'ppapi_example_cpp_skeleton', + 'ppapi_example_skeleton', + 'ppapi.gyp:ppapi_cpp', ], 'sources': [ 'examples/scripting/post_message.cc', @@ -314,7 +291,8 @@ { 'target_name': 'ppapi_example_scroll', 'dependencies': [ - 'ppapi_example_cpp_skeleton', + 'ppapi_example_skeleton', + 'ppapi.gyp:ppapi_cpp', ], 'sources': [ 'examples/2d/scroll.cc', @@ -323,7 +301,8 @@ { 'target_name': 'ppapi_example_simple_font', 'dependencies': [ - 'ppapi_example_cpp_skeleton', + 'ppapi_example_skeleton', + 'ppapi.gyp:ppapi_cpp', ], 'sources': [ 'examples/font/simple_font.cc', @@ -332,7 +311,8 @@ { 'target_name': 'ppapi_example_gles2', 'dependencies': [ - 'ppapi_example_cpp_skeleton', + 'ppapi_example_skeleton', + 'ppapi.gyp:ppapi_cpp', 'ppapi.gyp:ppapi_gles2', 'lib/gl/gl.gyp:ppapi_egl', ], |