[GPU] Remove GLImageNativePixmap
Following the deletion of V4L2SliceVDA, nothing in the codebase references GLImageNativePixmap. This CL deletes it as well as all of the code that directly references it. Further cleanup is left for followup CLs. With this CL, GLImage definitively sails off into the sunset. Bug: 1310018 Change-Id: I1bf12aa95eaeadf3287b2d37c79ec53e16ce39ad Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4645468 Reviewed-by: ccameron chromium <ccameron@chromium.org> Reviewed-by: Dale Curtis <dalecurtis@chromium.org> Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org> Commit-Queue: Colin Blundell <blundell@chromium.org> Reviewed-by: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/main@{#1164579}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
18c8c7ebbb
commit
54424945d8
BUILD.gn
gpu/command_buffer/service
BUILD.gnabstract_texture.hgles2_cmd_decoder_unittest.ccgles2_cmd_decoder_unittest_textures.ccpassthrough_abstract_texture_impl.ccpassthrough_abstract_texture_impl.h
shared_image
texture_manager.cctexture_manager.htexture_manager_unittest.ccvalidating_abstract_texture_impl.ccvalidating_abstract_texture_impl.hinfra/config
media/gpu
command_buffer_helper.cccommand_buffer_helper.hgpu_video_decode_accelerator_factory.hgpu_video_decode_accelerator_helpers.h
ipc
service
test
testing/buildbot
chrome.jsonchromium.chromiumos.jsonchromium.coverage.jsonchromium.fuchsia.fyi.jsonchromium.fuchsia.jsonchromium.fyi.jsonchromium.memory.jsongn_isolate_map.pylinternal.chromeos.fyi.jsontest_suites.pyl
ui
1
BUILD.gn
1
BUILD.gn
@ -1011,7 +1011,6 @@ if (is_chromeos_ash) {
|
||||
# Blocked on https://github.com/catapult-project/catapult/issues/2297
|
||||
#"//third_party/catapult/telemetry:bitmaptools",
|
||||
"//tools/perf/clear_system_cache",
|
||||
"//ui/ozone/gl:ozone_gl_unittests",
|
||||
]
|
||||
|
||||
if (enable_ppapi) {
|
||||
|
@ -399,8 +399,6 @@ target(link_target_type, "gles2_sources") {
|
||||
|
||||
if (use_ozone) {
|
||||
sources += [
|
||||
"shared_image/gl_image_native_pixmap.cc",
|
||||
"shared_image/gl_image_native_pixmap.h",
|
||||
"shared_image/gl_ozone_image_representation.cc",
|
||||
"shared_image/gl_ozone_image_representation.h",
|
||||
"shared_image/ozone_image_backing.cc",
|
||||
|
@ -18,8 +18,6 @@ typedef unsigned int GLuint;
|
||||
|
||||
namespace gpu {
|
||||
|
||||
class GLImageNativePixmap;
|
||||
|
||||
namespace gles2 {
|
||||
|
||||
// An AbstractTexture enables access to GL textures from the GPU process, for
|
||||
@ -54,18 +52,6 @@ class GPU_GLES2_EXPORT AbstractTexture {
|
||||
// Set a texture parameter. The GL context must be current.
|
||||
virtual void SetParameteri(GLenum pname, GLint param) = 0;
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
// Attaches |image| to the AbstractTexture. The decoder does not call
|
||||
// GLImage::Copy/Bind. Further, the decoder guarantees that
|
||||
// ScheduleOverlayPlane will be called if the texture is ever promoted to an
|
||||
// overlay.
|
||||
//
|
||||
// It is not required to SetCleared() if one binds an image.
|
||||
//
|
||||
// The context must be current.
|
||||
virtual void SetBoundImage(GLImageNativePixmap* image) = 0;
|
||||
#endif
|
||||
|
||||
// Marks the texture as cleared, to help prevent sending an uninitialized
|
||||
// texture to the (untrusted) renderer. One should call this only when one
|
||||
// has actually initialized the texture.
|
||||
|
@ -29,10 +29,6 @@
|
||||
#include "ui/gl/gpu_timing_fake.h"
|
||||
#include "ui/gl/scoped_make_current.h"
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
#include "gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h"
|
||||
#endif
|
||||
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
#include "gpu/command_buffer/service/validating_abstract_texture_impl.h"
|
||||
#endif
|
||||
@ -261,28 +257,6 @@ TEST_P(GLES2DecoderTest, IsTexture) {
|
||||
}
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
TEST_P(GLES2DecoderTest, TestImageBindingForDecoderManagement) {
|
||||
const GLuint service_id = 123;
|
||||
EXPECT_CALL(*gl_, GenTextures(1, _))
|
||||
.Times(1)
|
||||
.WillOnce(SetArgPointee<1>(service_id))
|
||||
.RetiresOnSaturation();
|
||||
const GLenum target = GL_TEXTURE_EXTERNAL_OES;
|
||||
std::unique_ptr<AbstractTexture> abstract_texture =
|
||||
GetDecoder()->CreateAbstractTexture(target, GL_RGBA, 256, /* width */
|
||||
256, /* height */
|
||||
1, /* depth */
|
||||
0, /* border */
|
||||
GL_RGBA, GL_UNSIGNED_BYTE);
|
||||
scoped_refptr<GLImageNativePixmap> image(
|
||||
GLImageNativePixmap::CreateForTesting(gfx::Size(256, 256)));
|
||||
|
||||
abstract_texture->SetBoundImage(image.get());
|
||||
|
||||
EXPECT_CALL(*gl_, DeleteTextures(1, _)).Times(1).RetiresOnSaturation();
|
||||
abstract_texture.reset();
|
||||
}
|
||||
|
||||
TEST_P(GLES2DecoderTest, CreateAbstractTexture) {
|
||||
const GLuint service_id = 123;
|
||||
EXPECT_CALL(*gl_, GenTextures(1, _))
|
||||
@ -315,20 +289,6 @@ TEST_P(GLES2DecoderTest, CreateAbstractTexture) {
|
||||
abstract_texture->SetParameteri(GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||
EXPECT_EQ(texture->min_filter(), static_cast<GLenum>(GL_LINEAR));
|
||||
|
||||
// Attach an image and see if it works.
|
||||
scoped_refptr<GLImageNativePixmap> image(
|
||||
GLImageNativePixmap::CreateForTesting(gfx::Size()));
|
||||
|
||||
abstract_texture->SetBoundImage(image.get());
|
||||
|
||||
// Binding an image should make the texture renderable.
|
||||
EXPECT_EQ(texture->SafeToRenderFrom(), true);
|
||||
|
||||
// Unbinding should make it not renderable.
|
||||
abstract_texture->SetBoundImage(nullptr);
|
||||
|
||||
EXPECT_EQ(texture->SafeToRenderFrom(), false);
|
||||
|
||||
// Deleting |abstract_texture| should delete the platform texture as well,
|
||||
// since we haven't make a copy of the TextureRef. Also make sure that the
|
||||
// cleanup CB is called.
|
||||
|
@ -28,10 +28,6 @@
|
||||
#include "ui/gl/gl_mock.h"
|
||||
#include "ui/gl/gl_surface_stub.h"
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
#include "gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h"
|
||||
#endif
|
||||
|
||||
#if !defined(GL_DEPTH24_STENCIL8)
|
||||
#define GL_DEPTH24_STENCIL8 0x88F0
|
||||
#endif
|
||||
@ -3355,19 +3351,10 @@ TEST_P(GLES2DecoderManualInitTest, DrawWithGLImageExternal) {
|
||||
InitDecoder(init);
|
||||
|
||||
TextureRef* texture_ref = GetTexture(client_texture_id_);
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
scoped_refptr<GLImageNativePixmap> image(
|
||||
GLImageNativePixmap::CreateForTesting(gfx::Size()));
|
||||
#endif
|
||||
group().texture_manager()->SetTarget(texture_ref, GL_TEXTURE_EXTERNAL_OES);
|
||||
group().texture_manager()->SetLevelInfo(texture_ref, GL_TEXTURE_EXTERNAL_OES,
|
||||
0, GL_RGBA, 1, 1, 1, 0, GL_RGBA,
|
||||
GL_UNSIGNED_BYTE, gfx::Rect(1, 1));
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
group().texture_manager()->SetBoundLevelImage(
|
||||
texture_ref, GL_TEXTURE_EXTERNAL_OES, 0, image.get());
|
||||
#endif
|
||||
|
||||
DoBindTexture(GL_TEXTURE_EXTERNAL_OES, client_texture_id_, kServiceTextureId);
|
||||
EXPECT_EQ(GL_NO_ERROR, GetGLError());
|
||||
|
||||
|
@ -47,17 +47,6 @@ void PassthroughAbstractTextureImpl::SetParameteri(GLenum pname, GLint param) {
|
||||
gl_api_->glTexParameteriFn(texture_passthrough_->target(), pname, param);
|
||||
}
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
void PassthroughAbstractTextureImpl::SetBoundImage(GLImageNativePixmap* image) {
|
||||
if (!texture_passthrough_) {
|
||||
return;
|
||||
}
|
||||
|
||||
texture_passthrough_->SetLevelImage(texture_passthrough_->target(),
|
||||
/*level=*/0, image);
|
||||
}
|
||||
#endif
|
||||
|
||||
void PassthroughAbstractTextureImpl::SetCleared() {
|
||||
// The passthrough decoder has no notion of 'cleared', so do nothing.
|
||||
}
|
||||
|
@ -31,9 +31,6 @@ class GPU_GLES2_EXPORT PassthroughAbstractTextureImpl : public AbstractTexture {
|
||||
// AbstractTexture
|
||||
TextureBase* GetTextureBase() const override;
|
||||
void SetParameteri(GLenum pname, GLint param) override;
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
void SetBoundImage(GLImageNativePixmap* image) override;
|
||||
#endif
|
||||
|
||||
void SetCleared() override;
|
||||
void SetCleanupCallback(CleanupCallback cb) override;
|
||||
|
@ -1,51 +0,0 @@
|
||||
// Copyright 2016 The Chromium Authors
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h"
|
||||
|
||||
#include "ui/gfx/color_space.h"
|
||||
#include "ui/ozone/public/native_pixmap_gl_binding.h"
|
||||
#include "ui/ozone/public/ozone_platform.h"
|
||||
#include "ui/ozone/public/surface_factory_ozone.h"
|
||||
|
||||
namespace gpu {
|
||||
|
||||
scoped_refptr<GLImageNativePixmap> GLImageNativePixmap::Create(
|
||||
const gfx::Size& size,
|
||||
gfx::BufferFormat format,
|
||||
scoped_refptr<gfx::NativePixmap> pixmap,
|
||||
GLenum target,
|
||||
GLuint texture_id) {
|
||||
DCHECK_GT(texture_id, 0u);
|
||||
|
||||
auto image = base::WrapRefCounted(new GLImageNativePixmap(size));
|
||||
|
||||
if (!image->InitializeFromNativePixmap(format, std::move(pixmap), target,
|
||||
texture_id)) {
|
||||
return nullptr;
|
||||
}
|
||||
return image;
|
||||
}
|
||||
|
||||
GLImageNativePixmap::GLImageNativePixmap(const gfx::Size& size) : size_(size) {}
|
||||
|
||||
GLImageNativePixmap::~GLImageNativePixmap() = default;
|
||||
|
||||
bool GLImageNativePixmap::InitializeFromNativePixmap(
|
||||
gfx::BufferFormat format,
|
||||
scoped_refptr<gfx::NativePixmap> pixmap,
|
||||
GLenum target,
|
||||
GLuint texture_id) {
|
||||
pixmap_gl_binding_ =
|
||||
ui::OzonePlatform::GetInstance()
|
||||
->GetSurfaceFactoryOzone()
|
||||
->GetCurrentGLOzone()
|
||||
->ImportNativePixmap(std::move(pixmap), format,
|
||||
gfx::BufferPlane::DEFAULT, size_,
|
||||
gfx::ColorSpace(), target, texture_id);
|
||||
|
||||
return !!pixmap_gl_binding_;
|
||||
}
|
||||
|
||||
} // namespace gpu
|
@ -1,86 +0,0 @@
|
||||
// Copyright 2016 The Chromium Authors
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#ifndef GPU_COMMAND_BUFFER_SERVICE_SHARED_IMAGE_GL_IMAGE_NATIVE_PIXMAP_H_
|
||||
#define GPU_COMMAND_BUFFER_SERVICE_SHARED_IMAGE_GL_IMAGE_NATIVE_PIXMAP_H_
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include "base/memory/ref_counted.h"
|
||||
#include "gpu/gpu_gles2_export.h"
|
||||
#include "ui/gfx/native_pixmap.h"
|
||||
#include "ui/gl/gl_bindings.h"
|
||||
|
||||
namespace media {
|
||||
class V4L2SliceVideoDecodeAccelerator;
|
||||
} // namespace media
|
||||
|
||||
namespace ui {
|
||||
class NativePixmapGLBinding;
|
||||
}
|
||||
|
||||
namespace gpu {
|
||||
|
||||
namespace gles2 {
|
||||
class GLES2DecoderImpl;
|
||||
class GLES2DecoderPassthroughImpl;
|
||||
}
|
||||
|
||||
class GPU_GLES2_EXPORT GLImageNativePixmap
|
||||
: public base::RefCounted<GLImageNativePixmap> {
|
||||
private:
|
||||
// Create an EGLImage from a given NativePixmap and bind |texture_id| to
|
||||
// |target| following by binding the image to |target|.
|
||||
// NOTE: As we are in the process of eliminating this class, there should be
|
||||
// no new usages of it introduced.
|
||||
static scoped_refptr<GLImageNativePixmap> Create(
|
||||
const gfx::Size& size,
|
||||
gfx::BufferFormat format,
|
||||
scoped_refptr<gfx::NativePixmap> pixmap,
|
||||
GLenum target,
|
||||
GLuint texture_id);
|
||||
|
||||
public:
|
||||
// Wrapper to allow for creation in testing contexts that are difficult to
|
||||
// friend.
|
||||
static scoped_refptr<GLImageNativePixmap> CreateForTesting(
|
||||
const gfx::Size& size,
|
||||
gfx::BufferFormat format,
|
||||
scoped_refptr<gfx::NativePixmap> pixmap,
|
||||
GLenum target,
|
||||
GLuint texture_id) {
|
||||
return Create(size, format, pixmap, target, texture_id);
|
||||
}
|
||||
|
||||
// Allows for creation of an uninitialized instance in testing contexts that
|
||||
// simply need a GLImageNativePixmap pointer but don't need to do anything on
|
||||
// it.
|
||||
static scoped_refptr<GLImageNativePixmap> CreateForTesting(
|
||||
const gfx::Size& size) {
|
||||
return base::WrapRefCounted(new GLImageNativePixmap(size));
|
||||
}
|
||||
|
||||
private:
|
||||
friend class gles2::GLES2DecoderImpl;
|
||||
friend class gles2::GLES2DecoderPassthroughImpl;
|
||||
friend class media::V4L2SliceVideoDecodeAccelerator;
|
||||
friend class base::RefCounted<GLImageNativePixmap>;
|
||||
|
||||
explicit GLImageNativePixmap(const gfx::Size& size);
|
||||
~GLImageNativePixmap();
|
||||
|
||||
// Create a NativePixmapGLBinding from a given NativePixmap. Returns true iff
|
||||
// the binding was successfully created.
|
||||
bool InitializeFromNativePixmap(gfx::BufferFormat format,
|
||||
scoped_refptr<gfx::NativePixmap> pixmap,
|
||||
GLenum target,
|
||||
GLuint texture_id);
|
||||
|
||||
std::unique_ptr<ui::NativePixmapGLBinding> pixmap_gl_binding_;
|
||||
const gfx::Size size_;
|
||||
};
|
||||
|
||||
} // namespace gpu
|
||||
|
||||
#endif // GPU_COMMAND_BUFFER_SERVICE_SHARED_IMAGE_GL_IMAGE_NATIVE_PIXMAP_H_
|
@ -37,10 +37,6 @@
|
||||
#include "ui/gl/progress_reporter.h"
|
||||
#include "ui/gl/trace_util.h"
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
#include "gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h"
|
||||
#endif
|
||||
|
||||
using base::trace_event::MemoryAllocatorDump;
|
||||
using base::trace_event::MemoryDumpLevelOfDetail;
|
||||
|
||||
@ -73,7 +69,6 @@ struct TextureSignature {
|
||||
GLint max_level_;
|
||||
GLenum format_;
|
||||
GLenum type_;
|
||||
bool has_image_;
|
||||
bool can_render_;
|
||||
bool can_render_to_;
|
||||
bool npot_;
|
||||
@ -95,7 +90,6 @@ struct TextureSignature {
|
||||
GLint max_level,
|
||||
GLenum format,
|
||||
GLenum type,
|
||||
bool has_image,
|
||||
bool can_render,
|
||||
bool can_render_to,
|
||||
bool npot) {
|
||||
@ -121,7 +115,6 @@ struct TextureSignature {
|
||||
max_level_ = max_level;
|
||||
format_ = format;
|
||||
type_ = type;
|
||||
has_image_ = has_image;
|
||||
can_render_ = can_render;
|
||||
can_render_to_ = can_render_to;
|
||||
npot_ = npot;
|
||||
@ -567,14 +560,6 @@ void TexturePassthrough::MarkContextLost() {
|
||||
have_context_ = false;
|
||||
}
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
void TexturePassthrough::SetLevelImage(GLenum target,
|
||||
GLint level,
|
||||
GLImageNativePixmap* image) {
|
||||
SetLevelImageInternal(target, level, image, owned_service_id_);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
void TexturePassthrough::BindToServiceId(GLuint service_id) {
|
||||
if (service_id != 0 && service_id != service_id_) {
|
||||
@ -623,20 +608,6 @@ bool TexturePassthrough::LevelInfoExists(GLenum target,
|
||||
return true;
|
||||
}
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
void TexturePassthrough::SetLevelImageInternal(GLenum target,
|
||||
GLint level,
|
||||
GLImageNativePixmap* image,
|
||||
GLuint service_id) {
|
||||
LevelInfo* level_info = GetLevelInfo(target, level);
|
||||
level_info->image = image;
|
||||
|
||||
if (service_id != 0 && service_id != service_id_) {
|
||||
service_id_ = service_id;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
TexturePassthrough::LevelInfo* TexturePassthrough::GetLevelInfo(GLenum target,
|
||||
GLint level) {
|
||||
size_t face_idx = GLES2Util::GLTargetToFaceIndex(target);
|
||||
@ -740,17 +711,8 @@ Texture::LevelInfo::LevelInfo(const LevelInfo& rhs)
|
||||
border(rhs.border),
|
||||
format(rhs.format),
|
||||
type(rhs.type),
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
image(rhs.image),
|
||||
#endif
|
||||
estimated_size(rhs.estimated_size),
|
||||
internal_workaround(rhs.internal_workaround)
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
,
|
||||
image_state(rhs.image_state)
|
||||
#endif
|
||||
{
|
||||
}
|
||||
internal_workaround(rhs.internal_workaround) {}
|
||||
|
||||
Texture::LevelInfo::~LevelInfo() = default;
|
||||
|
||||
@ -876,17 +838,10 @@ void Texture::AddToSignature(
|
||||
const Texture::LevelInfo& info =
|
||||
face_infos_[face_index].level_infos[level];
|
||||
|
||||
bool has_image =
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
info.image.get();
|
||||
#else
|
||||
false;
|
||||
#endif
|
||||
|
||||
TextureSignature signature_data(
|
||||
target, level, sampler_state_, usage_, info.internal_format, info.width,
|
||||
info.height, info.depth, base_level_, info.border, max_level_,
|
||||
info.format, info.type, has_image, CanRender(feature_info),
|
||||
info.format, info.type, CanRender(feature_info),
|
||||
CanRenderTo(feature_info, level), npot_);
|
||||
|
||||
signature->append(TextureTag, sizeof(TextureTag));
|
||||
@ -983,16 +938,9 @@ bool Texture::CanGenerateMipmaps(const FeatureInfo* feature_info) const {
|
||||
|
||||
for (size_t ii = 0; ii < face_infos_.size(); ++ii) {
|
||||
const LevelInfo& info = face_infos_[ii].level_infos[base_level_];
|
||||
bool has_image =
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
info.image.get();
|
||||
#else
|
||||
false;
|
||||
#endif
|
||||
if ((info.target == 0) ||
|
||||
feature_info->validators()->compressed_texture_format.IsValid(
|
||||
info.internal_format) ||
|
||||
has_image) {
|
||||
info.internal_format)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -1170,25 +1118,13 @@ void Texture::UpdateCanRenderCondition() {
|
||||
can_render_condition_ = GetCanRenderCondition();
|
||||
}
|
||||
|
||||
// TODO(crbug.com/1324249): Eliminate this function and `has_images_`
|
||||
// altogether.
|
||||
void Texture::UpdateHasImages() {
|
||||
if (face_infos_.empty())
|
||||
return;
|
||||
|
||||
bool has_images = false;
|
||||
// TODO(crbug.com/1324249): Investigate making `has_images` and
|
||||
// everything around its maintenance Ozone-only.
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
for (size_t ii = 0; ii < face_infos_.size(); ++ii) {
|
||||
for (size_t jj = 0; jj < face_infos_[ii].level_infos.size(); ++jj) {
|
||||
const Texture::LevelInfo& info = face_infos_[ii].level_infos[jj];
|
||||
if (info.image.get() != nullptr) {
|
||||
has_images = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (has_images_ == has_images)
|
||||
return;
|
||||
has_images_ = has_images;
|
||||
@ -1336,10 +1272,6 @@ void Texture::SetLevelInfo(GLenum target,
|
||||
info.border = border;
|
||||
info.format = format;
|
||||
info.type = type;
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
info.image.reset();
|
||||
info.image_state = NOIMAGE;
|
||||
#endif
|
||||
info.internal_workaround = false;
|
||||
|
||||
UpdateMipCleared(&info, width, height, cleared_rect);
|
||||
@ -1883,41 +1815,6 @@ bool Texture::ClearLevel(DecoderContext* decoder, GLenum target, GLint level) {
|
||||
return true;
|
||||
}
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
void Texture::SetLevelImageInternal(GLenum target,
|
||||
GLint level,
|
||||
GLImageNativePixmap* image,
|
||||
ImageState state) {
|
||||
DCHECK(image ? state != ImageState::NOIMAGE : state == ImageState::NOIMAGE);
|
||||
|
||||
DCHECK_GE(level, 0);
|
||||
size_t face_index = GLES2Util::GLTargetToFaceIndex(target);
|
||||
DCHECK_LT(face_index, face_infos_.size());
|
||||
DCHECK_LT(static_cast<size_t>(level),
|
||||
face_infos_[face_index].level_infos.size());
|
||||
Texture::LevelInfo& info = face_infos_[face_index].level_infos[level];
|
||||
DCHECK_EQ(info.target, target);
|
||||
DCHECK_EQ(info.level, level);
|
||||
info.image = image;
|
||||
info.image_state = state;
|
||||
|
||||
UpdateCanRenderCondition();
|
||||
UpdateHasImages();
|
||||
}
|
||||
|
||||
void Texture::SetBoundLevelImage(GLenum target,
|
||||
GLint level,
|
||||
GLImageNativePixmap* image) {
|
||||
SetStreamTextureServiceId(0);
|
||||
SetLevelImageInternal(target, level, image, ImageState::BOUND);
|
||||
}
|
||||
|
||||
void Texture::UnsetLevelImage(GLenum target, GLint level) {
|
||||
SetStreamTextureServiceId(0);
|
||||
SetLevelImageInternal(target, level, nullptr, ImageState::NOIMAGE);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
void Texture::BindToServiceId(GLuint service_id) {
|
||||
SetStreamTextureServiceId(service_id);
|
||||
@ -2572,23 +2469,6 @@ GLsizei TextureManager::ComputeMipMapCount(GLenum target,
|
||||
}
|
||||
}
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
void TextureManager::SetBoundLevelImage(TextureRef* ref,
|
||||
GLenum target,
|
||||
GLint level,
|
||||
GLImageNativePixmap* image) {
|
||||
DCHECK(ref);
|
||||
ref->texture()->SetBoundLevelImage(target, level, image);
|
||||
}
|
||||
|
||||
void TextureManager::UnsetLevelImage(TextureRef* ref,
|
||||
GLenum target,
|
||||
GLint level) {
|
||||
DCHECK(ref);
|
||||
ref->texture()->UnsetLevelImage(target, level);
|
||||
}
|
||||
#endif
|
||||
|
||||
size_t TextureManager::GetSignatureSize() const {
|
||||
return sizeof(TextureTag) + sizeof(TextureSignature);
|
||||
}
|
||||
|
@ -36,7 +36,6 @@ class ProgressReporter;
|
||||
|
||||
namespace gpu {
|
||||
class DecoderContext;
|
||||
class GLImageNativePixmap;
|
||||
class ServiceDiscardableManager;
|
||||
|
||||
namespace gles2 {
|
||||
@ -79,10 +78,6 @@ class GPU_GLES2_EXPORT TexturePassthrough final
|
||||
// native GL texture in the destructor
|
||||
void MarkContextLost();
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
void SetLevelImage(GLenum target, GLint level, GLImageNativePixmap* image);
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
void BindToServiceId(GLuint service_id);
|
||||
#endif
|
||||
@ -104,13 +99,6 @@ class GPU_GLES2_EXPORT TexturePassthrough final
|
||||
private:
|
||||
bool LevelInfoExists(GLenum target, GLint level, size_t* out_face_idx) const;
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
void SetLevelImageInternal(GLenum target,
|
||||
GLint level,
|
||||
GLImageNativePixmap* image,
|
||||
GLuint service_id);
|
||||
#endif
|
||||
|
||||
friend class base::RefCounted<TexturePassthrough>;
|
||||
|
||||
const GLuint owned_service_id_ = 0;
|
||||
@ -135,10 +123,6 @@ class GPU_GLES2_EXPORT TexturePassthrough final
|
||||
GLint border = 0;
|
||||
GLenum format = 0;
|
||||
GLenum type = 0;
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
scoped_refptr<GLImageNativePixmap> image;
|
||||
#endif
|
||||
};
|
||||
|
||||
LevelInfo* GetLevelInfo(GLenum target, GLint level);
|
||||
@ -151,16 +135,6 @@ class GPU_GLES2_EXPORT TexturePassthrough final
|
||||
// jointly owned by possibly multiple TextureRef.
|
||||
class GPU_GLES2_EXPORT Texture final : public TextureBase {
|
||||
public:
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
enum ImageState {
|
||||
// If image state is BOUND, then sampling from the texture will return the
|
||||
// contents of the image and using it as a target will modify the image.
|
||||
BOUND,
|
||||
// State when there is no image present.
|
||||
NOIMAGE,
|
||||
};
|
||||
#endif
|
||||
|
||||
struct CompatibilitySwizzle {
|
||||
GLenum format;
|
||||
GLenum dest_format;
|
||||
@ -185,20 +159,11 @@ class GPU_GLES2_EXPORT Texture final : public TextureBase {
|
||||
GLint border = 0;
|
||||
GLenum format = 0;
|
||||
GLenum type = 0;
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
scoped_refptr<GLImageNativePixmap> image;
|
||||
#endif
|
||||
uint32_t estimated_size = 0;
|
||||
bool internal_workaround = false;
|
||||
|
||||
private:
|
||||
friend class Texture;
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
// Nothing outside of Texture should directly access the binding state of
|
||||
// the image.
|
||||
ImageState image_state = NOIMAGE;
|
||||
#endif
|
||||
};
|
||||
|
||||
explicit Texture(GLuint service_id);
|
||||
@ -312,20 +277,6 @@ class GPU_GLES2_EXPORT Texture final : public TextureBase {
|
||||
bool GetLevelType(
|
||||
GLint target, GLint level, GLenum* type, GLenum* internal_format) const;
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
// Set an image that has already been bound for a particular level. If a
|
||||
// GLImage was previously set with BindToServiceId(), this will reset
|
||||
// |service_id_| back to |owned_service_id_|, removing the service id override
|
||||
// set by the BindToServiceId.
|
||||
void SetBoundLevelImage(GLenum target,
|
||||
GLint level,
|
||||
GLImageNativePixmap* image);
|
||||
|
||||
// Unset the image for a particular level. After this call, GetLevelImage()
|
||||
// will return nullptr.
|
||||
void UnsetLevelImage(GLenum target, GLint level);
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
// Overrides |service_id_| with a texture bound to
|
||||
// the stream texture. See SetStreamTextureServiceId() for the details of
|
||||
@ -511,14 +462,6 @@ class GPU_GLES2_EXPORT Texture final : public TextureBase {
|
||||
std::vector<LevelInfo> level_infos;
|
||||
};
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
// Helper for Set*LevelImage.
|
||||
void SetLevelImageInternal(GLenum target,
|
||||
GLint level,
|
||||
GLImageNativePixmap* image,
|
||||
ImageState state);
|
||||
#endif
|
||||
|
||||
// Returns NULL if the base level is not defined.
|
||||
const LevelInfo* GetBaseLevelInfo() const;
|
||||
|
||||
@ -1104,15 +1047,6 @@ class GPU_GLES2_EXPORT TextureManager
|
||||
return memory_type_tracker_->GetMemRepresented();
|
||||
}
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
void SetBoundLevelImage(TextureRef* ref,
|
||||
GLenum target,
|
||||
GLint level,
|
||||
GLImageNativePixmap* image);
|
||||
|
||||
void UnsetLevelImage(TextureRef* ref, GLenum target, GLint level);
|
||||
#endif
|
||||
|
||||
size_t GetSignatureSize() const;
|
||||
|
||||
void AddToSignature(
|
||||
|
@ -29,10 +29,6 @@
|
||||
#include "ui/gl/gl_mock.h"
|
||||
#include "ui/gl/gl_switches.h"
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
#include "gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h"
|
||||
#endif
|
||||
|
||||
using ::testing::AtLeast;
|
||||
using ::testing::Pointee;
|
||||
using ::testing::Return;
|
||||
@ -2046,15 +2042,8 @@ TEST_P(ProduceConsumeTextureTest, ProduceConsumeTextureWithImage) {
|
||||
manager_->SetTarget(texture_ref_.get(), target);
|
||||
Texture* texture = texture_ref_->texture();
|
||||
EXPECT_EQ(static_cast<GLenum>(target), texture->target());
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
scoped_refptr<GLImageNativePixmap> image(
|
||||
GLImageNativePixmap::CreateForTesting(gfx::Size()));
|
||||
#endif
|
||||
manager_->SetLevelInfo(texture_ref_.get(), target, 0, GL_RGBA, 0, 0, 1, 0,
|
||||
GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect());
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
manager_->SetBoundLevelImage(texture_ref_.get(), target, 0, image.get());
|
||||
#endif
|
||||
GLuint service_id = texture->service_id();
|
||||
Texture* produced_texture = Produce(texture_ref_.get());
|
||||
|
||||
@ -2344,52 +2333,6 @@ TEST_F(SharedTextureTest, Memory) {
|
||||
EXPECT_EQ(initial_memory2, memory_tracker2_.GetSize());
|
||||
}
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
TEST_F(SharedTextureTest, Images) {
|
||||
scoped_refptr<TextureRef> ref1 = texture_manager1_->CreateTexture(10, 10);
|
||||
scoped_refptr<TextureRef> ref2 =
|
||||
texture_manager2_->Consume(20, ref1->texture());
|
||||
|
||||
texture_manager1_->SetTarget(ref1.get(), GL_TEXTURE_2D);
|
||||
texture_manager1_->SetLevelInfo(ref1.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2,
|
||||
1, 0, GL_RGBA, GL_UNSIGNED_BYTE,
|
||||
gfx::Rect(2, 2));
|
||||
EXPECT_FALSE(ref1->texture()->HasImages());
|
||||
EXPECT_FALSE(ref2->texture()->HasImages());
|
||||
EXPECT_FALSE(texture_manager1_->HaveImages());
|
||||
EXPECT_FALSE(texture_manager2_->HaveImages());
|
||||
scoped_refptr<GLImageNativePixmap> image1(
|
||||
GLImageNativePixmap::CreateForTesting(gfx::Size()));
|
||||
texture_manager1_->SetBoundLevelImage(ref1.get(), GL_TEXTURE_2D, 1,
|
||||
image1.get());
|
||||
EXPECT_TRUE(ref1->texture()->HasImages());
|
||||
EXPECT_TRUE(ref2->texture()->HasImages());
|
||||
EXPECT_TRUE(texture_manager1_->HaveImages());
|
||||
EXPECT_TRUE(texture_manager2_->HaveImages());
|
||||
scoped_refptr<GLImageNativePixmap> image2(
|
||||
GLImageNativePixmap::CreateForTesting(gfx::Size()));
|
||||
texture_manager1_->SetBoundLevelImage(ref1.get(), GL_TEXTURE_2D, 1,
|
||||
image2.get());
|
||||
EXPECT_TRUE(ref1->texture()->HasImages());
|
||||
EXPECT_TRUE(ref2->texture()->HasImages());
|
||||
EXPECT_TRUE(texture_manager1_->HaveImages());
|
||||
EXPECT_TRUE(texture_manager2_->HaveImages());
|
||||
texture_manager1_->SetLevelInfo(ref1.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2,
|
||||
1, 0, GL_RGBA, GL_UNSIGNED_BYTE,
|
||||
gfx::Rect(2, 2));
|
||||
EXPECT_FALSE(ref1->texture()->HasImages());
|
||||
EXPECT_FALSE(ref2->texture()->HasImages());
|
||||
EXPECT_FALSE(texture_manager1_->HaveImages());
|
||||
EXPECT_FALSE(texture_manager1_->HaveImages());
|
||||
|
||||
EXPECT_CALL(*gl_, DeleteTextures(1, _))
|
||||
.Times(1)
|
||||
.RetiresOnSaturation();
|
||||
texture_manager1_->RemoveTexture(10);
|
||||
texture_manager2_->RemoveTexture(20);
|
||||
}
|
||||
#endif
|
||||
|
||||
class TextureFormatTypeValidationTest : public TextureManagerTest {
|
||||
public:
|
||||
TextureFormatTypeValidationTest() = default;
|
||||
|
@ -51,28 +51,6 @@ void ValidatingAbstractTextureImpl::SetParameteri(GLenum pname, GLint param) {
|
||||
texture_ref_.get(), pname, param);
|
||||
}
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
void ValidatingAbstractTextureImpl::SetBoundImage(GLImageNativePixmap* image) {
|
||||
if (!texture_ref_) {
|
||||
return;
|
||||
}
|
||||
|
||||
const GLuint target = texture_ref_->texture()->target();
|
||||
const GLint level = 0;
|
||||
|
||||
// Configure the new image.
|
||||
if (image) {
|
||||
GetTextureManager()->SetBoundLevelImage(texture_ref_.get(), target, level,
|
||||
image);
|
||||
} else {
|
||||
GetTextureManager()->UnsetLevelImage(texture_ref_.get(), target, level);
|
||||
}
|
||||
|
||||
GetTextureManager()->SetLevelCleared(texture_ref_.get(), target, level,
|
||||
image);
|
||||
}
|
||||
#endif
|
||||
|
||||
void ValidatingAbstractTextureImpl::SetCleared() {
|
||||
if (!texture_ref_)
|
||||
return;
|
||||
|
@ -36,9 +36,6 @@ class GPU_GLES2_EXPORT ValidatingAbstractTextureImpl : public AbstractTexture {
|
||||
// AbstractTexture
|
||||
TextureBase* GetTextureBase() const override;
|
||||
void SetParameteri(GLenum pname, GLint param) override;
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
void SetBoundImage(GLImageNativePixmap* image) override;
|
||||
#endif
|
||||
|
||||
void SetCleared() override;
|
||||
void SetCleanupCallback(CleanupCallback cb) override;
|
||||
|
@ -1271,10 +1271,6 @@
|
||||
"label": "//chrome/browser/media/router:openscreen_unittests",
|
||||
"type": "console_test_launcher",
|
||||
},
|
||||
"ozone_gl_unittests": {
|
||||
"label": "//ui/ozone/gl:ozone_gl_unittests",
|
||||
"type": "console_test_launcher",
|
||||
},
|
||||
"ozone_unittests": {
|
||||
"label": "//ui/ozone:ozone_unittests",
|
||||
"type": "console_test_launcher",
|
||||
|
@ -1559,11 +1559,6 @@ targets.console_test_launcher(
|
||||
label = "//chrome/browser/media/router:openscreen_unittests",
|
||||
)
|
||||
|
||||
targets.console_test_launcher(
|
||||
name = "ozone_gl_unittests",
|
||||
label = "//ui/ozone/gl:ozone_gl_unittests",
|
||||
)
|
||||
|
||||
targets.console_test_launcher(
|
||||
name = "ozone_unittests",
|
||||
label = "//ui/ozone:ozone_unittests",
|
||||
|
@ -197,18 +197,6 @@ class CommandBufferHelperImpl
|
||||
textures_[service_id]->SetCleared();
|
||||
}
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
bool BindClientManagedImage(GLuint service_id,
|
||||
gpu::GLImageNativePixmap* image) override {
|
||||
DVLOG(2) << __func__ << "(" << service_id << ")";
|
||||
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
|
||||
|
||||
DCHECK(textures_.count(service_id));
|
||||
textures_[service_id]->SetBoundImage(image);
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
private:
|
||||
gpu::Mailbox CreateLegacyMailbox(GLuint service_id) override {
|
||||
DVLOG(2) << __func__ << "(" << service_id << ")";
|
||||
|
@ -31,10 +31,6 @@ namespace gl {
|
||||
class GLContext;
|
||||
} // namespace gl
|
||||
|
||||
namespace gpu {
|
||||
class GLImageNativePixmap;
|
||||
}
|
||||
|
||||
namespace media {
|
||||
|
||||
class PictureBufferManagerImpl;
|
||||
@ -131,15 +127,6 @@ class MEDIA_GPU_EXPORT CommandBufferHelper
|
||||
// Sets the cleared flag on level 0 of the texture.
|
||||
virtual void SetCleared(GLuint service_id) = 0;
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
// Binds level 0 of the texture to an image for which the sampler binding
|
||||
// already exists.
|
||||
//
|
||||
// BindTexImage() will *not* be called when the texture is used.
|
||||
virtual bool BindClientManagedImage(GLuint service_id,
|
||||
gpu::GLImageNativePixmap* image) = 0;
|
||||
#endif
|
||||
|
||||
// Add a callback to be called when our stub is destroyed. This callback
|
||||
// may not change the current context.
|
||||
virtual void AddWillDestroyStubCB(WillDestroyStubCB callback) = 0;
|
||||
|
@ -24,13 +24,12 @@ class GLContext;
|
||||
}
|
||||
|
||||
namespace gpu {
|
||||
class GLImageNativePixmap;
|
||||
struct GpuPreferences;
|
||||
|
||||
namespace gles2 {
|
||||
class ContextGroup;
|
||||
}
|
||||
}
|
||||
} // namespace gpu
|
||||
|
||||
namespace media {
|
||||
|
||||
@ -53,16 +52,6 @@ class MEDIA_GPU_EXPORT GpuVideoDecodeAcceleratorFactory {
|
||||
// executing any GL calls. Return true on success, false otherwise.
|
||||
using MakeGLContextCurrentCallback = base::RepeatingCallback<bool(void)>;
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
// Bind |image| to |client_texture_id| given |texture_target|, marking the
|
||||
// texture as not needing binding by the decoder.
|
||||
// Return true on success, false otherwise.
|
||||
using BindGLImageCallback = base::RepeatingCallback<bool(
|
||||
uint32_t client_texture_id,
|
||||
uint32_t texture_target,
|
||||
const scoped_refptr<gpu::GLImageNativePixmap>& image)>;
|
||||
#endif
|
||||
|
||||
// Return a ContextGroup*, if one is available.
|
||||
using GetContextGroupCallback =
|
||||
base::RepeatingCallback<gpu::gles2::ContextGroup*(void)>;
|
||||
|
@ -16,13 +16,11 @@ class GLContext;
|
||||
}
|
||||
|
||||
namespace gpu {
|
||||
class GLImageNativePixmap;
|
||||
|
||||
namespace gles2 {
|
||||
class AbstractTexture;
|
||||
class ContextGroup;
|
||||
}
|
||||
}
|
||||
} // namespace gpu
|
||||
|
||||
namespace media {
|
||||
|
||||
@ -42,16 +40,6 @@ using GetGLContextCallback = base::RepeatingCallback<gl::GLContext*(void)>;
|
||||
// executing any GL calls. Return true on success, false otherwise.
|
||||
using MakeGLContextCurrentCallback = base::RepeatingCallback<bool(void)>;
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
// Bind |image| to |client_texture_id| given |texture_target|, marking the
|
||||
// texture as not needing binding by the decoder.
|
||||
// Return true on success, false otherwise.
|
||||
using BindGLImageCallback = base::RepeatingCallback<bool(
|
||||
uint32_t client_texture_id,
|
||||
uint32_t texture_target,
|
||||
const scoped_refptr<gpu::GLImageNativePixmap>& image)>;
|
||||
#endif
|
||||
|
||||
// Return a ContextGroup*, if one is available.
|
||||
using GetContextGroupCallback =
|
||||
base::RepeatingCallback<gpu::gles2::ContextGroup*(void)>;
|
||||
@ -82,16 +70,6 @@ struct MEDIA_GPU_EXPORT GpuVideoDecodeGLClient {
|
||||
// executing any GL calls. Return true on success, false otherwise.
|
||||
using MakeGLContextCurrentCallback = base::RepeatingCallback<bool(void)>;
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
// Bind |image| to |client_texture_id| given |texture_target|, marking the
|
||||
// texture as not needing binding by the decoder.
|
||||
// Return true on success, false otherwise.
|
||||
using BindGLImageCallback = base::RepeatingCallback<bool(
|
||||
uint32_t client_texture_id,
|
||||
uint32_t texture_target,
|
||||
const scoped_refptr<gpu::GLImageNativePixmap>& image)>;
|
||||
#endif
|
||||
|
||||
// Return a ContextGroup*, if one is available.
|
||||
using GetContextGroupCallback =
|
||||
base::RepeatingCallback<gpu::gles2::ContextGroup*(void)>;
|
||||
@ -102,11 +80,6 @@ struct MEDIA_GPU_EXPORT GpuVideoDecodeGLClient {
|
||||
// Callback for making the relevant context current for GL calls.
|
||||
MakeGLContextCurrentCallback make_context_current;
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
// Callback to bind a GLImage to a given texture id and target.
|
||||
BindGLImageCallback bind_image;
|
||||
#endif
|
||||
|
||||
// Callback to return a ContextGroup*.
|
||||
GetContextGroupCallback get_context_group;
|
||||
|
||||
|
@ -17,7 +17,6 @@
|
||||
#include "base/task/single_thread_task_runner.h"
|
||||
#include "build/build_config.h"
|
||||
#include "build/chromeos_buildflags.h"
|
||||
#include "gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h"
|
||||
#include "gpu/config/gpu_driver_bug_workarounds.h"
|
||||
#include "gpu/config/gpu_info.h"
|
||||
#include "gpu/config/gpu_preferences.h"
|
||||
@ -58,17 +57,6 @@ scoped_refptr<CommandBufferHelper> CreateCommandBufferHelper(
|
||||
return CommandBufferHelper::Create(stub);
|
||||
}
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
bool BindClientManagedImage(
|
||||
scoped_refptr<CommandBufferHelper> command_buffer_helper,
|
||||
uint32_t client_texture_id,
|
||||
uint32_t texture_target,
|
||||
const scoped_refptr<gpu::GLImageNativePixmap>& image) {
|
||||
return command_buffer_helper->BindClientManagedImage(client_texture_id,
|
||||
image.get());
|
||||
}
|
||||
#endif
|
||||
|
||||
std::unique_ptr<VideoDecodeAccelerator> CreateAndInitializeVda(
|
||||
const gpu::GpuPreferences& gpu_preferences,
|
||||
const gpu::GpuDriverBugWorkarounds& gpu_workarounds,
|
||||
@ -84,10 +72,6 @@ std::unique_ptr<VideoDecodeAccelerator> CreateAndInitializeVda(
|
||||
&CommandBufferHelper::GetGLContext, command_buffer_helper);
|
||||
gl_client.make_context_current = base::BindRepeating(
|
||||
&CommandBufferHelper::MakeContextCurrent, command_buffer_helper);
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
gl_client.bind_image =
|
||||
base::BindRepeating(&BindClientManagedImage, command_buffer_helper);
|
||||
#endif
|
||||
gl_client.is_passthrough = command_buffer_helper->IsPassthrough();
|
||||
gl_client.supports_arb_texture_rectangle =
|
||||
command_buffer_helper->SupportsTextureRectangle();
|
||||
|
@ -153,17 +153,6 @@ void FakeCommandBufferHelper::SetCleared(GLuint service_id) {
|
||||
DCHECK(service_ids_.count(service_id));
|
||||
}
|
||||
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
bool FakeCommandBufferHelper::BindClientManagedImage(
|
||||
GLuint service_id,
|
||||
gpu::GLImageNativePixmap* image) {
|
||||
DVLOG(2) << __func__ << "(" << service_id << ")";
|
||||
DCHECK(task_runner_->BelongsToCurrentThread());
|
||||
DCHECK(service_ids_.count(service_id));
|
||||
return has_stub_;
|
||||
}
|
||||
#endif
|
||||
|
||||
gpu::Mailbox FakeCommandBufferHelper::CreateLegacyMailbox(GLuint service_id) {
|
||||
DVLOG(2) << __func__ << "(" << service_id << ")";
|
||||
DCHECK(task_runner_->BelongsToCurrentThread());
|
||||
|
@ -65,10 +65,6 @@ class FakeCommandBufferHelper : public CommandBufferHelper {
|
||||
GLenum type) override;
|
||||
void DestroyTexture(GLuint service_id) override;
|
||||
void SetCleared(GLuint service_id) override;
|
||||
#if BUILDFLAG(IS_OZONE)
|
||||
bool BindClientManagedImage(GLuint service_id,
|
||||
gpu::GLImageNativePixmap* image) override;
|
||||
#endif
|
||||
gpu::Mailbox CreateLegacyMailbox(GLuint service_id) override;
|
||||
void AddWillDestroyStubCB(WillDestroyStubCB callback) override;
|
||||
bool IsPassthrough() const override;
|
||||
|
@ -803,42 +803,6 @@
|
||||
"test": "net_unittests",
|
||||
"test_id_prefix": "ninja://net:net_unittests/"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"--stop-ui",
|
||||
"--magic-vm-cache=magic_cros_vm_cache"
|
||||
],
|
||||
"merge": {
|
||||
"script": "//testing/merge_scripts/standard_gtest_merge.py"
|
||||
},
|
||||
"swarming": {
|
||||
"dimension_sets": [
|
||||
{
|
||||
"cpu": "x86",
|
||||
"gce": "1",
|
||||
"kvm": "1",
|
||||
"os": "Ubuntu-18.04",
|
||||
"pool": "chrome.tests"
|
||||
}
|
||||
],
|
||||
"named_caches": [
|
||||
{
|
||||
"name": "cros_vm",
|
||||
"path": "magic_cros_vm_cache"
|
||||
}
|
||||
],
|
||||
"optional_dimensions": {
|
||||
"60": [
|
||||
{
|
||||
"caches": "cros_vm"
|
||||
}
|
||||
]
|
||||
},
|
||||
"service_account": "chrome-tester@chops-service-accounts.iam.gserviceaccount.com"
|
||||
},
|
||||
"test": "ozone_gl_unittests",
|
||||
"test_id_prefix": "ninja://ui/ozone/gl:ozone_gl_unittests/"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"--magic-vm-cache=magic_cros_vm_cache",
|
||||
@ -3118,26 +3082,6 @@
|
||||
"test": "net_unittests",
|
||||
"test_id_prefix": "ninja://net:net_unittests/"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"--ozone-platform=headless"
|
||||
],
|
||||
"merge": {
|
||||
"script": "//testing/merge_scripts/standard_gtest_merge.py"
|
||||
},
|
||||
"swarming": {
|
||||
"dimension_sets": [
|
||||
{
|
||||
"os": "Ubuntu-22.04",
|
||||
"pool": "chrome.tests",
|
||||
"ssd": "0"
|
||||
}
|
||||
],
|
||||
"service_account": "chrome-tester@chops-service-accounts.iam.gserviceaccount.com"
|
||||
},
|
||||
"test": "ozone_gl_unittests",
|
||||
"test_id_prefix": "ninja://ui/ozone/gl:ozone_gl_unittests/"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"--test-launcher-filter-file=../../testing/buildbot/filters/chromeos.ozone_unittests.filter"
|
||||
|
@ -677,41 +677,6 @@
|
||||
"test": "net_unittests",
|
||||
"test_id_prefix": "ninja://net:net_unittests/"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"--stop-ui",
|
||||
"--magic-vm-cache=magic_cros_vm_cache"
|
||||
],
|
||||
"merge": {
|
||||
"script": "//testing/merge_scripts/standard_gtest_merge.py"
|
||||
},
|
||||
"swarming": {
|
||||
"dimension_sets": [
|
||||
{
|
||||
"cpu": "x86",
|
||||
"kvm": "1",
|
||||
"os": "Ubuntu-22.04",
|
||||
"pool": "chromium.tests"
|
||||
}
|
||||
],
|
||||
"named_caches": [
|
||||
{
|
||||
"name": "cros_vm",
|
||||
"path": "magic_cros_vm_cache"
|
||||
}
|
||||
],
|
||||
"optional_dimensions": {
|
||||
"60": [
|
||||
{
|
||||
"caches": "cros_vm"
|
||||
}
|
||||
]
|
||||
},
|
||||
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
|
||||
},
|
||||
"test": "ozone_gl_unittests",
|
||||
"test_id_prefix": "ninja://ui/ozone/gl:ozone_gl_unittests/"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"--magic-vm-cache=magic_cros_vm_cache"
|
||||
@ -2579,24 +2544,6 @@
|
||||
"test": "net_unittests",
|
||||
"test_id_prefix": "ninja://net:net_unittests/"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"--ozone-platform=headless"
|
||||
],
|
||||
"merge": {
|
||||
"script": "//testing/merge_scripts/standard_gtest_merge.py"
|
||||
},
|
||||
"swarming": {
|
||||
"dimension_sets": [
|
||||
{
|
||||
"os": "Ubuntu-22.04"
|
||||
}
|
||||
],
|
||||
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
|
||||
},
|
||||
"test": "ozone_gl_unittests",
|
||||
"test_id_prefix": "ninja://ui/ozone/gl:ozone_gl_unittests/"
|
||||
},
|
||||
{
|
||||
"merge": {
|
||||
"script": "//testing/merge_scripts/standard_gtest_merge.py"
|
||||
@ -4139,25 +4086,6 @@
|
||||
"test": "net_unittests",
|
||||
"test_id_prefix": "ninja://net:net_unittests/"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"--ozone-platform=headless"
|
||||
],
|
||||
"isolate_profile_data": true,
|
||||
"merge": {
|
||||
"script": "//testing/merge_scripts/standard_gtest_merge.py"
|
||||
},
|
||||
"swarming": {
|
||||
"dimension_sets": [
|
||||
{
|
||||
"os": "Ubuntu-22.04"
|
||||
}
|
||||
],
|
||||
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
|
||||
},
|
||||
"test": "ozone_gl_unittests",
|
||||
"test_id_prefix": "ninja://ui/ozone/gl:ozone_gl_unittests/"
|
||||
},
|
||||
{
|
||||
"isolate_profile_data": true,
|
||||
"merge": {
|
||||
|
@ -9432,26 +9432,6 @@
|
||||
"test": "net_unittests",
|
||||
"test_id_prefix": "ninja://net:net_unittests/"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"--test-arg=--ozone-platform=headless",
|
||||
"--code-coverage-dir=${ISOLATED_OUTDIR}"
|
||||
],
|
||||
"isolate_profile_data": true,
|
||||
"merge": {
|
||||
"script": "//testing/merge_scripts/standard_gtest_merge.py"
|
||||
},
|
||||
"swarming": {
|
||||
"dimension_sets": [
|
||||
{
|
||||
"os": "Ubuntu-22.04"
|
||||
}
|
||||
],
|
||||
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
|
||||
},
|
||||
"test": "ozone_gl_unittests",
|
||||
"test_id_prefix": "ninja://ui/ozone/gl:ozone_gl_unittests/"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"--code-coverage-dir=${ISOLATED_OUTDIR}"
|
||||
@ -19906,25 +19886,6 @@
|
||||
"test": "net_unittests",
|
||||
"test_id_prefix": "ninja://net:net_unittests/"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"--ozone-platform=headless"
|
||||
],
|
||||
"isolate_profile_data": true,
|
||||
"merge": {
|
||||
"script": "//testing/merge_scripts/standard_gtest_merge.py"
|
||||
},
|
||||
"swarming": {
|
||||
"dimension_sets": [
|
||||
{
|
||||
"os": "Ubuntu-22.04"
|
||||
}
|
||||
],
|
||||
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
|
||||
},
|
||||
"test": "ozone_gl_unittests",
|
||||
"test_id_prefix": "ninja://ui/ozone/gl:ozone_gl_unittests/"
|
||||
},
|
||||
{
|
||||
"isolate_profile_data": true,
|
||||
"merge": {
|
||||
|
@ -634,26 +634,6 @@
|
||||
"test": "net_unittests",
|
||||
"test_id_prefix": "ninja://net:net_unittests/"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"--test-arg=--ozone-platform=headless"
|
||||
],
|
||||
"merge": {
|
||||
"script": "//testing/merge_scripts/standard_gtest_merge.py"
|
||||
},
|
||||
"swarming": {
|
||||
"dimension_sets": [
|
||||
{
|
||||
"cpu": "arm64",
|
||||
"inside_docker": "1",
|
||||
"os": "Ubuntu-20.04"
|
||||
}
|
||||
],
|
||||
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
|
||||
},
|
||||
"test": "ozone_gl_unittests",
|
||||
"test_id_prefix": "ninja://ui/ozone/gl:ozone_gl_unittests/"
|
||||
},
|
||||
{
|
||||
"merge": {
|
||||
"script": "//testing/merge_scripts/standard_gtest_merge.py"
|
||||
@ -1711,25 +1691,6 @@
|
||||
"test": "net_unittests",
|
||||
"test_id_prefix": "ninja://net:net_unittests/"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"--test-arg=--ozone-platform=headless"
|
||||
],
|
||||
"merge": {
|
||||
"script": "//testing/merge_scripts/standard_gtest_merge.py"
|
||||
},
|
||||
"swarming": {
|
||||
"dimension_sets": [
|
||||
{
|
||||
"kvm": "1",
|
||||
"os": "Ubuntu-22.04"
|
||||
}
|
||||
],
|
||||
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
|
||||
},
|
||||
"test": "ozone_gl_unittests",
|
||||
"test_id_prefix": "ninja://ui/ozone/gl:ozone_gl_unittests/"
|
||||
},
|
||||
{
|
||||
"merge": {
|
||||
"script": "//testing/merge_scripts/standard_gtest_merge.py"
|
||||
@ -2817,25 +2778,6 @@
|
||||
"test": "net_unittests",
|
||||
"test_id_prefix": "ninja://net:net_unittests/"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"--test-arg=--ozone-platform=headless"
|
||||
],
|
||||
"merge": {
|
||||
"script": "//testing/merge_scripts/standard_gtest_merge.py"
|
||||
},
|
||||
"swarming": {
|
||||
"dimension_sets": [
|
||||
{
|
||||
"kvm": "1",
|
||||
"os": "Ubuntu-22.04"
|
||||
}
|
||||
],
|
||||
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
|
||||
},
|
||||
"test": "ozone_gl_unittests",
|
||||
"test_id_prefix": "ninja://ui/ozone/gl:ozone_gl_unittests/"
|
||||
},
|
||||
{
|
||||
"merge": {
|
||||
"script": "//testing/merge_scripts/standard_gtest_merge.py"
|
||||
|
@ -653,26 +653,6 @@
|
||||
"test": "net_unittests",
|
||||
"test_id_prefix": "ninja://net:net_unittests/"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"--test-arg=--ozone-platform=headless"
|
||||
],
|
||||
"merge": {
|
||||
"script": "//testing/merge_scripts/standard_gtest_merge.py"
|
||||
},
|
||||
"swarming": {
|
||||
"dimension_sets": [
|
||||
{
|
||||
"cpu": "arm64",
|
||||
"inside_docker": "1",
|
||||
"os": "Ubuntu-20.04"
|
||||
}
|
||||
],
|
||||
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
|
||||
},
|
||||
"test": "ozone_gl_unittests",
|
||||
"test_id_prefix": "ninja://ui/ozone/gl:ozone_gl_unittests/"
|
||||
},
|
||||
{
|
||||
"merge": {
|
||||
"script": "//testing/merge_scripts/standard_gtest_merge.py"
|
||||
@ -1688,26 +1668,6 @@
|
||||
"test": "net_unittests",
|
||||
"test_id_prefix": "ninja://net:net_unittests/"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"--test-arg=--ozone-platform=headless"
|
||||
],
|
||||
"merge": {
|
||||
"script": "//testing/merge_scripts/standard_gtest_merge.py"
|
||||
},
|
||||
"swarming": {
|
||||
"dimension_sets": [
|
||||
{
|
||||
"cpu": "arm64",
|
||||
"inside_docker": "1",
|
||||
"os": "Ubuntu-20.04"
|
||||
}
|
||||
],
|
||||
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
|
||||
},
|
||||
"test": "ozone_gl_unittests",
|
||||
"test_id_prefix": "ninja://ui/ozone/gl:ozone_gl_unittests/"
|
||||
},
|
||||
{
|
||||
"merge": {
|
||||
"script": "//testing/merge_scripts/standard_gtest_merge.py"
|
||||
@ -2845,26 +2805,6 @@
|
||||
"test": "net_unittests",
|
||||
"test_id_prefix": "ninja://net:net_unittests/"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"--test-arg=--ozone-platform=headless"
|
||||
],
|
||||
"isolate_profile_data": true,
|
||||
"merge": {
|
||||
"script": "//testing/merge_scripts/standard_gtest_merge.py"
|
||||
},
|
||||
"swarming": {
|
||||
"dimension_sets": [
|
||||
{
|
||||
"kvm": "1",
|
||||
"os": "Ubuntu-22.04"
|
||||
}
|
||||
],
|
||||
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
|
||||
},
|
||||
"test": "ozone_gl_unittests",
|
||||
"test_id_prefix": "ninja://ui/ozone/gl:ozone_gl_unittests/"
|
||||
},
|
||||
{
|
||||
"isolate_profile_data": true,
|
||||
"merge": {
|
||||
@ -4204,25 +4144,6 @@
|
||||
"test": "net_unittests",
|
||||
"test_id_prefix": "ninja://net:net_unittests/"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"--test-arg=--ozone-platform=headless"
|
||||
],
|
||||
"merge": {
|
||||
"script": "//testing/merge_scripts/standard_gtest_merge.py"
|
||||
},
|
||||
"swarming": {
|
||||
"dimension_sets": [
|
||||
{
|
||||
"kvm": "1",
|
||||
"os": "Ubuntu-22.04"
|
||||
}
|
||||
],
|
||||
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
|
||||
},
|
||||
"test": "ozone_gl_unittests",
|
||||
"test_id_prefix": "ninja://ui/ozone/gl:ozone_gl_unittests/"
|
||||
},
|
||||
{
|
||||
"merge": {
|
||||
"script": "//testing/merge_scripts/standard_gtest_merge.py"
|
||||
|
@ -3705,41 +3705,6 @@
|
||||
"test": "net_unittests",
|
||||
"test_id_prefix": "ninja://net:net_unittests/"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"--stop-ui",
|
||||
"--magic-vm-cache=magic_cros_vm_cache"
|
||||
],
|
||||
"merge": {
|
||||
"script": "//testing/merge_scripts/standard_gtest_merge.py"
|
||||
},
|
||||
"swarming": {
|
||||
"dimension_sets": [
|
||||
{
|
||||
"cpu": "x86",
|
||||
"kvm": "1",
|
||||
"os": "Ubuntu-22.04",
|
||||
"pool": "chromium.tests"
|
||||
}
|
||||
],
|
||||
"named_caches": [
|
||||
{
|
||||
"name": "cros_vm",
|
||||
"path": "magic_cros_vm_cache"
|
||||
}
|
||||
],
|
||||
"optional_dimensions": {
|
||||
"60": [
|
||||
{
|
||||
"caches": "cros_vm"
|
||||
}
|
||||
]
|
||||
},
|
||||
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
|
||||
},
|
||||
"test": "ozone_gl_unittests",
|
||||
"test_id_prefix": "ninja://ui/ozone/gl:ozone_gl_unittests/"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"--magic-vm-cache=magic_cros_vm_cache"
|
||||
|
@ -4297,25 +4297,6 @@
|
||||
"test": "net_unittests",
|
||||
"test_id_prefix": "ninja://net:net_unittests/"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"--ozone-platform=headless",
|
||||
"--test-launcher-print-test-stdio=always"
|
||||
],
|
||||
"merge": {
|
||||
"script": "//testing/merge_scripts/standard_gtest_merge.py"
|
||||
},
|
||||
"swarming": {
|
||||
"dimension_sets": [
|
||||
{
|
||||
"os": "Ubuntu-22.04"
|
||||
}
|
||||
],
|
||||
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
|
||||
},
|
||||
"test": "ozone_gl_unittests",
|
||||
"test_id_prefix": "ninja://ui/ozone/gl:ozone_gl_unittests/"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"--test-launcher-print-test-stdio=always"
|
||||
@ -6076,26 +6057,6 @@
|
||||
"test": "net_unittests",
|
||||
"test_id_prefix": "ninja://net:net_unittests/"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"--ozone-platform=headless",
|
||||
"--test-launcher-print-test-stdio=always"
|
||||
],
|
||||
"merge": {
|
||||
"script": "//testing/merge_scripts/standard_gtest_merge.py"
|
||||
},
|
||||
"swarming": {
|
||||
"dimension_sets": [
|
||||
{
|
||||
"cpu": "x86-64",
|
||||
"os": "Ubuntu-20.04"
|
||||
}
|
||||
],
|
||||
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
|
||||
},
|
||||
"test": "ozone_gl_unittests",
|
||||
"test_id_prefix": "ninja://ui/ozone/gl:ozone_gl_unittests/"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"--test-launcher-print-test-stdio=always"
|
||||
|
@ -1271,10 +1271,6 @@
|
||||
"label": "//chrome/browser/media/router:openscreen_unittests",
|
||||
"type": "console_test_launcher",
|
||||
},
|
||||
"ozone_gl_unittests": {
|
||||
"label": "//ui/ozone/gl:ozone_gl_unittests",
|
||||
"type": "console_test_launcher",
|
||||
},
|
||||
"ozone_unittests": {
|
||||
"label": "//ui/ozone:ozone_unittests",
|
||||
"type": "console_test_launcher",
|
||||
|
@ -641,42 +641,6 @@
|
||||
"test": "net_unittests",
|
||||
"test_id_prefix": "ninja://net:net_unittests/"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"--stop-ui",
|
||||
"--magic-vm-cache=magic_cros_vm_cache"
|
||||
],
|
||||
"merge": {
|
||||
"script": "//testing/merge_scripts/standard_gtest_merge.py"
|
||||
},
|
||||
"swarming": {
|
||||
"dimension_sets": [
|
||||
{
|
||||
"cpu": "x86",
|
||||
"gce": "1",
|
||||
"kvm": "1",
|
||||
"os": "Ubuntu-18.04",
|
||||
"pool": "chrome.tests"
|
||||
}
|
||||
],
|
||||
"named_caches": [
|
||||
{
|
||||
"name": "cros_vm",
|
||||
"path": "magic_cros_vm_cache"
|
||||
}
|
||||
],
|
||||
"optional_dimensions": {
|
||||
"60": [
|
||||
{
|
||||
"caches": "cros_vm"
|
||||
}
|
||||
]
|
||||
},
|
||||
"service_account": "chrome-tester@chops-service-accounts.iam.gserviceaccount.com"
|
||||
},
|
||||
"test": "ozone_gl_unittests",
|
||||
"test_id_prefix": "ninja://ui/ozone/gl:ozone_gl_unittests/"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"--magic-vm-cache=magic_cros_vm_cache",
|
||||
|
@ -820,11 +820,6 @@
|
||||
'shards': 3,
|
||||
},
|
||||
},
|
||||
'ozone_gl_unittests': {
|
||||
'args': [
|
||||
'--stop-ui',
|
||||
],
|
||||
},
|
||||
'ozone_unittests': {},
|
||||
'pdf_unittests': {},
|
||||
'printing_unittests': {},
|
||||
@ -2496,11 +2491,6 @@
|
||||
'--test-launcher-filter-file=../../testing/buildbot/filters/fuchsia.net_unittests.filter',
|
||||
],
|
||||
},
|
||||
'ozone_gl_unittests': {
|
||||
'args': [
|
||||
'--test-arg=--ozone-platform=headless',
|
||||
],
|
||||
},
|
||||
'ozone_unittests': {},
|
||||
'perfetto_unittests': {},
|
||||
'service_manager_unittests': {},
|
||||
@ -4325,11 +4315,6 @@
|
||||
'exo_unittests': {},
|
||||
'gl_unittests_ozone': {},
|
||||
'keyboard_unittests': {},
|
||||
'ozone_gl_unittests': {
|
||||
'args': [
|
||||
'--ozone-platform=headless',
|
||||
],
|
||||
},
|
||||
'ozone_unittests': {},
|
||||
'ozone_x11_unittests': {},
|
||||
'shell_encryption_unittests': {},
|
||||
|
@ -17,8 +17,6 @@
|
||||
namespace gfx {
|
||||
|
||||
// This class converts a gfx::NativePixmapHandle to a gfx::NativePixmap.
|
||||
// It is useful because gpu::GLImageNativePixmap::Initialize only takes
|
||||
// a gfx::NativePixmap as input.
|
||||
class GFX_EXPORT NativePixmapDmaBuf : public gfx::NativePixmap {
|
||||
public:
|
||||
NativePixmapDmaBuf(const gfx::Size& size,
|
||||
|
@ -486,10 +486,7 @@ group("unittests") {
|
||||
|
||||
visibility += [ "*" ]
|
||||
|
||||
deps = [
|
||||
":ozone_unittests",
|
||||
"//ui/ozone/gl:ozone_gl_unittests",
|
||||
]
|
||||
deps = [ ":ozone_unittests" ]
|
||||
|
||||
if (ozone_platform_x11) {
|
||||
deps += [ "//ui/ozone:ozone_x11_unittests" ]
|
||||
|
@ -1,32 +0,0 @@
|
||||
# Copyright 2016 The Chromium Authors
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
import("//testing/test.gni")
|
||||
|
||||
test("ozone_gl_unittests") {
|
||||
sources = [
|
||||
"gl_image_ozone_native_pixmap_unittest.cc",
|
||||
"gl_image_test_template.cc",
|
||||
"gl_image_test_template.h",
|
||||
]
|
||||
|
||||
deps = [
|
||||
"//base/test:test_support",
|
||||
|
||||
# NOTE: The above tests of gpu::GLImageNativePixmap cannot easily be made
|
||||
# to run as part of //gpu's gl_tests or gpu_unittests: they crash when run
|
||||
# with the former due to differences in GL configuration, and they are
|
||||
# skipped when run with the latter due to differences in Ozone
|
||||
# configuration. Simply leave them here with this dependency for the short
|
||||
# time remaining until GLImageNativePixmap is eliminated altogether.
|
||||
"//gpu/command_buffer/service:gles2",
|
||||
"//testing/gtest",
|
||||
"//ui/gfx",
|
||||
"//ui/gl:run_all_unittests",
|
||||
"//ui/gl:test_support",
|
||||
"//ui/ozone",
|
||||
]
|
||||
|
||||
data_deps = [ "//third_party/mesa_headers" ]
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
specific_include_rules = {
|
||||
# NOTE: See comment in ./BUILD.gn with respect to these dependencies.
|
||||
"gl_image_test_template\.h": [
|
||||
"+gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h",
|
||||
],
|
||||
"gl_image_ozone_native_pixmap_unittest\.cc": [
|
||||
"+gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h",
|
||||
],
|
||||
}
|
@ -1,136 +0,0 @@
|
||||
// Copyright 2015 The Chromium Authors
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include <stdint.h>
|
||||
#include <memory>
|
||||
|
||||
#include "gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#include "ui/gfx/buffer_types.h"
|
||||
#include "ui/gfx/client_native_pixmap.h"
|
||||
#include "ui/ozone/gl/gl_image_test_template.h"
|
||||
#include "ui/ozone/public/client_native_pixmap_factory_ozone.h"
|
||||
#include "ui/ozone/public/ozone_platform.h"
|
||||
#include "ui/ozone/public/surface_factory_ozone.h"
|
||||
|
||||
namespace gl {
|
||||
namespace {
|
||||
|
||||
const uint8_t kRed[] = {0xF0, 0x0, 0x0, 0xFF};
|
||||
const uint8_t kYellow[] = {0xF0, 0xFF, 0x00, 0xFF};
|
||||
|
||||
template <gfx::BufferUsage usage, gfx::BufferFormat format>
|
||||
class GLImageNativePixmapTestDelegate : public GLImageTestDelegateBase {
|
||||
public:
|
||||
GLImageNativePixmapTestDelegate() {
|
||||
client_native_pixmap_factory_ = ui::CreateClientNativePixmapFactoryOzone();
|
||||
}
|
||||
|
||||
GLImageNativePixmapTestDelegate(const GLImageNativePixmapTestDelegate&) =
|
||||
delete;
|
||||
GLImageNativePixmapTestDelegate& operator=(
|
||||
const GLImageNativePixmapTestDelegate&) = delete;
|
||||
|
||||
~GLImageNativePixmapTestDelegate() override = default;
|
||||
|
||||
void WillTearDown() override {
|
||||
if (texture_id_) {
|
||||
glDeleteTextures(1, &texture_id_);
|
||||
}
|
||||
}
|
||||
|
||||
bool SkipTest(GLDisplay* display) const override {
|
||||
ui::GLOzone* gl_ozone = ui::OzonePlatform::GetInstance()
|
||||
->GetSurfaceFactoryOzone()
|
||||
->GetCurrentGLOzone();
|
||||
if (!gl_ozone || !gl_ozone->CanImportNativePixmap()) {
|
||||
LOG(WARNING) << "Skip test, ozone implementation can't import native "
|
||||
<< "pixmaps";
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
scoped_refptr<gpu::GLImageNativePixmap> CreateSolidColorImage(
|
||||
const gfx::Size& size,
|
||||
const uint8_t color[4]) {
|
||||
ui::SurfaceFactoryOzone* surface_factory =
|
||||
ui::OzonePlatform::GetInstance()->GetSurfaceFactoryOzone();
|
||||
scoped_refptr<gfx::NativePixmap> pixmap =
|
||||
surface_factory->CreateNativePixmap(gfx::kNullAcceleratedWidget,
|
||||
nullptr, size, format, usage);
|
||||
DCHECK(pixmap) << "Offending format: " << gfx::BufferFormatToString(format);
|
||||
if (usage == gfx::BufferUsage::GPU_READ_CPU_READ_WRITE ||
|
||||
usage == gfx::BufferUsage::SCANOUT_CAMERA_READ_WRITE ||
|
||||
usage == gfx::BufferUsage::VEA_READ_CAMERA_AND_CPU_READ_WRITE) {
|
||||
auto client_pixmap = client_native_pixmap_factory_->ImportFromHandle(
|
||||
pixmap->ExportHandle(), size, format, usage);
|
||||
bool mapped = client_pixmap->Map();
|
||||
EXPECT_TRUE(mapped);
|
||||
|
||||
for (size_t plane = 0; plane < pixmap->GetNumberOfPlanes(); ++plane) {
|
||||
void* data = client_pixmap->GetMemoryAddress(plane);
|
||||
GLTestSupport::SetBufferDataToColor(
|
||||
size.width(), size.height(), pixmap->GetDmaBufPitch(plane), plane,
|
||||
pixmap->GetBufferFormat(), color, static_cast<uint8_t*>(data));
|
||||
}
|
||||
client_pixmap->Unmap();
|
||||
}
|
||||
|
||||
// Create a dummy texture ID to bind - these tests don't actually care about
|
||||
// binding.
|
||||
if (!texture_id_) {
|
||||
glGenTextures(1, &texture_id_);
|
||||
}
|
||||
|
||||
auto image = gpu::GLImageNativePixmap::CreateForTesting(
|
||||
size, format, std::move(pixmap), GetTextureTarget(), texture_id_);
|
||||
EXPECT_TRUE(image);
|
||||
return image;
|
||||
}
|
||||
|
||||
unsigned GetTextureTarget() const { return GL_TEXTURE_EXTERNAL_OES; }
|
||||
|
||||
const uint8_t* GetImageColor() const {
|
||||
return format == gfx::BufferFormat::R_8 ? kRed : kYellow;
|
||||
}
|
||||
|
||||
int GetAdmissibleError() const {
|
||||
if (format == gfx::BufferFormat::YVU_420 ||
|
||||
format == gfx::BufferFormat::YUV_420_BIPLANAR) {
|
||||
return 1;
|
||||
}
|
||||
if (format == gfx::BufferFormat::P010) {
|
||||
return 3;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
private:
|
||||
GLuint texture_id_ = 0;
|
||||
std::unique_ptr<gfx::ClientNativePixmapFactory> client_native_pixmap_factory_;
|
||||
};
|
||||
|
||||
using GLImageScanoutType = testing::Types<
|
||||
GLImageNativePixmapTestDelegate<gfx::BufferUsage::SCANOUT,
|
||||
gfx::BufferFormat::BGRA_8888>>;
|
||||
|
||||
INSTANTIATE_TYPED_TEST_SUITE_P(GLImageNativePixmapScanoutBGRA,
|
||||
GLImageTest,
|
||||
GLImageScanoutType);
|
||||
|
||||
using GLImageScanoutTypeDisabled = testing::Types<
|
||||
GLImageNativePixmapTestDelegate<gfx::BufferUsage::SCANOUT,
|
||||
gfx::BufferFormat::RGBA_1010102>,
|
||||
GLImageNativePixmapTestDelegate<gfx::BufferUsage::SCANOUT,
|
||||
gfx::BufferFormat::BGRA_1010102>>;
|
||||
|
||||
// This test is disabled since we need mesa support for AB30 that is not
|
||||
// available on many boards yet.
|
||||
INSTANTIATE_TYPED_TEST_SUITE_P(DISABLED_GLImageNativePixmapScanoutRGBA,
|
||||
GLImageTest,
|
||||
GLImageScanoutTypeDisabled);
|
||||
|
||||
} // namespace
|
||||
} // namespace gl
|
@ -1,154 +0,0 @@
|
||||
// Copyright 2017 The Chromium Authors
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// This file defines tests that implementations of GLImage should pass in order
|
||||
// to be conformant.
|
||||
|
||||
#include "ui/ozone/gl/gl_image_test_template.h"
|
||||
#include "base/strings/stringprintf.h"
|
||||
|
||||
namespace gl {
|
||||
|
||||
namespace {
|
||||
|
||||
GLuint LoadVertexShader() {
|
||||
bool is_desktop_core_profile =
|
||||
GLContext::GetCurrent()->GetVersionInfo()->is_desktop_core_profile;
|
||||
std::string vertex_shader = base::StringPrintf(
|
||||
"%s" // version
|
||||
"%s vec2 a_position;\n"
|
||||
"%s vec2 v_texCoord;\n"
|
||||
"void main() {\n"
|
||||
" gl_Position = vec4(a_position.x, a_position.y, 0.0, 1.0);\n"
|
||||
" v_texCoord = (a_position + vec2(1.0, 1.0)) * 0.5;\n"
|
||||
"}",
|
||||
is_desktop_core_profile ? "#version 150\n" : "",
|
||||
is_desktop_core_profile ? "in" : "attribute",
|
||||
is_desktop_core_profile ? "out" : "varying");
|
||||
return GLHelper::LoadShader(GL_VERTEX_SHADER, vertex_shader.c_str());
|
||||
}
|
||||
|
||||
// Compiles a fragment shader for sampling out of a texture of |size| bound to
|
||||
// |target| and checks for compilation errors.
|
||||
GLuint LoadFragmentShader(unsigned target, const gfx::Size& size) {
|
||||
bool is_desktop_core_profile =
|
||||
GLContext::GetCurrent()->GetVersionInfo()->is_desktop_core_profile;
|
||||
bool is_gles = GLContext::GetCurrent()->GetVersionInfo()->is_es;
|
||||
|
||||
std::string fragment_shader_main = base::StringPrintf(
|
||||
"uniform SamplerType a_texture;\n"
|
||||
"%s vec2 v_texCoord;\n"
|
||||
"%s" // output variable declaration
|
||||
"void main() {\n"
|
||||
" %s = TextureLookup(a_texture, v_texCoord * TextureScale);\n"
|
||||
"}",
|
||||
is_desktop_core_profile ? "in" : "varying",
|
||||
is_desktop_core_profile ? "out vec4 my_FragData;\n" : "",
|
||||
is_desktop_core_profile ? "my_FragData" : "gl_FragData[0]");
|
||||
|
||||
switch (target) {
|
||||
case GL_TEXTURE_2D:
|
||||
return GLHelper::LoadShader(
|
||||
GL_FRAGMENT_SHADER,
|
||||
base::StringPrintf("%s" // version
|
||||
"%s" // precision
|
||||
"#define SamplerType sampler2D\n"
|
||||
"#define TextureLookup %s\n"
|
||||
"#define TextureScale vec2(1.0, 1.0)\n"
|
||||
"%s", // main function
|
||||
is_desktop_core_profile ? "#version 150\n" : "",
|
||||
is_gles ? "precision mediump float;\n" : "",
|
||||
is_desktop_core_profile ? "texture" : "texture2D",
|
||||
fragment_shader_main.c_str())
|
||||
.c_str());
|
||||
case GL_TEXTURE_RECTANGLE_ARB:
|
||||
DCHECK(!is_gles);
|
||||
return GLHelper::LoadShader(
|
||||
GL_FRAGMENT_SHADER,
|
||||
base::StringPrintf(
|
||||
"%s" // version
|
||||
"%s" // extension
|
||||
"#define SamplerType sampler2DRect\n"
|
||||
"#define TextureLookup %s\n"
|
||||
"#define TextureScale vec2(%f, %f)\n"
|
||||
"%s", // main function
|
||||
is_desktop_core_profile ? "#version 150\n" : "",
|
||||
is_desktop_core_profile
|
||||
? ""
|
||||
: "#extension GL_ARB_texture_rectangle : require\n",
|
||||
is_desktop_core_profile ? "texture" : "texture2DRect",
|
||||
static_cast<double>(size.width()),
|
||||
static_cast<double>(size.height()), fragment_shader_main.c_str())
|
||||
.c_str());
|
||||
case GL_TEXTURE_EXTERNAL_OES:
|
||||
DCHECK(is_gles);
|
||||
return GLHelper::LoadShader(
|
||||
GL_FRAGMENT_SHADER,
|
||||
base::StringPrintf("#extension GL_OES_EGL_image_external : require\n"
|
||||
"%s" // precision
|
||||
"#define SamplerType samplerExternalOES\n"
|
||||
"#define TextureLookup texture2D\n"
|
||||
"#define TextureScale vec2(1.0, 1.0)\n"
|
||||
"%s", // main function
|
||||
is_gles ? "precision mediump float;\n" : "",
|
||||
fragment_shader_main.c_str())
|
||||
.c_str());
|
||||
default:
|
||||
NOTREACHED();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
namespace internal {
|
||||
|
||||
// Draws texture bound to |target| of texture unit 0 to the currently bound
|
||||
// frame buffer.
|
||||
void DrawTextureQuad(GLenum target, const gfx::Size& size) {
|
||||
GLuint vao = 0;
|
||||
if (GLHelper::ShouldTestsUseVAOs()) {
|
||||
glGenVertexArraysOES(1, &vao);
|
||||
glBindVertexArrayOES(vao);
|
||||
}
|
||||
|
||||
GLuint vertex_shader = LoadVertexShader();
|
||||
GLuint fragment_shader = LoadFragmentShader(target, size);
|
||||
GLuint program = GLHelper::SetupProgram(vertex_shader, fragment_shader);
|
||||
EXPECT_NE(program, 0u);
|
||||
glUseProgram(program);
|
||||
|
||||
GLint sampler_location = glGetUniformLocation(program, "a_texture");
|
||||
ASSERT_NE(sampler_location, -1);
|
||||
glUniform1i(sampler_location, 0);
|
||||
|
||||
GLuint vertex_buffer = GLHelper::SetupQuadVertexBuffer();
|
||||
GLHelper::DrawQuad(vertex_buffer);
|
||||
|
||||
if (vao != 0) {
|
||||
glDeleteVertexArraysOES(1, &vao);
|
||||
}
|
||||
|
||||
glDeleteShader(vertex_shader);
|
||||
glDeleteShader(fragment_shader);
|
||||
glDeleteProgram(program);
|
||||
glDeleteBuffersARB(1, &vertex_buffer);
|
||||
}
|
||||
|
||||
} // namespace internal
|
||||
|
||||
absl::optional<GLImplementationParts>
|
||||
GLImageTestDelegateBase::GetPreferedGLImplementation() const {
|
||||
return absl::nullopt;
|
||||
}
|
||||
|
||||
bool GLImageTestDelegateBase::SkipTest(GLDisplay*) const {
|
||||
return false;
|
||||
}
|
||||
|
||||
// These suites are instantiated in binaries that use //ui/gl:test_support.
|
||||
GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(GLImageTest);
|
||||
GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(GLImageOddSizeTest);
|
||||
|
||||
} // namespace gl
|
@ -1,157 +0,0 @@
|
||||
// Copyright 2015 The Chromium Authors
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// This file defines tests that implementations of GLImage should pass in order
|
||||
// to be conformant.
|
||||
|
||||
#ifndef UI_OZONE_GL_GL_IMAGE_TEST_TEMPLATE_H_
|
||||
#define UI_OZONE_GL_GL_IMAGE_TEST_TEMPLATE_H_
|
||||
|
||||
#include "base/memory/raw_ptr.h"
|
||||
#include "base/strings/stringize_macros.h"
|
||||
#include "build/build_config.h"
|
||||
#include "gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#include "third_party/abseil-cpp/absl/types/optional.h"
|
||||
#include "ui/gfx/buffer_format_util.h"
|
||||
#include "ui/gfx/buffer_types.h"
|
||||
#include "ui/gl/gl_bindings.h"
|
||||
#include "ui/gl/gl_context.h"
|
||||
#include "ui/gl/gl_display.h"
|
||||
#include "ui/gl/gl_helper.h"
|
||||
#include "ui/gl/gl_surface.h"
|
||||
#include "ui/gl/gl_version_info.h"
|
||||
#include "ui/gl/init/gl_factory.h"
|
||||
#include "ui/gl/test/gl_test_helper.h"
|
||||
#include "ui/gl/test/gl_test_support.h"
|
||||
|
||||
#if BUILDFLAG(IS_APPLE)
|
||||
#include "base/mac/mac_util.h"
|
||||
#endif
|
||||
|
||||
// TODO(crbug.com/969798): Fix memory leaks in tests and re-enable on LSAN.
|
||||
#ifdef LEAK_SANITIZER
|
||||
#define MAYBE_Create DISABLED_Create
|
||||
#else
|
||||
#define MAYBE_Create Create
|
||||
#endif
|
||||
|
||||
// TYPED_TEST_P() and REGISTER_TYPED_TEST_SUITE_P() don't do macro expansion on
|
||||
// their parameters, making the MAYBE_ technique above not work -- these macros
|
||||
// are a workaround.
|
||||
#define TYPED_TEST_P_WITH_EXPANSION(SuiteName, TestName) \
|
||||
TYPED_TEST_P(SuiteName, TestName)
|
||||
#define REGISTER_TYPED_TEST_SUITE_P_WITH_EXPANSION(SuiteName, ...) \
|
||||
REGISTER_TYPED_TEST_SUITE_P(SuiteName, __VA_ARGS__)
|
||||
|
||||
namespace gl {
|
||||
|
||||
namespace internal {
|
||||
|
||||
void DrawTextureQuad(GLenum target, const gfx::Size& size);
|
||||
}
|
||||
|
||||
class GLImageTestDelegateBase {
|
||||
public:
|
||||
virtual ~GLImageTestDelegateBase() {}
|
||||
|
||||
virtual void DidSetUp() {}
|
||||
virtual void WillTearDown() {}
|
||||
|
||||
virtual absl::optional<GLImplementationParts> GetPreferedGLImplementation()
|
||||
const;
|
||||
virtual bool SkipTest(GLDisplay* display) const;
|
||||
};
|
||||
|
||||
template <typename GLImageTestDelegate>
|
||||
class GLImageTest : public testing::Test {
|
||||
protected:
|
||||
// Overridden from testing::Test:
|
||||
void SetUp() override {
|
||||
auto prefered_impl = delegate_.GetPreferedGLImplementation();
|
||||
display_ = GLTestSupport::InitializeGL(prefered_impl);
|
||||
surface_ = gl::init::CreateOffscreenGLSurface(display_, gfx::Size());
|
||||
context_ =
|
||||
gl::init::CreateGLContext(nullptr, surface_.get(), GLContextAttribs());
|
||||
context_->MakeCurrent(surface_.get());
|
||||
delegate_.DidSetUp();
|
||||
}
|
||||
void TearDown() override {
|
||||
delegate_.WillTearDown();
|
||||
context_->ReleaseCurrent(surface_.get());
|
||||
context_ = nullptr;
|
||||
surface_ = nullptr;
|
||||
GLTestSupport::CleanupGL(display_);
|
||||
}
|
||||
|
||||
protected:
|
||||
scoped_refptr<GLSurface> surface_;
|
||||
scoped_refptr<GLContext> context_;
|
||||
GLImageTestDelegate delegate_;
|
||||
raw_ptr<GLDisplay> display_ = nullptr;
|
||||
};
|
||||
|
||||
TYPED_TEST_SUITE_P(GLImageTest);
|
||||
|
||||
TYPED_TEST_P_WITH_EXPANSION(GLImageTest, MAYBE_Create) {
|
||||
if (this->delegate_.SkipTest(this->display_)) {
|
||||
GTEST_SKIP() << "Skip because GL initialization failed";
|
||||
}
|
||||
|
||||
// NOTE: On some drm devices (mediatek) the mininum width/height to add an fb
|
||||
// for a bo must be 64, and YVU_420 in i915 requires at least 128 length.
|
||||
const gfx::Size small_image_size(128, 128);
|
||||
const gfx::Size large_image_size(512, 512);
|
||||
const uint8_t* image_color = this->delegate_.GetImageColor();
|
||||
|
||||
// Create a small solid color green image of preferred format. This must
|
||||
// succeed in order for a GLImage to be conformant.
|
||||
scoped_refptr<gpu::GLImageNativePixmap> small_image =
|
||||
this->delegate_.CreateSolidColorImage(small_image_size, image_color);
|
||||
ASSERT_TRUE(small_image);
|
||||
|
||||
// Create a large solid color green image of preferred format. This must
|
||||
// succeed in order for a GLImage to be conformant.
|
||||
scoped_refptr<gpu::GLImageNativePixmap> large_image =
|
||||
this->delegate_.CreateSolidColorImage(large_image_size, image_color);
|
||||
ASSERT_TRUE(large_image);
|
||||
}
|
||||
|
||||
// The GLImageTest test case verifies the behaviour that is expected from a
|
||||
// GLImage in order to be conformant.
|
||||
REGISTER_TYPED_TEST_SUITE_P_WITH_EXPANSION(GLImageTest, MAYBE_Create);
|
||||
|
||||
template <typename GLImageTestDelegate>
|
||||
class GLImageOddSizeTest : public GLImageTest<GLImageTestDelegate> {};
|
||||
|
||||
// This test verifies that odd-sized GLImages can be created and destroyed.
|
||||
TYPED_TEST_SUITE_P(GLImageOddSizeTest);
|
||||
|
||||
TYPED_TEST_P_WITH_EXPANSION(GLImageOddSizeTest, MAYBE_Create) {
|
||||
if (this->delegate_.SkipTest(this->display_)) {
|
||||
GTEST_SKIP() << "Skip because GL initialization failed";
|
||||
}
|
||||
|
||||
const gfx::Size odd_image_size(17, 53);
|
||||
const uint8_t* image_color = this->delegate_.GetImageColor();
|
||||
|
||||
// Create an odd-sized solid color green image of preferred format. This must
|
||||
// succeed in order for a GLImage to be conformant.
|
||||
scoped_refptr<gpu::GLImageNativePixmap> odd_image =
|
||||
this->delegate_.CreateSolidColorImage(odd_image_size, image_color);
|
||||
ASSERT_TRUE(odd_image);
|
||||
}
|
||||
|
||||
// The GLImageTest test case verifies the behaviour that is expected from a
|
||||
// GLImage in order to be conformant.
|
||||
REGISTER_TYPED_TEST_SUITE_P_WITH_EXPANSION(GLImageOddSizeTest, MAYBE_Create);
|
||||
|
||||
} // namespace gl
|
||||
|
||||
// Avoid polluting source files that include this header.
|
||||
#undef MAYBE_Create
|
||||
#undef TYPED_TEST_P_WITH_EXPANSION
|
||||
#undef REGISTER_TYPED_TEST_SUITE_P_WITH_EXPANSION
|
||||
|
||||
#endif // UI_OZONE_GL_GL_IMAGE_TEST_TEMPLATE_H_
|
Reference in New Issue
Block a user