[YUV AHB] Fix STMAHB test errors on Pixel 10. The tests had two bugs that caused failures on Pixel 10: - A bitmask was compared to a boolean, but when the expectation was that it is true, `true` coerced to 1, which didn't match the tested bitflag. - The AHB usages was not initialized in the AHB descriptor, leading to an allocation failure. Bug: 468988322 Change-Id: Iabbb22c9f1415034e7f6782ef4f03a8b26e13bea Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/298557 Reviewed-by: Brandon Jones <bajones@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/dawn/tests/white_box/SharedTextureMemoryYCbCrAndroidTests.cpp b/src/dawn/tests/white_box/SharedTextureMemoryYCbCrAndroidTests.cpp index 3169b87..77f79d8 100644 --- a/src/dawn/tests/white_box/SharedTextureMemoryYCbCrAndroidTests.cpp +++ b/src/dawn/tests/white_box/SharedTextureMemoryYCbCrAndroidTests.cpp
@@ -103,8 +103,6 @@ // instance. TEST_P(SharedTextureMemoryYCbCrVulkanSamplersTests, InvalidSharedTextureMemoryAHardwareBufferProperties) { - // TODO(crbug.com/40238674): Fails on Pixel 10 vulkan. - DAWN_SUPPRESS_TEST_IF(IsImgTec() && IsVulkan()); // TODO(crbug.com/444741058): Fails on Intel-based brya devices running Android Desktop. DAWN_SUPPRESS_TEST_IF(IsVulkan() && IsIntel() && IsAndroid()); @@ -113,6 +111,7 @@ .height = 4, .layers = 1, .format = AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM, + .usage = AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE, }; AHardwareBuffer* aHardwareBuffer; EXPECT_EQ(AHardwareBuffer_allocate(&aHardwareBufferDesc, &aHardwareBuffer), 0); @@ -139,9 +138,6 @@ // Test querying YCbCr info from the Device. TEST_P(SharedTextureMemoryYCbCrVulkanSamplersTests, QueryYCbCrInfoFromDevice) { - // TODO(crbug.com/40238674): Fails on Pixel 10 vulkan. - DAWN_SUPPRESS_TEST_IF(IsImgTec() && IsVulkan()); - // TODO(crbug.com/444741058): Fails on Intel-based brya devices running Android Desktop. DAWN_SUPPRESS_TEST_IF(IsVulkan() && IsIntel() && IsAndroid()); @@ -150,6 +146,7 @@ .height = 4, .layers = 1, .format = AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM, + .usage = AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE, }; AHardwareBuffer* aHardwareBuffer; EXPECT_EQ(AHardwareBuffer_allocate(&aHardwareBufferDesc, &aHardwareBuffer), 0); @@ -198,17 +195,14 @@ : wgpu::FilterMode::Nearest; EXPECT_EQ(expectedFilter, yCbCrInfo.vkChromaFilter); EXPECT_EQ( - formatFeatures & - VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT, + bool(formatFeatures & + VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT), yCbCrInfo.forceExplicitReconstruction); EXPECT_EQ(bufferFormatProperties.externalFormat, yCbCrInfo.externalFormat); } // Test querying YCbCr info from the SharedTextureMemory without external format. TEST_P(SharedTextureMemoryYCbCrVulkanSamplersTests, QueryYCbCrInfoWithoutYCbCrFormat) { - // TODO(crbug.com/40238674): Fails on Pixel 10 vulkan. - DAWN_SUPPRESS_TEST_IF(IsImgTec() && IsVulkan()); - // TODO(crbug.com/444741058): Fails on Intel-based brya devices running Android Desktop. DAWN_SUPPRESS_TEST_IF(IsVulkan() && IsIntel() && IsAndroid()); @@ -217,6 +211,7 @@ .height = 4, .layers = 1, .format = AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM, + .usage = AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE, }; AHardwareBuffer* aHardwareBuffer; EXPECT_EQ(AHardwareBuffer_allocate(&aHardwareBufferDesc, &aHardwareBuffer), 0); @@ -276,8 +271,8 @@ : wgpu::FilterMode::Nearest; EXPECT_EQ(expectedFilter, yCbCrInfo.vkChromaFilter); EXPECT_EQ( - formatFeatures & - VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT, + bool(formatFeatures & + VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT), yCbCrInfo.forceExplicitReconstruction); uint64_t expectedExternalFormat = 0u; EXPECT_EQ(expectedExternalFormat, yCbCrInfo.externalFormat); @@ -351,8 +346,8 @@ : wgpu::FilterMode::Nearest; EXPECT_EQ(expectedFilter, yCbCrInfo.vkChromaFilter); EXPECT_EQ( - formatFeatures & - VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT, + bool(formatFeatures & + VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT), yCbCrInfo.forceExplicitReconstruction); EXPECT_EQ(bufferFormatProperties.externalFormat, yCbCrInfo.externalFormat); }