Commit 266453b1 authored by Khushal Sagar's avatar Khushal Sagar Committed by Commit Bot

canvas2d: Check max texture size for software GMB resource allocations.

R=fserb@chromium.org

Bug: 900706, 995142
Change-Id: I7221db94e63f11d67c45cbafcc019b3995f8fe8d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1765659
Commit-Queue: Khushal <khushalsagar@chromium.org>
Reviewed-by: default avatarFernando Serboncini <fserb@chromium.org>
Auto-Submit: Khushal <khushalsagar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#690430}
parent ff42027c
......@@ -1171,6 +1171,9 @@ std::unique_ptr<CanvasResourceProvider> CanvasResourceProvider::Create(
case CanvasResourceType::kSharedImage: {
DCHECK_NE(usage, ResourceUsage::kSoftwareResourceUsage);
if (!context_provider_wrapper)
continue;
const bool usage_wants_single_buffered =
usage == ResourceUsage::kAcceleratedDirect2DResourceUsage ||
usage == ResourceUsage::kAcceleratedDirect3DResourceUsage ||
......@@ -1187,9 +1190,14 @@ std::unique_ptr<CanvasResourceProvider> CanvasResourceProvider::Create(
context_provider_wrapper->ContextProvider()
->GetCapabilities()
.texture_storage_image;
const int max_texture_size = context_provider_wrapper->ContextProvider()
->GetCapabilities()
.max_texture_size;
const bool can_use_gmbs =
is_gpu_memory_buffer_image_allowed &&
Platform::Current()->GetGpuMemoryBufferManager();
Platform::Current()->GetGpuMemoryBufferManager() &&
size.Width() < max_texture_size && size.Height() < max_texture_size;
const bool is_overlay_candidate =
usage_wants_overlays && can_use_overlays;
......
......@@ -146,6 +146,7 @@ class CanvasResourceProviderTest : public Test {
auto* context_provider = context_provider_wrapper_->ContextProvider();
auto capabilities = context_provider->GetCapabilities();
capabilities.texture_storage_image = true;
capabilities.max_texture_size = 1024;
static_cast<MockWebGraphisContext3DProviderWrapper*>(context_provider)
->SetCapabilities(capabilities);
}
......
......@@ -6522,8 +6522,6 @@ crbug.com/996597 [ Win ] css2.1/t0905-c5525-flthw-00-c-g.html [ Failure ]
crbug.com/994008 [ Linux Win ] http/tests/devtools/elements/styles-3/styles-computed-trace.js [ Pass Failure ]
crbug.com/994034 [ Linux Win ] http/tests/devtools/elements/styles-3/styles-add-new-rule-colon.js [ Pass Failure ]
crbug.com/994027 [ Linux Win ] http/tests/devtools/elements/styles-2/force-pseudo-state.js [ Pass Failure ]
crbug.com/995142 crbug.com/900706 [ Mac ] fast/canvas/canvas-large-pattern.html [ Pass Failure ]
crbug.com/995142 crbug.com/900706 [ Mac ] virtual/gpu/fast/canvas/canvas-large-pattern.html [ Pass Failure ]
crbug.com/995142 crbug.com/900706 [ Mac ] virtual/gpu/fast/canvas/pixelated-canvas.html [ Pass Failure ]
crbug.com/995142 crbug.com/900706 [ Mac ] virtual/gpu/fast/canvas/pixelated-resize.html [ Pass Failure ]
crbug.com/995142 crbug.com/900706 [ Mac ] virtual/gpu/fast/canvas/pixelated.html [ Pass Failure ]
......
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