Index: gpu/ipc/service/gpu_channel.cc |
diff --git a/gpu/ipc/service/gpu_channel.cc b/gpu/ipc/service/gpu_channel.cc |
index a7f07ef6ffdc8477949b754e26046df0befcc663..672c8003599de2a2fe61cc80a9de368d19327497 100644 |
--- a/gpu/ipc/service/gpu_channel.cc |
+++ b/gpu/ipc/service/gpu_channel.cc |
@@ -996,9 +996,16 @@ |
void GpuChannel::OnGetDriverBugWorkArounds( |
std::vector<std::string>* gpu_driver_bug_workarounds) { |
+ // TODO(j.isorce): http://crbug.com/599964 Do the extraction of workarounds in |
+ // the GpuChannelManager constructor. Currently it is done in the FeatureInfo |
+ // constructor. There is no need to extract them from the command-line every |
+ // time a new FeatureInfo is created (i.e. per ContextGroup) since parsing |
+ // result is a constant. |
+ scoped_refptr<gpu::gles2::FeatureInfo> feature_info = |
+ new gpu::gles2::FeatureInfo; |
gpu_driver_bug_workarounds->clear(); |
-#define GPU_OP(type, name) \ |
- if (gpu_channel_manager_->gpu_driver_bug_workarounds().name) \ |
+#define GPU_OP(type, name) \ |
+ if (feature_info->workarounds().name) \ |
gpu_driver_bug_workarounds->push_back(#name); |
GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP) |
#undef GPU_OP |