// 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"; [EnableIf=is_win] import "gpu/ipc/common/luid.mojom"; import "mojo/public/mojom/base/time.mojom"; import "ui/gfx/geometry/mojom/geometry.mojom"; [EnableIf=supports_vulkan] import "gpu/ipc/common/vulkan_info.mojom"; // gpu::GPUInfo::GPUDevice struct GpuDevice { uint32 vendor_id; uint32 device_id; [EnableIf=is_win] uint32 sub_sys_id; [EnableIf=has_gpu_revision_info] uint32 revision; bool active; string vendor_string; string device_string; string driver_vendor; string driver_version; int32 cuda_compute_capability_major; [EnableIf=is_win] Luid luid; }; // 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_PROFILE_MAIN, AV1PROFILE_PROFILE_HIGH, AV1PROFILE_PROFILE_PRO, DOLBYVISION_PROFILE8, DOLBYVISION_PROFILE9, }; // gpu::VideoDecodeAcceleratorSupportedProfile struct VideoDecodeAcceleratorSupportedProfile { VideoCodecProfile profile; gfx.mojom.Size max_resolution; gfx.mojom.Size min_resolution; bool encrypted_only; }; // gpu::VideoDecodeAcceleratorCapabilities struct VideoDecodeAcceleratorCapabilities { array supported_profiles; uint32 flags; }; // gpu::VideoEncodeAcceleratorSupportedProfile struct VideoEncodeAcceleratorSupportedProfile { VideoCodecProfile profile; gfx.mojom.Size min_resolution; gfx.mojom.Size max_resolution; uint32 max_framerate_numerator; uint32 max_framerate_denominator; }; // gpu::ImageDecodeAcceleratorType enum ImageDecodeAcceleratorType { kJpeg, kWebP, kUnknown, }; // gpu::ImageDecodeAcceleratorSubsampling enum ImageDecodeAcceleratorSubsampling { k420, k422, k444, }; // gpu::ImageDecodeAcceleratorSupportedProfile struct ImageDecodeAcceleratorSupportedProfile { ImageDecodeAcceleratorType image_type; gfx.mojom.Size min_encoded_dimensions; gfx.mojom.Size max_encoded_dimensions; array subsamplings; }; // gpu::OverlaySupport [EnableIf=is_win] enum OverlaySupport { NONE, DIRECT, SCALING, SOFTWARE, }; // gpu::OverlayInfo [EnableIf=is_win] struct OverlayInfo { bool direct_composition; bool supports_overlays; OverlaySupport yuy2_overlay_support; OverlaySupport nv12_overlay_support; OverlaySupport bgra8_overlay_support; OverlaySupport rgb10a2_overlay_support; }; // 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 secondary_gpus; 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; string direct_rendering_version; bool sandboxed; bool in_process_gpu; bool passthrough_cmd_decoder; bool can_support_threaded_texture_mailbox; [EnableIf=is_mac] uint32 macos_specific_texture_target; [EnableIf=is_win] DxDiagNode dx_diagnostics; [EnableIf=is_win] uint32 d3d12_feature_level; [EnableIf=is_win] uint32 vulkan_version; [EnableIf=is_win] OverlayInfo overlay_info; VideoDecodeAcceleratorCapabilities video_decode_accelerator_capabilities; array video_decoder_capabilities; array video_encode_accelerator_supported_profiles; bool jpeg_decode_accelerator_supported; array image_decode_accelerator_supported_profiles; bool oop_rasterization_supported; bool subpixel_font_rendering; uint32 visibility_callback_call_count; [EnableIf=supports_vulkan] VulkanInfo? vulkan_info; };