summaryrefslogtreecommitdiff
path: root/chromium/gpu/ipc/common/gpu_info.mojom
blob: 49a4babefe017e27815de51faabef7b9691852b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
// Copyright 2016 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.

// gpu/config/gpu_info.h
module gpu.mojom;

import "gpu/ipc/common/dx_diag_node.mojom";
import "mojo/public/mojom/base/time.mojom";
import "ui/gfx/geometry/mojo/geometry.mojom";

// gpu::GPUInfo::GPUDevice
struct GpuDevice {
  uint32 vendor_id;
  uint32 device_id;
  bool active;
  string vendor_string;
  string device_string;
};

// gpu::VideoCodecProfile
enum VideoCodecProfile {
  VIDEO_CODEC_PROFILE_UNKNOWN = -1,
  H264PROFILE_BASELINE = 0,
  H264PROFILE_MAIN,
  H264PROFILE_EXTENDED,
  H264PROFILE_HIGH,
  H264PROFILE_HIGH10PROFILE,
  H264PROFILE_HIGH422PROFILE,
  H264PROFILE_HIGH444PREDICTIVEPROFILE,
  H264PROFILE_SCALABLEBASELINE,
  H264PROFILE_SCALABLEHIGH,
  H264PROFILE_STEREOHIGH,
  H264PROFILE_MULTIVIEWHIGH,
  VP8PROFILE_ANY,
  VP9PROFILE_PROFILE0,
  VP9PROFILE_PROFILE1,
  VP9PROFILE_PROFILE2,
  VP9PROFILE_PROFILE3,
  HEVCPROFILE_MAIN,
  HEVCPROFILE_MAIN10,
  HEVCPROFILE_MAIN_STILL_PICTURE,
  DOLBYVISION_PROFILE0,
  DOLBYVISION_PROFILE4,
  DOLBYVISION_PROFILE5,
  DOLBYVISION_PROFILE7,
  THEORAPROFILE_ANY,
  AV1PROFILE_PROFILE0,
};

// gpu::VideoDecodeAcceleratorSupportedProfile
struct VideoDecodeAcceleratorSupportedProfile {
  VideoCodecProfile profile;
  gfx.mojom.Size max_resolution;
  gfx.mojom.Size min_resolution;
  bool encrypted_only;
};

// gpu::VideoDecodeAcceleratorCapabilities
struct VideoDecodeAcceleratorCapabilities {
  array<VideoDecodeAcceleratorSupportedProfile> supported_profiles;
  uint32 flags;
};

// gpu::VideoEncodeAcceleratorSupportedProfile
struct VideoEncodeAcceleratorSupportedProfile {
  VideoCodecProfile profile;
  gfx.mojom.Size max_resolution;
  uint32 max_framerate_numerator;
  uint32 max_framerate_denominator;
};

// Corresponds to |gpu::GPUInfo| in gpu/config/gpu_info.h
struct GpuInfo {
  mojo_base.mojom.TimeDelta initialization_time;
  bool optimus;
  bool amd_switchable;
  GpuDevice gpu;
  array<GpuDevice> secondary_gpus;
  string driver_vendor;
  string driver_version;
  string driver_date;
  string pixel_shader_version;
  string vertex_shader_version;
  string max_msaa_samples;
  string machine_model_name;
  string machine_model_version;
  string gl_version;
  string gl_vendor;
  string gl_renderer;
  string gl_extensions;
  string gl_ws_vendor;
  string gl_ws_version;
  string gl_ws_extensions;
  uint32 gl_reset_notification_strategy;
  bool software_rendering;
  bool direct_rendering;
  bool sandboxed;
  bool in_process_gpu;
  bool passthrough_cmd_decoder;
  bool direct_composition;
  bool supports_overlays;
  bool can_support_threaded_texture_mailbox;
  [EnableIf=is_win]
  DxDiagNode dx_diagnostics;
  [EnableIf=is_win]
  bool supports_dx12;
  [EnableIf=is_win]
  bool supports_vulkan;
  VideoDecodeAcceleratorCapabilities video_decode_accelerator_capabilities;
  array<VideoEncodeAcceleratorSupportedProfile>
    video_encode_accelerator_supported_profiles;
  bool jpeg_decode_accelerator_supported;
  uint64 system_visual;
  uint64 rgba_visual;
};