#ifndef GPU_CONFIG_GPU_INFO_H_
#define GPU_CONFIG_GPU_INFO_H_
#include <stdint.h>
#include <optional>
#include <string>
#include <vector>
#include "base/clang_profiling_buildflags.h"
#include "base/containers/flat_map.h"
#include "base/containers/span.h"
#include "base/time/time.h"
#include "base/version.h"
#include "build/build_config.h"
#include "gpu/gpu_export.h"
#include "gpu/vulkan/buildflags.h"
#include "ui/gfx/geometry/size.h"
#include "ui/gl/gl_implementation.h"
#include "ui/gl/gpu_preference.h"
#if BUILDFLAG(IS_WIN)
#include <dxgi.h>
#include "base/win/windows_types.h"
#endif
#if BUILDFLAG(ENABLE_VULKAN)
#include "gpu/config/vulkan_info.h"
#endif
namespace gpu {
enum class IntelGpuSeriesType { … };
enum VideoCodecProfile { … };
struct GPU_EXPORT VideoDecodeAcceleratorSupportedProfile { … };
VideoDecodeAcceleratorSupportedProfiles;
struct GPU_EXPORT VideoDecodeAcceleratorCapabilities { … };
struct GPU_EXPORT VideoEncodeAcceleratorSupportedProfile { … };
VideoEncodeAcceleratorSupportedProfiles;
enum class ImageDecodeAcceleratorType { … };
enum class ImageDecodeAcceleratorSubsampling { … };
struct GPU_EXPORT ImageDecodeAcceleratorSupportedProfile { … };
ImageDecodeAcceleratorSupportedProfiles;
#if BUILDFLAG(IS_WIN)
enum class OverlaySupport {
kNone = 0,
kDirect = 1,
kScaling = 2,
kSoftware = 3
};
GPU_EXPORT const char* OverlaySupportToString(OverlaySupport support);
struct GPU_EXPORT OverlayInfo {
OverlayInfo() = default;
OverlayInfo(const OverlayInfo& other) = default;
OverlayInfo& operator=(const OverlayInfo& other) = default;
bool operator==(const OverlayInfo& other) const {
return direct_composition == other.direct_composition &&
supports_overlays == other.supports_overlays &&
yuy2_overlay_support == other.yuy2_overlay_support &&
nv12_overlay_support == other.nv12_overlay_support &&
bgra8_overlay_support == other.bgra8_overlay_support &&
rgb10a2_overlay_support == other.rgb10a2_overlay_support &&
p010_overlay_support == other.p010_overlay_support;
}
bool operator!=(const OverlayInfo& other) const { return !(*this == other); }
bool direct_composition = false;
bool supports_overlays = false;
OverlaySupport yuy2_overlay_support = OverlaySupport::kNone;
OverlaySupport nv12_overlay_support = OverlaySupport::kNone;
OverlaySupport bgra8_overlay_support = OverlaySupport::kNone;
OverlaySupport rgb10a2_overlay_support = OverlaySupport::kNone;
OverlaySupport p010_overlay_support = OverlaySupport::kNone;
};
#endif
#if BUILDFLAG(IS_MAC)
GPU_EXPORT bool ValidateMacOSSpecificTextureTarget(int target);
#endif
struct GPU_EXPORT GPUInfo { … };
}
#endif