diff options
-rw-r--r-- | ash/ash_unittests.isolate | 1 | ||||
-rw-r--r-- | cc/cc_unittests.isolate | 1 | ||||
-rw-r--r-- | chrome/sync_integration_tests.isolate | 1 | ||||
-rw-r--r-- | chrome/unit_tests.isolate | 1 | ||||
-rw-r--r-- | components/components_browsertests.isolate | 9 | ||||
-rw-r--r-- | components/components_unittests.isolate | 1 | ||||
-rw-r--r-- | content/content_browsertests.isolate | 1 | ||||
-rw-r--r-- | content/content_gpu.gypi | 5 | ||||
-rw-r--r-- | content/content_unittests.isolate | 1 | ||||
-rw-r--r-- | content/gpu/gpu_main.cc | 19 | ||||
-rw-r--r-- | extensions/extensions_browsertests.isolate | 1 | ||||
-rw-r--r-- | gpu/gpu_unittests.isolate | 1 | ||||
-rw-r--r-- | tools/metrics/histograms/histograms.xml | 40 | ||||
-rw-r--r-- | ui/gl/BUILD.gn | 4 | ||||
-rw-r--r-- | ui/gl/DEPS | 6 | ||||
-rw-r--r-- | ui/gl/angle_platform_impl.cc | 50 | ||||
-rw-r--r-- | ui/gl/angle_platform_impl.h | 39 | ||||
-rw-r--r-- | ui/gl/gl.gyp | 7 | ||||
-rw-r--r-- | ui/gl/gl_implementation_win.cc | 14 |
19 files changed, 20 insertions, 182 deletions
diff --git a/ash/ash_unittests.isolate b/ash/ash_unittests.isolate index 40e3e79..319dfc7 100644 --- a/ash/ash_unittests.isolate +++ b/ash/ash_unittests.isolate @@ -64,6 +64,5 @@ ], 'includes': [ '../base/base.isolate', - '../third_party/angle/angle.isolate', ], } diff --git a/cc/cc_unittests.isolate b/cc/cc_unittests.isolate index 7c359d0..dc6c449 100644 --- a/cc/cc_unittests.isolate +++ b/cc/cc_unittests.isolate @@ -84,6 +84,5 @@ ], 'includes': [ '../base/base.isolate', - '../third_party/angle/angle.isolate', ], } diff --git a/chrome/sync_integration_tests.isolate b/chrome/sync_integration_tests.isolate index 06741e3..abecb56 100644 --- a/chrome/sync_integration_tests.isolate +++ b/chrome/sync_integration_tests.isolate @@ -108,6 +108,5 @@ 'includes': [ '../base/base.isolate', '../gin/v8.isolate', - '../third_party/angle/angle.isolate', ], } diff --git a/chrome/unit_tests.isolate b/chrome/unit_tests.isolate index 33821eb..715e1fe 100644 --- a/chrome/unit_tests.isolate +++ b/chrome/unit_tests.isolate @@ -157,6 +157,5 @@ 'includes': [ '../base/base.isolate', '../gin/v8.isolate', - '../third_party/angle/angle.isolate', ], } diff --git a/components/components_browsertests.isolate b/components/components_browsertests.isolate index f384f85f..c18c7cf 100644 --- a/components/components_browsertests.isolate +++ b/components/components_browsertests.isolate @@ -2,6 +2,10 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. { + 'includes': [ + '../base/base.isolate', + '../gin/v8.isolate', + ], 'conditions': [ ['use_x11==0', { 'variables': { @@ -70,9 +74,4 @@ }, }], ], - 'includes': [ - '../base/base.isolate', - '../gin/v8.isolate', - '../third_party/angle/angle.isolate', - ], } diff --git a/components/components_unittests.isolate b/components/components_unittests.isolate index ed969e0..e240ea7 100644 --- a/components/components_unittests.isolate +++ b/components/components_unittests.isolate @@ -94,6 +94,5 @@ ], 'includes': [ '../base/base.isolate', - '../third_party/angle/angle.isolate', ], } diff --git a/content/content_browsertests.isolate b/content/content_browsertests.isolate index aa24c23..84379d6 100644 --- a/content/content_browsertests.isolate +++ b/content/content_browsertests.isolate @@ -141,6 +141,5 @@ 'includes': [ '../base/base.isolate', '../gin/v8.isolate', - '../third_party/angle/angle.isolate', ], } diff --git a/content/content_gpu.gypi b/content/content_gpu.gypi index 1c2121d..af0c47f 100644 --- a/content/content_gpu.gypi +++ b/content/content_gpu.gypi @@ -26,10 +26,13 @@ ['OS=="win"', { 'include_dirs': [ '<(DEPTH)/third_party/khronos', - # ANGLE libs picked up from ui/gl '<(angle_path)/src', '<(DEPTH)/third_party/wtl/include', ], + 'dependencies': [ + '<(angle_path)/src/angle.gyp:libEGL', + '<(angle_path)/src/angle.gyp:libGLESv2', + ], 'link_settings': { 'libraries': [ '-lsetupapi.lib', diff --git a/content/content_unittests.isolate b/content/content_unittests.isolate index 07ac6e7..f61a3e1 100644 --- a/content/content_unittests.isolate +++ b/content/content_unittests.isolate @@ -109,6 +109,5 @@ 'includes': [ '../base/base.isolate', '../gin/v8.isolate', - '../third_party/angle/angle.isolate', ], } diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc index 76a6020..b34d42f 100644 --- a/content/gpu/gpu_main.cc +++ b/content/gpu/gpu_main.cc @@ -12,7 +12,6 @@ #include "base/lazy_instance.h" #include "base/message_loop/message_loop.h" #include "base/metrics/histogram.h" -#include "base/metrics/statistics_recorder.h" #include "base/rand_util.h" #include "base/strings/string_number_conversions.h" #include "base/strings/stringprintf.h" @@ -215,14 +214,14 @@ int GpuMain(const MainFunctionParams& parameters) { watchdog_thread->StartWithOptions(options); } - // Initializes StatisticsRecorder which tracks UMA histograms. - base::StatisticsRecorder::Initialize(); - gpu::GPUInfo gpu_info; // Get vendor_id, device_id, driver_version from browser process through // commandline switches. GetGpuInfoFromCommandLine(gpu_info, command_line); + base::TimeDelta collect_context_time; + base::TimeDelta initialize_one_off_time; + // Warm up resources that don't need access to GPUInfo. if (WarmUpSandbox(command_line)) { #if defined(OS_LINUX) @@ -294,18 +293,15 @@ int GpuMain(const MainFunctionParams& parameters) { #endif // !defined(OS_CHROMEOS) #endif // defined(OS_LINUX) #endif // !defined(OS_MACOSX) - base::TimeDelta collect_context_time = + collect_context_time = base::TimeTicks::Now() - before_collect_context_graphics_info; - UMA_HISTOGRAM_TIMES("GPU.CollectContextGraphicsInfo", - collect_context_time); } else { // gl_initialized VLOG(1) << "gfx::GLSurface::InitializeOneOff failed"; dead_on_arrival = true; } - base::TimeDelta initialize_one_off_time = + initialize_one_off_time = base::TimeTicks::Now() - before_initialize_one_off; - UMA_HISTOGRAM_TIMES("GPU.InitializeOneOffTime", initialize_one_off_time); if (enable_watchdog && delayed_watchdog_enable) { watchdog_thread = new GpuWatchdogThread(kGpuTimeout); @@ -346,6 +342,11 @@ int GpuMain(const MainFunctionParams& parameters) { GpuProcess gpu_process; + // These UMA must be stored after GpuProcess is constructed as it + // initializes StatisticsRecorder which tracks the histograms. + UMA_HISTOGRAM_TIMES("GPU.CollectContextGraphicsInfo", collect_context_time); + UMA_HISTOGRAM_TIMES("GPU.InitializeOneOffTime", initialize_one_off_time); + GpuChildThread* child_thread = new GpuChildThread(watchdog_thread.get(), dead_on_arrival, gpu_info, diff --git a/extensions/extensions_browsertests.isolate b/extensions/extensions_browsertests.isolate index 301e919..d939336 100644 --- a/extensions/extensions_browsertests.isolate +++ b/extensions/extensions_browsertests.isolate @@ -80,6 +80,5 @@ 'includes': [ '../base/base.isolate', '../gin/v8.isolate', - '../third_party/angle/angle.isolate', ], } diff --git a/gpu/gpu_unittests.isolate b/gpu/gpu_unittests.isolate index 7ad1b79..b12c5cb 100644 --- a/gpu/gpu_unittests.isolate +++ b/gpu/gpu_unittests.isolate @@ -59,6 +59,5 @@ ], 'includes': [ '../base/base.isolate', - '../third_party/angle/angle.isolate', ], } diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index 7907011..d43a901 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml @@ -10880,22 +10880,6 @@ Therefore, the affected-histogram name has to have at least one dot in it. </summary> </histogram> -<histogram name="GPU.ANGLE.D3D11InitializeResult" enum="D3D11InitializeResult"> - <owner>jmadill@chromium.org</owner> - <summary> - The result from initializing a D3D11 device in ANGLE. Can be success, or one - of several error codes which indicate different reasons for failing. - </summary> -</histogram> - -<histogram name="GPU.ANGLE.D3D9InitializeResult" enum="D3D9InitializeResult"> - <owner>jmadill@chromium.org</owner> - <summary> - The result from initializing a D3D9 device in ANGLE. Can be success, or one - of several error codes which indicate different reasons for failing. - </summary> -</histogram> - <histogram name="GPU.CollectContextGraphicsInfo" units="microseconds"> <owner>vangelis@chromium.org</owner> <summary> @@ -10917,8 +10901,7 @@ Therefore, the affected-histogram name has to have at least one dot in it. <owner>jmadill@chromium.org</owner> <summary> ANGLE's currently active D3D shader model version. Logged once every startup - of the GPU process, on Windows only. Note that Shader Models 2 and 3 map to - D3D9 with ANGLE, and 4+ map to D3D11 ANGLE. + of the GPU process, on Windows only. </summary> </histogram> @@ -46117,27 +46100,6 @@ Therefore, the affected-histogram name has to have at least one dot in it. <int value="2" label="Has enough SCTs"/> </enum> -<enum name="D3D11InitializeResult" type="int"> - <int value="0" label="Success"/> - <int value="1" label="Error initializing compiler"/> - <int value="2" label="Missing DLL dependency"/> - <int value="3" label="D3D11CreateDevice returned E_INVALIDARG"/> - <int value="4" label="D3D11CreateDevice returned other error"/> - <int value="5" label="DXGI version not supported"/> - <int value="6" label="Other initialization error"/> -</enum> - -<enum name="D3D9InitializeResult" type="int"> - <int value="0" label="Success"/> - <int value="1" label="Error initializing compiler"/> - <int value="2" label="Missing DLL dependency"/> - <int value="3" label="Error creating device"/> - <int value="4" label="Shader version not supported"/> - <int value="5" label="StretchRect from textures not supported"/> - <int value="6" label="Device lost of out-of-memory error"/> - <int value="7" label="Other initialization error"/> -</enum> - <enum name="DailyEventIntervalType" type="int"> <int value="0" label="First Run"/> <int value="1" label="Day Elapsed"/> diff --git a/ui/gl/BUILD.gn b/ui/gl/BUILD.gn index 88b4c36..12a44cc 100644 --- a/ui/gl/BUILD.gn +++ b/ui/gl/BUILD.gn @@ -183,8 +183,6 @@ component("gl") { } if (is_win) { sources += [ - "angle_platform_impl.cc", - "angle_platform_impl.h", "gl_bindings_autogen_wgl.cc", "gl_bindings_autogen_wgl.h", "gl_context_wgl.cc", @@ -197,8 +195,6 @@ component("gl") { "gl_wgl_api_implementation.h", ] - deps += [ "//third_party/angle:libGLESv2" ] - libs = [ "dwmapi.lib" ] ldflags = [ "/DELAYLOAD:dwmapi.dll" ] } @@ -12,9 +12,5 @@ specific_include_rules = { # get access to desktop OpenGL. "gl_surface_osmesa.cc": [ "+third_party/mesa/src/include/GL/osmesa.h", - ], -# Allow us to include ANGLE's base platform implementation. - "angle_platform_impl.h": [ - "+third_party/angle/include/platform/Platform.h", - ], + ] } diff --git a/ui/gl/angle_platform_impl.cc b/ui/gl/angle_platform_impl.cc deleted file mode 100644 index 2ce12b8..0000000 --- a/ui/gl/angle_platform_impl.cc +++ /dev/null @@ -1,50 +0,0 @@ -// 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 "ui/gl/angle_platform_impl.h" - -#include "base/metrics/histogram.h" -#include "base/metrics/sparse_histogram.h" - -namespace gfx { - -ANGLEPlatformImpl::ANGLEPlatformImpl() { -} - -ANGLEPlatformImpl::~ANGLEPlatformImpl() { -} - -void ANGLEPlatformImpl::histogramCustomCounts(const char* name, - int sample, - int min, - int max, - int bucket_count) { - // Copied from histogram macro, but without the static variable caching - // the histogram because name is dynamic. - base::HistogramBase* counter = base::Histogram::FactoryGet( - name, min, max, bucket_count, - base::HistogramBase::kUmaTargetedHistogramFlag); - DCHECK_EQ(name, counter->histogram_name()); - counter->Add(sample); -} - -void ANGLEPlatformImpl::histogramEnumeration(const char* name, - int sample, - int boundary_value) { - // Copied from histogram macro, but without the static variable caching - // the histogram because name is dynamic. - base::HistogramBase* counter = base::LinearHistogram::FactoryGet( - name, 1, boundary_value, boundary_value + 1, - base::HistogramBase::kUmaTargetedHistogramFlag); - DCHECK_EQ(name, counter->histogram_name()); - counter->Add(sample); -} - -void ANGLEPlatformImpl::histogramSparse(const char* name, int sample) { - // For sparse histograms, we can use the macro, as it does not incorporate a - // static. - UMA_HISTOGRAM_SPARSE_SLOWLY(name, sample); -} - -} // namespace gfx diff --git a/ui/gl/angle_platform_impl.h b/ui/gl/angle_platform_impl.h deleted file mode 100644 index 2d12f60..0000000 --- a/ui/gl/angle_platform_impl.h +++ /dev/null @@ -1,39 +0,0 @@ -// 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 UI_GL_ANGLE_PLATFORM_IMPL_H_ -#define UI_GL_ANGLE_PLATFORM_IMPL_H_ - -// Implements the ANGLE platform interface, for functionality like -// histograms and trace profiling. - -#include "base/macros.h" -#include "third_party/angle/include/platform/Platform.h" - -namespace gfx { - -// Derives the base ANGLE platform and provides implementations -class ANGLEPlatformImpl : public angle::Platform { - public: - ANGLEPlatformImpl(); - ~ANGLEPlatformImpl() override; - - // angle::Platform: - void histogramCustomCounts(const char* name, - int sample, - int min, - int max, - int bucket_count) override; - void histogramEnumeration(const char* name, - int sample, - int boundary_value) override; - void histogramSparse(const char* name, int sample) override; - - private: - DISALLOW_COPY_AND_ASSIGN(ANGLEPlatformImpl); -}; - -} // namespace gfx - -#endif // UI_GL_ANGLE_PLATFORM_IMPL_H_ diff --git a/ui/gl/gl.gyp b/ui/gl/gl.gyp index d62950a..05381078 100644 --- a/ui/gl/gl.gyp +++ b/ui/gl/gl.gyp @@ -186,8 +186,6 @@ }], ['OS=="win"', { 'sources': [ - 'angle_platform_impl.cc', - 'angle_platform_impl.h', 'gl_bindings_autogen_wgl.cc', 'gl_bindings_autogen_wgl.h', 'gl_context_wgl.cc', @@ -199,11 +197,6 @@ 'gl_wgl_api_implementation.cc', 'gl_wgl_api_implementation.h', ], - 'dependencies': [ - # TODO(jmadill): Use ANGLE on other platforms. - '<(angle_path)/src/angle.gyp:libEGL', - '<(angle_path)/src/angle.gyp:libGLESv2', - ], 'msvs_settings': { 'VCLinkerTool': { 'DelayLoadDLLs': [ diff --git a/ui/gl/gl_implementation_win.cc b/ui/gl/gl_implementation_win.cc index 618250d..477f5a5 100644 --- a/ui/gl/gl_implementation_win.cc +++ b/ui/gl/gl_implementation_win.cc @@ -9,7 +9,6 @@ #include "base/bind.h" #include "base/command_line.h" #include "base/files/file_path.h" -#include "base/lazy_instance.h" #include "base/logging.h" #include "base/native_library.h" #include "base/path_service.h" @@ -17,8 +16,6 @@ #include "base/threading/thread_restrictions.h" #include "base/trace_event/trace_event.h" #include "base/win/windows_version.h" -// TODO(jmadill): Apply to all platforms eventually -#include "ui/gl/angle_platform_impl.h" #include "ui/gl/gl_bindings.h" #include "ui/gl/gl_context_stub_with_extensions.h" #include "ui/gl/gl_egl_api_implementation.h" @@ -100,10 +97,6 @@ typedef void (__stdcall *SetTraceFunctionPointersFunc)( GetCategoryEnabledFlagFunc get_category_enabled_flag, AddTraceEventFunc add_trace_event_func); -// TODO(jmadill): Apply to all platforms eventually -base::LazyInstance<ANGLEPlatformImpl> g_angle_platform_impl = - LAZY_INSTANCE_INITIALIZER; - } // namespace void GetAllowedGLImplementations(std::vector<GLImplementation>* impls) { @@ -118,10 +111,6 @@ bool InitializeStaticGLBindings(GLImplementation implementation) { // later switch to another GL implementation. DCHECK_EQ(kGLImplementationNone, GetGLImplementation()); - // Init ANGLE platform here, before we call GetPlatformDisplay(). - // TODO(jmadill): Apply to all platforms eventually - angle::Platform::initialize(&g_angle_platform_impl.Get()); - // Allow the main thread or another to initialize these bindings // after instituting restrictions on I/O. Going forward they will // likely be used in the browser process on most platforms. The @@ -359,9 +348,6 @@ void InitializeDebugGLBindings() { } void ClearGLBindings() { - // TODO(jmadill): Apply to all platforms eventually - angle::Platform::shutdown(); - ClearGLBindingsEGL(); ClearGLBindingsGL(); ClearGLBindingsOSMESA(); |