summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2017-05-16 08:35:07 -0700
committerJason Ekstrand <[email protected]>2017-07-18 09:43:13 -0700
commitcd9fd68a50b4990513e5de5e907e2e3e911667e7 (patch)
tree607f3d3d1d607859013b5b1085e7acd4d38b4e9d /src
parentbc9319583a98d65deeb78de0e475313a96ec3b57 (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.c11
-rw-r--r--src/intel/vulkan/anv_entrypoints_gen.py1
-rw-r--r--src/intel/vulkan/anv_pipeline.c1
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 =