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

Unified Diff: content/common/gpu/gpu_channel.cc

Issue 1463823002: Add DriverBugWorkaroundsInGpuProcessPage to gpu_process_test.py (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove the fixes and only keep the test that check presence of the fake workaround Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/common/gpu/gpu_channel.h ('k') | content/renderer/gpu/gpu_benchmarking_extension.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/common/gpu/gpu_channel.cc
diff --git a/content/common/gpu/gpu_channel.cc b/content/common/gpu/gpu_channel.cc
index c79d20151fffb4c6f34bc9755f0bf04a250d9774..20edeafa8467e1ad4f42da2350c052003e8be2a6 100644
--- a/content/common/gpu/gpu_channel.cc
+++ b/content/common/gpu/gpu_channel.cc
@@ -760,6 +760,8 @@ bool GpuChannel::OnControlMessageReceived(const IPC::Message& msg) {
OnCreateCommandBuffer)
IPC_MESSAGE_HANDLER(GpuChannelMsg_DestroyCommandBuffer,
OnDestroyCommandBuffer)
+ IPC_MESSAGE_HANDLER(GpuChannelMsg_GetDriverBugWorkArounds,
+ OnGetDriverBugWorkArounds)
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
return handled;
@@ -978,6 +980,23 @@ void GpuChannel::OnDestroyCommandBuffer(int32_t route_id) {
RemoveRoute(route_id);
}
+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 (feature_info->workarounds().name) \
+ gpu_driver_bug_workarounds->push_back(#name);
+ GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP)
+#undef GPU_OP
+}
+
void GpuChannel::CacheShader(const std::string& key,
const std::string& shader) {
gpu_channel_manager_->delegate()->StoreShaderToDisk(client_id_, key, shader);
« no previous file with comments | « content/common/gpu/gpu_channel.h ('k') | content/renderer/gpu/gpu_benchmarking_extension.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698