Merge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.2.0
authorAlexander Galazin <alexander.galazin@arm.com>
Fri, 11 Oct 2019 10:13:41 +0000 (12:13 +0200)
committerAlexander Galazin <alexander.galazin@arm.com>
Fri, 11 Oct 2019 12:17:32 +0000 (14:17 +0200)
Change-Id: Ie09cc3cac8462a7669c3fa0c25edb40d8e05d062

1  2 
external/fetch_sources.py
external/vulkancts/framework/vulkan/vkBasicTypes.inl
external/vulkancts/modules/vulkan/descriptor_indexing/vktDescriptorSetsIndexingTests.cpp
external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmGraphicsShaderTestUtil.cpp
external/vulkancts/modules/vulkan/vktTestCase.cpp
external/vulkancts/modules/vulkan/vktTestCase.hpp
external/vulkancts/scripts/gen_framework.py

@@@ -321,7 -321,7 +321,7 @@@ PACKAGES = 
        GitRepo(
                "https://github.com/KhronosGroup/glslang.git",
                None,
-               "973d0e538292c85b7baf9bb5aaf755894429f76a",
 -              "1ff0c181bb37b06371e2ffa2810d473c5e01c9b7",
++              "ee8e9c15222c2aff93dfea451b1e8a892497ec2d",
                "glslang",
                removeTags = ["master-tot"]),
        GitRepo(
  #define VK_WHOLE_SIZE                                         (static_cast<vk::VkDeviceSize>  ((~0ULL)))
  #define VK_TRUE                                                               (static_cast<vk::VkBool32>              (1))
  #define VK_FALSE                                                      (static_cast<vk::VkBool32>              (0))
 -#define VK_API_MAX_FRAMEWORK_VERSION          VK_API_VERSION_1_1
 -
 -VK_DEFINE_HANDLE                                      (VkInstance,                                    HANDLE_TYPE_INSTANCE);
 -VK_DEFINE_HANDLE                                      (VkPhysicalDevice,                              HANDLE_TYPE_PHYSICAL_DEVICE);
 -VK_DEFINE_HANDLE                                      (VkDevice,                                              HANDLE_TYPE_DEVICE);
 -VK_DEFINE_HANDLE                                      (VkQueue,                                               HANDLE_TYPE_QUEUE);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkSemaphore,                                   HANDLE_TYPE_SEMAPHORE);
 -VK_DEFINE_HANDLE                                      (VkCommandBuffer,                               HANDLE_TYPE_COMMAND_BUFFER);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkFence,                                               HANDLE_TYPE_FENCE);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkDeviceMemory,                                HANDLE_TYPE_DEVICE_MEMORY);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkBuffer,                                              HANDLE_TYPE_BUFFER);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkImage,                                               HANDLE_TYPE_IMAGE);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkEvent,                                               HANDLE_TYPE_EVENT);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkQueryPool,                                   HANDLE_TYPE_QUERY_POOL);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkBufferView,                                  HANDLE_TYPE_BUFFER_VIEW);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkImageView,                                   HANDLE_TYPE_IMAGE_VIEW);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkShaderModule,                                HANDLE_TYPE_SHADER_MODULE);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkPipelineCache,                               HANDLE_TYPE_PIPELINE_CACHE);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkPipelineLayout,                              HANDLE_TYPE_PIPELINE_LAYOUT);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkRenderPass,                                  HANDLE_TYPE_RENDER_PASS);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkPipeline,                                    HANDLE_TYPE_PIPELINE);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkDescriptorSetLayout,                 HANDLE_TYPE_DESCRIPTOR_SET_LAYOUT);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkSampler,                                             HANDLE_TYPE_SAMPLER);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkDescriptorPool,                              HANDLE_TYPE_DESCRIPTOR_POOL);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkDescriptorSet,                               HANDLE_TYPE_DESCRIPTOR_SET);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkFramebuffer,                                 HANDLE_TYPE_FRAMEBUFFER);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkCommandPool,                                 HANDLE_TYPE_COMMAND_POOL);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkSamplerYcbcrConversion,              HANDLE_TYPE_SAMPLER_YCBCR_CONVERSION);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkDescriptorUpdateTemplate,    HANDLE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkSurfaceKHR,                                  HANDLE_TYPE_SURFACE_KHR);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkSwapchainKHR,                                HANDLE_TYPE_SWAPCHAIN_KHR);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkDisplayKHR,                                  HANDLE_TYPE_DISPLAY_KHR);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkDisplayModeKHR,                              HANDLE_TYPE_DISPLAY_MODE_KHR);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkDebugReportCallbackEXT,              HANDLE_TYPE_DEBUG_REPORT_CALLBACK_EXT);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkObjectTableNVX,                              HANDLE_TYPE_OBJECT_TABLE_NVX);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkIndirectCommandsLayoutNVX,   HANDLE_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkDebugUtilsMessengerEXT,              HANDLE_TYPE_DEBUG_UTILS_MESSENGER_EXT);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkValidationCacheEXT,                  HANDLE_TYPE_VALIDATION_CACHE_EXT);
 -VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkAccelerationStructureNV,             HANDLE_TYPE_ACCELERATION_STRUCTURE_NV);
++#define VK_API_MAX_FRAMEWORK_VERSION          VK_API_VERSION_1_2
 +
 +VK_DEFINE_HANDLE                                      (VkInstance,                                            HANDLE_TYPE_INSTANCE);
 +VK_DEFINE_HANDLE                                      (VkPhysicalDevice,                                      HANDLE_TYPE_PHYSICAL_DEVICE);
 +VK_DEFINE_HANDLE                                      (VkDevice,                                                      HANDLE_TYPE_DEVICE);
 +VK_DEFINE_HANDLE                                      (VkQueue,                                                       HANDLE_TYPE_QUEUE);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkSemaphore,                                           HANDLE_TYPE_SEMAPHORE);
 +VK_DEFINE_HANDLE                                      (VkCommandBuffer,                                       HANDLE_TYPE_COMMAND_BUFFER);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkFence,                                                       HANDLE_TYPE_FENCE);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkDeviceMemory,                                        HANDLE_TYPE_DEVICE_MEMORY);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkBuffer,                                                      HANDLE_TYPE_BUFFER);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkImage,                                                       HANDLE_TYPE_IMAGE);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkEvent,                                                       HANDLE_TYPE_EVENT);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkQueryPool,                                           HANDLE_TYPE_QUERY_POOL);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkBufferView,                                          HANDLE_TYPE_BUFFER_VIEW);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkImageView,                                           HANDLE_TYPE_IMAGE_VIEW);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkShaderModule,                                        HANDLE_TYPE_SHADER_MODULE);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkPipelineCache,                                       HANDLE_TYPE_PIPELINE_CACHE);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkPipelineLayout,                                      HANDLE_TYPE_PIPELINE_LAYOUT);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkRenderPass,                                          HANDLE_TYPE_RENDER_PASS);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkPipeline,                                            HANDLE_TYPE_PIPELINE);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkDescriptorSetLayout,                         HANDLE_TYPE_DESCRIPTOR_SET_LAYOUT);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkSampler,                                                     HANDLE_TYPE_SAMPLER);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkDescriptorPool,                                      HANDLE_TYPE_DESCRIPTOR_POOL);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkDescriptorSet,                                       HANDLE_TYPE_DESCRIPTOR_SET);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkFramebuffer,                                         HANDLE_TYPE_FRAMEBUFFER);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkCommandPool,                                         HANDLE_TYPE_COMMAND_POOL);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkSamplerYcbcrConversion,                      HANDLE_TYPE_SAMPLER_YCBCR_CONVERSION);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkDescriptorUpdateTemplate,            HANDLE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkSurfaceKHR,                                          HANDLE_TYPE_SURFACE_KHR);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkSwapchainKHR,                                        HANDLE_TYPE_SWAPCHAIN_KHR);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkDisplayKHR,                                          HANDLE_TYPE_DISPLAY_KHR);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkDisplayModeKHR,                                      HANDLE_TYPE_DISPLAY_MODE_KHR);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkDebugReportCallbackEXT,                      HANDLE_TYPE_DEBUG_REPORT_CALLBACK_EXT);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkObjectTableNVX,                                      HANDLE_TYPE_OBJECT_TABLE_NVX);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkIndirectCommandsLayoutNVX,           HANDLE_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkDebugUtilsMessengerEXT,                      HANDLE_TYPE_DEBUG_UTILS_MESSENGER_EXT);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkValidationCacheEXT,                          HANDLE_TYPE_VALIDATION_CACHE_EXT);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkAccelerationStructureNV,                     HANDLE_TYPE_ACCELERATION_STRUCTURE_NV);
 +VK_DEFINE_NON_DISPATCHABLE_HANDLE     (VkPerformanceConfigurationINTEL,       HANDLE_TYPE_PERFORMANCE_CONFIGURATION_INTEL);
  
  enum VkPipelineCacheHeaderVersion
  {
@@@ -372,25 -371,26 +377,27 @@@ static deUint32 sanitizeApiVersion(deUi
  }
  
  DefaultDevice::DefaultDevice (const PlatformInterface& vkPlatform, const tcu::CommandLine& cmdLine)
-       : m_availableInstanceVersion    (getTargetInstanceVersion(vkPlatform))
-       , m_deviceVersions                              (determineDeviceVersions(vkPlatform, m_availableInstanceVersion, cmdLine))
-       , m_usedApiVersion                              (sanitizeApiVersion(deMinu32(m_availableInstanceVersion, m_deviceVersions.first)))
-       , m_instanceExtensions                  (addCoreInstanceExtensions(filterExtensions(enumerateInstanceExtensionProperties(vkPlatform, DE_NULL)), m_usedApiVersion))
-       , m_instance                                    (createInstance(vkPlatform, m_usedApiVersion, m_instanceExtensions, cmdLine))
-       , m_instanceInterface                   (vkPlatform, *m_instance)
-       , m_physicalDevice                              (chooseDevice(m_instanceInterface, *m_instance, cmdLine))
-       , m_deviceVersion                               (getPhysicalDeviceProperties(m_instanceInterface, m_physicalDevice).apiVersion)
-       , m_deviceExtensions                    (addCoreDeviceExtensions(filterExtensions(enumerateDeviceExtensionProperties(m_instanceInterface, m_physicalDevice, DE_NULL)), m_usedApiVersion))
-       , m_deviceFeatures                              (m_instanceInterface, m_usedApiVersion, m_physicalDevice, m_instanceExtensions, m_deviceExtensions)
-       , m_universalQueueFamilyIndex   (findQueueFamilyIndexWithCaps(m_instanceInterface, m_physicalDevice, VK_QUEUE_GRAPHICS_BIT|VK_QUEUE_COMPUTE_BIT))
-       , m_sparseQueueFamilyIndex              (m_deviceFeatures.getCoreFeatures2().features.sparseBinding ? findQueueFamilyIndexWithCaps(m_instanceInterface, m_physicalDevice, VK_QUEUE_SPARSE_BINDING_BIT) : 0)
-       , m_deviceProperties                    (getPhysicalDeviceProperties(m_instanceInterface, m_physicalDevice))
-       , m_devicePropertiesFull                (m_instanceInterface, m_usedApiVersion, m_physicalDevice, m_instanceExtensions, m_deviceExtensions)
-       , m_device                                              (createDefaultDevice(vkPlatform, *m_instance, m_instanceInterface, m_physicalDevice, m_usedApiVersion, m_universalQueueFamilyIndex, m_sparseQueueFamilyIndex, m_deviceFeatures.getCoreFeatures2(), m_deviceExtensions, cmdLine))
-       , m_deviceInterface                             (vkPlatform, *m_instance, *m_device)
+       : m_maximumFrameworkVulkanVersion       (VK_API_MAX_FRAMEWORK_VERSION)
+       , m_availableInstanceVersion            (getTargetInstanceVersion(vkPlatform))
+       , m_usedInstanceVersion                         (sanitizeApiVersion(deMinu32(m_availableInstanceVersion, m_maximumFrameworkVulkanVersion)))
+       , m_deviceVersions                                      (determineDeviceVersions(vkPlatform, m_usedInstanceVersion, cmdLine))
+       , m_usedApiVersion                                      (sanitizeApiVersion(deMinu32(m_usedInstanceVersion, m_deviceVersions.first)))
+       , m_instanceExtensions                          (addCoreInstanceExtensions(filterExtensions(enumerateInstanceExtensionProperties(vkPlatform, DE_NULL)), m_usedApiVersion))
+       , m_instance                                            (createInstance(vkPlatform, m_usedApiVersion, m_instanceExtensions, cmdLine))
+       , m_instanceInterface                           (vkPlatform, *m_instance)
+       , m_physicalDevice                                      (chooseDevice(m_instanceInterface, *m_instance, cmdLine))
+       , m_deviceVersion                                       (getPhysicalDeviceProperties(m_instanceInterface, m_physicalDevice).apiVersion)
+       , m_deviceExtensions                            (addCoreDeviceExtensions(filterExtensions(enumerateDeviceExtensionProperties(m_instanceInterface, m_physicalDevice, DE_NULL)), m_usedApiVersion))
+       , m_deviceFeatures                                      (m_instanceInterface, m_usedApiVersion, m_physicalDevice, m_instanceExtensions, m_deviceExtensions)
+       , m_universalQueueFamilyIndex           (findQueueFamilyIndexWithCaps(m_instanceInterface, m_physicalDevice, VK_QUEUE_GRAPHICS_BIT|VK_QUEUE_COMPUTE_BIT))
+       , m_sparseQueueFamilyIndex                      (m_deviceFeatures.getCoreFeatures2().features.sparseBinding ? findQueueFamilyIndexWithCaps(m_instanceInterface, m_physicalDevice, VK_QUEUE_SPARSE_BINDING_BIT) : 0)
+       , m_deviceProperties                            (getPhysicalDeviceProperties(m_instanceInterface, m_physicalDevice))
++      , m_devicePropertiesFull                        (m_instanceInterface, m_usedApiVersion, m_physicalDevice, m_instanceExtensions, m_deviceExtensions)
+       , m_device                                                      (createDefaultDevice(vkPlatform, *m_instance, m_instanceInterface, m_physicalDevice, m_usedApiVersion, m_universalQueueFamilyIndex, m_sparseQueueFamilyIndex, m_deviceFeatures.getCoreFeatures2(), m_deviceExtensions, cmdLine))
+       , m_deviceInterface                                     (vkPlatform, *m_instance, *m_device)
  {
        DE_ASSERT(m_deviceVersions.first == m_deviceVersion);
  }
@@@ -454,30 -455,22 +462,30 @@@ const vk::VkPhysicalDeviceFeatures2&    Co
  
  #include "vkDeviceFeaturesForContextDefs.inl"
  
- const vk::VkPhysicalDeviceProperties& Context::getDeviceProperties                    (void) const { return m_device->getDeviceProperties();                  }
- const vk::VkPhysicalDeviceProperties2&        Context::getDeviceProperties2                   (void) const { return m_device->getDeviceProperties2();                 }
 -const vk::VkPhysicalDeviceProperties& Context::getDeviceProperties                            (void) const { return m_device->getDeviceProperties();                                  }
 -const vector<string>&                                 Context::getDeviceExtensions                            (void) const { return m_device->getDeviceExtensions();                                  }
 -vk::VkDevice                                                  Context::getDevice                                                      (void) const { return m_device->getDevice();                                                    }
 -const vk::DeviceInterface&                            Context::getDeviceInterface                                     (void) const { return m_device->getDeviceInterface();                                   }
 -deUint32                                                              Context::getUniversalQueueFamilyIndex           (void) const { return m_device->getUniversalQueueFamilyIndex();                 }
 -vk::VkQueue                                                           Context::getUniversalQueue                                      (void) const { return m_device->getUniversalQueue();                                    }
 -deUint32                                                              Context::getSparseQueueFamilyIndex                      (void) const { return m_device->getSparseQueueFamilyIndex();                    }
 -vk::VkQueue                                                           Context::getSparseQueue                                         (void) const { return m_device->getSparseQueue();                                               }
 -vk::Allocator&                                                        Context::getDefaultAllocator                            (void) const { return *m_allocator;                                                                             }
 -deUint32                                                              Context::getUsedApiVersion                                      (void) const { return m_device->getUsedApiVersion();                                    }
++const vk::VkPhysicalDeviceProperties& Context::getDeviceProperties                            (void) const { return m_device->getDeviceProperties();                  }
++const vk::VkPhysicalDeviceProperties2&        Context::getDeviceProperties2                           (void) const { return m_device->getDeviceProperties2();                 }
 +
 +#include "vkDevicePropertiesForContextDefs.inl"
 +
- const vector<string>&                                 Context::getDeviceExtensions                    (void) const { return m_device->getDeviceExtensions();                  }
- vk::VkDevice                                                  Context::getDevice                                              (void) const { return m_device->getDevice();                                    }
- const vk::DeviceInterface&                            Context::getDeviceInterface                             (void) const { return m_device->getDeviceInterface();                   }
- deUint32                                                              Context::getUniversalQueueFamilyIndex   (void) const { return m_device->getUniversalQueueFamilyIndex(); }
- vk::VkQueue                                                           Context::getUniversalQueue                              (void) const { return m_device->getUniversalQueue();                    }
- deUint32                                                              Context::getSparseQueueFamilyIndex              (void) const { return m_device->getSparseQueueFamilyIndex();    }
- vk::VkQueue                                                           Context::getSparseQueue                                 (void) const { return m_device->getSparseQueue();                               }
- vk::Allocator&                                                        Context::getDefaultAllocator                    (void) const { return *m_allocator;                                                             }
- deUint32                                                              Context::getUsedApiVersion                              (void) const { return m_device->getUsedApiVersion();                    }
- bool                                                                  Context::contextSupports                                (const deUint32 majorNum, const deUint32 minorNum, const deUint32 patchNum) const
++const vector<string>&                                 Context::getDeviceExtensions                            (void) const { return m_device->getDeviceExtensions();                  }
++vk::VkDevice                                                  Context::getDevice                                                      (void) const { return m_device->getDevice();                                    }
++const vk::DeviceInterface&                            Context::getDeviceInterface                                     (void) const { return m_device->getDeviceInterface();                   }
++deUint32                                                              Context::getUniversalQueueFamilyIndex           (void) const { return m_device->getUniversalQueueFamilyIndex(); }
++vk::VkQueue                                                           Context::getUniversalQueue                                      (void) const { return m_device->getUniversalQueue();                    }
++deUint32                                                              Context::getSparseQueueFamilyIndex                      (void) const { return m_device->getSparseQueueFamilyIndex();    }
++vk::VkQueue                                                           Context::getSparseQueue                                         (void) const { return m_device->getSparseQueue();                               }
++vk::Allocator&                                                        Context::getDefaultAllocator                            (void) const { return *m_allocator;                                                             }
++deUint32                                                              Context::getUsedApiVersion                                      (void) const { return m_device->getUsedApiVersion();                    }
+ bool                                                                  Context::contextSupports                                        (const deUint32 majorNum, const deUint32 minorNum, const deUint32 patchNum) const
 -                                                                                                                                                                                              { return m_device->getUsedApiVersion() >= VK_MAKE_VERSION(majorNum, minorNum, patchNum); }
 +                                                                                                                                                                                      { return m_device->getUsedApiVersion() >= VK_MAKE_VERSION(majorNum, minorNum, patchNum); }
- bool                                                                  Context::contextSupports                                (const ApiVersion version) const
+ bool                                                                  Context::contextSupports                                        (const ApiVersion version) const
 -                                                                                                                                                                                              { return m_device->getUsedApiVersion() >= pack(version); }
 +                                                                                                                                                                                      { return m_device->getUsedApiVersion() >= pack(version); }
- bool                                                                  Context::contextSupports                                (const deUint32 requiredApiVersionBits) const
+ bool                                                                  Context::contextSupports                                        (const deUint32 requiredApiVersionBits) const
 -                                                                                                                                                                                              { return m_device->getUsedApiVersion() >= requiredApiVersionBits; }
 +                                                                                                                                                                                      { return m_device->getUsedApiVersion() >= requiredApiVersionBits; }
- bool                                                                  Context::isDeviceFeatureInitialized             (vk::VkStructureType sType) const
++bool                                                                  Context::isDeviceFeatureInitialized                     (vk::VkStructureType sType) const
 +                                                                                                                                                                                      { return m_device->isDeviceFeatureInitialized(sType);   }
- bool                                                                  Context::isDevicePropertyInitialized    (vk::VkStructureType sType) const
++bool                                                                  Context::isDevicePropertyInitialized            (vk::VkStructureType sType) const
 +                                                                                                                                                                                      { return m_device->isDevicePropertyInitialized(sType);  }
  
  bool Context::requireDeviceExtension (const std::string& required)
  {
@@@ -57,59 -57,47 +57,60 @@@ class DefaultDevice
  class Context
  {
  public:
-                                                                                               Context                                                 (tcu::TestContext&                              testCtx,
-                                                                                                                                                                const vk::PlatformInterface&   platformInterface,
-                                                                                                                                                                vk::BinaryCollection&                  progCollection);
-                                                                                               ~Context                                                (void);
+                                                                                               Context                                                         (tcu::TestContext&                              testCtx,
+                                                                                                                                                                        const vk::PlatformInterface&   platformInterface,
+                                                                                                                                                                        vk::BinaryCollection&                  progCollection);
+                                                                                               ~Context                                                        (void);
  
-       tcu::TestContext&                                                       getTestContext                                  (void) const { return m_testCtx;                        }
-       const vk::PlatformInterface&                            getPlatformInterface                    (void) const { return m_platformInterface;      }
-       vk::BinaryCollection&                                           getBinaryCollection                             (void) const { return m_progCollection;         }
+       tcu::TestContext&                                                       getTestContext                                          (void) const { return m_testCtx;                        }
+       const vk::PlatformInterface&                            getPlatformInterface                            (void) const { return m_platformInterface;      }
+       vk::BinaryCollection&                                           getBinaryCollection                                     (void) const { return m_progCollection;         }
  
        // Default instance & device, selected with --deqp-vk-device-id=N
-       deUint32                                                                        getAvailableInstanceVersion             (void) const;
-       const std::vector<std::string>&                         getInstanceExtensions                   (void) const;
-       vk::VkInstance                                                          getInstance                                             (void) const;
-       const vk::InstanceInterface&                            getInstanceInterface                    (void) const;
-       vk::VkPhysicalDevice                                            getPhysicalDevice                               (void) const;
-       deUint32                                                                        getDeviceVersion                                (void) const;
-       bool                                                                            isDeviceFeatureInitialized              (vk::VkStructureType sType) const;
-       const vk::VkPhysicalDeviceFeatures&                     getDeviceFeatures                               (void) const;
-       const vk::VkPhysicalDeviceFeatures2&            getDeviceFeatures2                              (void) const;
+       deUint32                                                                        getMaximumFrameworkVulkanVersion        (void) const;
+       deUint32                                                                        getAvailableInstanceVersion                     (void) const;
+       const std::vector<std::string>&                         getInstanceExtensions                           (void) const;
+       vk::VkInstance                                                          getInstance                                                     (void) const;
+       const vk::InstanceInterface&                            getInstanceInterface                            (void) const;
+       vk::VkPhysicalDevice                                            getPhysicalDevice                                       (void) const;
+       deUint32                                                                        getDeviceVersion                                        (void) const;
++
++      bool                                                                            isDeviceFeatureInitialized                      (vk::VkStructureType sType) const;
+       const vk::VkPhysicalDeviceFeatures&                     getDeviceFeatures                                       (void) const;
+       const vk::VkPhysicalDeviceFeatures2&            getDeviceFeatures2                                      (void) const;
  
  #include "vkDeviceFeaturesForContextDecl.inl"
  
-       bool                                                                            isDevicePropertyInitialized             (vk::VkStructureType sType) const;
-       const vk::VkPhysicalDeviceProperties&           getDeviceProperties                             (void) const;
-       const vk::VkPhysicalDeviceProperties2&          getDeviceProperties2                    (void) const;
++      bool                                                                            isDevicePropertyInitialized                     (vk::VkStructureType sType) const;
+       const vk::VkPhysicalDeviceProperties&           getDeviceProperties                                     (void) const;
++      const vk::VkPhysicalDeviceProperties2&          getDeviceProperties2                            (void) const;
 +
 +#include "vkDevicePropertiesForContextDecl.inl"
 +
-       const std::vector<std::string>&                         getDeviceExtensions                             (void) const;
-       vk::VkDevice                                                            getDevice                                               (void) const;
-       const vk::DeviceInterface&                                      getDeviceInterface                              (void) const;
-       deUint32                                                                        getUniversalQueueFamilyIndex    (void) const;
-       vk::VkQueue                                                                     getUniversalQueue                               (void) const;
-       deUint32                                                                        getUsedApiVersion                               (void) const;
-       deUint32                                                                        getSparseQueueFamilyIndex               (void) const;
-       vk::VkQueue                                                                     getSparseQueue                                  (void) const;
-       vk::Allocator&                                                          getDefaultAllocator                             (void) const;
-       bool                                                                            contextSupports                                 (const deUint32 majorNum, const deUint32 minorNum, const deUint32 patchNum) const;
-       bool                                                                            contextSupports                                 (const vk::ApiVersion version) const;
-       bool                                                                            contextSupports                                 (const deUint32 requiredApiVersionBits) const;
-       bool                                                                            requireDeviceExtension                  (const std::string& required);
-       bool                                                                            requireInstanceExtension                (const std::string& required);
-       bool                                                                            requireDeviceCoreFeature                (const DeviceCoreFeature requiredDeviceCoreFeature);
-       void*                                                                           getInstanceProcAddr                             ();
+       const std::vector<std::string>&                         getDeviceExtensions                                     (void) const;
+       vk::VkDevice                                                            getDevice                                                       (void) const;
+       const vk::DeviceInterface&                                      getDeviceInterface                                      (void) const;
+       deUint32                                                                        getUniversalQueueFamilyIndex            (void) const;
+       vk::VkQueue                                                                     getUniversalQueue                                       (void) const;
+       deUint32                                                                        getUsedApiVersion                                       (void) const;
+       deUint32                                                                        getSparseQueueFamilyIndex                       (void) const;
+       vk::VkQueue                                                                     getSparseQueue                                          (void) const;
+       vk::Allocator&                                                          getDefaultAllocator                                     (void) const;
+       bool                                                                            contextSupports                                         (const deUint32 majorNum, const deUint32 minorNum, const deUint32 patchNum) const;
+       bool                                                                            contextSupports                                         (const vk::ApiVersion version) const;
+       bool                                                                            contextSupports                                         (const deUint32 requiredApiVersionBits) const;
+       bool                                                                            requireDeviceExtension                          (const std::string& required);
+       bool                                                                            requireInstanceExtension                        (const std::string& required);
+       bool                                                                            requireDeviceCoreFeature                        (const DeviceCoreFeature requiredDeviceCoreFeature);
+       void*                                                                           getInstanceProcAddr                                     ();
  
 +      bool                                                                            isBufferDeviceAddressSupported                                          (void) const;
 +      bool                                                                            isBufferDeviceAddressKHRSupported                                       (void) const;
 +      bool                                                                            isBufferDeviceAddressEXTSupported                                       (void) const;
 +      bool                                                                            isBufferDeviceAddressWithCaptureReplaySupported         (void) const;
 +      bool                                                                            isDescriptorIndexingSupported                                           (void) const;
 +
  protected:
        tcu::TestContext&                                                       m_testCtx;
        const vk::PlatformInterface&                            m_platformInterface;