#include "dawn/native/PipelineLayout.h"
#include <algorithm>
#include <map>
#include <utility>
#include "absl/container/inlined_vector.h"
#include "dawn/common/Assert.h"
#include "dawn/common/BitSetIterator.h"
#include "dawn/common/Enumerator.h"
#include "dawn/common/MatchVariant.h"
#include "dawn/common/Numeric.h"
#include "dawn/common/Range.h"
#include "dawn/common/ityp_stack_vec.h"
#include "dawn/native/BindGroupLayout.h"
#include "dawn/native/ChainUtils.h"
#include "dawn/native/CommandValidation.h"
#include "dawn/native/Device.h"
#include "dawn/native/ObjectContentHasher.h"
#include "dawn/native/ObjectType_autogen.h"
#include "dawn/native/ShaderModule.h"
namespace dawn::native {
ResultOrError<UnpackedPtr<PipelineLayoutDescriptor>> ValidatePipelineLayoutDescriptor(
DeviceBase* device,
const PipelineLayoutDescriptor* descriptor,
PipelineCompatibilityToken pipelineCompatibilityToken) { … }
StageAndDescriptor::StageAndDescriptor(SingleShaderStage shaderStage,
ShaderModuleBase* module,
const char* entryPoint,
size_t constantCount,
ConstantEntry const* constants)
: … { … }
PipelineLayoutBase::PipelineLayoutBase(DeviceBase* device,
const UnpackedPtr<PipelineLayoutDescriptor>& descriptor,
ApiObjectBase::UntrackedByDeviceTag tag)
: … { … }
PipelineLayoutBase::PipelineLayoutBase(DeviceBase* device,
const UnpackedPtr<PipelineLayoutDescriptor>& descriptor)
: … { … }
PipelineLayoutBase::PipelineLayoutBase(DeviceBase* device,
ObjectBase::ErrorTag tag,
const char* label)
: … { … }
PipelineLayoutBase::~PipelineLayoutBase() = default;
void PipelineLayoutBase::DestroyImpl() { … }
Ref<PipelineLayoutBase> PipelineLayoutBase::MakeError(DeviceBase* device, const char* label) { … }
ResultOrError<Ref<PipelineLayoutBase>> PipelineLayoutBase::CreateDefault(
DeviceBase* device,
std::vector<StageAndDescriptor> stages,
bool allowInternalBinding) { … }
ObjectType PipelineLayoutBase::GetType() const { … }
const BindGroupLayoutBase* PipelineLayoutBase::GetFrontendBindGroupLayout(
BindGroupIndex group) const { … }
BindGroupLayoutBase* PipelineLayoutBase::GetFrontendBindGroupLayout(BindGroupIndex group) { … }
const BindGroupLayoutInternalBase* PipelineLayoutBase::GetBindGroupLayout(
BindGroupIndex group) const { … }
BindGroupLayoutInternalBase* PipelineLayoutBase::GetBindGroupLayout(BindGroupIndex group) { … }
const BindGroupMask& PipelineLayoutBase::GetBindGroupLayoutsMask() const { … }
bool PipelineLayoutBase::HasPixelLocalStorage() const { … }
const std::vector<wgpu::TextureFormat>& PipelineLayoutBase::GetStorageAttachmentSlots() const { … }
bool PipelineLayoutBase::HasAnyStorageAttachments() const { … }
BindGroupMask PipelineLayoutBase::InheritedGroupsMask(const PipelineLayoutBase* other) const { … }
BindGroupIndex PipelineLayoutBase::GroupsInheritUpTo(const PipelineLayoutBase* other) const { … }
size_t PipelineLayoutBase::ComputeContentHash() { … }
bool PipelineLayoutBase::EqualityFunc::operator()(const PipelineLayoutBase* a,
const PipelineLayoutBase* b) const { … }
}