45#define METAL_USE_METAL_SHADER_CONVERTER PLATFORM_SUPPORTS_BINDLESS_RENDERING
46#define METAL_RHI_RAYTRACING (METAL_USE_METAL_SHADER_CONVERTER)
49#if METAL_USE_METAL_SHADER_CONVERTER
51 #include "metal_irconverter.h"
52 #define IR_RUNTIME_METALCPP 1
53 #define IR_PRIVATE_IMPLEMENTATION 1
54 #include "metal_irconverter_runtime.h"
61#define BUFFER_CACHE_MODE MTL::ResourceCPUCacheModeDefaultCache
64#define BUFFER_MANAGED_MEM MTL::ResourceStorageModeManaged
65#define BUFFER_STORAGE_MODE MTL::StorageModeShared
66#define BUFFER_RESOURCE_STORAGE_MANAGED MTL::ResourceStorageModeManaged
67#define BUFFER_DYNAMIC_REALLOC BUF_AnyDynamic
71#define BUFFER_MANAGED_MEM 0
74#define BUFFER_STORAGE_MODE MTL::StorageModePrivate
75#define BUFFER_RESOURCE_STORAGE_MANAGED MTL::ResourceStorageModePrivate
77#define BUFFER_STORAGE_MODE MTL::StorageModeShared
78#define BUFFER_RESOURCE_STORAGE_MANAGED MTL::ResourceStorageModeShared
81#define BUFFER_DYNAMIC_REALLOC BUF_AnyDynamic
93#define METAL_SUPPORTS_INDIRECT_ARGUMENT_BUFFERS 1
94#define METAL_SUPPORTS_CAPTURE_MANAGER 1
95#define METAL_SUPPORTS_TILE_SHADERS 1
110#define METAL_DEBUG_OPTIONS !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
111#if METAL_DEBUG_OPTIONS
112 #define METAL_DEBUG_OPTION(Code) Code
114 #define METAL_DEBUG_OPTION(Code)
120#ifndef ENABLE_METAL_GPUEVENTS_IN_TEST
121 #define ENABLE_METAL_GPUEVENTS_IN_TEST 0
123#define ENABLE_METAL_GPUEVENTS (UE_BUILD_DEBUG || UE_BUILD_DEVELOPMENT || (UE_BUILD_TEST && ENABLE_METAL_GPUEVENTS_IN_TEST))
124#define ENABLE_METAL_GPUPROFILE (ENABLE_METAL_GPUEVENTS && 1)
126#if ENABLE_METAL_GPUPROFILE && RHI_NEW_GPU_PROFILER == 0
127 #define METAL_GPUPROFILE(Code) Code
129 #define METAL_GPUPROFILE(Code)
132#define UNREAL_TO_METAL_BUFFER_INDEX(Index) ((MaxMetalStreams - 1) - Index)
133#define METAL_TO_UNREAL_BUFFER_INDEX(Index) ((MaxMetalStreams - 1) - Index)
135#define METAL_NEW_NONNULL_DECL (__clang_major__ >= 9)
138#define METAL_FATAL_ERROR(Format, ...) { UE_LOG(LogMetal, Warning, Format, __VA_ARGS__); FIOSPlatformMisc::MetalAssert(); }
140#define METAL_FATAL_ERROR(Format, ...) UE_LOG(LogMetal, Fatal, Format, __VA_ARGS__)
142#define METAL_FATAL_ASSERT(Condition, Format, ...) if (!(Condition)) { METAL_FATAL_ERROR(Format, __VA_ARGS__); }
144#if !defined(METAL_IGNORED)
145 #define METAL_IGNORED(Func)
156#define NOT_SUPPORTED(Func) UE_LOG(LogMetal, Fatal, TEXT("'%s' is not supported"), TEXT(Func));
188 default:
return MTL::LoadActionDontCare;
207template<
typename TRHIType>
225#if PLATFORM_SUPPORTS_GEOMETRY_SHADERS
228#if PLATFORM_SUPPORTS_MESH_SHADERS
245#if PLATFORM_SUPPORTS_GEOMETRY_SHADERS
246 case EMetalShaderStages::Geometry:
249#if PLATFORM_SUPPORTS_MESH_SHADERS
250 case EMetalShaderStages::Mesh:
252 case EMetalShaderStages::Amplification:
270#if PLATFORM_SUPPORTS_GEOMETRY_SHADERS
272 return EMetalShaderStages::Geometry;
274#if PLATFORM_SUPPORTS_MESH_SHADERS
276 return EMetalShaderStages::Mesh;
278 return EMetalShaderStages::Amplification;
294 return ((NS::String*)InputString.GetCFString())->autorelease();
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:48
DIRECTLINK_API Display
Definition DirectLinkLog.h:8
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
bool IsRunningRHIInSeparateThread()
Definition RHICommandList.h:159
EShaderFrequency
Definition RHIDefinitions.h:202
@ SF_Compute
Definition RHIDefinitions.h:208
@ SF_NumFrequencies
Definition RHIDefinitions.h:216
@ SF_Amplification
Definition RHIDefinitions.h:205
@ SF_Vertex
Definition RHIDefinitions.h:203
@ SF_Mesh
Definition RHIDefinitions.h:204
@ SF_Geometry
Definition RHIDefinitions.h:207
@ SF_Pixel
Definition RHIDefinitions.h:206
ECubeFace
Definition RHIDefinitions.h:525
@ CubeFace_NegX
Definition RHIDefinitions.h:527
@ CubeFace_PosX
Definition RHIDefinitions.h:526
@ CubeFace_NegY
Definition RHIDefinitions.h:529
@ CubeFace_NegZ
Definition RHIDefinitions.h:531
@ CubeFace_PosZ
Definition RHIDefinitions.h:530
@ CubeFace_PosY
Definition RHIDefinitions.h:528
ETextureCreateFlags
Definition RHIDefinitions.h:1091
ERenderTargetLoadAction
Definition RHIDefinitions.h:1253
FRHIGlobals GRHIGlobals
Definition RHIGlobals.cpp:6
#define GIsRHIInitialized
Definition RHIGlobals.h:756
CORE_API bool IsInRHIThread()
Definition ThreadingBase.cpp:339
CORE_API bool IsInRenderingThread()
Definition ThreadingBase.cpp:273
static RHI_API bool AreRHITasksActive()
Definition RHICommandList.cpp:1791
Definition RHIResources.h:2153
Definition Voronoi.cpp:10
PRAGMA_ENABLE_DEPRECATION_WARNINGS bool bSupportsBindless
Definition RHIGlobals.h:669