// 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 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 enabled_dawn_features_list; array 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; };