#include "dawn/native/Pipeline.h"
#include <algorithm>
#include <utility>
#include "absl/container/flat_hash_set.h"
#include "dawn/common/Enumerator.h"
#include "dawn/native/BindGroupLayout.h"
#include "dawn/native/Device.h"
#include "dawn/native/ObjectBase.h"
#include "dawn/native/ObjectContentHasher.h"
#include "dawn/native/PipelineLayout.h"
#include "dawn/native/ShaderModule.h"
namespace {
bool IsDoubleValueRepresentableAsF16(double value) { … }
}
namespace dawn::native {
ResultOrError<ShaderModuleEntryPoint> ValidateProgrammableStage(DeviceBase* device,
const ShaderModuleBase* module,
const char* entryPointName,
uint32_t constantCount,
const ConstantEntry* constants,
const PipelineLayoutBase* layout,
SingleShaderStage stage) { … }
WGPUCreatePipelineAsyncStatus CreatePipelineAsyncStatusFromErrorType(InternalErrorType error) { … }
PipelineBase::PipelineBase(DeviceBase* device,
PipelineLayoutBase* layout,
const char* label,
std::vector<StageAndDescriptor> stages)
: … { … }
PipelineBase::PipelineBase(DeviceBase* device, ObjectBase::ErrorTag tag, const char* label)
: … { … }
PipelineBase::~PipelineBase() = default;
PipelineLayoutBase* PipelineBase::GetLayout() { … }
const PipelineLayoutBase* PipelineBase::GetLayout() const { … }
const RequiredBufferSizes& PipelineBase::GetMinBufferSizes() const { … }
const ProgrammableStage& PipelineBase::GetStage(SingleShaderStage stage) const { … }
const PerStage<ProgrammableStage>& PipelineBase::GetAllStages() const { … }
bool PipelineBase::HasStage(SingleShaderStage stage) const { … }
wgpu::ShaderStage PipelineBase::GetStageMask() const { … }
MaybeError PipelineBase::ValidateGetBindGroupLayout(BindGroupIndex groupIndex) { … }
ResultOrError<Ref<BindGroupLayoutBase>> PipelineBase::GetBindGroupLayout(uint32_t groupIndexIn) { … }
BindGroupLayoutBase* PipelineBase::APIGetBindGroupLayout(uint32_t groupIndexIn) { … }
size_t PipelineBase::ComputeContentHash() { … }
bool PipelineBase::EqualForCache(const PipelineBase* a, const PipelineBase* b) { … }
PipelineBase::ScopedUseShaderPrograms PipelineBase::UseShaderPrograms() { … }
MaybeError PipelineBase::Initialize(std::optional<ScopedUseShaderPrograms> scopedUsePrograms) { … }
}