[Mesa-dev] [PATCH 2/2] radv: Add support for VK_KHR_variable_pointers.

Connor Abbott cwabbott0 at gmail.com
Wed Jul 19 22:33:56 UTC 2017


For both:

Reviewed-by: Connor Abbott <cwabbott0 at gmail.com>

You beat me to it!

On Wed, Jul 19, 2017 at 3:29 PM, Bas Nieuwenhuizen
<bas at basnieuwenhuizen.nl> wrote:
> Just a trivial enable.
>
> Signed-off-by: Bas Nieuwenhuizen <basni at google.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 e3655dabe3a..d87be66da8b 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 ec798157f94..61b23281501 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 90cd716047a..c920cc35be1 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,
> --
> 2.13.2
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list