[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);
 }