Commit 543cfc56 authored by Rafael Cintron's avatar Rafael Cintron Committed by Commit Bot

PrepareTransferableResource must use RECTANGLE_RGB only on Mac

WebGPUSwapBufferProvider::PrepareTransferableResource must use
GL_TEXTURE2D_RECTANGLE_RGB only on Mac.

Bug: 989818
Change-Id: I1bc11d3f0a8fab7d5de208e744a8c1aa24c47828
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1730255Reviewed-by: default avatarKenneth Russell <kbr@chromium.org>
Reviewed-by: default avatarKai Ninomiya <kainino@chromium.org>
Reviewed-by: default avatarCorentin Wallez <cwallez@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#683729}
parent 6881d10f
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#include "third_party/blink/renderer/platform/graphics/gpu/webgpu_swap_buffer_provider.h" #include "third_party/blink/renderer/platform/graphics/gpu/webgpu_swap_buffer_provider.h"
#include "build/build_config.h"
#include "gpu/GLES2/gl2extchromium.h" #include "gpu/GLES2/gl2extchromium.h"
#include "gpu/command_buffer/client/shared_image_interface.h" #include "gpu/command_buffer/client/shared_image_interface.h"
#include "gpu/command_buffer/client/webgpu_interface.h" #include "gpu/command_buffer/client/webgpu_interface.h"
...@@ -137,9 +138,21 @@ bool WebGPUSwapBufferProvider::PrepareTransferableResource( ...@@ -137,9 +138,21 @@ bool WebGPUSwapBufferProvider::PrepareTransferableResource(
webgpu->GenUnverifiedSyncTokenCHROMIUM( webgpu->GenUnverifiedSyncTokenCHROMIUM(
current_swap_buffer_->access_finished_token.GetData()); current_swap_buffer_->access_finished_token.GetData());
// On macOS, shared images are backed by IOSurfaces that can only be used
// with OpenGL via the rectangle texture target. Every other shared image
// implementation is implemented on OpenGL via some form of eglSurface and
// eglBindTexImage (on ANGLE or system drivers) so they use the 2D texture
// target.
const uint32_t texture_target =
#if defined(OS_MACOSX)
GL_TEXTURE_RECTANGLE_ARB
#else
GL_TEXTURE_2D
#endif
;
// Populate the output resource // Populate the output resource
*out_resource = viz::TransferableResource::MakeGL( *out_resource = viz::TransferableResource::MakeGL(
current_swap_buffer_->mailbox, GL_LINEAR, GL_TEXTURE_RECTANGLE_ARB, current_swap_buffer_->mailbox, GL_LINEAR, texture_target,
current_swap_buffer_->access_finished_token, current_swap_buffer_->size, current_swap_buffer_->access_finished_token, current_swap_buffer_->size,
false); false);
out_resource->color_space = gfx::ColorSpace::CreateSRGB(); out_resource->color_space = gfx::ColorSpace::CreateSRGB();
......
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