We don't support the general version yet because that requires us to lower shared variables up-front in SPIR-V -> NIR. This shouldn't be a whole lot of work but it's not something we support today. Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>tags/17.2-branchpoint
| @@ -492,6 +492,10 @@ static const VkExtensionProperties device_extensions[] = { | |||
| .extensionName = VK_KHR_SWAPCHAIN_EXTENSION_NAME, | |||
| .specVersion = 68, | |||
| }, | |||
| { | |||
| .extensionName = VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME, | |||
| .specVersion = 1, | |||
| }, | |||
| { | |||
| .extensionName = VK_KHX_MULTIVIEW_EXTENSION_NAME, | |||
| .specVersion = 1, | |||
| @@ -748,6 +752,13 @@ void anv_GetPhysicalDeviceFeatures2KHR( | |||
| break; | |||
| } | |||
| case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR: { | |||
| VkPhysicalDeviceVariablePointerFeaturesKHR *features = (void *)ext; | |||
| features->variablePointersStorageBuffer = true; | |||
| features->variablePointers = false; | |||
| break; | |||
| } | |||
| default: | |||
| anv_debug_ignored_stype(ext->sType); | |||
| break; | |||
| @@ -49,6 +49,7 @@ SUPPORTED_EXTENSIONS = [ | |||
| 'VK_KHR_storage_buffer_storage_class', | |||
| 'VK_KHR_surface', | |||
| 'VK_KHR_swapchain', | |||
| 'VK_KHR_variable_pointers', | |||
| 'VK_KHR_wayland_surface', | |||
| 'VK_KHR_xcb_surface', | |||
| 'VK_KHR_xlib_surface', | |||
| @@ -129,6 +129,7 @@ anv_shader_compile_to_nir(struct anv_pipeline *pipeline, | |||
| .draw_parameters = true, | |||
| .image_write_without_format = true, | |||
| .multiview = true, | |||
| .variable_pointers = true, | |||
| }; | |||
| nir_function *entry_point = | |||