Index: content/renderer/pepper/ppb_graphics_3d_impl.cc |
diff --git a/content/renderer/pepper/ppb_graphics_3d_impl.cc b/content/renderer/pepper/ppb_graphics_3d_impl.cc |
index 12d1db923a1440f5bdacea39aa76765ae9934f37..e93f08e0e4c8be0d358042cddb46dcf49f0220c0 100644 |
--- a/content/renderer/pepper/ppb_graphics_3d_impl.cc |
+++ b/content/renderer/pepper/ppb_graphics_3d_impl.cc |
@@ -14,6 +14,7 @@ |
#include "content/public/common/web_preferences.h" |
#include "content/renderer/pepper/host_globals.h" |
#include "content/renderer/pepper/pepper_plugin_instance_impl.h" |
+#include "content/renderer/pepper/pepper_plugin_instance_throttler.h" |
#include "content/renderer/pepper/plugin_module.h" |
#include "content/renderer/render_thread_impl.h" |
#include "content/renderer/render_view_impl.h" |
@@ -242,6 +243,11 @@ bool PPB_Graphics3D_Impl::InitRaw( |
if (!prefs.pepper_3d_enabled) |
return false; |
+ // Force SW rendering for keyframe extraction to avoid pixel reads from VRAM. |
+ PepperPluginInstanceThrottler* throttler = plugin_instance->throttler(); |
+ if (throttler && throttler->needs_representative_keyframe()) |
+ return false; |
+ |
RenderThreadImpl* render_thread = RenderThreadImpl::current(); |
if (!render_thread) |
return false; |