Module: Mesa Branch: master Commit: 21d777a122dc73481785e6f0ae050932b933d9ad URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=21d777a122dc73481785e6f0ae050932b933d9ad
Author: Bas Nieuwenhuizen <[email protected]> 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 <[email protected]> Reviewed-by: Connor Abbott <[email protected]> Acked-by: Dave Airlie <[email protected]> --- 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, _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
