blob: dc412067f0e1f3584b6d1635d8ea092622e76893 [file] [log] [blame]
// Copyright 2018 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/common/shared_image_usage.h"
#include "base/check.h"
namespace gpu {
bool IsValidClientUsage(uint32_t usage) {
constexpr int32_t kClientMax = (LAST_CLIENT_USAGE << 1) - 1;
return 0 < usage && usage <= kClientMax;
}
std::string CreateLabelForSharedImageUsage(uint32_t usage) {
if (!usage)
return "";
std::string label;
if (usage & SHARED_IMAGE_USAGE_GLES2) {
label += "|Gles2";
}
if (usage & SHARED_IMAGE_USAGE_GLES2_FRAMEBUFFER_HINT) {
label += "|Gles2FramebufferHint";
}
if (usage & SHARED_IMAGE_USAGE_RASTER) {
label += "|Raster";
}
if (usage & SHARED_IMAGE_USAGE_RAW_DRAW) {
label += "|RawDraw";
}
if (usage & SHARED_IMAGE_USAGE_DISPLAY) {
label += "|Display";
}
if (usage & SHARED_IMAGE_USAGE_SCANOUT) {
label += "|Scanout";
}
if (usage & SHARED_IMAGE_USAGE_OOP_RASTERIZATION) {
label += "|OopRasterization";
}
if (usage & SHARED_IMAGE_USAGE_WEBGPU) {
label += "|Webgpu";
}
if (usage & SHARED_IMAGE_USAGE_PROTECTED) {
label += "|Protected";
}
if (usage & SHARED_IMAGE_USAGE_CONCURRENT_READ_WRITE) {
label += "|ConcurrentReadWrite";
}
if (usage & SHARED_IMAGE_USAGE_VIDEO_DECODE) {
label += "|VideoDecode";
}
if (usage & SHARED_IMAGE_USAGE_WEBGPU_SWAP_CHAIN_TEXTURE) {
label += "|WebgpuSwapChainTexture";
}
if (usage & SHARED_IMAGE_USAGE_MACOS_VIDEO_TOOLBOX) {
label += "|MacosVideoToolbox";
}
if (usage & SHARED_IMAGE_USAGE_MIPMAP) {
label += "|Mipmap";
}
if (usage & SHARED_IMAGE_USAGE_CPU_WRITE) {
label += "|CpuWrite";
}
if (usage & SHARED_IMAGE_USAGE_RAW_DRAW) {
label += "|RawDraw";
}
if (usage & SHARED_IMAGE_USAGE_RASTER_DELEGATED_COMPOSITING) {
label += "|RasterDelegatedCompositing";
}
if (usage & SHARED_IMAGE_USAGE_CPU_UPLOAD) {
label += "|CpuUpload";
}
DCHECK(!label.empty());
return label;
}
} // namespace gpu