mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-10-11 04:19:03 +00:00
This change refactors dawn-defined buffer and texture usages. It groups buffer usages together, and groups texture usages together, in order to avoid values conflict. It also removes kReadOnlyStorageTexture because its definition has already been removed. Bug: dawn:485 Change-Id: I8c772ebadd3d276905fbcdb3283f0d5d89f74dd6 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/65680 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Austin Eng <enga@chromium.org> Commit-Queue: Yunchao He <yunchao.he@intel.com>
58 lines
2.5 KiB
C++
58 lines
2.5 KiB
C++
// Copyright 2018 The Dawn Authors
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
#ifndef DAWNNATIVE_DAWNPLATFORM_H_
|
|
#define DAWNNATIVE_DAWNPLATFORM_H_
|
|
|
|
// Use webgpu_cpp to have the enum and bitfield definitions
|
|
#include <dawn/webgpu_cpp.h>
|
|
|
|
// Use our autogenerated version of the wgpu structures that point to dawn_native object types
|
|
// (wgpu::Buffer is dawn_native::BufferBase*)
|
|
#include <dawn_native/wgpu_structs_autogen.h>
|
|
|
|
namespace dawn_native {
|
|
// Extra buffer usages
|
|
// Add an extra buffer usage and an extra binding type for binding the buffers with QueryResolve
|
|
// usage as storage buffer in the internal pipeline.
|
|
static constexpr wgpu::BufferUsage kInternalStorageBuffer =
|
|
static_cast<wgpu::BufferUsage>(0x40000000);
|
|
|
|
// Add an extra buffer usage (readonly storage buffer usage) for render pass resource tracking
|
|
static constexpr wgpu::BufferUsage kReadOnlyStorageBuffer =
|
|
static_cast<wgpu::BufferUsage>(0x80000000);
|
|
|
|
// Extra texture usages
|
|
// Add an extra texture usage (readonly render attachment usage) for render pass resource
|
|
// tracking
|
|
static constexpr wgpu::TextureUsage kReadOnlyRenderAttachment =
|
|
static_cast<wgpu::TextureUsage>(0x40000000);
|
|
|
|
// Internal usage to help tracking when a subresource is used as render attachment usage
|
|
// more than once in a render pass.
|
|
static constexpr wgpu::TextureUsage kAgainAsRenderAttachment =
|
|
static_cast<wgpu::TextureUsage>(0x80000001);
|
|
|
|
// Add an extra texture usage for textures that will be presented, for use in backends
|
|
// that needs to transition to present usage.
|
|
// This currently aliases wgpu::TextureUsage::Present, we would assign it
|
|
// some bit when wgpu::TextureUsage::Present is removed.
|
|
static constexpr wgpu::TextureUsage kPresentTextureUsage = wgpu::TextureUsage::Present;
|
|
|
|
static constexpr wgpu::BufferBindingType kInternalStorageBufferBinding =
|
|
static_cast<wgpu::BufferBindingType>(0xFFFFFFFF);
|
|
} // namespace dawn_native
|
|
|
|
#endif // DAWNNATIVE_DAWNPLATFORM_H_
|