summaryrefslogtreecommitdiff
path: root/chromium/gpu/ipc/common
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/gpu/ipc/common')
-rw-r--r--chromium/gpu/ipc/common/BUILD.gn29
-rw-r--r--chromium/gpu/ipc/common/PRESUBMIT.py4
-rw-r--r--chromium/gpu/ipc/common/gpu_info.mojom19
-rw-r--r--chromium/gpu/ipc/common/gpu_info_mojom_traits.cc25
-rw-r--r--chromium/gpu/ipc/common/gpu_info_mojom_traits.h47
-rw-r--r--chromium/gpu/ipc/common/gpu_memory_buffer_impl_dxgi.cc1
-rw-r--r--chromium/gpu/ipc/common/gpu_messages.h6
-rw-r--r--chromium/gpu/ipc/common/gpu_param_traits_macros.h5
-rw-r--r--chromium/gpu/ipc/common/luid.mojom12
-rw-r--r--chromium/gpu/ipc/common/luid_mojom_traits.h27
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_