#include "dawn/native/vulkan/PhysicalDeviceVk.h"
#include <algorithm>
#include <string>
#include <utility>
#include "dawn/common/GPUInfo.h"
#include "dawn/native/ChainUtils.h"
#include "dawn/native/Instance.h"
#include "dawn/native/Limits.h"
#include "dawn/native/vulkan/BackendVk.h"
#include "dawn/native/vulkan/DeviceVk.h"
#include "dawn/native/vulkan/SwapChainVk.h"
#include "dawn/native/vulkan/TextureVk.h"
#include "dawn/native/vulkan/UtilsVulkan.h"
#include "dawn/native/vulkan/VulkanError.h"
#include "dawn/platform/DawnPlatform.h"
#if DAWN_PLATFORM_IS(ANDROID)
#include "dawn/native/AHBFunctions.h"
#endif
namespace dawn::native::vulkan {
namespace {
gpu_info::DriverVersion DecodeVulkanDriverVersion(uint32_t vendorID, uint32_t versionRaw) { … }
}
PhysicalDevice::PhysicalDevice(VulkanInstance* vulkanInstance, VkPhysicalDevice physicalDevice)
: … { … }
PhysicalDevice::~PhysicalDevice() = default;
const VulkanDeviceInfo& PhysicalDevice::GetDeviceInfo() const { … }
VkPhysicalDevice PhysicalDevice::GetVkPhysicalDevice() const { … }
VulkanInstance* PhysicalDevice::GetVulkanInstance() const { … }
bool PhysicalDevice::IsDepthStencilFormatSupported(VkFormat format) const { … }
MaybeError PhysicalDevice::InitializeImpl() { … }
void PhysicalDevice::InitializeSupportedFeaturesImpl() { … }
MaybeError PhysicalDevice::InitializeSupportedLimitsImpl(CombinedLimits* limits) { … }
bool PhysicalDevice::SupportsExternalImages() const { … }
bool PhysicalDevice::SupportsFeatureLevel(FeatureLevel) const { … }
void PhysicalDevice::SetupBackendAdapterToggles(dawn::platform::Platform* platform,
TogglesState* adapterToggles) const { … }
void PhysicalDevice::SetupBackendDeviceToggles(dawn::platform::Platform* platform,
TogglesState* deviceToggles) const { … }
ResultOrError<Ref<DeviceBase>> PhysicalDevice::CreateDeviceImpl(
AdapterBase* adapter,
const UnpackedPtr<DeviceDescriptor>& descriptor,
const TogglesState& deviceToggles,
Ref<DeviceBase::DeviceLostEvent>&& lostEvent) { … }
FeatureValidationResult PhysicalDevice::ValidateFeatureSupportedWithTogglesImpl(
wgpu::FeatureName feature,
const TogglesState& toggles) const { … }
bool PhysicalDevice::IsAndroidQualcomm() const { … }
bool PhysicalDevice::IsAndroidARM() const { … }
bool PhysicalDevice::IsAndroidSamsung() const { … }
bool PhysicalDevice::IsIntelMesa() const { … }
uint32_t PhysicalDevice::FindDefaultComputeSubgroupSize() const { … }
bool PhysicalDevice::CheckSemaphoreSupport(DeviceExt deviceExt,
VkExternalSemaphoreHandleTypeFlagBits handleType) const { … }
uint32_t PhysicalDevice::GetDefaultComputeSubgroupSize() const { … }
ResultOrError<PhysicalDeviceSurfaceCapabilities> PhysicalDevice::GetSurfaceCapabilities(
InstanceBase* instance,
const Surface* surface) const { … }
const AHBFunctions* PhysicalDevice::GetOrLoadAHBFunctions() { … }
void PhysicalDevice::PopulateBackendProperties(UnpackedPtr<AdapterProperties>& properties) const { … }
void PhysicalDevice::PopulateBackendFormatCapabilities(
wgpu::TextureFormat format,
UnpackedPtr<FormatCapabilities>& capabilities) const { … }
}