Commit 6aa40e05 authored by Juanmi Huertas's avatar Juanmi Huertas Committed by Commit Bot

Removing AcceleratedResourceUsage from CanvasResourceProviderTest

Refactoring a test to better test individual type of canvas resource
and replacing instances of AcceleratedResourceUsage for SharedImage and
Bitmap resource providers.

Bug: 1035589, 1021287
Change-Id: I8731cc59aed59a3f56eaeff49845cb9e8f6a0da1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2095369
Commit-Queue: Juanmi Huertas <juanmihd@chromium.org>
Reviewed-by: default avatarFernando Serboncini <fserb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#749680}
parent dd737a9d
...@@ -103,19 +103,16 @@ TEST_F(CanvasResourceProviderTest, CanvasResourceProviderAcceleratedOverlay) { ...@@ -103,19 +103,16 @@ TEST_F(CanvasResourceProviderTest, CanvasResourceProviderAcceleratedOverlay) {
EXPECT_TRUE(provider->IsSingleBuffered()); EXPECT_TRUE(provider->IsSingleBuffered());
} }
// TODO(juanmihd): Fix this test. See crbug.com/1035589.
TEST_F(CanvasResourceProviderTest, CanvasResourceProviderTexture) { TEST_F(CanvasResourceProviderTest, CanvasResourceProviderTexture) {
const IntSize kSize(10, 10); const IntSize kSize(10, 10);
const CanvasColorParams kColorParams( const CanvasColorParams kColorParams(
CanvasColorSpace::kSRGB, CanvasColorParams::GetNativeCanvasPixelFormat(), CanvasColorSpace::kSRGB, CanvasColorParams::GetNativeCanvasPixelFormat(),
kNonOpaque); kNonOpaque);
auto provider = CanvasResourceProvider::Create( auto provider = CanvasResourceProvider::CreateSharedImageProvider(
kSize, CanvasResourceProvider::ResourceUsage::kAcceleratedResourceUsage, kSize, context_provider_wrapper_, kLow_SkFilterQuality, kColorParams,
context_provider_wrapper_, 0 /* msaa_sample_count */, /*is_origin_top_left = */ true,
kLow_SkFilterQuality, kColorParams, /*shared_image_usage_flags = */ 0u);
CanvasResourceProvider::kDefaultPresentationMode,
nullptr /* resource_dispatcher */, true /* is_origin_top_left */);
EXPECT_EQ(provider->Size(), kSize); EXPECT_EQ(provider->Size(), kSize);
EXPECT_TRUE(provider->IsValid()); EXPECT_TRUE(provider->IsValid());
...@@ -463,6 +460,49 @@ TEST_F(CanvasResourceProviderTest, CanvasResourceProviderDirect3DTexture) { ...@@ -463,6 +460,49 @@ TEST_F(CanvasResourceProviderTest, CanvasResourceProviderDirect3DTexture) {
callback->Run(gpu::SyncToken(), true /* is_lost */); callback->Run(gpu::SyncToken(), true /* is_lost */);
} }
TEST_F(CanvasResourceProviderTest, DimensionsExceedMaxTextureSize_Bitmap) {
const CanvasColorParams kColorParams(
CanvasColorSpace::kSRGB, CanvasColorParams::GetNativeCanvasPixelFormat(),
kNonOpaque);
auto provider = CanvasResourceProvider::CreateBitmapProvider(
IntSize(kMaxTextureSize - 1, kMaxTextureSize), kLow_SkFilterQuality,
kColorParams);
EXPECT_FALSE(provider->SupportsDirectCompositing());
provider = CanvasResourceProvider::CreateBitmapProvider(
IntSize(kMaxTextureSize, kMaxTextureSize), kLow_SkFilterQuality,
kColorParams);
EXPECT_FALSE(provider->SupportsDirectCompositing());
provider = CanvasResourceProvider::CreateBitmapProvider(
IntSize(kMaxTextureSize + 1, kMaxTextureSize), kLow_SkFilterQuality,
kColorParams);
EXPECT_FALSE(provider->SupportsDirectCompositing());
}
TEST_F(CanvasResourceProviderTest, DimensionsExceedMaxTextureSize_SharedImage) {
const CanvasColorParams kColorParams(
CanvasColorSpace::kSRGB, CanvasColorParams::GetNativeCanvasPixelFormat(),
kNonOpaque);
auto provider = CanvasResourceProvider::CreateSharedImageProvider(
IntSize(kMaxTextureSize - 1, kMaxTextureSize), context_provider_wrapper_,
kLow_SkFilterQuality, kColorParams, /* is_origin_top_left = */ true,
/* shared_image_usage_flags = */ 0u);
EXPECT_TRUE(provider->SupportsDirectCompositing());
provider = CanvasResourceProvider::CreateSharedImageProvider(
IntSize(kMaxTextureSize, kMaxTextureSize), context_provider_wrapper_,
kLow_SkFilterQuality, kColorParams, /* is_origin_top_left = */ true,
/* shared_image_usage_flags = */ 0u);
EXPECT_TRUE(provider->SupportsDirectCompositing());
provider = CanvasResourceProvider::CreateSharedImageProvider(
IntSize(kMaxTextureSize + 1, kMaxTextureSize), context_provider_wrapper_,
kLow_SkFilterQuality, kColorParams, /* is_origin_top_left = */ true,
/* shared_image_usage_flags = */ 0u);
// The CanvasResourceProvider for SharedImage should not be created or valid
// if the texture size is greater than the maximum value
EXPECT_TRUE(!provider || !provider->IsValid());
}
TEST_F(CanvasResourceProviderTest, DimensionsExceedMaxTextureSize) { TEST_F(CanvasResourceProviderTest, DimensionsExceedMaxTextureSize) {
const CanvasColorParams kColorParams( const CanvasColorParams kColorParams(
CanvasColorSpace::kSRGB, CanvasColorParams::GetNativeCanvasPixelFormat(), CanvasColorSpace::kSRGB, CanvasColorParams::GetNativeCanvasPixelFormat(),
...@@ -476,17 +516,18 @@ TEST_F(CanvasResourceProviderTest, DimensionsExceedMaxTextureSize) { ...@@ -476,17 +516,18 @@ TEST_F(CanvasResourceProviderTest, DimensionsExceedMaxTextureSize) {
bool should_support_compositing = false; bool should_support_compositing = false;
std::unique_ptr<CanvasResourceProvider> provider; std::unique_ptr<CanvasResourceProvider> provider;
switch (usage) { switch (usage) {
// Skipping ResourceUsages that will be removed after this refactor
// bug(1035589)
case CanvasResourceProvider::ResourceUsage::kSoftwareResourceUsage: case CanvasResourceProvider::ResourceUsage::kSoftwareResourceUsage:
should_support_compositing = false; continue;
break; case CanvasResourceProvider::ResourceUsage::kAcceleratedResourceUsage:
continue;
case CanvasResourceProvider::ResourceUsage:: case CanvasResourceProvider::ResourceUsage::
kSoftwareCompositedResourceUsage: kSoftwareCompositedResourceUsage:
FALLTHROUGH; FALLTHROUGH;
case CanvasResourceProvider::ResourceUsage:: case CanvasResourceProvider::ResourceUsage::
kSoftwareCompositedDirect2DResourceUsage: kSoftwareCompositedDirect2DResourceUsage:
FALLTHROUGH; FALLTHROUGH;
case CanvasResourceProvider::ResourceUsage::kAcceleratedResourceUsage:
FALLTHROUGH;
case CanvasResourceProvider::ResourceUsage:: case CanvasResourceProvider::ResourceUsage::
kAcceleratedCompositedResourceUsage: kAcceleratedCompositedResourceUsage:
FALLTHROUGH; FALLTHROUGH;
...@@ -499,51 +540,33 @@ TEST_F(CanvasResourceProviderTest, DimensionsExceedMaxTextureSize) { ...@@ -499,51 +540,33 @@ TEST_F(CanvasResourceProviderTest, DimensionsExceedMaxTextureSize) {
break; break;
} }
if (usage ==
CanvasResourceProvider::ResourceUsage::kSoftwareResourceUsage) {
provider = CanvasResourceProvider::CreateBitmapProvider(
IntSize(kMaxTextureSize - 1, kMaxTextureSize), kLow_SkFilterQuality,
kColorParams);
} else {
provider = CanvasResourceProvider::Create( provider = CanvasResourceProvider::Create(
IntSize(kMaxTextureSize - 1, kMaxTextureSize), usage, IntSize(kMaxTextureSize - 1, kMaxTextureSize), usage,
context_provider_wrapper_, 0 /* msaa_sample_count */, context_provider_wrapper_, 0 /* msaa_sample_count */,
kLow_SkFilterQuality, kColorParams, kLow_SkFilterQuality, kColorParams,
CanvasResourceProvider::kAllowImageChromiumPresentationMode, CanvasResourceProvider::kAllowImageChromiumPresentationMode,
nullptr /* resource_dispatcher */, true /* is_origin_top_left */); nullptr /* resource_dispatcher */, true /* is_origin_top_left */);
}
EXPECT_EQ(provider->SupportsDirectCompositing(), EXPECT_EQ(provider->SupportsDirectCompositing(),
should_support_compositing); should_support_compositing);
if (usage ==
CanvasResourceProvider::ResourceUsage::kSoftwareResourceUsage) {
provider = CanvasResourceProvider::CreateBitmapProvider(
IntSize(kMaxTextureSize, kMaxTextureSize), kLow_SkFilterQuality,
kColorParams);
} else {
provider = CanvasResourceProvider::Create( provider = CanvasResourceProvider::Create(
IntSize(kMaxTextureSize, kMaxTextureSize), usage, IntSize(kMaxTextureSize, kMaxTextureSize), usage,
context_provider_wrapper_, 0 /* msaa_sample_count */, context_provider_wrapper_, 0 /* msaa_sample_count */,
kLow_SkFilterQuality, kColorParams, kLow_SkFilterQuality, kColorParams,
CanvasResourceProvider::kAllowImageChromiumPresentationMode, CanvasResourceProvider::kAllowImageChromiumPresentationMode,
nullptr /* resource_dispatcher */, true /* is_origin_top_left */); nullptr /* resource_dispatcher */, true /* is_origin_top_left */);
}
EXPECT_EQ(provider->SupportsDirectCompositing(), EXPECT_EQ(provider->SupportsDirectCompositing(),
should_support_compositing); should_support_compositing);
if (usage ==
CanvasResourceProvider::ResourceUsage::kSoftwareResourceUsage) {
provider = CanvasResourceProvider::CreateBitmapProvider(
IntSize(kMaxTextureSize + 1, kMaxTextureSize), kLow_SkFilterQuality,
kColorParams);
} else {
provider = CanvasResourceProvider::Create( provider = CanvasResourceProvider::Create(
IntSize(kMaxTextureSize + 1, kMaxTextureSize), usage, IntSize(kMaxTextureSize + 1, kMaxTextureSize), usage,
context_provider_wrapper_, 0 /* msaa_sample_count */, context_provider_wrapper_, 0 /* msaa_sample_count */,
kLow_SkFilterQuality, kColorParams, kLow_SkFilterQuality, kColorParams,
CanvasResourceProvider::kAllowImageChromiumPresentationMode, CanvasResourceProvider::kAllowImageChromiumPresentationMode,
nullptr /* resource_dispatcher */, true /* is_origin_top_left */); nullptr /* resource_dispatcher */, true /* is_origin_top_left */);
}
EXPECT_FALSE(provider->SupportsDirectCompositing()); EXPECT_FALSE(provider->SupportsDirectCompositing());
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment