mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 16:18:06 +02:00
tu: Move core features definitions to a helper function.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12944>
This commit is contained in:
parent
895cfca641
commit
14eb5ca3cd
1 changed files with 76 additions and 64 deletions
|
|
@ -429,7 +429,80 @@ tu_EnumeratePhysicalDeviceGroups(
|
|||
return vk_outarray_status(&out);
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL
|
||||
static void
|
||||
tu_get_physical_device_features_1_1(struct tu_physical_device *pdevice,
|
||||
VkPhysicalDeviceVulkan11Features *features)
|
||||
{
|
||||
features->storageBuffer16BitAccess = pdevice->info->a6xx.storage_16bit;
|
||||
features->uniformAndStorageBuffer16BitAccess = false;
|
||||
features->storagePushConstant16 = false;
|
||||
features->storageInputOutput16 = false;
|
||||
features->multiview = true;
|
||||
features->multiviewGeometryShader = false;
|
||||
features->multiviewTessellationShader = false;
|
||||
features->variablePointersStorageBuffer = true;
|
||||
features->variablePointers = true;
|
||||
features->protectedMemory = false;
|
||||
features->samplerYcbcrConversion = true;
|
||||
features->shaderDrawParameters = true;
|
||||
}
|
||||
|
||||
static void
|
||||
tu_get_physical_device_features_1_2(struct tu_physical_device *pdevice,
|
||||
VkPhysicalDeviceVulkan12Features *features)
|
||||
{
|
||||
features->samplerMirrorClampToEdge = true;
|
||||
features->drawIndirectCount = true;
|
||||
features->storageBuffer8BitAccess = false;
|
||||
features->uniformAndStorageBuffer8BitAccess = false;
|
||||
features->storagePushConstant8 = false;
|
||||
features->shaderBufferInt64Atomics = false;
|
||||
features->shaderSharedInt64Atomics = false;
|
||||
features->shaderFloat16 = true;
|
||||
features->shaderInt8 = false;
|
||||
|
||||
features->descriptorIndexing = true;
|
||||
features->shaderInputAttachmentArrayDynamicIndexing = false;
|
||||
features->shaderUniformTexelBufferArrayDynamicIndexing = true;
|
||||
features->shaderStorageTexelBufferArrayDynamicIndexing = true;
|
||||
features->shaderUniformBufferArrayNonUniformIndexing = true;
|
||||
features->shaderSampledImageArrayNonUniformIndexing = true;
|
||||
features->shaderStorageBufferArrayNonUniformIndexing = true;
|
||||
features->shaderStorageImageArrayNonUniformIndexing = true;
|
||||
features->shaderInputAttachmentArrayNonUniformIndexing = false;
|
||||
features->shaderUniformTexelBufferArrayNonUniformIndexing = true;
|
||||
features->shaderStorageTexelBufferArrayNonUniformIndexing = true;
|
||||
features->descriptorBindingUniformBufferUpdateAfterBind = false;
|
||||
features->descriptorBindingSampledImageUpdateAfterBind = true;
|
||||
features->descriptorBindingStorageImageUpdateAfterBind = true;
|
||||
features->descriptorBindingStorageBufferUpdateAfterBind = true;
|
||||
features->descriptorBindingUniformTexelBufferUpdateAfterBind = true;
|
||||
features->descriptorBindingStorageTexelBufferUpdateAfterBind = true;
|
||||
features->descriptorBindingUpdateUnusedWhilePending = true;
|
||||
features->descriptorBindingPartiallyBound = true;
|
||||
features->descriptorBindingVariableDescriptorCount = true;
|
||||
features->runtimeDescriptorArray = true;
|
||||
|
||||
features->samplerFilterMinmax = true;
|
||||
features->scalarBlockLayout = true;
|
||||
features->imagelessFramebuffer = false;
|
||||
features->uniformBufferStandardLayout = true;
|
||||
features->shaderSubgroupExtendedTypes = false;
|
||||
features->separateDepthStencilLayouts = false;
|
||||
features->hostQueryReset = true;
|
||||
features->timelineSemaphore = true;
|
||||
features->bufferDeviceAddress = false;
|
||||
features->bufferDeviceAddressCaptureReplay = false;
|
||||
features->bufferDeviceAddressMultiDevice = false;
|
||||
features->vulkanMemoryModel = true;
|
||||
features->vulkanMemoryModelDeviceScope = true;
|
||||
features->vulkanMemoryModelAvailabilityVisibilityChains = true;
|
||||
features->shaderOutputViewportIndex = true;
|
||||
features->shaderOutputLayer = true;
|
||||
features->subgroupBroadcastDynamicId = false;
|
||||
}
|
||||
|
||||
void
|
||||
tu_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
|
||||
VkPhysicalDeviceFeatures2 *pFeatures)
|
||||
{
|
||||
|
|
@ -487,72 +560,11 @@ tu_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
|
|||
{
|
||||
switch (ext->sType) {
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: {
|
||||
VkPhysicalDeviceVulkan11Features *features = (void *) ext;
|
||||
features->storageBuffer16BitAccess = pdevice->info->a6xx.storage_16bit;
|
||||
features->uniformAndStorageBuffer16BitAccess = false;
|
||||
features->storagePushConstant16 = false;
|
||||
features->storageInputOutput16 = false;
|
||||
features->multiview = true;
|
||||
features->multiviewGeometryShader = false;
|
||||
features->multiviewTessellationShader = false;
|
||||
features->variablePointersStorageBuffer = true;
|
||||
features->variablePointers = true;
|
||||
features->protectedMemory = false;
|
||||
features->samplerYcbcrConversion = true;
|
||||
features->shaderDrawParameters = true;
|
||||
tu_get_physical_device_features_1_1(pdevice, (void *)ext);
|
||||
break;
|
||||
}
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: {
|
||||
VkPhysicalDeviceVulkan12Features *features = (void *) ext;
|
||||
features->samplerMirrorClampToEdge = true;
|
||||
features->drawIndirectCount = true;
|
||||
features->storageBuffer8BitAccess = false;
|
||||
features->uniformAndStorageBuffer8BitAccess = false;
|
||||
features->storagePushConstant8 = false;
|
||||
features->shaderBufferInt64Atomics = false;
|
||||
features->shaderSharedInt64Atomics = false;
|
||||
features->shaderFloat16 = true;
|
||||
features->shaderInt8 = false;
|
||||
|
||||
features->descriptorIndexing = true;
|
||||
features->shaderInputAttachmentArrayDynamicIndexing = false;
|
||||
features->shaderUniformTexelBufferArrayDynamicIndexing = true;
|
||||
features->shaderStorageTexelBufferArrayDynamicIndexing = true;
|
||||
features->shaderUniformBufferArrayNonUniformIndexing = true;
|
||||
features->shaderSampledImageArrayNonUniformIndexing = true;
|
||||
features->shaderStorageBufferArrayNonUniformIndexing = true;
|
||||
features->shaderStorageImageArrayNonUniformIndexing = true;
|
||||
features->shaderInputAttachmentArrayNonUniformIndexing = false;
|
||||
features->shaderUniformTexelBufferArrayNonUniformIndexing = true;
|
||||
features->shaderStorageTexelBufferArrayNonUniformIndexing = true;
|
||||
features->descriptorBindingUniformBufferUpdateAfterBind = false;
|
||||
features->descriptorBindingSampledImageUpdateAfterBind = true;
|
||||
features->descriptorBindingStorageImageUpdateAfterBind = true;
|
||||
features->descriptorBindingStorageBufferUpdateAfterBind = true;
|
||||
features->descriptorBindingUniformTexelBufferUpdateAfterBind = true;
|
||||
features->descriptorBindingStorageTexelBufferUpdateAfterBind = true;
|
||||
features->descriptorBindingUpdateUnusedWhilePending = true;
|
||||
features->descriptorBindingPartiallyBound = true;
|
||||
features->descriptorBindingVariableDescriptorCount = true;
|
||||
features->runtimeDescriptorArray = true;
|
||||
|
||||
features->samplerFilterMinmax = true;
|
||||
features->scalarBlockLayout = true;
|
||||
features->imagelessFramebuffer = false;
|
||||
features->uniformBufferStandardLayout = false;
|
||||
features->shaderSubgroupExtendedTypes = false;
|
||||
features->separateDepthStencilLayouts = false;
|
||||
features->hostQueryReset = true;
|
||||
features->timelineSemaphore = true;
|
||||
features->bufferDeviceAddress = false;
|
||||
features->bufferDeviceAddressCaptureReplay = false;
|
||||
features->bufferDeviceAddressMultiDevice = false;
|
||||
features->vulkanMemoryModel = true;
|
||||
features->vulkanMemoryModelDeviceScope = true;
|
||||
features->vulkanMemoryModelAvailabilityVisibilityChains = true;
|
||||
features->shaderOutputViewportIndex = true;
|
||||
features->shaderOutputLayer = true;
|
||||
features->subgroupBroadcastDynamicId = false;
|
||||
tu_get_physical_device_features_1_2(pdevice, (void *)ext);
|
||||
break;
|
||||
}
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue