#include "dawn/native/CreatePipelineAsyncEvent.h"
#include <webgpu/webgpu.h>
#include <utility>
#include "dawn/common/FutureUtils.h"
#include "dawn/common/Ref.h"
#include "dawn/native/AsyncTask.h"
#include "dawn/native/ComputePipeline.h"
#include "dawn/native/Device.h"
#include "dawn/native/ErrorData.h"
#include "dawn/native/EventManager.h"
#include "dawn/native/Instance.h"
#include "dawn/native/RenderPipeline.h"
#include "dawn/native/SystemEvent.h"
#include "dawn/native/dawn_platform_autogen.h"
#include "dawn/native/utils/WGPUHelpers.h"
#include "dawn/native/wgpu_structs_autogen.h"
#include "dawn/platform/DawnPlatform.h"
#include "dawn/platform/metrics/HistogramMacros.h"
#include "dawn/platform/tracing/TraceEvent.h"
namespace dawn::native {
template <>
const char* CreatePipelineAsyncEvent<
ComputePipelineBase,
WGPUCreateComputePipelineAsyncCallbackInfo2>::kDawnHistogramMetricsSuccess = …;
template <>
const char*
CreatePipelineAsyncEvent<ComputePipelineBase,
WGPUCreateComputePipelineAsyncCallbackInfo2>::kDawnHistogramMetricsUS = …;
template <>
void CreatePipelineAsyncEvent<ComputePipelineBase, WGPUCreateComputePipelineAsyncCallbackInfo2>::
AddOrGetCachedPipeline() { … }
template <>
const char* CreatePipelineAsyncEvent<
RenderPipelineBase,
WGPUCreateRenderPipelineAsyncCallbackInfo2>::kDawnHistogramMetricsSuccess = …;
template <>
const char*
CreatePipelineAsyncEvent<RenderPipelineBase,
WGPUCreateRenderPipelineAsyncCallbackInfo2>::kDawnHistogramMetricsUS = …;
template <>
void CreatePipelineAsyncEvent<RenderPipelineBase, WGPUCreateRenderPipelineAsyncCallbackInfo2>::
AddOrGetCachedPipeline() { … }
template <typename PipelineType, typename CreatePipelineAsyncCallbackInfo>
CreatePipelineAsyncEvent<PipelineType, CreatePipelineAsyncCallbackInfo>::CreatePipelineAsyncEvent(
DeviceBase* device,
const CreatePipelineAsyncCallbackInfo& callbackInfo,
Ref<PipelineType> pipeline,
Ref<SystemEvent> systemEvent)
: … { … }
template <typename PipelineType, typename CreatePipelineAsyncCallbackInfo>
CreatePipelineAsyncEvent<PipelineType, CreatePipelineAsyncCallbackInfo>::CreatePipelineAsyncEvent(
DeviceBase* device,
const CreatePipelineAsyncCallbackInfo& callbackInfo,
Ref<PipelineType> pipeline)
: … { … }
template <typename PipelineType, typename CreatePipelineAsyncCallbackInfo>
CreatePipelineAsyncEvent<PipelineType, CreatePipelineAsyncCallbackInfo>::CreatePipelineAsyncEvent(
DeviceBase* device,
const CreatePipelineAsyncCallbackInfo& callbackInfo,
std::unique_ptr<ErrorData> error,
const char* label)
: … { … }
template <typename PipelineType, typename CreatePipelineAsyncCallbackInfo>
CreatePipelineAsyncEvent<PipelineType,
CreatePipelineAsyncCallbackInfo>::~CreatePipelineAsyncEvent() { … }
template <typename PipelineType, typename CreatePipelineAsyncCallbackInfo>
void CreatePipelineAsyncEvent<PipelineType, CreatePipelineAsyncCallbackInfo>::InitializeImpl(
bool isAsync) { … }
template <typename PipelineType, typename CreatePipelineAsyncCallbackInfo>
void CreatePipelineAsyncEvent<PipelineType, CreatePipelineAsyncCallbackInfo>::InitializeSync() { … }
template <typename PipelineType, typename CreatePipelineAsyncCallbackInfo>
void CreatePipelineAsyncEvent<PipelineType, CreatePipelineAsyncCallbackInfo>::InitializeAsync() { … }
template <typename PipelineType, typename CreatePipelineAsyncCallbackInfo>
void CreatePipelineAsyncEvent<PipelineType, CreatePipelineAsyncCallbackInfo>::Complete(
EventCompletionType completionType) { … }
template class CreatePipelineAsyncEvent<ComputePipelineBase,
WGPUCreateComputePipelineAsyncCallbackInfo2>;
template class CreatePipelineAsyncEvent<RenderPipelineBase,
WGPUCreateRenderPipelineAsyncCallbackInfo2>;
}