Path: blob/21.2-virgl/src/freedreno/vulkan/tu_legacy.c
4565 views
/*1* Copyright 2020 Valve Corporation2* SPDX-License-Identifier: MIT3*4* Authors:5* Jonathan Marek <[email protected]>6*/78#include <vulkan/vulkan.h>9#include <vulkan/vk_android_native_buffer.h> /* android tu_entrypoints.h depends on this */10#include <assert.h>1112#include "tu_entrypoints.h"13#include "vk_util.h"1415VKAPI_ATTR void VKAPI_CALL16tu_GetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice pdev,17uint32_t *count,18VkQueueFamilyProperties *props)19{20if (!props)21return tu_GetPhysicalDeviceQueueFamilyProperties2(pdev, count, NULL);2223VkQueueFamilyProperties2 props2[*count];24for (uint32_t i = 0; i < *count; i++) {25props2[i].sType = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2;26props2[i].pNext = NULL;27}28tu_GetPhysicalDeviceQueueFamilyProperties2(pdev, count, props2);29for (uint32_t i = 0; i < *count; i++)30props[i] = props2[i].queueFamilyProperties;31}3233VKAPI_ATTR void VKAPI_CALL34tu_GetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice pdev,35VkFormat format,36VkImageType type,37VkSampleCountFlagBits samples,38VkImageUsageFlags usage,39VkImageTiling tiling,40uint32_t *count,41VkSparseImageFormatProperties *props)42{43const VkPhysicalDeviceSparseImageFormatInfo2 info = {44.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,45.format = format,46.type = type,47.samples = samples,48.usage = usage,49.tiling = tiling,50};5152if (!props)53return tu_GetPhysicalDeviceSparseImageFormatProperties2(pdev, &info, count, NULL);5455VkSparseImageFormatProperties2 props2[*count];56for (uint32_t i = 0; i < *count; i++) {57props2[i].sType = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2;58props2[i].pNext = NULL;59}60tu_GetPhysicalDeviceSparseImageFormatProperties2(pdev, &info, count, props2);61for (uint32_t i = 0; i < *count; i++)62props[i] = props2[i].properties;63}6465VKAPI_ATTR void VKAPI_CALL66tu_GetImageSparseMemoryRequirements(VkDevice device,67VkImage image,68uint32_t *count,69VkSparseImageMemoryRequirements *reqs)70{71const VkImageSparseMemoryRequirementsInfo2 info = {72.sType = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,73.image = image74};7576if (!reqs)77return tu_GetImageSparseMemoryRequirements2(device, &info, count, NULL);7879VkSparseImageMemoryRequirements2 reqs2[*count];80for (uint32_t i = 0; i < *count; i++) {81reqs2[i].sType = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2;82reqs2[i].pNext = NULL;83}84tu_GetImageSparseMemoryRequirements2(device, &info, count, reqs2);85for (uint32_t i = 0; i < *count; i++)86reqs[i] = reqs2[i].memoryRequirements;87}888990