diff options
Diffstat (limited to 'chromium/gpu/ipc/common')
-rw-r--r-- | chromium/gpu/ipc/common/BUILD.gn | 29 | ||||
-rw-r--r-- | chromium/gpu/ipc/common/PRESUBMIT.py | 4 | ||||
-rw-r--r-- | chromium/gpu/ipc/common/gpu_info.mojom | 19 | ||||
-rw-r--r-- | chromium/gpu/ipc/common/gpu_info_mojom_traits.cc | 25 | ||||
-rw-r--r-- | chromium/gpu/ipc/common/gpu_info_mojom_traits.h | 47 | ||||
-rw-r--r-- | chromium/gpu/ipc/common/gpu_memory_buffer_impl_dxgi.cc | 1 | ||||
-rw-r--r-- | chromium/gpu/ipc/common/gpu_messages.h | 6 | ||||
-rw-r--r-- | chromium/gpu/ipc/common/gpu_param_traits_macros.h | 5 | ||||
-rw-r--r-- | chromium/gpu/ipc/common/luid.mojom | 12 | ||||
-rw-r--r-- | chromium/gpu/ipc/common/luid_mojom_traits.h | 27 |
10 files changed, 116 insertions, 59 deletions
diff --git a/chromium/gpu/ipc/common/BUILD.gn b/chromium/gpu/ipc/common/BUILD.gn index a8f3c602db5..51c88a3817c 100644 --- a/chromium/gpu/ipc/common/BUILD.gn +++ b/chromium/gpu/ipc/common/BUILD.gn @@ -214,6 +214,10 @@ mojom("interfaces") { "vulkan_ycbcr_info.mojom", ] + if (is_win) { + sources += [ "luid.mojom" ] + } + public_deps = [ ":gpu_preferences_interface", "//mojo/public/mojom/base", @@ -269,6 +273,24 @@ mojom("interfaces") { }, ] + if (is_win) { + shared_cpp_typemaps += [ + { + types = [ + { + mojom = "gpu.mojom.Luid" + cpp = "::LUID" + }, + ] + traits_headers = [ "luid_mojom_traits.h" ] + traits_public_deps = [ + ":mojom_traits", + "//gpu/config", + ] + }, + ] + } + cpp_typemaps = shared_cpp_typemaps blink_cpp_typemaps = shared_cpp_typemaps @@ -364,10 +386,6 @@ mojom("interfaces") { cpp = "::gpu::CollectInfoResult" }, { - mojom = "gpu.mojom.Dx12VulkanVersionInfo" - cpp = "::gpu::Dx12VulkanVersionInfo" - }, - { mojom = "gpu.mojom.OverlayInfo" cpp = "::gpu::OverlayInfo" }, @@ -580,6 +598,9 @@ source_set("mojom_traits") { if (is_android) { sources += [ "vulkan_ycbcr_info_mojom_traits.h" ] } + if (is_win) { + sources += [ "luid_mojom_traits.h" ] + } if (enable_vulkan) { deps += [ ":vulkan_types_mojom_traits" ] } diff --git a/chromium/gpu/ipc/common/PRESUBMIT.py b/chromium/gpu/ipc/common/PRESUBMIT.py index fa602d4a0ad..98ecf4b0a9c 100644 --- a/chromium/gpu/ipc/common/PRESUBMIT.py +++ b/chromium/gpu/ipc/common/PRESUBMIT.py @@ -26,8 +26,8 @@ def CommonChecks(input_api, output_api): if generated_files and not generating_files: long_text = 'Changed files:\n' - for file in generated_files: - long_text += file.LocalPath() + '\n' + for generated_file in generated_files: + long_text += generated_file.LocalPath() + '\n' long_text += '\n' messages.append(output_api.PresubmitError( 'Vulkan types generated files changed but the generator ' diff --git a/chromium/gpu/ipc/common/gpu_info.mojom b/chromium/gpu/ipc/common/gpu_info.mojom index 7dc59093d2b..ad90a1ca7e9 100644 --- a/chromium/gpu/ipc/common/gpu_info.mojom +++ b/chromium/gpu/ipc/common/gpu_info.mojom @@ -6,6 +6,8 @@ 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"; @@ -26,6 +28,8 @@ struct GpuDevice { string driver_vendor; string driver_version; int32 cuda_compute_capability_major; + [EnableIf=is_win] + Luid luid; }; // gpu::VideoCodecProfile @@ -116,15 +120,6 @@ enum OverlaySupport { SOFTWARE, }; -// gpu::Dx12VulkanVersionInfo -[EnableIf=is_win] -struct Dx12VulkanVersionInfo { - bool supports_dx12; - bool supports_vulkan; - uint32 d3d12_feature_level; - uint32 vulkan_version; -}; - // gpu::OverlayInfo [EnableIf=is_win] struct OverlayInfo { @@ -132,6 +127,8 @@ struct OverlayInfo { 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 @@ -167,7 +164,9 @@ struct GpuInfo { [EnableIf=is_win] DxDiagNode dx_diagnostics; [EnableIf=is_win] - Dx12VulkanVersionInfo dx12_vulkan_version_info; + uint32 d3d12_feature_level; + [EnableIf=is_win] + uint32 vulkan_version; [EnableIf=is_win] OverlayInfo overlay_info; diff --git a/chromium/gpu/ipc/common/gpu_info_mojom_traits.cc b/chromium/gpu/ipc/common/gpu_info_mojom_traits.cc index 3d7e314ba8c..1d967041854 100644 --- a/chromium/gpu/ipc/common/gpu_info_mojom_traits.cc +++ b/chromium/gpu/ipc/common/gpu_info_mojom_traits.cc @@ -28,6 +28,9 @@ bool StructTraits<gpu::mojom::GpuDeviceDataView, gpu::GPUInfo::GPUDevice>::Read( out->cuda_compute_capability_major = data.cuda_compute_capability_major(); return data.ReadVendorString(&out->vendor_string) && data.ReadDeviceString(&out->device_string) && +#if defined(OS_WIN) + data.ReadLuid(&out->luid) && +#endif // OS_WIN data.ReadDriverVendor(&out->driver_vendor) && data.ReadDriverVersion(&out->driver_version); } @@ -355,25 +358,15 @@ bool EnumTraits<gpu::mojom::OverlaySupport, gpu::OverlaySupport>::FromMojom( return true; } -// static -bool StructTraits<gpu::mojom::Dx12VulkanVersionInfoDataView, - gpu::Dx12VulkanVersionInfo>:: - Read(gpu::mojom::Dx12VulkanVersionInfoDataView data, - gpu::Dx12VulkanVersionInfo* out) { - out->supports_dx12 = data.supports_dx12(); - out->supports_vulkan = data.supports_vulkan(); - out->d3d12_feature_level = data.d3d12_feature_level(); - out->vulkan_version = data.vulkan_version(); - return true; -} - bool StructTraits<gpu::mojom::OverlayInfoDataView, gpu::OverlayInfo>::Read( gpu::mojom::OverlayInfoDataView data, gpu::OverlayInfo* out) { out->direct_composition = data.direct_composition(); out->supports_overlays = data.supports_overlays(); return data.ReadYuy2OverlaySupport(&out->yuy2_overlay_support) && - data.ReadNv12OverlaySupport(&out->nv12_overlay_support); + data.ReadNv12OverlaySupport(&out->nv12_overlay_support) && + data.ReadBgra8OverlaySupport(&out->bgra8_overlay_support) && + data.ReadRgb10a2OverlaySupport(&out->rgb10a2_overlay_support); } #endif @@ -402,6 +395,11 @@ bool StructTraits<gpu::mojom::GpuInfoDataView, gpu::GPUInfo>::Read( out->oop_rasterization_supported = data.oop_rasterization_supported(); out->subpixel_font_rendering = data.subpixel_font_rendering(); +#if defined(OS_WIN) + out->d3d12_feature_level = data.d3d12_feature_level(); + out->vulkan_version = data.vulkan_version(); +#endif + return data.ReadInitializationTime(&out->initialization_time) && data.ReadGpu(&out->gpu) && data.ReadSecondaryGpus(&out->secondary_gpus) && @@ -421,7 +419,6 @@ bool StructTraits<gpu::mojom::GpuInfoDataView, gpu::GPUInfo>::Read( #if defined(OS_WIN) data.ReadOverlayInfo(&out->overlay_info) && data.ReadDxDiagnostics(&out->dx_diagnostics) && - data.ReadDx12VulkanVersionInfo(&out->dx12_vulkan_version_info) && #endif data.ReadVideoDecodeAcceleratorCapabilities( &out->video_decode_accelerator_capabilities) && diff --git a/chromium/gpu/ipc/common/gpu_info_mojom_traits.h b/chromium/gpu/ipc/common/gpu_info_mojom_traits.h index 5fc0b439a94..09778fffb31 100644 --- a/chromium/gpu/ipc/common/gpu_info_mojom_traits.h +++ b/chromium/gpu/ipc/common/gpu_info_mojom_traits.h @@ -36,6 +36,10 @@ struct StructTraits<gpu::mojom::GpuDeviceDataView, gpu::GPUInfo::GPUDevice> { static uint32_t revision(const gpu::GPUInfo::GPUDevice& input) { return input.revision; } + + static const LUID luid(const gpu::GPUInfo::GPUDevice& input) { + return input.luid; + } #endif // OS_WIN static bool active(const gpu::GPUInfo::GPUDevice& input) { @@ -208,29 +212,6 @@ struct EnumTraits<gpu::mojom::OverlaySupport, gpu::OverlaySupport> { }; template <> -struct StructTraits<gpu::mojom::Dx12VulkanVersionInfoDataView, - gpu::Dx12VulkanVersionInfo> { - static bool Read(gpu::mojom::Dx12VulkanVersionInfoDataView data, - gpu::Dx12VulkanVersionInfo* out); - - static bool supports_dx12(const gpu::Dx12VulkanVersionInfo& input) { - return input.supports_dx12; - } - - static bool supports_vulkan(const gpu::Dx12VulkanVersionInfo& input) { - return input.supports_vulkan; - } - - static uint32_t d3d12_feature_level(const gpu::Dx12VulkanVersionInfo& input) { - return input.d3d12_feature_level; - } - - static uint32_t vulkan_version(const gpu::Dx12VulkanVersionInfo& input) { - return input.vulkan_version; - } -}; - -template <> struct StructTraits<gpu::mojom::OverlayInfoDataView, gpu::OverlayInfo> { static bool Read(gpu::mojom::OverlayInfoDataView data, gpu::OverlayInfo* out); @@ -251,6 +232,16 @@ struct StructTraits<gpu::mojom::OverlayInfoDataView, gpu::OverlayInfo> { const gpu::OverlayInfo& input) { return input.nv12_overlay_support; } + + static gpu::OverlaySupport bgra8_overlay_support( + const gpu::OverlayInfo& input) { + return input.bgra8_overlay_support; + } + + static gpu::OverlaySupport rgb10a2_overlay_support( + const gpu::OverlayInfo& input) { + return input.rgb10a2_overlay_support; + } }; #endif @@ -360,14 +351,16 @@ struct StructTraits<gpu::mojom::GpuInfoDataView, gpu::GPUInfo> { #endif // OS_MACOSX #if defined(OS_WIN) - static const gpu::DxDiagNode& dx_diagnostics(const gpu::GPUInfo& input) { return input.dx_diagnostics; } - static const gpu::Dx12VulkanVersionInfo& dx12_vulkan_version_info( - const gpu::GPUInfo& input) { - return input.dx12_vulkan_version_info; + static uint32_t d3d12_feature_level(const gpu::GPUInfo& input) { + return input.d3d12_feature_level; + } + + static uint32_t vulkan_version(const gpu::GPUInfo& input) { + return input.vulkan_version; } static const gpu::OverlayInfo& overlay_info(const gpu::GPUInfo& input) { diff --git a/chromium/gpu/ipc/common/gpu_memory_buffer_impl_dxgi.cc b/chromium/gpu/ipc/common/gpu_memory_buffer_impl_dxgi.cc index 500ff3cb9e4..051e8a95b75 100644 --- a/chromium/gpu/ipc/common/gpu_memory_buffer_impl_dxgi.cc +++ b/chromium/gpu/ipc/common/gpu_memory_buffer_impl_dxgi.cc @@ -7,6 +7,7 @@ #include "base/bind.h" #include "base/bind_helpers.h" #include "base/command_line.h" +#include "base/logging.h" #include "base/memory/ptr_util.h" #include "gpu/ipc/common/gpu_memory_buffer_impl_dxgi.h" #include "gpu/ipc/common/gpu_memory_buffer_support.h" diff --git a/chromium/gpu/ipc/common/gpu_messages.h b/chromium/gpu/ipc/common/gpu_messages.h index ca201770ab5..db1bb624ef7 100644 --- a/chromium/gpu/ipc/common/gpu_messages.h +++ b/chromium/gpu/ipc/common/gpu_messages.h @@ -189,9 +189,11 @@ IPC_MESSAGE_ROUTED2(GpuChannelMsg_PresentSwapChain, uint32_t /* release_id */) #endif // OS_WIN #if defined(OS_FUCHSIA) -IPC_MESSAGE_ROUTED2(GpuChannelMsg_RegisterSysmemBufferCollection, +IPC_MESSAGE_ROUTED4(GpuChannelMsg_RegisterSysmemBufferCollection, gfx::SysmemBufferCollectionId /* id */, - zx::channel /* token */) + zx::channel /* token */, + gfx::BufferFormat /* format */, + gfx::BufferUsage /* usage */) IPC_MESSAGE_ROUTED1(GpuChannelMsg_ReleaseSysmemBufferCollection, gfx::SysmemBufferCollectionId /* id */) #endif // OS_FUCHSIA diff --git a/chromium/gpu/ipc/common/gpu_param_traits_macros.h b/chromium/gpu/ipc/common/gpu_param_traits_macros.h index 9fd93a4b637..02296d13bde 100644 --- a/chromium/gpu/ipc/common/gpu_param_traits_macros.h +++ b/chromium/gpu/ipc/common/gpu_param_traits_macros.h @@ -12,6 +12,7 @@ #include "gpu/command_buffer/common/swap_buffers_complete_params.h" #include "gpu/gpu_export.h" #include "gpu/ipc/common/gpu_command_buffer_traits.h" +#include "gpu/ipc/common/surface_handle.h" #include "ipc/ipc_message_macros.h" #include "ui/gfx/ipc/gfx_param_traits.h" #include "url/ipc/url_param_traits.h" @@ -32,4 +33,8 @@ IPC_STRUCT_TRAITS_END() IPC_ENUM_TRAITS_MAX_VALUE(viz::ResourceFormat, viz::RESOURCE_FORMAT_MAX) +#if defined(USE_X11) +IPC_ENUM_TRAITS(gpu::SurfaceHandle) +#endif + #endif // GPU_IPC_COMMON_GPU_PARAM_TRAITS_MACROS_H_ diff --git a/chromium/gpu/ipc/common/luid.mojom b/chromium/gpu/ipc/common/luid.mojom new file mode 100644 index 00000000000..68da5dbda46 --- /dev/null +++ b/chromium/gpu/ipc/common/luid.mojom @@ -0,0 +1,12 @@ +// Copyright 2020 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. + +module gpu.mojom; + +// Corresponds to LUID in dxgi.h +[EnableIf=is_win] +struct Luid { + int32 high; + uint32 low; +}; diff --git a/chromium/gpu/ipc/common/luid_mojom_traits.h b/chromium/gpu/ipc/common/luid_mojom_traits.h new file mode 100644 index 00000000000..e736c53c455 --- /dev/null +++ b/chromium/gpu/ipc/common/luid_mojom_traits.h @@ -0,0 +1,27 @@ +// Copyright 2020 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. + +#ifndef GPU_IPC_COMMON_LUID_MOJOM_TRAITS_H_ +#define GPU_IPC_COMMON_LUID_MOJOM_TRAITS_H_ + +#include "gpu/ipc/common/luid.mojom-shared.h" + +namespace mojo { + +template <> +struct StructTraits<gpu::mojom::LuidDataView, LUID> { + static bool Read(gpu::mojom::LuidDataView data, LUID* out) { + out->HighPart = data.high(); + out->LowPart = data.low(); + return true; + } + + static int32_t high(const LUID& input) { return input.HighPart; } + + static uint32_t low(const LUID& input) { return input.LowPart; } +}; + +} // namespace mojo + +#endif // GPU_IPC_COMMON_LUID_MOJOM_TRAITS_H_ |