summaryrefslogtreecommitdiff
path: root/chromium/gpu/ipc/common/gpu_preferences.mojom
blob: f6c9b477e0787607e57d8088c99466c2ee2865fc (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
// 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_preferences.h
module gpu.mojom;

[EnableIf=use_ozone]
import "mojo/public/mojom/base/message_pump_type.mojom";

import "ui/gfx/mojom/buffer_types.mojom";

// Corresponds to gpu::VulkanImplementationName.
enum VulkanImplementationName {
  kNone = 0,
  kNative = 1,
  kForcedNative = 2,
  kSwiftshader = 3,
  kLast = kSwiftshader,
};

// Corresponds to gpu::GrContextType.
enum GrContextType {
  kGL = 0,
  kVulkan = 1,
  kMetal = 2,
  kDawn = 3,
  kLast = kDawn,
};

// gpu::GpuPreferences
struct GpuPreferences {
  bool disable_accelerated_video_decode;
  bool disable_accelerated_video_encode;
  bool gpu_startup_dialog;
  bool disable_gpu_watchdog;
  bool gpu_sandbox_start_early;

  // TODO(http://crbug.com/676224) Support preprocessing of mojoms. Following
  // variables should be used on Windows only.
  bool enable_low_latency_dxva;
  bool enable_zero_copy_dxgi_video;
  bool enable_nv12_dxgi_video;
  bool enable_media_foundation_vea_on_windows7;
  bool disable_software_rasterizer;
  bool log_gpu_control_list_decisions;

  bool compile_shader_always_succeeds;
  bool disable_gl_error_limit;
  bool disable_glsl_translator;
  bool disable_shader_name_hashing;
  bool enable_gpu_command_logging;
  bool enable_gpu_debugging;
  bool enable_gpu_service_logging_gpu;
  bool enable_gpu_driver_debug_logging;
  bool disable_gpu_program_cache;
  bool enforce_gl_minimums;
  uint32 force_gpu_mem_available_bytes;
  uint32 force_gpu_mem_discardable_limit_bytes;
  uint32 force_max_texture_size;
  uint32 gpu_program_cache_size;
  bool disable_gpu_shader_disk_cache;
  bool enable_threaded_texture_mailboxes;
  bool gl_shader_interm_output;
  bool emulate_shader_precision;
  bool enable_android_surface_control;
  bool enable_gpu_service_logging;
  bool enable_gpu_service_tracing;
  bool use_passthrough_cmd_decoder;
  bool disable_biplanar_gpu_memory_buffers_for_video_frames;
  array<gfx.mojom.BufferUsageAndFormat> texture_target_exception_list;

  bool ignore_gpu_blocklist;
  bool enable_oop_rasterization;
  bool disable_oop_rasterization;
  bool enable_oop_rasterization_ddl;
  bool watchdog_starts_backgrounded;
  GrContextType gr_context_type;
  VulkanImplementationName use_vulkan;
  bool enable_vulkan_protected_memory;
  bool enforce_vulkan_protected_memory;
  bool disable_vulkan_surface;
  bool disable_vulkan_fallback_to_gl_for_testing;
  uint32 vulkan_heap_memory_limit;
  uint32 vulkan_sync_cpu_memory_limit;
  bool enable_metal;
  bool enable_gpu_benchmarking_extension;
  bool enable_webgpu;
  bool enable_dawn_backend_validation;
  bool disable_dawn_robustness;
  bool enable_gpu_blocked_time_metric;
  bool enable_perf_data_collection;

  [EnableIf=use_ozone]
  mojo_base.mojom.MessagePumpType message_pump_type;

  bool enable_native_gpu_memory_buffers;

  [EnableIf=is_chromeos]
  bool platform_disallows_chromeos_direct_video_decoder;
};