#ifndef GPU_IPC_COMMON_GPU_INFO_MOJOM_SHARED_H_
#define GPU_IPC_COMMON_GPU_INFO_MOJOM_SHARED_H_
#include <stdint.h>
#include <functional>
#include <iosfwd>
#include <type_traits>
#include <utility>
#include "mojo/public/cpp/bindings/array_data_view.h"
#include "mojo/public/cpp/bindings/enum_traits.h"
#include "mojo/public/cpp/bindings/interface_data_view.h"
#include "mojo/public/cpp/bindings/lib/bindings_internal.h"
#include "mojo/public/cpp/bindings/lib/serialization.h"
#include "mojo/public/cpp/bindings/map_data_view.h"
#include "mojo/public/cpp/bindings/string_data_view.h"
#include "third_party/perfetto/include/perfetto/tracing/traced_value_forward.h"
#include "gpu/ipc/common/gpu_info.mojom-shared-internal.h"
#include "mojo/public/mojom/base/time.mojom-shared.h"
#include "ui/gfx/geometry/mojom/geometry.mojom-shared.h"
#include "ui/gl/mojom/gl_implementation.mojom-shared.h"
#include "ui/gl/mojom/gpu_preference.mojom-shared.h"
#include "gpu/ipc/common/vulkan_info.mojom-shared.h"
#include "base/component_export.h"
namespace gpu::mojom {
class GpuDeviceDataView;
class VideoDecodeAcceleratorSupportedProfileDataView;
class VideoDecodeAcceleratorCapabilitiesDataView;
class VideoEncodeAcceleratorSupportedProfileDataView;
class ImageDecodeAcceleratorSupportedProfileDataView;
class GpuInfoDataView;
}
namespace mojo {
namespace internal {
template <>
struct MojomTypeTraits<::gpu::mojom::GpuDeviceDataView> { … };
template <>
struct MojomTypeTraits<::gpu::mojom::VideoDecodeAcceleratorSupportedProfileDataView> { … };
template <>
struct MojomTypeTraits<::gpu::mojom::VideoDecodeAcceleratorCapabilitiesDataView> { … };
template <>
struct MojomTypeTraits<::gpu::mojom::VideoEncodeAcceleratorSupportedProfileDataView> { … };
template <>
struct MojomTypeTraits<::gpu::mojom::ImageDecodeAcceleratorSupportedProfileDataView> { … };
template <>
struct MojomTypeTraits<::gpu::mojom::GpuInfoDataView> { … };
}
}
namespace gpumojom
namespace std {
template <>
struct hash<::gpu::mojom::VideoCodecProfile>
: public mojo::internal::EnumHashImpl<::gpu::mojom::VideoCodecProfile> { … };
template <>
struct hash<::gpu::mojom::ImageDecodeAcceleratorType>
: public mojo::internal::EnumHashImpl<::gpu::mojom::ImageDecodeAcceleratorType> { … };
template <>
struct hash<::gpu::mojom::ImageDecodeAcceleratorSubsampling>
: public mojo::internal::EnumHashImpl<::gpu::mojom::ImageDecodeAcceleratorSubsampling> { … };
}
namespace mojo {
namespace internal {
Serializer< ::gpu::mojom::VideoCodecProfile, MaybeConstUserType>;
}
namespace internal {
Serializer< ::gpu::mojom::ImageDecodeAcceleratorType, MaybeConstUserType>;
}
namespace internal {
Serializer< ::gpu::mojom::ImageDecodeAcceleratorSubsampling, MaybeConstUserType>;
}
namespace internal {
Serializer< ::gpu::mojom::GpuDeviceDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::gpu::mojom::VideoDecodeAcceleratorSupportedProfileDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::gpu::mojom::VideoDecodeAcceleratorCapabilitiesDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::gpu::mojom::VideoEncodeAcceleratorSupportedProfileDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::gpu::mojom::ImageDecodeAcceleratorSupportedProfileDataView, MaybeConstUserType>;
}
namespace internal {
Serializer< ::gpu::mojom::GpuInfoDataView, MaybeConstUserType>;
}
}
namespace gpu::mojom {
inline void GpuDeviceDataView::GetVendorStringDataView(
mojo::StringDataView* output) { … }
inline void GpuDeviceDataView::GetDeviceStringDataView(
mojo::StringDataView* output) { … }
inline void GpuDeviceDataView::GetDriverVendorDataView(
mojo::StringDataView* output) { … }
inline void GpuDeviceDataView::GetDriverVersionDataView(
mojo::StringDataView* output) { … }
inline void VideoDecodeAcceleratorSupportedProfileDataView::GetMaxResolutionDataView(
::gfx::mojom::SizeDataView* output) { … }
inline void VideoDecodeAcceleratorSupportedProfileDataView::GetMinResolutionDataView(
::gfx::mojom::SizeDataView* output) { … }
inline void VideoDecodeAcceleratorCapabilitiesDataView::GetSupportedProfilesDataView(
mojo::ArrayDataView<VideoDecodeAcceleratorSupportedProfileDataView>* output) { … }
inline void VideoEncodeAcceleratorSupportedProfileDataView::GetMinResolutionDataView(
::gfx::mojom::SizeDataView* output) { … }
inline void VideoEncodeAcceleratorSupportedProfileDataView::GetMaxResolutionDataView(
::gfx::mojom::SizeDataView* output) { … }
inline void ImageDecodeAcceleratorSupportedProfileDataView::GetMinEncodedDimensionsDataView(
::gfx::mojom::SizeDataView* output) { … }
inline void ImageDecodeAcceleratorSupportedProfileDataView::GetMaxEncodedDimensionsDataView(
::gfx::mojom::SizeDataView* output) { … }
inline void ImageDecodeAcceleratorSupportedProfileDataView::GetSubsamplingsDataView(
mojo::ArrayDataView<ImageDecodeAcceleratorSubsampling>* output) { … }
inline void GpuInfoDataView::GetInitializationTimeDataView(
::mojo_base::mojom::TimeDeltaDataView* output) { … }
inline void GpuInfoDataView::GetGpuDataView(
GpuDeviceDataView* output) { … }
inline void GpuInfoDataView::GetSecondaryGpusDataView(
mojo::ArrayDataView<GpuDeviceDataView>* output) { … }
inline void GpuInfoDataView::GetNpusDataView(
mojo::ArrayDataView<GpuDeviceDataView>* output) { … }
inline void GpuInfoDataView::GetPixelShaderVersionDataView(
mojo::StringDataView* output) { … }
inline void GpuInfoDataView::GetVertexShaderVersionDataView(
mojo::StringDataView* output) { … }
inline void GpuInfoDataView::GetMaxMsaaSamplesDataView(
mojo::StringDataView* output) { … }
inline void GpuInfoDataView::GetMachineModelNameDataView(
mojo::StringDataView* output) { … }
inline void GpuInfoDataView::GetMachineModelVersionDataView(
mojo::StringDataView* output) { … }
inline void GpuInfoDataView::GetDisplayTypeDataView(
mojo::StringDataView* output) { … }
inline void GpuInfoDataView::GetGlVersionDataView(
mojo::StringDataView* output) { … }
inline void GpuInfoDataView::GetGlVendorDataView(
mojo::StringDataView* output) { … }
inline void GpuInfoDataView::GetGlRendererDataView(
mojo::StringDataView* output) { … }
inline void GpuInfoDataView::GetGlExtensionsDataView(
mojo::StringDataView* output) { … }
inline void GpuInfoDataView::GetGlWsVendorDataView(
mojo::StringDataView* output) { … }
inline void GpuInfoDataView::GetGlWsVersionDataView(
mojo::StringDataView* output) { … }
inline void GpuInfoDataView::GetGlWsExtensionsDataView(
mojo::StringDataView* output) { … }
inline void GpuInfoDataView::GetGlImplementationPartsDataView(
::gl::mojom::GLImplementationPartsDataView* output) { … }
inline void GpuInfoDataView::GetDirectRenderingVersionDataView(
mojo::StringDataView* output) { … }
inline void GpuInfoDataView::GetVideoDecodeAcceleratorSupportedProfilesDataView(
mojo::ArrayDataView<VideoDecodeAcceleratorSupportedProfileDataView>* output) { … }
inline void GpuInfoDataView::GetVideoEncodeAcceleratorSupportedProfilesDataView(
mojo::ArrayDataView<VideoEncodeAcceleratorSupportedProfileDataView>* output) { … }
inline void GpuInfoDataView::GetImageDecodeAcceleratorSupportedProfilesDataView(
mojo::ArrayDataView<ImageDecodeAcceleratorSupportedProfileDataView>* output) { … }
inline void GpuInfoDataView::GetVulkanInfoDataView(
::gpu::mojom::VulkanInfoDataView* output) { … }
}
namespace perfetto {
template <>
struct COMPONENT_EXPORT(MOJOM_SHARED_GPU_EXPORT) TraceFormatTraits<::gpu::mojom::VideoCodecProfile> { … };
}
namespace perfetto {
template <>
struct COMPONENT_EXPORT(MOJOM_SHARED_GPU_EXPORT) TraceFormatTraits<::gpu::mojom::ImageDecodeAcceleratorType> { … };
}
namespace perfetto {
template <>
struct COMPONENT_EXPORT(MOJOM_SHARED_GPU_EXPORT) TraceFormatTraits<::gpu::mojom::ImageDecodeAcceleratorSubsampling> { … };
}
#endif