diff options
-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, |