radv: enable variable pointers
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Wed, 9 Jan 2019 11:31:48 +0000 (12:31 +0100)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Wed, 9 Jan 2019 11:32:18 +0000 (12:32 +0100)
The Vulkan spec 1.1.97 says:
   "variablePointers specifies whether the implementation supports
    the SPIR-V VariablePointers capability. When this feature is
    not enabled, shader modules must not declare the
    VariablePointers capability."

As the SPIR-V feature is enabled, we should turn on the
extension feature as well.

All dEQP-VK.spirv_assembly.instruction.compute.variable_pointers.*
pass with the khronos internal repo. Note that a bunch of them
fails with the public repo, but it's expected as they violate the
specification.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/vulkan/radv_device.c

index 2619feab86fbb03e6fb02d7cfd2b2f2071b20685..5581fe74e40915386f043ee6d961087e10aa27d2 100644 (file)
@@ -762,7 +762,7 @@ void radv_GetPhysicalDeviceFeatures2(
                case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES: {
                        VkPhysicalDeviceVariablePointerFeatures *features = (void *)ext;
                        features->variablePointersStorageBuffer = true;
-                       features->variablePointers = false;
+                       features->variablePointers = true;
                        break;
                }
                case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: {