Remove the dependency to VK_EXT_descriptor_indexing

By creating one time VkCommandBuffer for everyframe, we no longer need
to update the sampler descriptor set after bound to a VkCommandBuffer.

Test: CompositorVk_unittests with no VVL errors
Bug: b/202434348
Change-Id: I075b1a137e1223918867f6c30b65822b967a312f
diff --git a/stream-servers/tests/DisplayVk_unittest.cpp b/stream-servers/tests/DisplayVk_unittest.cpp
index f030879..4a75b0d 100644
--- a/stream-servers/tests/DisplayVk_unittest.cpp
+++ b/stream-servers/tests/DisplayVk_unittest.cpp
@@ -115,15 +115,6 @@
                                                    physicalDevices.data()),
                   VK_SUCCESS);
         for (const auto &device : physicalDevices) {
-            VkPhysicalDeviceDescriptorIndexingFeaturesEXT descIndexingFeatures = {
-                .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT};
-            VkPhysicalDeviceFeatures2 features = {
-                .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
-                .pNext = &descIndexingFeatures};
-            k_vk->vkGetPhysicalDeviceFeatures2(device, &features);
-            if (!CompositorVk::validatePhysicalDeviceFeatures(features)) {
-                continue;
-            }
             uint32_t queueFamilyCount = 0;
             k_vk->vkGetPhysicalDeviceQueueFamilyProperties(device, &queueFamilyCount, nullptr);
             ASSERT_GT(queueFamilyCount, 0);
@@ -169,15 +160,9 @@
                                                .pQueuePriorities = &queuePriority};
             queueCis.push_back(queueCi);
         }
-        VkPhysicalDeviceDescriptorIndexingFeaturesEXT descIndexingFeatures = {
-            .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT};
         VkPhysicalDeviceFeatures2 features = {.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
-                                              .pNext = &descIndexingFeatures};
-        ASSERT_TRUE(CompositorVk::enablePhysicalDeviceFeatures(features));
+                                              .pNext = nullptr};
         auto extensions = SwapChainStateVk::getRequiredDeviceExtensions();
-        const auto compositorExtensions = CompositorVk::getRequiredDeviceExtensions();
-        extensions.insert(extensions.end(), compositorExtensions.begin(),
-                          compositorExtensions.end());
         VkDeviceCreateInfo deviceCi = {
             .sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
             .pNext = &features,
@@ -230,8 +215,14 @@
     ASSERT_TRUE(texture->write(pixels));
     auto cbvk = m_displayVk->createDisplayBuffer(texture->m_vkImage, texture->k_vkFormat,
                                                  texture->m_width, texture->m_height);
+    std::vector<std::shared_future<void>> waitForGpuFutures;
     for (uint32_t i = 0; i < 10; i++) {
-        m_displayVk->post(cbvk);
+        auto [success, waitForGpuFuture] = m_displayVk->post(cbvk);
+        ASSERT_TRUE(success);
+        waitForGpuFutures.emplace_back(std::move(waitForGpuFuture));
+    }
+    for (auto &waitForGpuFuture : waitForGpuFutures) {
+        waitForGpuFuture.wait();
     }
 }
 
@@ -255,8 +246,16 @@
     auto greenCbvk =
         m_displayVk->createDisplayBuffer(greenTexture->m_vkImage, greenTexture->k_vkFormat,
                                          greenTexture->m_width, greenTexture->m_height);
+    std::vector<std::shared_future<void>> waitForGpuFutures;
     for (uint32_t i = 0; i < 10; i++) {
-        ASSERT_TRUE(std::get<0>(m_displayVk->post(redCbvk)));
-        ASSERT_TRUE(std::get<0>(m_displayVk->post(greenCbvk)));
+        auto [success, waitForGpuFuture] = m_displayVk->post(redCbvk);
+        ASSERT_TRUE(success);
+        waitForGpuFutures.emplace_back(std::move(waitForGpuFuture));
+        std::tie(success, waitForGpuFuture) = m_displayVk->post(greenCbvk);
+        ASSERT_TRUE(success);
+        waitForGpuFutures.emplace_back(std::move(waitForGpuFuture));
+    }
+    for (auto &waitForGpuFuture : waitForGpuFutures) {
+        waitForGpuFuture.wait();
     }
 }