diff options
author | tfarina <tfarina@chromium.org> | 2015-04-28 12:04:16 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-04-28 19:04:55 +0000 |
commit | 15525c4fa7633018873aa4fec407a14c5cf64840 (patch) | |
tree | fd85c6b087a7c9a2c08494970703058bce25a992 | |
parent | cd4ff3af3ba883510a0fe1f802c35210c44247cb (diff) | |
download | chromium_src-15525c4fa7633018873aa4fec407a14c5cf64840.zip chromium_src-15525c4fa7633018873aa4fec407a14c5cf64840.tar.gz chromium_src-15525c4fa7633018873aa4fec407a14c5cf64840.tar.bz2 |
gpu: Fix dependency cycle between service_sources and config_sources.
ERROR Dependency cycle:
//gpu/command_buffer/service:service_sources ->
//gpu/config:config_sources ->
//gpu/command_buffer/service:service_sources
The problem was that gpu/command_buffer/service already include from
gpu/config, but gpu/config were also including from
gpu/command_buffer/service for gpu_switches.h, creating the above
dependency cycle.
By moving the required switch down to gpu/config, we broke this
dependency cycle.
With that 'gn check' passes for gpu/config with the following command
lines:
$ gn gen out-gn/Debug
$ gn check out-gn/Debug //gpu/config/*
gpu/command_buffer/service needs more work to pass 'gn check' though.
BUG=367595,376000
TEST=see above
R=sievers@chromium.org
Review URL: https://codereview.chromium.org/1103403002
Cr-Commit-Position: refs/heads/master@{#327344}
19 files changed, 48 insertions, 17 deletions
diff --git a/content/browser/gpu/gpu_data_manager_impl_private.cc b/content/browser/gpu/gpu_data_manager_impl_private.cc index 1362375..68d4974 100644 --- a/content/browser/gpu/gpu_data_manager_impl_private.cc +++ b/content/browser/gpu/gpu_data_manager_impl_private.cc @@ -29,6 +29,7 @@ #include "gpu/config/gpu_driver_bug_workaround_type.h" #include "gpu/config/gpu_feature_type.h" #include "gpu/config/gpu_info_collector.h" +#include "gpu/config/gpu_switches.h" #include "gpu/config/gpu_util.h" #include "ui/base/ui_base_switches.h" #include "ui/gl/gl_implementation.h" diff --git a/content/browser/gpu/gpu_data_manager_impl_private_unittest.cc b/content/browser/gpu/gpu_data_manager_impl_private_unittest.cc index 8bcb010..41223ac 100644 --- a/content/browser/gpu/gpu_data_manager_impl_private_unittest.cc +++ b/content/browser/gpu/gpu_data_manager_impl_private_unittest.cc @@ -8,9 +8,9 @@ #include "base/time/time.h" #include "content/browser/gpu/gpu_data_manager_impl_private.h" #include "content/public/browser/gpu_data_manager_observer.h" -#include "gpu/command_buffer/service/gpu_switches.h" #include "gpu/config/gpu_feature_type.h" #include "gpu/config/gpu_info.h" +#include "gpu/config/gpu_switches.h" #include "testing/gtest/include/gtest/gtest.h" #include "url/gurl.h" diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc index 1b16afe..eebb732 100644 --- a/content/gpu/gpu_main.cc +++ b/content/gpu/gpu_main.cc @@ -35,6 +35,7 @@ #include "content/public/common/main_function_params.h" #include "gpu/command_buffer/service/gpu_switches.h" #include "gpu/config/gpu_info_collector.h" +#include "gpu/config/gpu_switches.h" #include "gpu/config/gpu_util.h" #include "ui/events/platform/platform_event_source.h" #include "ui/gl/gl_implementation.h" diff --git a/gpu/command_buffer/service/BUILD.gn b/gpu/command_buffer/service/BUILD.gn index 4d71c71..ab25805 100644 --- a/gpu/command_buffer/service/BUILD.gn +++ b/gpu/command_buffer/service/BUILD.gn @@ -149,6 +149,7 @@ source_set("service_sources") { "//base", "//base/third_party/dynamic_annotations", "//crypto", + "//gpu/config:config_sources", "//third_party/angle:translator", "//third_party/protobuf:protobuf_lite", "//third_party/re2", diff --git a/gpu/command_buffer/service/feature_info.cc b/gpu/command_buffer/service/feature_info.cc index 098ab64..bea43c5 100644 --- a/gpu/command_buffer/service/feature_info.cc +++ b/gpu/command_buffer/service/feature_info.cc @@ -14,6 +14,7 @@ #include "base/strings/string_util.h" #include "gpu/command_buffer/service/gl_utils.h" #include "gpu/command_buffer/service/gpu_switches.h" +#include "gpu/config/gpu_switches.h" #include "ui/gl/gl_fence.h" #include "ui/gl/gl_implementation.h" diff --git a/gpu/command_buffer/service/feature_info_unittest.cc b/gpu/command_buffer/service/feature_info_unittest.cc index a32eec9..4e7b1d5 100644 --- a/gpu/command_buffer/service/feature_info_unittest.cc +++ b/gpu/command_buffer/service/feature_info_unittest.cc @@ -8,10 +8,10 @@ #include "base/memory/scoped_ptr.h" #include "base/strings/string_number_conversions.h" #include "gpu/command_buffer/service/gpu_service_test.h" -#include "gpu/command_buffer/service/gpu_switches.h" #include "gpu/command_buffer/service/test_helper.h" #include "gpu/command_buffer/service/texture_manager.h" #include "gpu/config/gpu_driver_bug_workaround_type.h" +#include "gpu/config/gpu_switches.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/gl/gl_fence.h" #include "ui/gl/gl_implementation.h" diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc index d3a20b3..e65d006 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc @@ -16,12 +16,12 @@ #include "gpu/command_buffer/service/context_state.h" #include "gpu/command_buffer/service/gl_surface_mock.h" #include "gpu/command_buffer/service/gles2_cmd_decoder.h" -#include "gpu/command_buffer/service/gpu_switches.h" #include "gpu/command_buffer/service/image_manager.h" #include "gpu/command_buffer/service/mailbox_manager.h" #include "gpu/command_buffer/service/mocks.h" #include "gpu/command_buffer/service/program_manager.h" #include "gpu/command_buffer/service/test_helper.h" +#include "gpu/config/gpu_switches.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/gl/gl_implementation.h" #include "ui/gl/gl_mock.h" diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_drawing.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_drawing.cc index 87e95b7..bb0286d 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_drawing.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_drawing.cc @@ -17,12 +17,12 @@ #include "gpu/command_buffer/service/gl_surface_mock.h" #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest.h" -#include "gpu/command_buffer/service/gpu_switches.h" #include "gpu/command_buffer/service/image_manager.h" #include "gpu/command_buffer/service/mailbox_manager.h" #include "gpu/command_buffer/service/mocks.h" #include "gpu/command_buffer/service/program_manager.h" #include "gpu/command_buffer/service/test_helper.h" +#include "gpu/config/gpu_switches.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/gl/gl_implementation.h" #include "ui/gl/gl_mock.h" diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_programs.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_programs.cc index afb9fc7..d63f8a2 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_programs.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_programs.cc @@ -16,13 +16,12 @@ #include "gpu/command_buffer/service/context_state.h" #include "gpu/command_buffer/service/gl_surface_mock.h" #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest.h" - -#include "gpu/command_buffer/service/gpu_switches.h" #include "gpu/command_buffer/service/image_manager.h" #include "gpu/command_buffer/service/mailbox_manager.h" #include "gpu/command_buffer/service/mocks.h" #include "gpu/command_buffer/service/program_manager.h" #include "gpu/command_buffer/service/test_helper.h" +#include "gpu/config/gpu_switches.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/gl/gl_implementation.h" #include "ui/gl/gl_mock.h" diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc index 259072f..6d35f3d 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc @@ -17,13 +17,12 @@ #include "gpu/command_buffer/service/context_state.h" #include "gpu/command_buffer/service/gl_surface_mock.h" #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest.h" - -#include "gpu/command_buffer/service/gpu_switches.h" #include "gpu/command_buffer/service/image_manager.h" #include "gpu/command_buffer/service/mailbox_manager.h" #include "gpu/command_buffer/service/mocks.h" #include "gpu/command_buffer/service/program_manager.h" #include "gpu/command_buffer/service/test_helper.h" +#include "gpu/config/gpu_switches.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/gl/gl_image_stub.h" #include "ui/gl/gl_implementation.h" diff --git a/gpu/command_buffer/service/gpu_switches.cc b/gpu/command_buffer/service/gpu_switches.cc index 2e4e083..d2ca490 100644 --- a/gpu/command_buffer/service/gpu_switches.cc +++ b/gpu/command_buffer/service/gpu_switches.cc @@ -3,7 +3,8 @@ // found in the LICENSE file. #include "gpu/command_buffer/service/gpu_switches.h" -#include "base/basictypes.h" + +#include "base/macros.h" namespace switches { @@ -43,9 +44,6 @@ const char kEnforceGLMinimums[] = "enforce-gl-minimums"; // Sets the total amount of memory that may be allocated for GPU resources const char kForceGpuMemAvailableMb[] = "force-gpu-mem-available-mb"; -// Pass a set of GpuDriverBugWorkaroundType ids, seperated by ','. -const char kGpuDriverBugWorkarounds[] = "gpu-driver-bug-workarounds"; - // Sets the maximum size of the in-memory gpu program cache, in kb const char kGpuProgramCacheSizeKb[] = "gpu-program-cache-size-kb"; diff --git a/gpu/command_buffer/service/gpu_switches.h b/gpu/command_buffer/service/gpu_switches.h index 47364a10..ac6883a 100644 --- a/gpu/command_buffer/service/gpu_switches.h +++ b/gpu/command_buffer/service/gpu_switches.h @@ -7,6 +7,7 @@ #ifndef GPU_COMMAND_BUFFER_SERVICE_GPU_SWITCHES_H_ #define GPU_COMMAND_BUFFER_SERVICE_GPU_SWITCHES_H_ +#include "gpu/config/gpu_switches.h" #include "gpu/gpu_export.h" namespace switches { @@ -22,7 +23,6 @@ GPU_EXPORT extern const char kEnableGPUServiceLoggingGPU[]; GPU_EXPORT extern const char kDisableGpuProgramCache[]; GPU_EXPORT extern const char kEnforceGLMinimums[]; GPU_EXPORT extern const char kForceGpuMemAvailableMb[]; -GPU_EXPORT extern const char kGpuDriverBugWorkarounds[]; GPU_EXPORT extern const char kGpuProgramCacheSizeKb[]; GPU_EXPORT extern const char kDisableGpuShaderDiskCache[]; GPU_EXPORT extern const char kEnableShareGroupAsyncTextureUpload[]; @@ -37,4 +37,3 @@ GPU_EXPORT extern const int kNumGpuSwitches; } // namespace switches #endif // GPU_COMMAND_BUFFER_SERVICE_GPU_SWITCHES_H_ - diff --git a/gpu/command_buffer/tests/gl_clear_framebuffer_unittest.cc b/gpu/command_buffer/tests/gl_clear_framebuffer_unittest.cc index fdad315..3ce80f9 100644 --- a/gpu/command_buffer/tests/gl_clear_framebuffer_unittest.cc +++ b/gpu/command_buffer/tests/gl_clear_framebuffer_unittest.cc @@ -14,9 +14,9 @@ #include "base/command_line.h" #include "base/strings/string_number_conversions.h" -#include "gpu/command_buffer/service/gpu_switches.h" #include "gpu/command_buffer/tests/gl_manager.h" #include "gpu/command_buffer/tests/gl_test_utils.h" +#include "gpu/config/gpu_switches.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" diff --git a/gpu/config/BUILD.gn b/gpu/config/BUILD.gn index add90ec..0a2c135 100644 --- a/gpu/config/BUILD.gn +++ b/gpu/config/BUILD.gn @@ -49,6 +49,8 @@ source_set("config_sources") { "gpu_info_collector_ozone.cc", "gpu_info_collector_win.cc", "gpu_info_collector_x11.cc", + "gpu_switches.cc", + "gpu_switches.h", "gpu_test_config.cc", "gpu_test_config.h", "gpu_test_expectations_parser.cc", @@ -66,7 +68,6 @@ source_set("config_sources") { deps = [ "//base", - "//gpu/command_buffer/service:service_sources", "//third_party/re2", "//ui/gl", ] diff --git a/gpu/config/gpu_switches.cc b/gpu/config/gpu_switches.cc new file mode 100644 index 0000000..fdf9f0e --- /dev/null +++ b/gpu/config/gpu_switches.cc @@ -0,0 +1,12 @@ +// Copyright 2015 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "gpu/config/gpu_switches.h" + +namespace switches { + +// Pass a set of GpuDriverBugWorkaroundType ids, seperated by ','. +const char kGpuDriverBugWorkarounds[] = "gpu-driver-bug-workarounds"; + +} // namespace switches diff --git a/gpu/config/gpu_switches.h b/gpu/config/gpu_switches.h new file mode 100644 index 0000000..f6375ca --- /dev/null +++ b/gpu/config/gpu_switches.h @@ -0,0 +1,16 @@ +// Copyright 2015 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef GPU_CONFIG_GPU_SWITCHES_H_ +#define GPU_CONFIG_GPU_SWITCHES_H_ + +#include "gpu/gpu_export.h" + +namespace switches { + +GPU_EXPORT extern const char kGpuDriverBugWorkarounds[]; + +} // namespace switches + +#endif // GPU_CONFIG_GPU_SWITCHES_H_ diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc index 0fb8a7f..5d67988 100644 --- a/gpu/config/gpu_util.cc +++ b/gpu/config/gpu_util.cc @@ -10,10 +10,10 @@ #include "base/logging.h" #include "base/strings/string_number_conversions.h" #include "base/strings/string_split.h" -#include "gpu/command_buffer/service/gpu_switches.h" #include "gpu/config/gpu_control_list_jsons.h" #include "gpu/config/gpu_driver_bug_list.h" #include "gpu/config/gpu_info_collector.h" +#include "gpu/config/gpu_switches.h" #include "ui/gl/gl_switches.h" namespace gpu { diff --git a/gpu/gpu.gyp b/gpu/gpu.gyp index 9b50458..6e1874d 100644 --- a/gpu/gpu.gyp +++ b/gpu/gpu.gyp @@ -505,6 +505,7 @@ 'dependencies': [ 'command_buffer_common', 'disk_cache_proto', + 'gpu_config', ], # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 'msvs_disabled_warnings': [4267, ], diff --git a/gpu/gpu_config.gypi b/gpu/gpu_config.gypi index 2b94403..6869199 100644 --- a/gpu/gpu_config.gypi +++ b/gpu/gpu_config.gypi @@ -36,6 +36,8 @@ 'config/gpu_info_collector_ozone.cc', 'config/gpu_info_collector_win.cc', 'config/gpu_info_collector_x11.cc', + 'config/gpu_switches.cc', + 'config/gpu_switches.h', 'config/gpu_test_config.cc', 'config/gpu_test_config.h', 'config/gpu_test_expectations_parser.cc', |