#include <algorithm>
#include <memory>
#include <ostream>
#include <thread>
#include <vector>
#include "dawn/common/Assert.h"
#include "dawn/common/Constants.h"
#include "dawn/common/Math.h"
#include "dawn/utils/TestUtils.h"
#include "dawn/utils/TextureUtils.h"
#include "dawn/utils/WGPUHelpers.h"
namespace dawn::utils {
const RGBA8 RGBA8::kZero = …;
const RGBA8 RGBA8::kBlack = …;
const RGBA8 RGBA8::kRed = …;
const RGBA8 RGBA8::kGreen = …;
const RGBA8 RGBA8::kBlue = …;
const RGBA8 RGBA8::kYellow = …;
const RGBA8 RGBA8::kWhite = …;
std::ostream& operator<<(std::ostream& stream, const RGBA8& color) { … }
uint32_t GetMinimumBytesPerRow(wgpu::TextureFormat format, uint32_t width) { … }
TextureDataCopyLayout GetTextureDataCopyLayoutForTextureAtLevel(wgpu::TextureFormat format,
wgpu::Extent3D textureSizeAtLevel0,
uint32_t mipmapLevel,
wgpu::TextureDimension dimension,
uint32_t rowsPerImage) { … }
uint64_t RequiredBytesInCopy(uint64_t bytesPerRow,
uint64_t rowsPerImage,
wgpu::Extent3D copyExtent,
wgpu::TextureFormat textureFormat) { … }
uint64_t RequiredBytesInCopy(uint64_t bytesPerRow,
uint64_t rowsPerImage,
uint64_t widthInBlocks,
uint64_t heightInBlocks,
uint64_t depth,
uint64_t bytesPerBlock) { … }
uint64_t GetTexelCountInCopyRegion(uint64_t bytesPerRow,
uint64_t rowsPerImage,
wgpu::Extent3D copyExtent,
wgpu::TextureFormat textureFormat) { … }
void UnalignDynamicUploader(wgpu::Device device) { … }
uint32_t VertexFormatSize(wgpu::VertexFormat format) { … }
void RunInParallel(uint32_t numThreads,
const std::function<void(uint32_t)>& workerFunc,
const std::function<void()>& mainThreadFunc) { … }
}