Mesa (master): radv: Add support for VK_KHR_variable_pointers.
Bas Nieuwenhuizen
bnieuwenhuizen at kemper.freedesktop.org
Thu Jul 20 07:13:51 UTC 2017
Module: Mesa
Branch: master
Commit: 21d777a122dc73481785e6f0ae050932b933d9ad
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=21d777a122dc73481785e6f0ae050932b933d9ad
Author: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Date: Wed Jul 19 23:55:58 2017 +0200
radv: Add support for VK_KHR_variable_pointers.
Just a trivial enable.
Signed-off-by: Bas Nieuwenhuizen <basni at google.com>
Reviewed-by: Connor Abbott <cwabbott0 at gmail.com>
Acked-by: Dave Airlie <airlied at redhat.com>
---
src/amd/vulkan/radv_device.c | 16 ++++++++++++++++
src/amd/vulkan/radv_entrypoints_gen.py | 1 +
src/amd/vulkan/radv_pipeline.c | 1 +
3 files changed, 18 insertions(+)
diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index e3655dabe3..d87be66da8 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -157,6 +157,10 @@ static const VkExtensionProperties common_device_extensions[] = {
.extensionName = VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME,
.specVersion = 1,
},
+ {
+ .extensionName = VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME,
+ .specVersion = 1,
+ },
};
static VkResult
@@ -589,6 +593,18 @@ void radv_GetPhysicalDeviceFeatures2KHR(
VkPhysicalDevice physicalDevice,
VkPhysicalDeviceFeatures2KHR *pFeatures)
{
+ vk_foreach_struct(ext, pFeatures->pNext) {
+ switch (ext->sType) {
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR: {
+ VkPhysicalDeviceVariablePointerFeaturesKHR *features = (void *)ext;
+ features->variablePointersStorageBuffer = true;
+ features->variablePointers = false;
+ break;
+ }
+ default:
+ break;
+ }
+ }
return radv_GetPhysicalDeviceFeatures(physicalDevice, &pFeatures->features);
}
diff --git a/src/amd/vulkan/radv_entrypoints_gen.py b/src/amd/vulkan/radv_entrypoints_gen.py
index ec798157f9..61b2328150 100644
--- a/src/amd/vulkan/radv_entrypoints_gen.py
+++ b/src/amd/vulkan/radv_entrypoints_gen.py
@@ -48,6 +48,7 @@ supported_extensions = [
'VK_KHR_external_memory',
'VK_KHR_external_memory_fd',
'VK_KHR_storage_buffer_storage_class',
+ 'VK_KHR_variable_pointers',
]
# We generate a static hash table for entry point lookup
diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c
index 90cd716047..c920cc35be 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,
+ .variable_pointers = true,
};
entry_point = spirv_to_nir(spirv, module->size / 4,
spec_entries, num_spec_entries,
More information about the mesa-commit
mailing list