From 6330fc1cf425e7ccaf17e09b0318b8b9c4128c95 Mon Sep 17 00:00:00 2001 From: Kaiyi Li Date: Tue, 28 Sep 2021 16:13:40 -0700 Subject: Always use FIFO present mode Calling DisplayVk::compose or DisplayVk::post too frequently with the mail box present mode may cause a device lost in a later vkQueueWaitIdle, which will break the DisplayVkTest.PostTwoColorBuffers unit test. Also fix the bug in the CompositorVk unit test. Bug: 199812178 Test: run the unit test Change-Id: If82a5d87c760c62ff3aeac80c13a2643b2e0c61b --- stream-servers/tests/CompositorVk_unittest.cpp | 8 +++++--- stream-servers/tests/DisplayVk_unittest.cpp | 6 +++--- 2 files changed, 8 insertions(+), 6 deletions(-) (limited to 'stream-servers/tests') diff --git a/stream-servers/tests/CompositorVk_unittest.cpp b/stream-servers/tests/CompositorVk_unittest.cpp index 125571b1..6bd89f26 100644 --- a/stream-servers/tests/CompositorVk_unittest.cpp +++ b/stream-servers/tests/CompositorVk_unittest.cpp @@ -217,7 +217,9 @@ TEST_F(CompositorVkTest, ValidatePhysicalDeviceFeatures) { ASSERT_FALSE(CompositorVk::validatePhysicalDeviceFeatures(features)); VkPhysicalDeviceDescriptorIndexingFeaturesEXT descIndexingFeatures = { .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT, - .pNext = &descIndexingFeatures}; + .pNext = nullptr}; + descIndexingFeatures.descriptorBindingSampledImageUpdateAfterBind = VK_FALSE; + features.pNext = &descIndexingFeatures; ASSERT_FALSE(CompositorVk::validatePhysicalDeviceFeatures(features)); descIndexingFeatures.descriptorBindingSampledImageUpdateAfterBind = VK_TRUE; ASSERT_TRUE(CompositorVk::validatePhysicalDeviceFeatures(features)); @@ -235,8 +237,8 @@ TEST_F(CompositorVkTest, EnablePhysicalDeviceFeatures) { VkPhysicalDeviceFeatures2 features = {.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2}; ASSERT_FALSE(CompositorVk::enablePhysicalDeviceFeatures(features)); VkPhysicalDeviceDescriptorIndexingFeaturesEXT descIndexingFeatures = { - .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT, - .pNext = &descIndexingFeatures}; + .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT}; + features.pNext = &descIndexingFeatures; ASSERT_TRUE(CompositorVk::enablePhysicalDeviceFeatures(features)); ASSERT_EQ(descIndexingFeatures.descriptorBindingSampledImageUpdateAfterBind, VK_TRUE); } diff --git a/stream-servers/tests/DisplayVk_unittest.cpp b/stream-servers/tests/DisplayVk_unittest.cpp index b6d81f44..f0308790 100644 --- a/stream-servers/tests/DisplayVk_unittest.cpp +++ b/stream-servers/tests/DisplayVk_unittest.cpp @@ -209,7 +209,7 @@ TEST_F(DisplayVkTest, PostWithoutSurfaceShouldntCrash) { ASSERT_TRUE(texture->write(pixels)); auto cbvk = displayVk.createDisplayBuffer(texture->m_vkImage, RenderTexture::k_vkFormat, textureWidth, textureHeight); - displayVk.post(cbvk); + ASSERT_TRUE(std::get<0>(displayVk.post(cbvk))); } TEST_F(DisplayVkTest, SimplePost) { @@ -256,7 +256,7 @@ TEST_F(DisplayVkTest, PostTwoColorBuffers) { m_displayVk->createDisplayBuffer(greenTexture->m_vkImage, greenTexture->k_vkFormat, greenTexture->m_width, greenTexture->m_height); for (uint32_t i = 0; i < 10; i++) { - m_displayVk->post(redCbvk); - m_displayVk->post(greenCbvk); + ASSERT_TRUE(std::get<0>(m_displayVk->post(redCbvk))); + ASSERT_TRUE(std::get<0>(m_displayVk->post(greenCbvk))); } } -- cgit v1.2.3