summaryrefslogtreecommitdiffstats
path: root/gfx/angle/src/tests/third_party/gpu_test_expectations/gpu_info.h
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /gfx/angle/src/tests/third_party/gpu_test_expectations/gpu_info.h
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'gfx/angle/src/tests/third_party/gpu_test_expectations/gpu_info.h')
-rwxr-xr-xgfx/angle/src/tests/third_party/gpu_test_expectations/gpu_info.h233
1 files changed, 233 insertions, 0 deletions
diff --git a/gfx/angle/src/tests/third_party/gpu_test_expectations/gpu_info.h b/gfx/angle/src/tests/third_party/gpu_test_expectations/gpu_info.h
new file mode 100755
index 000000000..0a7f9aa59
--- /dev/null
+++ b/gfx/angle/src/tests/third_party/gpu_test_expectations/gpu_info.h
@@ -0,0 +1,233 @@
+// Copyright (c) 2012 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_INFO_H_
+#define GPU_CONFIG_GPU_INFO_H_
+
+// Provides access to the GPU information for the system
+// on which chrome is currently running.
+
+#include <string>
+#include <vector>
+
+#include "angle_config.h"
+
+namespace gpu {
+
+// Result for the various Collect*Info* functions below.
+// Fatal failures are for cases where we can't create a context at all or
+// something, making the use of the GPU impossible.
+// Non-fatal failures are for cases where we could gather most info, but maybe
+// some is missing (e.g. unable to parse a version string or to detect the exact
+// model).
+enum CollectInfoResult {
+ kCollectInfoNone = 0,
+ kCollectInfoSuccess = 1,
+ kCollectInfoNonFatalFailure = 2,
+ kCollectInfoFatalFailure = 3
+};
+
+// Video profile. This *must* match media::VideoCodecProfile.
+enum VideoCodecProfile {
+ VIDEO_CODEC_PROFILE_UNKNOWN = -1,
+ VIDEO_CODEC_PROFILE_MIN = VIDEO_CODEC_PROFILE_UNKNOWN,
+ H264PROFILE_BASELINE = 0,
+ H264PROFILE_MAIN = 1,
+ H264PROFILE_EXTENDED = 2,
+ H264PROFILE_HIGH = 3,
+ H264PROFILE_HIGH10PROFILE = 4,
+ H264PROFILE_HIGH422PROFILE = 5,
+ H264PROFILE_HIGH444PREDICTIVEPROFILE = 6,
+ H264PROFILE_SCALABLEBASELINE = 7,
+ H264PROFILE_SCALABLEHIGH = 8,
+ H264PROFILE_STEREOHIGH = 9,
+ H264PROFILE_MULTIVIEWHIGH = 10,
+ VP8PROFILE_ANY = 11,
+ VP9PROFILE_ANY = 12,
+ VIDEO_CODEC_PROFILE_MAX = VP9PROFILE_ANY,
+};
+
+struct GPU_EXPORT GPUInfo {
+ struct GPU_EXPORT GPUDevice {
+ GPUDevice();
+ ~GPUDevice();
+
+ // The DWORD (uint32) representing the graphics card vendor id.
+ uint32 vendor_id;
+
+ // The DWORD (uint32) representing the graphics card device id.
+ // Device ids are unique to vendor, not to one another.
+ uint32 device_id;
+
+ // Whether this GPU is the currently used one.
+ // Currently this field is only supported and meaningful on OS X.
+ bool active;
+
+ // The strings that describe the GPU.
+ // In Linux these strings are obtained through libpci.
+ // In Win/MacOSX, these two strings are not filled at the moment.
+ // In Android, these are respectively GL_VENDOR and GL_RENDERER.
+ std::string vendor_string;
+ std::string device_string;
+ };
+
+ GPUInfo();
+ ~GPUInfo();
+
+ bool SupportsAccelerated2dCanvas() const {
+ return !can_lose_context && !software_rendering;
+ }
+
+ // Computer has NVIDIA Optimus
+ bool optimus;
+
+ // Computer has AMD Dynamic Switchable Graphics
+ bool amd_switchable;
+
+ // Lenovo dCute is installed. http://crbug.com/181665.
+ bool lenovo_dcute;
+
+ // Primary GPU, for exmaple, the discrete GPU in a dual GPU machine.
+ GPUDevice gpu;
+
+ // Secondary GPUs, for example, the integrated GPU in a dual GPU machine.
+ std::vector<GPUDevice> secondary_gpus;
+
+ // On Windows, the unique identifier of the adapter the GPU process uses.
+ // The default is zero, which makes the browser process create its D3D device
+ // on the primary adapter. Note that the primary adapter can change at any
+ // time so it is better to specify a particular LUID. Note that valid LUIDs
+ // are always non-zero.
+ uint64 adapter_luid;
+
+ // The vendor of the graphics driver currently installed.
+ std::string driver_vendor;
+
+ // The version of the graphics driver currently installed.
+ std::string driver_version;
+
+ // The date of the graphics driver currently installed.
+ std::string driver_date;
+
+ // The version of the pixel/fragment shader used by the gpu.
+ std::string pixel_shader_version;
+
+ // The version of the vertex shader used by the gpu.
+ std::string vertex_shader_version;
+
+ // The maximum multisapling sample count, either through ES3 or
+ // EXT_multisampled_render_to_texture MSAA.
+ std::string max_msaa_samples;
+
+ // The machine model identifier. They can contain any character, including
+ // whitespaces. Currently it is supported on MacOSX and Android.
+ // Android examples: "Naxus 5", "XT1032".
+ // On MacOSX, the version is stripped out of the model identifier, for
+ // example, the original identifier is "MacBookPro7,2", and we put
+ // "MacBookPro" as machine_model_name, and "7.2" as machine_model_version.
+ std::string machine_model_name;
+
+ // The version of the machine model. Currently it is supported on MacOSX.
+ // See machine_model_name's comment.
+ std::string machine_model_version;
+
+ // The GL_VERSION string.
+ std::string gl_version;
+
+ // The GL_VENDOR string.
+ std::string gl_vendor;
+
+ // The GL_RENDERER string.
+ std::string gl_renderer;
+
+ // The GL_EXTENSIONS string.
+ std::string gl_extensions;
+
+ // GL window system binding vendor. "" if not available.
+ std::string gl_ws_vendor;
+
+ // GL window system binding version. "" if not available.
+ std::string gl_ws_version;
+
+ // GL window system binding extensions. "" if not available.
+ std::string gl_ws_extensions;
+
+ // GL reset notification strategy as defined by GL_ARB_robustness. 0 if GPU
+ // reset detection or notification not available.
+ uint32 gl_reset_notification_strategy;
+
+ // The device semantics, i.e. whether the Vista and Windows 7 specific
+ // semantics are available.
+ bool can_lose_context;
+
+ bool software_rendering;
+
+ // Whether the driver uses direct rendering. True on most platforms, false on
+ // X11 when using remote X.
+ bool direct_rendering;
+
+ // Whether the gpu process is running in a sandbox.
+ bool sandboxed;
+
+ // Number of GPU process crashes recorded.
+ int process_crash_count;
+
+ // True if the GPU is running in the browser process instead of its own.
+ bool in_process_gpu;
+
+ // The state of whether the basic/context/DxDiagnostics info is collected and
+ // if the collection fails or not.
+ CollectInfoResult basic_info_state;
+ CollectInfoResult context_info_state;
+
+ bool jpeg_decode_accelerator_supported;
+
+ // Note: when adding new members, please remember to update EnumerateFields
+ // in gpu_info.cc.
+
+ // In conjunction with EnumerateFields, this allows the embedder to
+ // enumerate the values in this structure without having to embed
+ // references to its specific member variables. This simplifies the
+ // addition of new fields to this type.
+ class Enumerator {
+ public:
+ // The following methods apply to the "current" object. Initially this
+ // is the root object, but calls to BeginGPUDevice/EndGPUDevice and
+ // BeginAuxAttributes/EndAuxAttributes change the object to which these
+ // calls should apply.
+ virtual void AddInt64(const char* name, int64 value) = 0;
+ virtual void AddInt(const char* name, int value) = 0;
+ virtual void AddString(const char* name, const std::string& value) = 0;
+ virtual void AddBool(const char* name, bool value) = 0;
+
+ // Markers indicating that a GPUDevice is being described.
+ virtual void BeginGPUDevice() = 0;
+ virtual void EndGPUDevice() = 0;
+
+ // Markers indicating that a VideoDecodeAcceleratorSupportedProfile is
+ // being described.
+ virtual void BeginVideoDecodeAcceleratorSupportedProfile() = 0;
+ virtual void EndVideoDecodeAcceleratorSupportedProfile() = 0;
+
+ // Markers indicating that a VideoEncodeAcceleratorSupportedProfile is
+ // being described.
+ virtual void BeginVideoEncodeAcceleratorSupportedProfile() = 0;
+ virtual void EndVideoEncodeAcceleratorSupportedProfile() = 0;
+
+ // Markers indicating that "auxiliary" attributes of the GPUInfo
+ // (according to the DevTools protocol) are being described.
+ virtual void BeginAuxAttributes() = 0;
+ virtual void EndAuxAttributes() = 0;
+
+ protected:
+ virtual ~Enumerator() {}
+ };
+
+ // Outputs the fields in this structure to the provided enumerator.
+ void EnumerateFields(Enumerator* enumerator) const;
+};
+
+} // namespace gpu
+
+#endif // GPU_CONFIG_GPU_INFO_H_