diff options
author | Bas Nieuwenhuizen <[email protected]> | 2017-08-16 09:20:53 +0200 |
---|---|---|
committer | Bas Nieuwenhuizen <[email protected]> | 2017-08-24 19:20:47 +0200 |
commit | ba51ad2f25db272699f1cbb213f665e3e0d8787f (patch) | |
tree | 003aadc7288376be80e907cb46f4f7b5e7b58720 | |
parent | e3265c10c8950887729d7320eac3475af58215fc (diff) |
radv: Expose VK_KHX_multiview.
Reviewed-by: Dave Airlie <[email protected]>
-rw-r--r-- | src/amd/vulkan/radv_device.c | 17 | ||||
-rw-r--r-- | src/amd/vulkan/radv_pipeline.c | 1 |
2 files changed, 18 insertions, 0 deletions
diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index 1a7831e89c9..fec965c6225 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -178,6 +178,10 @@ static const VkExtensionProperties ext_sema_device_extensions[] = { .extensionName = VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME, .specVersion = 1, }, + { + .extensionName = VK_KHX_MULTIVIEW_EXTENSION_NAME, + .specVersion = 1, + }, }; static VkResult @@ -628,6 +632,13 @@ void radv_GetPhysicalDeviceFeatures2KHR( features->variablePointers = false; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHX: { + VkPhysicalDeviceMultiviewFeaturesKHX *features = (VkPhysicalDeviceMultiviewFeaturesKHX*)ext; + features->multiview = true; + features->multiviewGeometryShader = true; + features->multiviewTessellationShader = true; + break; + } default: break; } @@ -804,6 +815,12 @@ void radv_GetPhysicalDeviceProperties2KHR( properties->deviceLUIDValid = false; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHX: { + VkPhysicalDeviceMultiviewPropertiesKHX *properties = (VkPhysicalDeviceMultiviewPropertiesKHX*)ext; + properties->maxMultiviewViewCount = MAX_VIEWS; + properties->maxMultiviewInstanceIndex = INT_MAX; + break; + } default: break; } diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c index 31bdc8c4643..637fed625f1 100644 --- a/src/amd/vulkan/radv_pipeline.c +++ b/src/amd/vulkan/radv_pipeline.c @@ -230,6 +230,7 @@ radv_shader_compile_to_nir(struct radv_device *device, .image_write_without_format = true, .tessellation = true, .int64 = true, + .multiview = true, .variable_pointers = true, }; entry_point = spirv_to_nir(spirv, module->size / 4, |