1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "gpu/config/gpu_switches.h"
6 
7 namespace switches {
8 
9 // Disable GPU rasterization, i.e. rasterize on the CPU only.
10 // Overrides the kEnableGpuRasterization flag.
11 const char kDisableGpuRasterization[] = "disable-gpu-rasterization";
12 
13 // Disables mipmap generation in Skia. Used a workaround for select low memory
14 // devices, see https://crbug.com/1138979 for details.
15 const char kDisableMipmapGeneration[] = "disable-mipmap-generation";
16 
17 // Allow heuristics to determine when a layer tile should be drawn with the
18 // Skia GPU backend. Only valid with GPU accelerated compositing.
19 const char kEnableGpuRasterization[] = "enable-gpu-rasterization";
20 
21 // Select a different set of GPU blocklist entries with the specified
22 // test_group ID.
23 const char kGpuBlocklistTestGroup[] = "gpu-blocklist-test-group";
24 
25 // Enable an extra set of GPU driver bug list entries with the specified
26 // test_group ID. Note the default test group (group 0) is still active.
27 const char kGpuDriverBugListTestGroup[] = "gpu-driver-bug-list-test-group";
28 
29 // Passes encoded GpuPreferences to GPU process.
30 const char kGpuPreferences[] = "gpu-preferences";
31 
32 // Ignores GPU blocklist.
33 const char kIgnoreGpuBlocklist[] = "ignore-gpu-blocklist";
34 
35 // Ignores GPU blocklist.
36 // TODO(crbug.com/1101491): remove in 2020Q4 in favor of --ignore-gpu-blocklist.
37 const char kIgnoreGpuBlacklist[] = "ignore-gpu-blacklist";
38 
39 // Allows explicitly specifying the shader disk cache size for embedded devices.
40 // Default value is 6MB. On Android, 2MB is default and 128KB for low-end
41 // devices.
42 const char kShaderDiskCacheSizeKB[] = "shader-disk-cache-size-kb";
43 
44 // Disables the non-sandboxed GPU process for DX12 info collection
45 const char kDisableGpuProcessForDX12InfoCollection[] =
46     "disable-gpu-process-for-dx12-info-collection";
47 
48 const char kEnableUnsafeWebGPU[] = "enable-unsafe-webgpu";
49 
50 // Enable validation layers in Dawn backends.
51 const char kEnableDawnBackendValidation[] = "enable-dawn-backend-validation";
52 
53 // Enable the toggle Toggle::DisableRobustness when creating Dawn device.
54 const char kDisableDawnRobustness[] = "disable-dawn-robustness";
55 
56 // Increases the priority (to REALTIME_AUDIO) of gpu process and compositor
57 // thread.
58 // This is only to be used for perf tests on macOS for more reliable values.
59 const char kUseHighGPUThreadPriorityForPerfTests[] =
60     "use-gpu-high-thread-priority-for-perf-tests";
61 
62 // Start the non-sandboxed GPU process for DX12 and Vulkan info collection
63 // immediately after the browser starts. The default is to delay for 120
64 // seconds.
65 const char kNoDelayForDX12VulkanInfoCollection[] =
66     "no-delay-for-dx12-vulkan-info-collection";
67 
68 // Enables measures of how long GPU Main Thread was blocked between SwapBuffers
69 const char kEnableGpuBlockedTime[] = "enable-gpu-blocked-time";
70 
71 // Passes the active graphics vendor id from browser process to info collection
72 // GPU process.
73 const char kGpuVendorId[] = "gpu-vendor-id";
74 
75 // Passes the active graphics device id from browser process to info collection
76 // GPU process.
77 const char kGpuDeviceId[] = "gpu-device-id";
78 
79 // Passes the active graphics sub system id from browser process to info
80 // collection GPU process.
81 const char kGpuSubSystemId[] = "gpu-sub-system-id";
82 
83 // Passes the active graphics revision info from browser process to info
84 // collection GPU process.
85 const char kGpuRevision[] = "gpu-revision";
86 
87 // Passes the active graphics driver version from browser process to info
88 // collection GPU process.
89 const char kGpuDriverVersion[] = "gpu-driver-version";
90 
91 // Indicate that the this is being used by Android WebView and its draw functor
92 // is using vulkan.
93 const char kWebViewDrawFunctorUsesVulkan[] = "webview-draw-functor-uses-vulkan";
94 
95 // Enables using protected memory for vulkan resources.
96 const char kEnableVulkanProtectedMemory[] = "enable-vulkan-protected-memory";
97 
98 // Forces vulkan resources to use protected memory for vulkan compositing.
99 const char kEnforceVulkanProtectedMemory[] = "enforce-vulkan-protected-memory";
100 
101 // Disables falling back to GL based hardware rendering if initializing Vulkan
102 // fails. This is to allow tests to catch regressions in Vulkan.
103 const char kDisableVulkanFallbackToGLForTesting[] =
104     "disable-vulkan-fallback-to-gl-for-testing";
105 
106 // Specifies the heap limit for Vulkan memory.
107 // TODO(crbug/1158000): Remove this switch.
108 const char kVulkanHeapMemoryLimitMb[] = "vulkan-heap-memory-limit-mb";
109 
110 // Specifies the sync CPU limit for total Vulkan memory.
111 // TODO(crbug/1158000): Remove this switch.
112 const char kVulkanSyncCpuMemoryLimitMb[] = "vulkan-sync-cpu-memory-limit-mb";
113 
114 }  // namespace switches
115