18#define SHARED_GR_VULKAN_CALL(IFACE, X) (IFACE)->fFunctions.f##X
45 outInfo->
pNext =
nullptr;
56#ifdef SK_BUILD_FOR_ANDROID
61void GetYcbcrConversionInfoFromFormatProps(
62 VulkanYcbcrConversionInfo* outConversionInfo,
69 outConversionInfo->fForceExplicitReconstruction =
VK_FALSE;
80bool GetAHardwareBufferProperties(
86 outHwbFormatProps->
sType =
88 outHwbFormatProps->
pNext =
nullptr;
91 outHwbProps->
pNext = outHwbFormatProps;
95 GetAndroidHardwareBufferProperties(
device,
99 SkDebugf(
"Failed to get AndroidHardwareBufferProperties\n");
113 uint32_t typeIndex = 0;
114 bool foundHeap =
false;
116 for (uint32_t i = 0; i < memTypeCnt && !foundHeap; ++i) {
146 hwbImportInfo.
pNext =
nullptr;
147 hwbImportInfo.
buffer = hardwareBuffer;
151 dedicatedAllocInfo.
pNext = &hwbImportInfo;
162 VkDeviceMemory memory;
164 AllocateMemory(
device, &allocInfo,
nullptr, &memory));
171 bindImageInfo.
pNext =
nullptr;
173 bindImageInfo.
memory = memory;
182 outVulkanAlloc->
fMemory = memory;
185 outVulkanAlloc->
fFlags = 0;
198 bool supportsDeviceFaultInfoExtension) {
199 if (!deviceLostProc) {
203 std::vector<VkDeviceFaultAddressInfoEXT> addressInfos = {};
204 std::vector<VkDeviceFaultVendorInfoEXT> vendorInfos = {};
205 std::vector<std::byte> vendorBinaryData = {};
207 if (!supportsDeviceFaultInfoExtension) {
208 deviceLostProc(deviceLostContext,
209 "No details: VK_EXT_device_fault not available/enabled.",
220 GetDeviceFaultInfo(vkDevice, &faultCounts, NULL));
224 "No details: VK_EXT_device_fault error counting failed: " + std::to_string(
result),
244 GetDeviceFaultInfo(vkDevice, &faultCounts, &faultInfo));
248 "No details: VK_EXT_device_fault info dumping failed: " + std::to_string(
result),
255 deviceLostProc(deviceLostContext,
struct AHardwareBuffer AHardwareBuffer
void SK_SPI SkDebugf(const char format[],...) SK_PRINTF_LIKE(1
#define SHARED_GR_VULKAN_CALL(IFACE, X)
void * VulkanDeviceLostContext
void(* VulkanDeviceLostProc)(VulkanDeviceLostContext faultContext, const std::string &description, const std::vector< VkDeviceFaultAddressInfoEXT > &addressInfos, const std::vector< VkDeviceFaultVendorInfoEXT > &vendorInfos, const std::vector< std::byte > &vendorBinaryData)
void SetupSamplerYcbcrConversionInfo(VkSamplerYcbcrConversionCreateInfo *outInfo, const VulkanYcbcrConversionInfo &conversionInfo)
void InvokeDeviceLostCallback(const skgpu::VulkanInterface *vulkanInterface, VkDevice vkDevice, skgpu::VulkanDeviceLostContext deviceLostContext, skgpu::VulkanDeviceLostProc deviceLostProc, bool supportsDeviceFaultInfoExtension)
VkDeviceSize allocationSize
VkDeviceSize memoryOffset
VkDeviceSize vendorBinarySize
uint32_t addressInfoCount
char description[VK_MAX_DESCRIPTION_SIZE]
VkDeviceFaultAddressInfoEXT * pAddressInfos
VkDeviceFaultVendorInfoEXT * pVendorInfos
struct AHardwareBuffer * buffer
VkMemoryPropertyFlags propertyFlags
VkPhysicalDeviceMemoryProperties memoryProperties
VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES]
VkChromaLocation xChromaOffset
VkComponentMapping components
VkSamplerYcbcrRange ycbcrRange
VkBool32 forceExplicitReconstruction
VkSamplerYcbcrModelConversion ycbcrModel
VkChromaLocation yChromaOffset
VulkanBackendMemory fBackendMemory
VkSamplerYcbcrRange fYcbcrRange
VkSamplerYcbcrModelConversion fYcbcrModel
VkComponentMapping fComponents
VkBool32 fForceExplicitReconstruction
VkChromaLocation fYChromaOffset
VkChromaLocation fXChromaOffset
VkFormatFeatureFlags fFormatFeatures
@ VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT
@ VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT
@ VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT
@ VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT
@ VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
@ VK_CHROMA_LOCATION_COSITED_EVEN
@ VK_CHROMA_LOCATION_MIDPOINT
VkFlags VkFormatFeatureFlags
@ VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID
@ VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT
@ VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID
@ VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT
@ VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO
@ VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO
@ VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID
@ VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO
@ VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO