diff options
author | Jason Ekstrand <[email protected]> | 2017-05-16 08:35:07 -0700 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2017-07-18 09:43:13 -0700 |
commit | cd9fd68a50b4990513e5de5e907e2e3e911667e7 (patch) | |
tree | 607f3d3d1d607859013b5b1085e7acd4d38b4e9d /src | |
parent | bc9319583a98d65deeb78de0e475313a96ec3b57 (diff) |
anv: Advertise support for VK_KHR_variable_pointers
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 <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/intel/vulkan/anv_device.c | 11 | ||||
-rw-r--r-- | src/intel/vulkan/anv_entrypoints_gen.py | 1 | ||||
-rw-r--r-- | src/intel/vulkan/anv_pipeline.c | 1 |
3 files changed, 13 insertions, 0 deletions
diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index b13d6e0423d..c72a1006749 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -493,6 +493,10 @@ static const VkExtensionProperties device_extensions[] = { .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; diff --git a/src/intel/vulkan/anv_entrypoints_gen.py b/src/intel/vulkan/anv_entrypoints_gen.py index 3be8a0388d1..e2ced380d36 100644 --- a/src/intel/vulkan/anv_entrypoints_gen.py +++ b/src/intel/vulkan/anv_entrypoints_gen.py @@ -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', diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c index 047f90ce08a..6ae682fd8d0 100644 --- a/src/intel/vulkan/anv_pipeline.c +++ b/src/intel/vulkan/anv_pipeline.c @@ -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 = |