blob: f95dcacc3723145a373ffa6fbb50240f5671bf8a [file] [log] [blame]
// 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,
};
// Corresponds to gpu::DawnBackendValidationLevel
enum DawnBackendValidationLevel {
kDisabled = 0,
kPartial = 1,
kFull = 2,
};
// 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 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 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_webgpu_spirv;
bool force_webgpu_compat;
DawnBackendValidationLevel enable_dawn_backend_validation;
array<string> enabled_dawn_features_list;
array<string> disabled_dawn_features_list;
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 enable_chromeos_direct_video_decoder;
};