Files
UnrealEngine/Engine/Plugins/Experimental/NNERuntimeIREE/Source/IREEDriverRDG/Private/IREEDriverRDGShaderParametersMetadata.h
2025-05-18 13:04:45 +08:00

79 lines
1.5 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "IREEDriverRDGShaderParametersMetadata.generated.h"
UENUM()
enum class FIREEDriverRDGUniformBufferBaseType : uint8
{
INVALID,
PARAM,
PARAM_ARRAY,
BUFFER_UAV
};
UENUM()
enum class FIREEDriverRDGUniformBufferElementType : uint8
{
NONE,
UINT32
};
USTRUCT()
struct FIREEDriverRDGShaderParametersMetadataEntry
{
GENERATED_BODY()
UPROPERTY()
FIREEDriverRDGUniformBufferBaseType Type = FIREEDriverRDGUniformBufferBaseType::INVALID;
UPROPERTY()
FString Name;
UPROPERTY()
FString ShaderType;
UPROPERTY()
uint32 Binding = 0;
UPROPERTY()
uint32 DescriptorSet = 0;
UPROPERTY()
FIREEDriverRDGUniformBufferElementType ElementType = FIREEDriverRDGUniformBufferElementType::NONE;
UPROPERTY()
uint32 NumElements = 0;
};
USTRUCT()
struct FIREEDriverRDGShaderParametersMetadata
{
GENERATED_BODY()
UPROPERTY()
TArray<FIREEDriverRDGShaderParametersMetadataEntry> Entries;
};
#ifdef WITH_IREE_DRIVER_RDG
#include "Containers/Array.h"
#include "NNERuntimeIREEShaderMetadataAllocations.h"
class FShaderParametersMetadata;
namespace UE::IREE::HAL::RDG
{
#if WITH_EDITOR
bool BuildIREEShaderParametersMetadata(const FString& Filepath, FIREEDriverRDGShaderParametersMetadata& Metadata);
#endif // WITH_EDITOR
FShaderParametersMetadata* BuildShaderParametersMetadata(const FIREEDriverRDGShaderParametersMetadata& Metadata, FNNERuntimeIREEShaderParametersMetadataAllocations& Allocations);
} // namespace UE::IREE::HAL::RDG
#endif // WITH_IREE_DRIVER_RDG