Add structs for VK_KHR_vulkan_memory_model

While SwiftShader does not support this extension, it is core in Vulkan 1.2. So we must properly process the structures it adds. Bug: b/176819536 Change-Id: Ib4e0334d9224581b2541f89b356e7bef5f138d30 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51490 Kokoro-Result: kokoro <noreply+kokoro@google.com> Tested-by: 's avatarSean Risser <srisser@google.com> Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com> Commit-Queue: Sean Risser <srisser@google.com>
parent 7b2f9389
......@@ -262,6 +262,14 @@ static void getPhysicalDeviceDescriptorIndexingFeatures(T *features)
}
template<typename T>
static void getPhysicalDeviceVulkanMemoryModelFeatures(T *features)
{
features->vulkanMemoryModel = VK_FALSE;
features->vulkanMemoryModelDeviceScope = VK_FALSE;
features->vulkanMemoryModelAvailabilityVisibilityChains = VK_FALSE;
}
template<typename T>
static void getPhysicalDeviceVulkan12Features(T *features)
{
features->samplerMirrorClampToEdge = VK_FALSE;
......@@ -284,9 +292,7 @@ static void getPhysicalDeviceVulkan12Features(T *features)
features->bufferDeviceAddress = VK_FALSE;
features->bufferDeviceAddressCaptureReplay = VK_FALSE;
features->bufferDeviceAddressMultiDevice = VK_FALSE;
features->vulkanMemoryModel = VK_FALSE;
features->vulkanMemoryModelDeviceScope = VK_FALSE;
features->vulkanMemoryModelAvailabilityVisibilityChains = VK_FALSE;
getPhysicalDeviceVulkanMemoryModelFeatures(features);
features->shaderOutputViewportIndex = VK_FALSE;
features->shaderOutputLayer = VK_FALSE;
features->subgroupBroadcastDynamicId = VK_TRUE;
......@@ -357,6 +363,9 @@ void PhysicalDevice::getFeatures2(VkPhysicalDeviceFeatures2 *features) const
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
getPhysicalDeviceUniformBufferStandardLayoutFeatures(reinterpret_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeatures *>(curExtension));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
getPhysicalDeviceVulkanMemoryModelFeatures(reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeatures *>(curExtension));
break;
default:
LOG_TRAP("curExtension->pNext->sType = %s", vk::Stringify(curExtension->sType).c_str());
break;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment