UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FOpenGLDynamicRHI Class Referencefinal

#include <OpenGLDrv.h>

+ Inheritance diagram for FOpenGLDynamicRHI:

Classes

struct  FTextureLockTracker
 

Public Member Functions

UE_API FOpenGLDynamicRHI ()
 
 ~FOpenGLDynamicRHI ()
 
virtual UE_API int32 RHIGetGLMajorVersion () const final override
 
virtual UE_API int32 RHIGetGLMinorVersion () const final override
 
virtual UE_API bool RHISupportsFramebufferSRGBEnable () const final override
 
virtual UE_API FTextureRHIRef RHICreateTexture2DFromResource (EPixelFormat Format, uint32 SizeX, uint32 SizeY, uint32 NumMips, uint32 NumSamples, uint32 NumSamplesTileMem, const FClearValueBinding &ClearValueBinding, GLuint Resource, ETextureCreateFlags Flags) final override
 
virtual UE_API FTextureRHIRef RHICreateTexture2DArrayFromResource (EPixelFormat Format, uint32 SizeX, uint32 SizeY, uint32 ArraySize, uint32 NumMips, uint32 NumSamples, uint32 NumSamplesTileMem, const FClearValueBinding &ClearValueBinding, GLuint Resource, ETextureCreateFlags Flags) final override
 
virtual UE_API FTextureRHIRef RHICreateTextureCubeFromResource (EPixelFormat Format, uint32 Size, bool bArray, uint32 ArraySize, uint32 NumMips, uint32 NumSamples, uint32 NumSamplesTileMem, const FClearValueBinding &ClearValueBinding, GLuint Resource, ETextureCreateFlags Flags) final override
 
virtual UE_API GLuint RHIGetResource (FRHITexture *InTexture) const final override
 
virtual UE_API bool RHIIsValidTexture (GLuint InTexture) const final override
 
virtual UE_API void RHISetExternalGPUTime (uint64 InExternalGPUTime) final override
 
virtual UE_API void Init () override
 
virtual UE_API void Shutdown () override
 
virtual const TCHARGetName () override
 
UE_API void BindUniformBuffer (EShaderFrequency ShaderFrequency, uint32 BufferIndex, FRHIUniformBuffer *BufferRHI)
 
UE_API void SetShaderParametersCommon (EShaderFrequency ShaderFrequency, TConstArrayView< uint8 > InParametersData, TConstArrayView< FRHIShaderParameter > InParameters, TConstArrayView< FRHIShaderParameterResource > InResourceParameters)
 
UE_API void SetShaderUnbindsCommon (EShaderFrequency ShaderFrequency, TConstArrayView< FRHIShaderParameterUnbind > InUnbinds)
 
virtual UE_API FRasterizerStateRHIRef RHICreateRasterizerState (const FRasterizerStateInitializerRHI &Initializer) final override
 
virtual UE_API FDepthStencilStateRHIRef RHICreateDepthStencilState (const FDepthStencilStateInitializerRHI &Initializer) final override
 
virtual UE_API FBlendStateRHIRef RHICreateBlendState (const FBlendStateInitializerRHI &Initializer) final override
 
virtual UE_API FVertexDeclarationRHIRef RHICreateVertexDeclaration (const FVertexDeclarationElementList &Elements) final override
 
virtual UE_API FPixelShaderRHIRef RHICreatePixelShader (TArrayView< const uint8 > Code, const FSHAHash &Hash) final override
 
virtual UE_API FVertexShaderRHIRef RHICreateVertexShader (TArrayView< const uint8 > Code, const FSHAHash &Hash) final override
 
virtual UE_API FGeometryShaderRHIRef RHICreateGeometryShader (TArrayView< const uint8 > Code, const FSHAHash &Hash) final override
 
virtual UE_API FComputeShaderRHIRef RHICreateComputeShader (TArrayView< const uint8 > Code, const FSHAHash &Hash) final override
 
virtual UE_API FShaderResourceViewRHIRef RHICreateShaderResourceView (class FRHICommandListBase &RHICmdList, FRHIViewableResource *Resource, FRHIViewDesc const &ViewDesc) final override
 
virtual UE_API FUnorderedAccessViewRHIRef RHICreateUnorderedAccessView (class FRHICommandListBase &RHICmdList, FRHIViewableResource *Resource, FRHIViewDesc const &ViewDesc) final override
 
virtual UE_API FUniformBufferRHIRef RHICreateUniformBuffer (const void *Contents, const FRHIUniformBufferLayout *Layout, EUniformBufferUsage Usage, EUniformBufferValidation Validation) final override
 
virtual UE_API void RHIUpdateUniformBuffer (FRHICommandListBase &RHICmdList, FRHIUniformBuffer *UniformBufferRHI, const void *Contents) final override
 
virtual UE_API FRHIBufferInitializer RHICreateBufferInitializer (FRHICommandListBase &RHICmdList, const FRHIBufferCreateDesc &CreateDesc) final override
 
virtual UE_API void RHIReplaceResources (FRHICommandListBase &RHICmdList, TArray< FRHIResourceReplaceInfo > &&ReplaceInfos) final override
 
virtual UE_API voidLockBuffer_BottomOfPipe (FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer, uint32 Offset, uint32 Size, EResourceLockMode LockMode) final override
 
virtual UE_API void UnlockBuffer_BottomOfPipe (FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer) final override
 
virtual UE_API FRHICalcTextureSizeResult RHICalcTexturePlatformSize (FRHITextureDesc const &Desc, uint32 FirstMipIndex) final override
 
virtual UE_API void RHIGetTextureMemoryStats (FTextureMemoryStats &OutStats) final override
 
virtual UE_API bool RHIGetTextureMemoryVisualizeData (FColor *TextureData, int32 SizeX, int32 SizeY, int32 Pitch, int32 PixelSize) final override
 
virtual UE_API FRHITextureInitializer RHICreateTextureInitializer (FRHICommandListBase &RHICmdList, const FRHITextureCreateDesc &CreateDesc) final override
 
virtual UE_API FTextureRHIRef RHIAsyncCreateTexture2D (uint32 SizeX, uint32 SizeY, uint8 Format, uint32 NumMips, ETextureCreateFlags Flags, ERHIAccess InResourceState, void **InitialMipData, uint32 NumInitialMips, const TCHAR *DebugName, FGraphEventRef &OutCompletionEvent) final override
 
virtual UE_API void RHIGenerateMips (FRHITexture *Texture) final override
 
virtual UE_API uint32 RHIComputeMemorySize (FRHITexture *TextureRHI) final override
 
virtual UE_API FTextureRHIRef RHIAsyncReallocateTexture2D (FRHITexture *Texture2D, int32 NewMipCount, int32 NewSizeX, int32 NewSizeY, FThreadSafeCounter *RequestStatus) final override
 
virtual UE_API FRHILockTextureResult RHILockTexture (FRHICommandListImmediate &RHICmdList, const FRHILockTextureArgs &Arguments) final override
 
virtual UE_API void RHIUnlockTexture (FRHICommandListImmediate &RHICmdList, const FRHILockTextureArgs &Arguments) final override
 
virtual UE_API void RHIUpdateTexture2D (FRHICommandListBase &RHICmdList, FRHITexture *Texture, uint32 MipIndex, const struct FUpdateTextureRegion2D &UpdateRegion, uint32 SourcePitch, const uint8 *SourceData) final override
 
virtual UE_API void RHIUpdateTexture3D (FRHICommandListBase &RHICmdList, FRHITexture *Texture, uint32 MipIndex, const struct FUpdateTextureRegion3D &UpdateRegion, uint32 SourceRowPitch, uint32 SourceDepthPitch, const uint8 *SourceData) final override
 
virtual UE_API void RHIBindDebugLabelName (FRHICommandListBase &RHICmdList, FRHITexture *Texture, const TCHAR *Name) final override
 
virtual UE_API void RHIReadSurfaceData (FRHITexture *Texture, FIntRect Rect, TArray< FColor > &OutData, FReadSurfaceDataFlags InFlags) final override
 
virtual UE_API void RHIReadSurfaceData (FRHITexture *Texture, FIntRect Rect, TArray< FLinearColor > &OutData, FReadSurfaceDataFlags InFlags) final override
 
virtual UE_API void RHIMapStagingSurface (FRHITexture *Texture, FRHIGPUFence *Fence, void *&OutData, int32 &OutWidth, int32 &OutHeight, uint32 GPUIndex=0) final override
 
virtual UE_API void RHIUnmapStagingSurface (FRHITexture *Texture, uint32 GPUIndex=0) final override
 
virtual UE_API void RHIReadSurfaceFloatData (FRHITexture *Texture, FIntRect Rect, TArray< FFloat16Color > &OutData, ECubeFace CubeFace, int32 ArrayIndex, int32 MipIndex) final override
 
virtual UE_API void RHIRead3DSurfaceFloatData (FRHITexture *Texture, FIntRect Rect, FIntPoint ZMinMax, TArray< FFloat16Color > &OutData) final override
 
virtual UE_API FRenderQueryRHIRef RHICreateRenderQuery (ERenderQueryType QueryType) final override
 
virtual UE_API bool RHIGetRenderQueryResult (FRHIRenderQuery *RenderQuery, uint64 &OutResult, bool bWait, uint32 GPUIndex=INDEX_NONE) final override
 
virtual UE_API FTextureRHIRef RHIGetViewportBackBuffer (FRHIViewport *Viewport) final override
 
virtual UE_API void RHIAliasTextureResources (FTextureRHIRef &DestTextureRHI, FTextureRHIRef &SrcTextureRHI) final override
 
virtual UE_API FTextureRHIRef RHICreateAliasedTexture (FTextureRHIRef &SourceTexture) final override
 
virtual UE_API void RHIAdvanceFrameForGetViewportBackBuffer (FRHIViewport *Viewport, bool bPresent) final override
 
virtual UE_API void RHIAcquireThreadOwnership () final override
 
virtual UE_API void RHIReleaseThreadOwnership () final override
 
virtual UE_API void RHIFlushResources () final override
 
virtual UE_API FViewportRHIRef RHICreateViewport (void *WindowHandle, uint32 SizeX, uint32 SizeY, bool bIsFullscreen, EPixelFormat PreferredPixelFormat) final override
 
virtual UE_API void RHIResizeViewport (FRHIViewport *Viewport, uint32 SizeX, uint32 SizeY, bool bIsFullscreen) final override
 
virtual UE_API EPixelFormat RHIPreferredPixelFormatHint (EPixelFormat PreferredPixelFormat) final override
 
virtual UE_API void RHITick (float DeltaTime) final override
 
virtual UE_API void RHIBlockUntilGPUIdle () final override
 
virtual UE_API bool RHIGetAvailableResolutions (FScreenResolutionArray &Resolutions, bool bIgnoreRefreshRate) final override
 
virtual UE_API void RHIGetSupportedResolution (uint32 &Width, uint32 &Height) final override
 
virtual UE_API voidRHIGetNativeDevice () final override
 
virtual UE_API voidRHIGetNativeInstance () final override
 
virtual UE_API class IRHICommandContextRHIGetDefaultContext () final override
 
virtual UE_API IRHIComputeContextRHIGetCommandContext (ERHIPipeline Pipeline, FRHIGPUMask GPUMask) final override
 
virtual UE_API void RHIFinalizeContext (FRHIFinalizeContextArgs &&Args, TRHIPipelineArray< IRHIPlatformCommandList * > &Output) final override
 
virtual UE_API void RHISubmitCommandLists (FRHISubmitCommandListsArgs &&Args) final override
 
virtual UE_API void RHIBeginRenderPass (const FRHIRenderPassInfo &InInfo, const TCHAR *InName) final override
 
virtual UE_API void RHIEndRenderPass () final override
 
virtual UE_API void RHINextSubpass () final override
 
virtual UE_API void RHIBeginTransitions (TArrayView< const FRHITransition * > Transitions) override final
 
virtual UE_API void RHIEndTransitions (TArrayView< const FRHITransition * > Transitions) override final
 
virtual UE_API void RHISetComputeShader (FRHIComputeShader *ComputeShader) final override
 
virtual UE_API void RHIDispatchComputeShader (uint32 ThreadGroupCountX, uint32 ThreadGroupCountY, uint32 ThreadGroupCountZ) final override
 
virtual UE_API void RHIDispatchIndirectComputeShader (FRHIBuffer *ArgumentBuffer, uint32 ArgumentOffset) final override
 
virtual UE_API void RHISetMultipleViewports (uint32 Count, const FViewportBounds *Data) final override
 
virtual UE_API void RHIClearUAVFloat (FRHIUnorderedAccessView *UnorderedAccessViewRHI, const FVector4f &Values) final override
 
virtual UE_API void RHIClearUAVUint (FRHIUnorderedAccessView *UnorderedAccessViewRHI, const FUintVector4 &Values) final override
 
virtual UE_API void RHIBeginRenderQuery_TopOfPipe (FRHICommandListBase &RHICmdList, FRHIRenderQuery *RenderQuery) override final
 
virtual UE_API void RHIEndRenderQuery_TopOfPipe (FRHICommandListBase &RHICmdList, FRHIRenderQuery *RenderQuery) override final
 
virtual UE_API void RHIBeginRenderQuery (FRHIRenderQuery *RenderQuery) final override
 
virtual UE_API void RHIEndRenderQuery (FRHIRenderQuery *RenderQuery) final override
 
virtual UE_API void RHIEndDrawingViewport (FRHIViewport *Viewport, bool bPresent, bool bLockToVsync) final override
 
virtual UE_API void RHIEndFrame (const FRHIEndFrameArgs &Args) final override
 
virtual UE_API void RHISetStreamSource (uint32 StreamIndex, FRHIBuffer *VertexBuffer, uint32 Offset) final override
 
virtual UE_API void RHISetRasterizerState (FRHIRasterizerState *NewState) final override
 
virtual UE_API void RHISetViewport (float MinX, float MinY, float MinZ, float MaxX, float MaxY, float MaxZ) final override
 
virtual UE_API void RHISetScissorRect (bool bEnable, uint32 MinX, uint32 MinY, uint32 MaxX, uint32 MaxY) final override
 
virtual UE_API void RHISetBoundShaderState (FRHIBoundShaderState *BoundShaderState) final override
 
virtual UE_API void RHISetStaticUniformBuffers (const FUniformBufferStaticBindings &InUniformBuffers) final override
 
virtual UE_API void RHISetStaticUniformBuffer (FUniformBufferStaticSlot Slot, FRHIUniformBuffer *Buffer) final override
 
virtual UE_API void RHISetUniformBufferDynamicOffset (FUniformBufferStaticSlot Slot, uint32 Offset) final override
 
virtual UE_API void RHISetShaderParameters (FRHIGraphicsShader *Shader, TConstArrayView< uint8 > InParametersData, TConstArrayView< FRHIShaderParameter > InParameters, TConstArrayView< FRHIShaderParameterResource > InResourceParameters, TConstArrayView< FRHIShaderParameterResource > InBindlessParameters) final override
 
virtual UE_API void RHISetShaderParameters (FRHIComputeShader *Shader, TConstArrayView< uint8 > InParametersData, TConstArrayView< FRHIShaderParameter > InParameters, TConstArrayView< FRHIShaderParameterResource > InResourceParameters, TConstArrayView< FRHIShaderParameterResource > InBindlessParameters) final override
 
virtual UE_API void RHISetShaderUnbinds (FRHIComputeShader *Shader, TConstArrayView< FRHIShaderParameterUnbind > InUnbinds) final override
 
virtual UE_API void RHISetShaderUnbinds (FRHIGraphicsShader *Shader, TConstArrayView< FRHIShaderParameterUnbind > InUnbinds) final override
 
virtual UE_API void RHISetDepthStencilState (FRHIDepthStencilState *NewState, uint32 StencilRef) final override
 
virtual UE_API void RHISetStencilRef (uint32 StencilRef) final override
 
virtual UE_API void RHISetBlendState (FRHIBlendState *NewState, const FLinearColor &BlendFactor) final override
 
virtual void RHISetBlendFactor (const FLinearColor &BlendFactor) final override
 
UE_API void SetRenderTargets (uint32 NumSimultaneousRenderTargets, const FRHIRenderTargetView *NewRenderTargets, const FRHIDepthRenderTargetView *NewDepthStencilTarget)
 
UE_API void SetRenderTargetsAndClear (const FRHISetRenderTargetsInfo &RenderTargetsInfo)
 
virtual UE_API void RHIDrawPrimitive (uint32 BaseVertexIndex, uint32 NumPrimitives, uint32 NumInstances) final override
 
virtual UE_API void RHIDrawPrimitiveIndirect (FRHIBuffer *ArgumentBuffer, uint32 ArgumentOffset) final override
 
virtual UE_API void RHIDrawIndexedIndirect (FRHIBuffer *IndexBufferRHI, FRHIBuffer *ArgumentsBufferRHI, int32 DrawArgumentsIndex, uint32 NumInstances) final override
 
virtual UE_API void RHIDrawIndexedPrimitive (FRHIBuffer *IndexBuffer, int32 BaseVertexIndex, uint32 FirstInstance, uint32 NumVertices, uint32 StartIndex, uint32 NumPrimitives, uint32 NumInstances) final override
 
virtual UE_API void RHIDrawIndexedPrimitiveIndirect (FRHIBuffer *IndexBuffer, FRHIBuffer *ArgumentBuffer, uint32 ArgumentOffset) final override
 
virtual UE_API void RHIEnableDepthBoundsTest (bool bEnable) final override
 
virtual UE_API void RHISetDepthBounds (float MinDepth, float MaxDepth) final override
 
void DiscardRenderTargets (bool Depth, bool Stencil, uint32 ColorBitMask)
 
virtual UE_API void RHICopyTexture (FRHITexture *SourceTexture, FRHITexture *DestTexture, const FRHICopyTextureInfo &CopyInfo) final override
 
virtual UE_API void RHICopyBufferRegion (FRHIBuffer *DestBuffer, uint64 DstOffset, FRHIBuffer *SourceBuffer, uint64 SrcOffset, uint64 NumBytes) final override
 
virtual UE_API void RHICopyToStagingBuffer (FRHIBuffer *SourceBufferRHI, FRHIStagingBuffer *DestinationStagingBufferRHI, uint32 InOffset, uint32 InNumBytes) final override
 
virtual UE_API void RHIWriteGPUFence_TopOfPipe (FRHICommandListBase &RHICmdList, FRHIGPUFence *FenceRHI) final override
 
virtual UE_API void RHIWriteGPUFence (FRHIGPUFence *FenceRHI) final override
 
virtual UE_API voidRHILockStagingBuffer (FRHIStagingBuffer *StagingBuffer, FRHIGPUFence *Fence, uint32 Offset, uint32 SizeRHI) final override
 
virtual UE_API void RHIUnlockStagingBuffer (FRHIStagingBuffer *StagingBuffer) final override
 
virtual UE_API voidLockStagingBuffer_RenderThread (class FRHICommandListImmediate &RHICmdList, FRHIStagingBuffer *StagingBuffer, FRHIGPUFence *Fence, uint32 Offset, uint32 SizeRHI) final override
 
virtual UE_API void UnlockStagingBuffer_RenderThread (class FRHICommandListImmediate &RHICmdList, FRHIStagingBuffer *StagingBuffer) final override
 
virtual UE_API void RHIMapStagingSurface_RenderThread (class FRHICommandListImmediate &RHICmdList, FRHITexture *Texture, uint32 GPUIndex, FRHIGPUFence *Fence, void *&OutData, int32 &OutWidth, int32 &OutHeight) final override
 
virtual UE_API void RHIUnmapStagingSurface_RenderThread (class FRHICommandListImmediate &RHICmdList, FRHITexture *Texture, uint32 GPUIndex) final override
 
virtual UE_API FStagingBufferRHIRef RHICreateStagingBuffer () final override
 
virtual UE_API FGPUFenceRHIRef RHICreateGPUFence (const FName &Name) final override
 
virtual UE_API uint64 RHIGetMinimumAlignmentForBufferBackedSRV (EPixelFormat Format) final override
 
virtual UE_API uint64 RHIComputeStatePrecachePSOHash (const FGraphicsPipelineStateInitializer &Initializer) final override
 
virtual UE_API uint64 RHIComputePrecachePSOHash (const FGraphicsPipelineStateInitializer &Initializer) final override
 
virtual UE_API bool RHIMatchPrecachePSOInitializers (const FGraphicsPipelineStateInitializer &LHS, const FGraphicsPipelineStateInitializer &RHS) final override
 
UE_API void Cleanup ()
 
UE_API void PurgeFramebufferFromCaches (GLuint Framebuffer)
 
UE_API void OnBufferDeletion (GLenum Type, GLuint BufferResource)
 
UE_API void OnProgramDeletion (GLint ProgramResource)
 
UE_API void InvalidateTextureResourceInCache (GLuint Resource)
 
UE_API void InvalidateUAVResourceInCache (GLuint Resource)
 
FORCEINLINE void CachedSetupTextureStage (GLint TextureIndex, GLenum Target, GLuint Resource, GLint BaseMip, GLint NumMips)
 
UE_API void CachedSetupTextureStageInner (GLint TextureIndex, GLenum Target, GLuint Resource, GLint BaseMip, GLint NumMips)
 
UE_API void CachedSetupUAVStage (GLint UAVIndex, GLenum Format, GLuint Resource, bool bLayered, GLint Layer, GLenum Access, GLint Level)
 
UE_API void UpdateSRV (FOpenGLShaderResourceView *SRV)
 
void CachedBindUniformBuffer (GLuint Buffer)
 
void CachedBindBuffer (GLenum Type, GLuint Buffer)
 
FOpenGLSamplerStateGetPointSamplerState () const
 
UE_API void InitializeGLTexture (FOpenGLTexture *Texture, const void *BulkDataPtr, uint64 BulkDataSize)
 
UE_API void SetCustomPresent (class FRHICustomPresent *InCustomPresent)
 
virtual UE_API FTextureRHIRef AsyncReallocateTexture2D_RenderThread (class FRHICommandListImmediate &RHICmdList, FRHITexture *Texture2D, int32 NewMipCount, int32 NewSizeX, int32 NewSizeY, FThreadSafeCounter *RequestStatus) final override
 
virtual UE_API FSamplerStateRHIRef RHICreateSamplerState (const FSamplerStateInitializerRHI &Initializer) final override
 
virtual FGraphicsPipelineStateRHIRef RHICreateGraphicsPipelineState (const FGraphicsPipelineStateInitializer &Initializer) override
 
virtual UE_API void RHISetGraphicsPipelineState (FRHIGraphicsPipelineState *GraphicsState, uint32 StencilRef, bool bApplyAdditionalState) final override
 
virtual FBoundShaderStateRHIRef RHICreateBoundShaderState (FRHIVertexDeclaration *VertexDeclarationRHI, FRHIVertexShader *VertexShaderRHI, FRHIPixelShader *PixelShaderRHI, FRHIGeometryShader *GeometryShaderRHI) final override
 
UE_API void LinkComputeProgram (FRHIComputeShader *ComputeShaderRHI)
 
virtual UE_API void RHIPostExternalCommandsReset () final override
 
UE_API GLuint GetOpenGLFramebuffer (uint32 NumSimultaneousRenderTargets, FOpenGLTexture **RenderTargets, const uint32 *ArrayIndices, const uint32 *MipmapLevels, FOpenGLTexture *DepthStencilTarget)
 
UE_API GLuint GetOpenGLFramebuffer (uint32 NumSimultaneousRenderTargets, FOpenGLTexture **RenderTargets, const uint32 *ArrayIndices, const uint32 *MipmapLevels, FOpenGLTexture *DepthStencilTarget, FExclusiveDepthStencil DepthStencilAccess, int32 NumRenderingSamples)
 
UE_API void ResolveTexture (FOpenGLTexture *Texture, uint32 MipIndex, uint32 ArrayIndex)
 
UE_API void InternalSetShaderTexture (FOpenGLTexture *Texture, FOpenGLShaderResourceView *SRV, GLint TextureIndex, GLenum Target, GLuint Resource, int NumMips, int LimitMip)
 
UE_API void InternalSetShaderImageUAV (GLint UAVIndex, GLenum Format, GLuint Resource, bool bLayered, GLint Layer, GLenum Access, GLint Level)
 
UE_API void InternalSetShaderBufferUAV (GLint UAVIndex, GLuint Resource)
 
UE_API void InternalSetSamplerStates (GLint TextureIndex, FOpenGLSamplerState *SamplerState)
 
UE_API void InitializeGLTextureInternal (FOpenGLTexture *Texture, void const *BulkDataPtr, uint64 BulkDataSize)
 
UE_API void ClearCachedAttributeState (int32 PositionAttrib, int32 TexCoordsAttrib)
 
template<class ShaderType >
FORCEINLINE void SetResourcesFromTables (ShaderType *Shader)
 
- Public Member Functions inherited from IOpenGLDynamicRHI
virtual ERHIInterfaceType GetInterfaceType () const override final
 
- Public Member Functions inherited from FDynamicRHIPSOFallback
virtual FComputePipelineStateRHIRef RHICreateComputePipelineState (const FComputePipelineStateInitializer &Initializer) override
 
- Public Member Functions inherited from FDynamicRHI
virtual RHI_API ~FDynamicRHI ()
 
virtual void PostInit ()
 
virtual FDynamicRHIGetNonValidationRHI ()
 
void InitPixelFormatInfo (const TArray< uint32 > &PixelFormatBlockBytesIn)
 
virtual RHI_API void RHIEndFrame_RenderThread (FRHICommandListImmediate &RHICmdList)
 
virtual FMeshShaderRHIRef RHICreateMeshShader (TArrayView< const uint8 > Code, const FSHAHash &Hash)
 
virtual FAmplificationShaderRHIRef RHICreateAmplificationShader (TArrayView< const uint8 > Code, const FSHAHash &Hash)
 
virtual void FlushPendingLogs ()
 
virtual FWorkGraphShaderRHIRef RHICreateWorkGraphShader (TArrayView< const uint8 > Code, const FSHAHash &Hash, EShaderFrequency ShaderFrequency)
 
virtual FRHIShaderLibraryRef RHICreateShaderLibrary (EShaderPlatform Platform, FString const &FilePath, FString const &Name)
 
virtual void RHICreateTransition (FRHITransition *Transition, const FRHITransitionCreateInfo &CreateInfo)
 
virtual void RHIReleaseTransition (FRHITransition *Transition)
 
virtual IRHITransientResourceAllocatorRHICreateTransientResourceAllocator ()
 
virtual FWorkGraphPipelineStateRHIRef RHICreateWorkGraphPipelineState (const FWorkGraphPipelineStateInitializer &Initializer)
 
virtual RHI_API voidRHILockBuffer (FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer, uint32 Offset, uint32 Size, EResourceLockMode LockMode)
 
virtual RHI_API voidRHILockBufferMGPU (FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer, uint32 GPUIndex, uint32 Offset, uint32 Size, EResourceLockMode LockMode)
 
virtual RHI_API void RHIUnlockBuffer (FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer)
 
virtual RHI_API void RHIUnlockBufferMGPU (FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer, uint32 GPUIndex)
 
virtual RHI_API void RHIUpdateTextureReference (FRHICommandListBase &RHICmdList, FRHITextureReference *TextureRef, FRHITexture *NewTexture)
 
virtual RHI_API FTextureReferenceRHIRef RHICreateTextureReference (FRHICommandListBase &RHICmdList, FRHITexture *InReferencedTexture)
 
virtual FRHIResourceCollectionRef RHICreateResourceCollection (FRHICommandListBase &RHICmdList, TConstArrayView< FRHIResourceCollectionMember > InMembers)
 
virtual void RHIUpdateResourceCollection (FRHICommandListBase &RHICmdList, FRHIResourceCollection *InResourceCollection, uint32 InStartIndex, TConstArrayView< FRHIResourceCollectionMember > InMemberUpdates)
 
virtual void RHIUpdateFromBufferTexture2D (FRHICommandListBase &RHICmdList, FRHITexture *Texture, uint32 MipIndex, const struct FUpdateTextureRegion2D &UpdateRegion, uint32 SourcePitch, FRHIBuffer *Buffer, uint32 BufferOffset)
 
virtual RHI_API void RHIBindDebugLabelName (FRHICommandListBase &RHICmdList, FRHIBuffer *Buffer, const TCHAR *Name)
 
virtual RHI_API void RHIBindDebugLabelName (FRHICommandListBase &RHICmdList, FRHIUnorderedAccessView *UnorderedAccessViewRHI, const TCHAR *Name)
 
virtual RHI_API void RHIReadSurfaceFloatData (FRHITexture *Texture, FIntRect Rect, TArray< FFloat16Color > &OutData, FReadSurfaceDataFlags InFlags)
 
virtual RHI_API void RHIRead3DSurfaceFloatData (FRHITexture *Texture, FIntRect Rect, FIntPoint ZMinMax, TArray< FFloat16Color > &OutData, FReadSurfaceDataFlags InFlags)
 
virtual void RHIBeginRenderQueryBatch_TopOfPipe (FRHICommandListBase &RHICmdList, ERenderQueryType QueryType)
 
virtual void RHIEndRenderQueryBatch_TopOfPipe (FRHICommandListBase &RHICmdList, ERenderQueryType QueryType)
 
virtual uint32 RHIGetViewportNextPresentGPUIndex (FRHIViewport *Viewport)
 
virtual FUnorderedAccessViewRHIRef RHIGetViewportBackBufferUAV (FRHIViewport *ViewportRHI)
 
virtual uint32 RHIGetHTilePlatformConfig (uint32 DepthWidth, uint32 DepthHeight) const
 
virtual uint32 RHIGetHTilePlatformConfig (const FRHITextureDesc &DepthDesc) const
 
virtual void RHIGetDisplaysInformation (FDisplayInformationArray &OutDisplayInformation)
 
virtual void RHIResizeViewport (FRHIViewport *Viewport, uint32 SizeX, uint32 SizeY, bool bIsFullscreen, EPixelFormat PreferredPixelFormat)
 
virtual RHI_API void RHICheckViewportHDRStatus (FRHIViewport *Viewport)
 
virtual void RHIHandleDisplayChange ()
 
virtual void RHIBeginSuspendRendering ()
 
virtual void RHISuspendRendering ()
 
virtual void RHIResumeRendering ()
 
virtual bool RHIIsRenderingSuspended ()
 
virtual RHI_API void RHIVirtualTextureSetFirstMipInMemory (class FRHICommandListImmediate &RHICmdList, FRHITexture *Texture, uint32 FirstMip)
 
virtual RHI_API void RHIVirtualTextureSetFirstMipVisible (class FRHICommandListImmediate &RHICmdList, FRHITexture *Texture, uint32 FirstMip)
 
virtual voidRHIGetNativePhysicalDevice ()
 
virtual voidRHIGetNativeGraphicsQueue ()
 
virtual voidRHIGetNativeComputeQueue ()
 
virtual voidRHIGetNativeCommandBuffer ()
 
virtual IRHIComputeContextRHIGetParallelCommandContext (FRHIParallelRenderPassInfo const &ParallelRenderPass, FRHIGPUMask GPUMask)
 
virtual IRHIUploadContextRHIGetUploadContext ()
 
void RHICloseTranslateChain (FRHIFinalizeContextArgs &&Args, TRHIPipelineArray< IRHIPlatformCommandList * > &Output, bool bShouldFinalize)
 
virtual IRHIPlatformCommandListRHIFinalizeParallelContext (IRHIComputeContext *Context)
 
virtual void RHIProcessDeleteQueue ()
 
virtual RHI_API FUpdateTexture3DData RHIBeginUpdateTexture3D (FRHICommandListBase &RHICmdList, FRHITexture *Texture, uint32 MipIndex, const struct FUpdateTextureRegion3D &UpdateRegion)
 
virtual RHI_API void RHIEndUpdateTexture3D (FRHICommandListBase &RHICmdList, FUpdateTexture3DData &UpdateData)
 
virtual RHI_API void RHIEndMultiUpdateTexture3D (FRHICommandListBase &RHICmdList, TArray< FUpdateTexture3DData > &UpdateDataArray)
 
virtual RHI_API FRHIShaderLibraryRef RHICreateShaderLibrary_RenderThread (class FRHICommandListImmediate &RHICmdList, EShaderPlatform Platform, FString FilePath, FString Name)
 
virtual RHI_API void RHIReadSurfaceFloatData_RenderThread (class FRHICommandListImmediate &RHICmdList, FRHITexture *Texture, FIntRect Rect, TArray< FFloat16Color > &OutData, ECubeFace CubeFace, int32 ArrayIndex, int32 MipIndex)
 
virtual RHI_API void RHIReadSurfaceFloatData_RenderThread (class FRHICommandListImmediate &RHICmdList, FRHITexture *Texture, FIntRect Rect, TArray< FFloat16Color > &OutData, FReadSurfaceDataFlags Flags)
 
virtual FRHIFlipDetails RHIWaitForFlip (double TimeoutInSeconds)
 
virtual void RHISignalFlipEvent ()
 
virtual uint16 RHIGetPlatformTextureMaxSampleCount ()
 
virtual FRayTracingAccelerationStructureSize RHICalcRayTracingSceneSize (const FRayTracingSceneInitializer &Initializer)
 
virtual FRayTracingAccelerationStructureSize RHICalcRayTracingGeometrySize (const FRayTracingGeometryInitializer &Initializer)
 
virtual FRayTracingClusterOperationSize RHICalcRayTracingClusterOperationSize (const FRayTracingClusterOperationInitializer &Initializer)
 
virtual FRayTracingAccelerationStructureOfflineMetadata RHIGetRayTracingGeometryOfflineMetadata (const FRayTracingGeometryOfflineDataHeader &OfflineDataHeader)
 
virtual FRayTracingGeometryRHIRef RHICreateRayTracingGeometry (FRHICommandListBase &RHICmdList, const FRayTracingGeometryInitializer &Initializer)
 
virtual FRayTracingSceneRHIRef RHICreateRayTracingScene (FRayTracingSceneInitializer Initializer)
 
virtual FRayTracingShaderRHIRef RHICreateRayTracingShader (TArrayView< const uint8 > Code, const FSHAHash &Hash, EShaderFrequency ShaderFrequency)
 
virtual FRayTracingPipelineStateRHIRef RHICreateRayTracingPipelineState (const FRayTracingPipelineStateInitializer &Initializer)
 
virtual FShaderBindingTableRHIRef RHICreateShaderBindingTable (FRHICommandListBase &RHICmdList, const FRayTracingShaderBindingTableInitializer &Initializer)
 
virtual void RHISerializeAccelerationStructure (FRHICommandListImmediate &RHICmdList, FRHIRayTracingScene *Scene, const TCHAR *Path)
 
virtual FShaderBundleRHIRef RHICreateShaderBundle (const FShaderBundleCreateInfo &CreateInfo)
 
- Public Member Functions inherited from IRHICommandContextPSOFallback
virtual void RHISetComputePipelineState (FRHIComputePipelineState *ComputePipelineState)
 
- Public Member Functions inherited from IRHICommandContext
virtual ~IRHICommandContext ()
 
virtual ERHIPipeline GetPipeline () const override
 
virtual void RHIResummarizeHTile (FRHITexture *DepthTexture)
 
virtual void RHISetStereoViewport (float LeftMinX, float RightMinX, float LeftMinY, float RightMinY, float MinZ, float LeftMaxX, float RightMaxX, float LeftMaxY, float RightMaxY, float MaxZ)
 
void RHISetBatchedShaderParameters (FRHIGraphicsShader *InShader, FRHIBatchedShaderParameters &InBatchedParameters)
 
virtual void RHIMultiDrawIndexedPrimitiveIndirect (FRHIBuffer *IndexBuffer, FRHIBuffer *ArgumentBuffer, uint32 ArgumentOffset, FRHIBuffer *CountBuffer, uint32 CountBuffeOffset, uint32 MaxDrawArguments)
 
virtual void RHIDispatchMeshShader (uint32 ThreadGroupCountX, uint32 ThreadGroupCountY, uint32 ThreadGroupCountZ)
 
virtual void RHIDispatchIndirectMeshShader (FRHIBuffer *ArgumentBuffer, uint32 ArgumentOffset)
 
virtual void RHIGpuHangCommandListCorruption ()
 
virtual void RHISetShadingRate (EVRSShadingRate ShadingRate, EVRSRateCombiner Combiner)
 
virtual void RHIBeginParallelRenderPass (TSharedPtr< FRHIParallelRenderPassInfo > InInfo, const TCHAR *InName)
 
virtual void RHIEndParallelRenderPass ()
 
virtual void RHIClearShaderBindingTable (FRHIShaderBindingTable *SBT)
 
virtual void RHISetBindingsOnShaderBindingTable (FRHIShaderBindingTable *SBT, FRHIRayTracingPipelineState *Pipeline, uint32 NumBindings, const FRayTracingLocalShaderBindings *Bindings, ERayTracingBindingType BindingType)
 
virtual void RHICommitShaderBindingTable (FRHIShaderBindingTable *SBT, FRHIBuffer *InlineBindingDataBuffer)
 
virtual void RHISetShaderParameters (FRHIComputeShader *ComputeShader, TConstArrayView< uint8 > InParametersData, TConstArrayView< FRHIShaderParameter > InParameters, TConstArrayView< FRHIShaderParameterResource > InResourceParameters, TConstArrayView< FRHIShaderParameterResource > InBindlessParameters)=0
 
void RHISetBatchedShaderParameters (FRHIComputeShader *InShader, FRHIBatchedShaderParameters &InBatchedParameters)
 
virtual void RHISetShaderUnbinds (FRHIComputeShader *ComputeShader, TConstArrayView< FRHIShaderParameterUnbind > InUnbinds)
 
- Public Member Functions inherited from IRHIComputeContext
virtual ~IRHIComputeContext ()
 
virtual void RHIRayTraceDispatch (FRHIRayTracingPipelineState *RayTracingPipelineState, FRHIRayTracingShader *RayGenShader, FRHIShaderBindingTable *SBT, const FRayTracingShaderBindings &GlobalResourceBindings, uint32 Width, uint32 Height)
 
virtual void RHIRayTraceDispatchIndirect (FRHIRayTracingPipelineState *RayTracingPipelineState, FRHIRayTracingShader *RayGenShader, FRHIShaderBindingTable *SBT, const FRayTracingShaderBindings &GlobalResourceBindings, FRHIBuffer *ArgumentBuffer, uint32 ArgumentOffset)
 
virtual void RHISetAsyncComputeBudget (EAsyncComputeBudget Budget)
 
virtual void RHISetComputeBudget (ESyncComputeBudget Budget)
 
virtual void RHISetShaderRootConstants (const FUint32Vector4 &Constants)
 
virtual void RHIDispatchComputeShaderBundle (FRHIShaderBundle *ShaderBundle, FRHIBuffer *RecordArgBuffer, TConstArrayView< FRHIShaderParameterResource > SharedBindlessParameters, TConstArrayView< FRHIShaderBundleComputeDispatch > Dispatches, bool bEmulated)
 
virtual void RHIDispatchGraphicsShaderBundle (FRHIShaderBundle *ShaderBundle, FRHIBuffer *RecordArgBuffer, const FRHIShaderBundleGraphicsState &BundleState, TConstArrayView< FRHIShaderParameterResource > SharedBindlessParameters, TConstArrayView< FRHIShaderBundleGraphicsDispatch > Dispatches, bool bEmulated)
 
virtual void RHIBeginUAVOverlap ()
 
virtual void RHIEndUAVOverlap ()
 
virtual void RHIBeginUAVOverlap (TConstArrayView< FRHIUnorderedAccessView * > UAVs)
 
virtual void RHIEndUAVOverlap (TConstArrayView< FRHIUnorderedAccessView * > UAVs)
 
void RHISetBatchedShaderParameters (FRHIComputeShader *InShader, FRHIBatchedShaderParameters &InBatchedParameters)
 
virtual void RHISetGPUMask (FRHIGPUMask GPUMask)
 
virtual FRHIGPUMask RHIGetGPUMask () const
 
virtual void RHIExecuteMultiIndirectClusterOperation (const FRayTracingClusterOperationParams &Params)
 
virtual void RHIBuildAccelerationStructures (TConstArrayView< FRayTracingGeometryBuildParams > Params, const FRHIBufferRange &ScratchBufferRange)
 
virtual void RHIBuildAccelerationStructures (TConstArrayView< FRayTracingSceneBuildParams > Params)
 
virtual void RHIBindAccelerationStructureMemory (FRHIRayTracingScene *Scene, FRHIBuffer *Buffer, uint32 BufferOffset)
 
IRHIComputeContextGetLowestLevelContext ()
 
IRHIComputeContext const & GetHighestLevelContext () const
 
IRHIComputeContextGetHighestLevelContext ()
 
void SetTrackedAccess (const FRHITrackedAccessInfo &Info)
 
ERHIAccess GetTrackedAccess (const FRHIViewableResource *Resource) const
 
ERHIPipeline GetTrackedPipelines (const FRHIViewableResource *Resource) const
 
virtual voidRHIGetNativeCommandBuffer ()
 
FRHICommandListBaseGetExecutingCommandList () const
 
virtual void SetExecutingCommandList (FRHICommandListBase *InCmdList)
 

Static Public Member Functions

static FOpenGLDynamicRHIGet ()
 
template<typename TRHIType >
static autoResourceCast (TRHIType *Resource)
 
static FOpenGLTextureResourceCast (FRHITexture *TextureRHI)
 
- Static Public Member Functions inherited from FDynamicRHI
static RHI_API void EnableIdealGPUCaptureOptions (bool bEnable)
 

Friends

class FOpenGLViewport
 

Additional Inherited Members

- Public Types inherited from FDynamicRHI
using FRHICalcTextureSizeResult = ::FRHICalcTextureSizeResult
 
- Protected Attributes inherited from FDynamicRHI
TArray< uint32PixelFormatBlockBytes
 
- Protected Attributes inherited from IRHICommandContext
FRHIRenderPassInfo RenderPassInfo
 
- Protected Attributes inherited from IRHIComputeContext
UE::RHI::GPUProfiler::FEvent::FStats StatEvent {}
 

Detailed Description

The interface which is implemented by the dynamically bound RHI.

Constructor & Destructor Documentation

◆ FOpenGLDynamicRHI()

FOpenGLDynamicRHI::FOpenGLDynamicRHI ( )

Initialization constructor.

◆ ~FOpenGLDynamicRHI()

FOpenGLDynamicRHI::~FOpenGLDynamicRHI ( )
inline

Destructor

Member Function Documentation

◆ AsyncReallocateTexture2D_RenderThread()

FTextureRHIRef FOpenGLDynamicRHI::AsyncReallocateTexture2D_RenderThread ( class FRHICommandListImmediate RHICmdList,
FRHITexture Texture2D,
int32  NewMipCount,
int32  NewSizeX,
int32  NewSizeY,
FThreadSafeCounter RequestStatus 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ BindUniformBuffer()

void FOpenGLDynamicRHI::BindUniformBuffer ( EShaderFrequency  ShaderFrequency,
uint32  BufferIndex,
FRHIUniformBuffer BufferRHI 
)

◆ CachedBindBuffer()

void FOpenGLDynamicRHI::CachedBindBuffer ( GLenum  Type,
GLuint  Buffer 
)
inline

◆ CachedBindUniformBuffer()

void FOpenGLDynamicRHI::CachedBindUniformBuffer ( GLuint  Buffer)
inline

◆ CachedSetupTextureStage()

FORCEINLINE void FOpenGLDynamicRHI::CachedSetupTextureStage ( GLint  TextureIndex,
GLenum  Target,
GLuint  Resource,
GLint  BaseMip,
GLint  NumMips 
)
inline

Set a resource on texture target of a specific real OpenGL stage. Goes through cache to eliminate redundant calls.

◆ CachedSetupTextureStageInner()

void FOpenGLDynamicRHI::CachedSetupTextureStageInner ( GLint  TextureIndex,
GLenum  Target,
GLuint  Resource,
GLint  BaseMip,
GLint  NumMips 
)

◆ CachedSetupUAVStage()

void FOpenGLDynamicRHI::CachedSetupUAVStage ( GLint  UAVIndex,
GLenum  Format,
GLuint  Resource,
bool  bLayered,
GLint  Layer,
GLenum  Access,
GLint  Level 
)

◆ Cleanup()

void FOpenGLDynamicRHI::Cleanup ( )

◆ ClearCachedAttributeState()

void FOpenGLDynamicRHI::ClearCachedAttributeState ( int32  PositionAttrib,
int32  TexCoordsAttrib 
)

◆ DiscardRenderTargets()

void FOpenGLDynamicRHI::DiscardRenderTargets ( bool  Depth,
bool  Stencil,
uint32  ColorBitMask 
)

◆ Get()

static FOpenGLDynamicRHI & FOpenGLDynamicRHI::Get ( )
inlinestatic

◆ GetName()

virtual const TCHAR * FOpenGLDynamicRHI::GetName ( )
inlineoverridevirtual

Implements FDynamicRHI.

◆ GetOpenGLFramebuffer() [1/2]

GLuint FOpenGLDynamicRHI::GetOpenGLFramebuffer ( uint32  NumSimultaneousRenderTargets,
FOpenGLTexture **  RenderTargets,
const uint32 ArrayIndices,
const uint32 MipmapLevels,
FOpenGLTexture DepthStencilTarget 
)

◆ GetOpenGLFramebuffer() [2/2]

GLuint FOpenGLDynamicRHI::GetOpenGLFramebuffer ( uint32  NumSimultaneousRenderTargets,
FOpenGLTexture **  RenderTargets,
const uint32 ArrayIndices,
const uint32 MipmapLevels,
FOpenGLTexture DepthStencilTarget,
FExclusiveDepthStencil  DepthStencilAccess,
int32  NumRenderingSamples 
)

◆ GetPointSamplerState()

FOpenGLSamplerState * FOpenGLDynamicRHI::GetPointSamplerState ( ) const
inline

◆ Init()

void FOpenGLDynamicRHI::Init ( )
overridevirtual

Initializes the RHI; separate from IDynamicRHIModule::CreateRHI so that GDynamicRHI is set when it is called.

Implements FDynamicRHI.

◆ InitializeGLTexture()

void FOpenGLDynamicRHI::InitializeGLTexture ( FOpenGLTexture Texture,
const void BulkDataPtr,
uint64  BulkDataSize 
)

◆ InitializeGLTextureInternal()

void FOpenGLDynamicRHI::InitializeGLTextureInternal ( FOpenGLTexture Texture,
void const *  BulkDataPtr,
uint64  BulkDataSize 
)

◆ InternalSetSamplerStates()

void FOpenGLDynamicRHI::InternalSetSamplerStates ( GLint  TextureIndex,
FOpenGLSamplerState SamplerState 
)

◆ InternalSetShaderBufferUAV()

void FOpenGLDynamicRHI::InternalSetShaderBufferUAV ( GLint  UAVIndex,
GLuint  Resource 
)

◆ InternalSetShaderImageUAV()

void FOpenGLDynamicRHI::InternalSetShaderImageUAV ( GLint  UAVIndex,
GLenum  Format,
GLuint  Resource,
bool  bLayered,
GLint  Layer,
GLenum  Access,
GLint  Level 
)

◆ InternalSetShaderTexture()

void FOpenGLDynamicRHI::InternalSetShaderTexture ( FOpenGLTexture Texture,
FOpenGLShaderResourceView SRV,
GLint  TextureIndex,
GLenum  Target,
GLuint  Resource,
int  NumMips,
int  LimitMip 
)

Remember what RHI user wants set on a specific OpenGL texture stage, translating from Stage and TextureIndex for stage pair.

◆ InvalidateTextureResourceInCache()

void FOpenGLDynamicRHI::InvalidateTextureResourceInCache ( GLuint  Resource)

◆ InvalidateUAVResourceInCache()

void FOpenGLDynamicRHI::InvalidateUAVResourceInCache ( GLuint  Resource)

◆ LinkComputeProgram()

void FOpenGLDynamicRHI::LinkComputeProgram ( FRHIComputeShader ComputeShaderRHI)

◆ LockBuffer_BottomOfPipe()

void * FOpenGLDynamicRHI::LockBuffer_BottomOfPipe ( FRHICommandListBase RHICmdList,
FRHIBuffer Buffer,
uint32  Offset,
uint32  Size,
EResourceLockMode  LockMode 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ LockStagingBuffer_RenderThread()

void * FOpenGLDynamicRHI::LockStagingBuffer_RenderThread ( class FRHICommandListImmediate RHICmdList,
FRHIStagingBuffer StagingBuffer,
FRHIGPUFence Fence,
uint32  Offset,
uint32  SizeRHI 
)
finaloverridevirtual

Lock a staging buffer to read contents on the CPU that were written by the GPU, without having to stall. @discussion This function requires that you have issued an CopyToStagingBuffer invocation and verified that the FRHIGPUFence has been signaled before calling.

Parameters
RHICmdListThe command-list to execute on or synchronize with.
StagingBufferThe buffer to lock.
FenceAn optional fence synchronized with the last buffer update.
OffsetThe offset in the buffer to return.
SizeRHIThe length of the region in the buffer to lock.
Returns
A pointer to the data starting at 'Offset' and of length 'SizeRHI' from 'StagingBuffer', or nullptr when there is an error.

Reimplemented from FDynamicRHI.

◆ OnBufferDeletion()

void FOpenGLDynamicRHI::OnBufferDeletion ( GLenum  Type,
GLuint  BufferResource 
)

◆ OnProgramDeletion()

void FOpenGLDynamicRHI::OnProgramDeletion ( GLint  ProgramResource)

◆ PurgeFramebufferFromCaches()

void FOpenGLDynamicRHI::PurgeFramebufferFromCaches ( GLuint  Framebuffer)

◆ ResolveTexture()

void FOpenGLDynamicRHI::ResolveTexture ( FOpenGLTexture Texture,
uint32  MipIndex,
uint32  ArrayIndex 
)

◆ ResourceCast() [1/2]

static FOpenGLTexture * FOpenGLDynamicRHI::ResourceCast ( FRHITexture TextureRHI)
inlinestatic

◆ ResourceCast() [2/2]

template<typename TRHIType >
static auto * FOpenGLDynamicRHI::ResourceCast ( TRHIType Resource)
inlinestatic

◆ RHIAcquireThreadOwnership()

void FOpenGLDynamicRHI::RHIAcquireThreadOwnership ( )
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIAdvanceFrameForGetViewportBackBuffer()

void FOpenGLDynamicRHI::RHIAdvanceFrameForGetViewportBackBuffer ( FRHIViewport Viewport,
bool  bPresent 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIAliasTextureResources()

void FOpenGLDynamicRHI::RHIAliasTextureResources ( FTextureRHIRef DestTextureRHI,
FTextureRHIRef SrcTextureRHI 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIAsyncCreateTexture2D()

FTextureRHIRef FOpenGLDynamicRHI::RHIAsyncCreateTexture2D ( uint32  SizeX,
uint32  SizeY,
uint8  Format,
uint32  NumMips,
ETextureCreateFlags  Flags,
ERHIAccess  InResourceState,
void **  InitialMipData,
uint32  NumInitialMips,
const TCHAR DebugName,
FGraphEventRef OutCompletionEvent 
)
finaloverridevirtual

Thread-safe function that can be used to create a texture outside of the rendering thread. This function can ONLY be called if GRHISupportsAsyncTextureCreation is true. Cannot create rendertargets with this method.

Parameters
SizeX- width of the texture to create
SizeY- height of the texture to create
Format- EPixelFormat texture format
NumMips- number of mips to generate or 0 for full mip pyramid
Flags- ETextureCreateFlags creation flags
InitialMipData- pointers to mip data with which to create the texture
NumInitialMips- how many mips are provided in InitialMipData
OutCompletionEvent- An event signaled on operation completion. Can return null. Operation can still be pending after function returns (e.g. initial data upload in-flight)
Returns
a reference to a 2D texture resource

Implements FDynamicRHI.

◆ RHIAsyncReallocateTexture2D()

FTextureRHIRef FOpenGLDynamicRHI::RHIAsyncReallocateTexture2D ( FRHITexture Texture2D,
int32  NewMipCount,
int32  NewSizeX,
int32  NewSizeY,
FThreadSafeCounter RequestStatus 
)
finaloverridevirtual

Starts an asynchronous texture reallocation. It may complete immediately if the reallocation could be performed without any reshuffling of texture memory, or if there isn't enough memory. The specified status counter will be decremented by 1 when the reallocation is complete (success or failure).

Returns a new reference to the texture, which will represent the new mip count when the reallocation is complete. RHIFinalizeAsyncReallocateTexture2D() must be called to complete the reallocation.

Parameters
Texture2D- Texture to reallocate
NewMipCount- New number of mip-levels
NewSizeX- New width, in pixels
NewSizeY- New height, in pixels
RequestStatus- Will be decremented by 1 when the reallocation is complete (success or failure).
Returns
- New reference to the texture, or an invalid reference upon failure

Implements FDynamicRHI.

◆ RHIBeginRenderPass()

void FOpenGLDynamicRHI::RHIBeginRenderPass ( const FRHIRenderPassInfo InInfo,
const TCHAR InName 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHIBeginRenderQuery()

void FOpenGLDynamicRHI::RHIBeginRenderQuery ( FRHIRenderQuery RenderQuery)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHIBeginRenderQuery_TopOfPipe()

void FOpenGLDynamicRHI::RHIBeginRenderQuery_TopOfPipe ( FRHICommandListBase RHICmdList,
FRHIRenderQuery RenderQuery 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIBeginTransitions()

void FOpenGLDynamicRHI::RHIBeginTransitions ( TArrayView< const FRHITransition * >  Transitions)
finaloverridevirtual

Implements IRHIComputeContext.

◆ RHIBindDebugLabelName()

void FOpenGLDynamicRHI::RHIBindDebugLabelName ( FRHICommandListBase RHICmdList,
FRHITexture Texture,
const TCHAR Name 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIBlockUntilGPUIdle()

void FOpenGLDynamicRHI::RHIBlockUntilGPUIdle ( )
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICalcTexturePlatformSize()

FDynamicRHI::FRHICalcTextureSizeResult FOpenGLDynamicRHI::RHICalcTexturePlatformSize ( FRHITextureDesc const &  Desc,
uint32  FirstMipIndex 
)
finaloverridevirtual

Computes the total GPU memory a texture resource with the specified parameters will occupy on the current RHI platform. Also returns the required alignment for the resource.

Parameters
Desc- The texture descriptor (width, height, format etc)
FirstMipIndex- The index of the most detailed mip to consider in the memory size calculation.
Returns
- The computed size and alignment of the platform texture resource.

Implements FDynamicRHI.

◆ RHIClearUAVFloat()

void FOpenGLDynamicRHI::RHIClearUAVFloat ( FRHIUnorderedAccessView UnorderedAccessViewRHI,
const FVector4f Values 
)
finaloverridevirtual

Clears a UAV to the multi-channel floating point value provided. Should only be called on UAVs with a floating point format, or on structured buffers. Structured buffers are treated as a regular R32_UINT buffer during the clear operation, and the Values.X component is copied directly into the buffer without any format conversion. (Y,Z,W) of Values is ignored. Typed floating point buffers undergo standard format conversion during the write operation. The conversion is determined by the format of the UAV.

Parameters
UnorderedAccessViewRHIThe UAV to clear.
ValuesThe values to clear the UAV to, one component per channel (XYZW = RGBA). Channels not supported by the UAV are ignored.

Implements IRHIComputeContext.

◆ RHIClearUAVUint()

void FOpenGLDynamicRHI::RHIClearUAVUint ( FRHIUnorderedAccessView UnorderedAccessViewRHI,
const FUintVector4 Values 
)
finaloverridevirtual

Clears a UAV to the multi-component unsigned integer value provided. Should only be called on UAVs with an integer format, or on structured buffers. Structured buffers are treated as a regular R32_UINT buffer during the clear operation, and the Values.X component is copied directly into the buffer without any format conversion. (Y,Z,W) of Values is ignored. Typed integer buffers undergo standard format conversion during the write operation. The conversion is determined by the format of the UAV.

Parameters
UnorderedAccessViewRHIThe UAV to clear.
ValuesThe values to clear the UAV to, one component per channel (XYZW = RGBA). Channels not supported by the UAV are ignored.

Implements IRHIComputeContext.

◆ RHIComputeMemorySize()

uint32 FOpenGLDynamicRHI::RHIComputeMemorySize ( FRHITexture TextureRHI)
finaloverridevirtual

Computes the size in memory required by a given texture.

Parameters
TextureRHI- Texture we want to know the size of
Returns
- Size in Bytes

Implements FDynamicRHI.

◆ RHIComputePrecachePSOHash()

uint64 FOpenGLDynamicRHI::RHIComputePrecachePSOHash ( const FGraphicsPipelineStateInitializer Initializer)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIComputeStatePrecachePSOHash()

uint64 FOpenGLDynamicRHI::RHIComputeStatePrecachePSOHash ( const FGraphicsPipelineStateInitializer Initializer)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHICopyBufferRegion()

void FOpenGLDynamicRHI::RHICopyBufferRegion ( FRHIBuffer DestBuffer,
uint64  DstOffset,
FRHIBuffer SourceBuffer,
uint64  SrcOffset,
uint64  NumBytes 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHICopyTexture()

void FOpenGLDynamicRHI::RHICopyTexture ( FRHITexture SourceTexture,
FRHITexture DestTexture,
const FRHICopyTextureInfo CopyInfo 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHICopyToStagingBuffer()

void FOpenGLDynamicRHI::RHICopyToStagingBuffer ( FRHIBuffer SourceBufferRHI,
FRHIStagingBuffer DestinationStagingBufferRHI,
uint32  InOffset,
uint32  InNumBytes 
)
finaloverridevirtual

Performs a copy of the data in 'SourceBuffer' to 'DestinationStagingBuffer.' This will occur inline on the GPU timeline. This is a mechanism to perform nonblocking readback of a buffer at a point in time.

Parameters
SourceBufferThe source vertex buffer that will be inlined copied.
DestinationStagingBufferThe the host-visible destination buffer
OffsetThe start of the data in 'SourceBuffer'
NumBytesThe number of bytes to copy out of 'SourceBuffer'

Reimplemented from IRHIComputeContext.

◆ RHICreateAliasedTexture()

FTextureRHIRef FOpenGLDynamicRHI::RHICreateAliasedTexture ( FTextureRHIRef SourceTexture)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHICreateBlendState()

FBlendStateRHIRef FOpenGLDynamicRHI::RHICreateBlendState ( const FBlendStateInitializerRHI Initializer)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateBoundShaderState()

virtual FBoundShaderStateRHIRef FOpenGLDynamicRHI::RHICreateBoundShaderState ( FRHIVertexDeclaration VertexDeclaration,
FRHIVertexShader VertexShader,
FRHIPixelShader PixelShader,
FRHIGeometryShader GeometryShader 
)
inlinefinaloverridevirtual

Creates a bound shader state instance which encapsulates a decl, vertex shader and pixel shader CAUTION: Even though this is marked as threadsafe, it is only valid to call from the render thread or the RHI thread. It need not be threadsafe unless the RHI support parallel translation. CAUTION: Platforms that support RHIThread but don't actually have a threadsafe implementation must flush internally with FScopedRHIThreadStaller StallRHIThread(FRHICommandListExecutor::GetImmediateCommandList()); when the call is from the render thread

Parameters
VertexDeclaration- existing vertex decl
VertexShader- existing vertex shader
GeometryShader- existing geometry shader
PixelShader- existing pixel shader

Implements FDynamicRHI.

◆ RHICreateBufferInitializer()

FRHIBufferInitializer FOpenGLDynamicRHI::RHICreateBufferInitializer ( FRHICommandListBase RHICmdList,
const FRHIBufferCreateDesc CreateDesc 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateComputeShader()

FComputeShaderRHIRef FOpenGLDynamicRHI::RHICreateComputeShader ( TArrayView< const uint8 Code,
const FSHAHash Hash 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateDepthStencilState()

FDepthStencilStateRHIRef FOpenGLDynamicRHI::RHICreateDepthStencilState ( const FDepthStencilStateInitializerRHI Initializer)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateGeometryShader()

FGeometryShaderRHIRef FOpenGLDynamicRHI::RHICreateGeometryShader ( TArrayView< const uint8 Code,
const FSHAHash Hash 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateGPUFence()

FGPUFenceRHIRef FOpenGLDynamicRHI::RHICreateGPUFence ( const FName Name)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateGraphicsPipelineState()

virtual FGraphicsPipelineStateRHIRef FOpenGLDynamicRHI::RHICreateGraphicsPipelineState ( const FGraphicsPipelineStateInitializer Initializer)
inlineoverridevirtual

Creates a graphics pipeline state object (PSO) that represents a complete gpu pipeline for rendering. This function should be considered expensive to call at runtime and may cause hitches as pipelines are compiled.

Parameters
Initializer- Descriptor object defining all the information needed to create the PSO, as well as behavior hints to the RHI.
Returns
FGraphicsPipelineStateRHIRef that can be bound for rendering; nullptr if the compilation fails. CAUTION: On certain RHI implementations (eg, ones that do not support runtime compilation) a compilation failure is a Fatal error and this function will not return. CAUTION: Even though this is marked as threadsafe, it is only valid to call from the render thread or the RHI thread. It need not be threadsafe unless the RHI support parallel translation. CAUTION: Platforms that support RHIThread but don't actually have a threadsafe implementation must flush internally with FScopedRHIThreadStaller StallRHIThread(FRHICommandListExecutor::GetImmediateCommandList()); when the call is from the render thread

Reimplemented from FDynamicRHIPSOFallback.

◆ RHICreatePixelShader()

FPixelShaderRHIRef FOpenGLDynamicRHI::RHICreatePixelShader ( TArrayView< const uint8 Code,
const FSHAHash Hash 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateRasterizerState()

FRasterizerStateRHIRef FOpenGLDynamicRHI::RHICreateRasterizerState ( const FRasterizerStateInitializerRHI Initializer)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateRenderQuery()

FRenderQueryRHIRef FOpenGLDynamicRHI::RHICreateRenderQuery ( ERenderQueryType  QueryType)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateSamplerState()

FSamplerStateRHIRef FOpenGLDynamicRHI::RHICreateSamplerState ( const FSamplerStateInitializerRHI Initializer)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateShaderResourceView()

FShaderResourceViewRHIRef FOpenGLDynamicRHI::RHICreateShaderResourceView ( class FRHICommandListBase RHICmdList,
FRHIViewableResource Resource,
FRHIViewDesc const &  ViewDesc 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateStagingBuffer()

FStagingBufferRHIRef FOpenGLDynamicRHI::RHICreateStagingBuffer ( )
finaloverridevirtual

Creates a staging buffer, which is memory visible to the cpu without any locking.

Returns
The new staging-buffer.

Reimplemented from FDynamicRHI.

◆ RHICreateTexture2DArrayFromResource()

FTextureRHIRef FOpenGLDynamicRHI::RHICreateTexture2DArrayFromResource ( EPixelFormat  Format,
uint32  SizeX,
uint32  SizeY,
uint32  ArraySize,
uint32  NumMips,
uint32  NumSamples,
uint32  NumSamplesTileMem,
const FClearValueBinding ClearValueBinding,
GLuint  Resource,
ETextureCreateFlags  Flags 
)
finaloverridevirtual

Implements IOpenGLDynamicRHI.

◆ RHICreateTexture2DFromResource()

FTextureRHIRef FOpenGLDynamicRHI::RHICreateTexture2DFromResource ( EPixelFormat  Format,
uint32  SizeX,
uint32  SizeY,
uint32  NumMips,
uint32  NumSamples,
uint32  NumSamplesTileMem,
const FClearValueBinding ClearValueBinding,
GLuint  Resource,
ETextureCreateFlags  Flags 
)
finaloverridevirtual

Implements IOpenGLDynamicRHI.

◆ RHICreateTextureCubeFromResource()

FTextureRHIRef FOpenGLDynamicRHI::RHICreateTextureCubeFromResource ( EPixelFormat  Format,
uint32  Size,
bool  bArray,
uint32  ArraySize,
uint32  NumMips,
uint32  NumSamples,
uint32  NumSamplesTileMem,
const FClearValueBinding ClearValueBinding,
GLuint  Resource,
ETextureCreateFlags  Flags 
)
finaloverridevirtual

Implements IOpenGLDynamicRHI.

◆ RHICreateTextureInitializer()

FRHITextureInitializer FOpenGLDynamicRHI::RHICreateTextureInitializer ( FRHICommandListBase RHICmdList,
const FRHITextureCreateDesc CreateDesc 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateUniformBuffer()

FUniformBufferRHIRef FOpenGLDynamicRHI::RHICreateUniformBuffer ( const void Contents,
const FRHIUniformBufferLayout Layout,
EUniformBufferUsage  Usage,
EUniformBufferValidation  Validation 
)
finaloverridevirtual

Creates a uniform buffer. The contents of the uniform buffer are provided in a parameter, and are immutable. CAUTION: Even though this is marked as threadsafe, it is only valid to call from the render thread or the RHI thread. Thus is need not be threadsafe on platforms that do not support or aren't using an RHIThread

Parameters
Contents- A pointer to a memory block of size NumBytes that is copied into the new uniform buffer.
NumBytes- The number of bytes the uniform buffer should contain.
Returns
The new uniform buffer.

Implements FDynamicRHI.

◆ RHICreateUnorderedAccessView()

FUnorderedAccessViewRHIRef FOpenGLDynamicRHI::RHICreateUnorderedAccessView ( class FRHICommandListBase RHICmdList,
FRHIViewableResource Resource,
FRHIViewDesc const &  ViewDesc 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateVertexDeclaration()

FVertexDeclarationRHIRef FOpenGLDynamicRHI::RHICreateVertexDeclaration ( const FVertexDeclarationElementList Elements)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateVertexShader()

FVertexShaderRHIRef FOpenGLDynamicRHI::RHICreateVertexShader ( TArrayView< const uint8 Code,
const FSHAHash Hash 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHICreateViewport()

FViewportRHIRef FOpenGLDynamicRHI::RHICreateViewport ( void WindowHandle,
uint32  SizeX,
uint32  SizeY,
bool  bIsFullscreen,
EPixelFormat  PreferredPixelFormat 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIDispatchComputeShader()

void FOpenGLDynamicRHI::RHIDispatchComputeShader ( uint32  ThreadGroupCountX,
uint32  ThreadGroupCountY,
uint32  ThreadGroupCountZ 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHIDispatchIndirectComputeShader()

void FOpenGLDynamicRHI::RHIDispatchIndirectComputeShader ( FRHIBuffer ArgumentBuffer,
uint32  ArgumentOffset 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHIDrawIndexedIndirect()

void FOpenGLDynamicRHI::RHIDrawIndexedIndirect ( FRHIBuffer IndexBufferRHI,
FRHIBuffer ArgumentsBufferRHI,
int32  DrawArgumentsIndex,
uint32  NumInstances 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHIDrawIndexedPrimitive()

void FOpenGLDynamicRHI::RHIDrawIndexedPrimitive ( FRHIBuffer IndexBuffer,
int32  BaseVertexIndex,
uint32  FirstInstance,
uint32  NumVertices,
uint32  StartIndex,
uint32  NumPrimitives,
uint32  NumInstances 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHIDrawIndexedPrimitiveIndirect()

void FOpenGLDynamicRHI::RHIDrawIndexedPrimitiveIndirect ( FRHIBuffer IndexBuffer,
FRHIBuffer ArgumentBuffer,
uint32  ArgumentOffset 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHIDrawPrimitive()

void FOpenGLDynamicRHI::RHIDrawPrimitive ( uint32  BaseVertexIndex,
uint32  NumPrimitives,
uint32  NumInstances 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHIDrawPrimitiveIndirect()

void FOpenGLDynamicRHI::RHIDrawPrimitiveIndirect ( FRHIBuffer ArgumentBuffer,
uint32  ArgumentOffset 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHIEnableDepthBoundsTest()

void FOpenGLDynamicRHI::RHIEnableDepthBoundsTest ( bool  bEnable)
finaloverridevirtual

◆ RHIEndDrawingViewport()

void FOpenGLDynamicRHI::RHIEndDrawingViewport ( FRHIViewport Viewport,
bool  bPresent,
bool  bLockToVsync 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHIEndFrame()

void FOpenGLDynamicRHI::RHIEndFrame ( const FRHIEndFrameArgs Args)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIEndRenderPass()

void FOpenGLDynamicRHI::RHIEndRenderPass ( )
finaloverridevirtual

Implements IRHICommandContext.

◆ RHIEndRenderQuery()

void FOpenGLDynamicRHI::RHIEndRenderQuery ( FRHIRenderQuery RenderQuery)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHIEndRenderQuery_TopOfPipe()

void FOpenGLDynamicRHI::RHIEndRenderQuery_TopOfPipe ( FRHICommandListBase RHICmdList,
FRHIRenderQuery RenderQuery 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIEndTransitions()

void FOpenGLDynamicRHI::RHIEndTransitions ( TArrayView< const FRHITransition * >  Transitions)
finaloverridevirtual

Implements IRHIComputeContext.

◆ RHIFinalizeContext()

void FOpenGLDynamicRHI::RHIFinalizeContext ( FRHIFinalizeContextArgs &&  Args,
TRHIPipelineArray< IRHIPlatformCommandList * > &  Output 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIFlushResources()

void FOpenGLDynamicRHI::RHIFlushResources ( )
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIGenerateMips()

void FOpenGLDynamicRHI::RHIGenerateMips ( FRHITexture TextureRHI)
finaloverridevirtual

Generates mip maps for the surface.

Implements IOpenGLDynamicRHI.

◆ RHIGetAvailableResolutions()

bool FOpenGLDynamicRHI::RHIGetAvailableResolutions ( FScreenResolutionArray Resolutions,
bool  bIgnoreRefreshRate 
)
finaloverridevirtual

Retrieve available screen resolutions.

Parameters
ResolutionsTArray<FScreenResolutionRHI> parameter that will be filled in.
bIgnoreRefreshRateIf true, ignore refresh rates.
Returns
bool true if successfully filled the array

Implements FDynamicRHI.

◆ RHIGetCommandContext()

IRHIComputeContext * FOpenGLDynamicRHI::RHIGetCommandContext ( ERHIPipeline  Pipeline,
FRHIGPUMask  GPUMask 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIGetDefaultContext()

IRHICommandContext * FOpenGLDynamicRHI::RHIGetDefaultContext ( )
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIGetGLMajorVersion()

int32 FOpenGLDynamicRHI::RHIGetGLMajorVersion ( ) const
finaloverridevirtual

Implements IOpenGLDynamicRHI.

◆ RHIGetGLMinorVersion()

int32 FOpenGLDynamicRHI::RHIGetGLMinorVersion ( ) const
finaloverridevirtual

Implements IOpenGLDynamicRHI.

◆ RHIGetMinimumAlignmentForBufferBackedSRV()

uint64 FOpenGLDynamicRHI::RHIGetMinimumAlignmentForBufferBackedSRV ( EPixelFormat  Format)
finaloverridevirtual

Gets the minimum alignment (in bytes) required for creating a shader resource view on a buffer-backed resource.

Parameters
Format- EPixelFormat texture format of the SRV.

Reimplemented from FDynamicRHI.

◆ RHIGetNativeDevice()

void * FOpenGLDynamicRHI::RHIGetNativeDevice ( )
finaloverridevirtual

Provides access to the native device. Generally this should be avoided but is useful for third party plugins.

Implements FDynamicRHI.

◆ RHIGetNativeInstance()

void * FOpenGLDynamicRHI::RHIGetNativeInstance ( )
finaloverridevirtual

Provides access to the native instance. Generally this should be avoided but is useful for third party plugins.

Implements FDynamicRHI.

◆ RHIGetRenderQueryResult()

bool FOpenGLDynamicRHI::RHIGetRenderQueryResult ( FRHIRenderQuery RenderQuery,
uint64 OutResult,
bool  bWait,
uint32  GPUIndex = INDEX_NONE 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIGetResource()

GLuint FOpenGLDynamicRHI::RHIGetResource ( FRHITexture InTexture) const
finaloverridevirtual

Implements IOpenGLDynamicRHI.

◆ RHIGetSupportedResolution()

void FOpenGLDynamicRHI::RHIGetSupportedResolution ( uint32 Width,
uint32 Height 
)
finaloverridevirtual

Returns a supported screen resolution that most closely matches input.

Parameters
Width- Input: Desired resolution width in pixels. Output: A width that the platform supports.
Height- Input: Desired resolution height in pixels. Output: A height that the platform supports.

Implements FDynamicRHI.

◆ RHIGetTextureMemoryStats()

void FOpenGLDynamicRHI::RHIGetTextureMemoryStats ( FTextureMemoryStats OutStats)
finaloverridevirtual

Retrieves texture memory stats. Unsupported with this allocator.

Returns
false, indicating that out variables were left unchanged.

Implements FDynamicRHI.

◆ RHIGetTextureMemoryVisualizeData()

bool FOpenGLDynamicRHI::RHIGetTextureMemoryVisualizeData ( FColor TextureData,
int32  SizeX,
int32  SizeY,
int32  Pitch,
int32  PixelSize 
)
finaloverridevirtual

Fills a texture with to visualize the texture pool memory.

Parameters
TextureDataStart address
SizeXNumber of pixels along X
SizeYNumber of pixels along Y
PitchNumber of bytes between each row
PixelSizeNumber of bytes each pixel represents
Returns
true if successful, false otherwise

Implements FDynamicRHI.

◆ RHIGetViewportBackBuffer()

FTextureRHIRef FOpenGLDynamicRHI::RHIGetViewportBackBuffer ( FRHIViewport Viewport)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIIsValidTexture()

bool FOpenGLDynamicRHI::RHIIsValidTexture ( GLuint  InTexture) const
finaloverridevirtual

Implements IOpenGLDynamicRHI.

◆ RHILockStagingBuffer()

void * FOpenGLDynamicRHI::RHILockStagingBuffer ( FRHIStagingBuffer StagingBuffer,
FRHIGPUFence Fence,
uint32  Offset,
uint32  SizeRHI 
)
finaloverridevirtual

Lock a staging buffer to read contents on the CPU that were written by the GPU, without having to stall. @discussion This function requires that you have issued an CopyToStagingBuffer invocation and verified that the FRHIGPUFence has been signaled before calling.

Parameters
StagingBufferThe buffer to lock.
FenceAn optional fence synchronized with the last buffer update.
OffsetThe offset in the buffer to return.
SizeRHIThe length of the region in the buffer to lock.
Returns
A pointer to the data starting at 'Offset' and of length 'SizeRHI' from 'StagingBuffer', or nullptr when there is an error.

Reimplemented from FDynamicRHI.

◆ RHILockTexture()

FRHILockTextureResult FOpenGLDynamicRHI::RHILockTexture ( FRHICommandListImmediate RHICmdList,
const FRHILockTextureArgs Arguments 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIMapStagingSurface()

void FOpenGLDynamicRHI::RHIMapStagingSurface ( FRHITexture Texture,
FRHIGPUFence Fence,
void *&  OutData,
int32 OutWidth,
int32 OutHeight,
uint32  GPUIndex = 0 
)
finaloverridevirtual

Implemented by the platform to read directly from the texture. Useful for getting the last back buffer content after a crash. As the RHIReadSurfaceData implementation will copy the texture's content to a new temporary buffer, that won't work for an unknown crash state. Watch out for OutData to be 0 (can happen on DXGI_ERROR_DEVICE_REMOVED), don't call RHIUnmapStagingSurface in that case.

Implements FDynamicRHI.

◆ RHIMapStagingSurface_RenderThread()

void FOpenGLDynamicRHI::RHIMapStagingSurface_RenderThread ( class FRHICommandListImmediate RHICmdList,
FRHITexture Texture,
uint32  GPUIndex,
FRHIGPUFence Fence,
void *&  OutData,
int32 OutWidth,
int32 OutHeight 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIMatchPrecachePSOInitializers()

bool FOpenGLDynamicRHI::RHIMatchPrecachePSOInitializers ( const FGraphicsPipelineStateInitializer LHS,
const FGraphicsPipelineStateInitializer RHS 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHINextSubpass()

void FOpenGLDynamicRHI::RHINextSubpass ( )
finaloverridevirtual

Reimplemented from IRHICommandContext.

◆ RHIPostExternalCommandsReset()

void FOpenGLDynamicRHI::RHIPostExternalCommandsReset ( )
finaloverridevirtual

Reimplemented from IRHIComputeContext.

◆ RHIPreferredPixelFormatHint()

EPixelFormat FOpenGLDynamicRHI::RHIPreferredPixelFormatHint ( EPixelFormat  PreferredPixelFormat)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIRead3DSurfaceFloatData()

void FOpenGLDynamicRHI::RHIRead3DSurfaceFloatData ( FRHITexture Texture,
FIntRect  Rect,
FIntPoint  ZMinMax,
TArray< FFloat16Color > &  OutData 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIReadSurfaceData() [1/2]

void FOpenGLDynamicRHI::RHIReadSurfaceData ( FRHITexture Texture,
FIntRect  Rect,
TArray< FColor > &  OutData,
FReadSurfaceDataFlags  InFlags 
)
finaloverridevirtual

Reads the contents of a texture to an output buffer (non MSAA and MSAA) and returns it as a FColor array. If the format or texture type is unsupported the OutData array will be size 0

Implements FDynamicRHI.

◆ RHIReadSurfaceData() [2/2]

void FOpenGLDynamicRHI::RHIReadSurfaceData ( FRHITexture Texture,
FIntRect  Rect,
TArray< FLinearColor > &  OutData,
FReadSurfaceDataFlags  InFlags 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIReadSurfaceFloatData()

void FOpenGLDynamicRHI::RHIReadSurfaceFloatData ( FRHITexture Texture,
FIntRect  Rect,
TArray< FFloat16Color > &  OutData,
ECubeFace  CubeFace,
int32  ArrayIndex,
int32  MipIndex 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIReleaseThreadOwnership()

void FOpenGLDynamicRHI::RHIReleaseThreadOwnership ( )
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIReplaceResources()

void FOpenGLDynamicRHI::RHIReplaceResources ( FRHICommandListBase RHICmdList,
TArray< FRHIResourceReplaceInfo > &&  ReplaceInfos 
)
finaloverridevirtual

Transfer metadata and underlying resource from src to dest and release any resource owned by dest.

Parameters
DestBuffer- the buffer to update
SrcBuffer- don't use after call. If null, will release any resource owned by DestBuffer

Implements FDynamicRHI.

◆ RHIResizeViewport()

void FOpenGLDynamicRHI::RHIResizeViewport ( FRHIViewport Viewport,
uint32  SizeX,
uint32  SizeY,
bool  bIsFullscreen 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHISetBlendFactor()

virtual void FOpenGLDynamicRHI::RHISetBlendFactor ( const FLinearColor BlendFactor)
inlinefinaloverridevirtual

Reimplemented from IRHICommandContext.

◆ RHISetBlendState()

void FOpenGLDynamicRHI::RHISetBlendState ( FRHIBlendState NewState,
const FLinearColor BlendFactor 
)
finaloverridevirtual

◆ RHISetBoundShaderState()

void FOpenGLDynamicRHI::RHISetBoundShaderState ( FRHIBoundShaderState BoundShaderStateRHI)
finaloverridevirtual

Set bound shader state. This will set the vertex decl/shader, and pixel shader

Parameters
BoundShaderState- state resource

Implements IRHICommandContextPSOFallback.

◆ RHISetComputeShader()

void FOpenGLDynamicRHI::RHISetComputeShader ( FRHIComputeShader ComputeShader)
finaloverridevirtual

◆ RHISetDepthBounds()

void FOpenGLDynamicRHI::RHISetDepthBounds ( float  MinDepth,
float  MaxDepth 
)
finaloverridevirtual

Sets Depth Bounds range with the given min/max depth.

Parameters
MinDepthThe minimum depth for depth bounds test
MaxDepthThe maximum depth for depth bounds test. The valid values for fMinDepth and fMaxDepth are such that 0 <= fMinDepth <= fMaxDepth <= 1

Implements IRHICommandContext.

◆ RHISetDepthStencilState()

void FOpenGLDynamicRHI::RHISetDepthStencilState ( FRHIDepthStencilState NewState,
uint32  StencilRef 
)
finaloverridevirtual

◆ RHISetExternalGPUTime()

void FOpenGLDynamicRHI::RHISetExternalGPUTime ( uint64  InExternalGPUTime)
finaloverridevirtual

Implements IOpenGLDynamicRHI.

◆ RHISetGraphicsPipelineState()

void FOpenGLDynamicRHI::RHISetGraphicsPipelineState ( FRHIGraphicsPipelineState GraphicsState,
uint32  StencilRef,
bool  bApplyAdditionalState 
)
finaloverridevirtual

This will set most relevant pipeline state. Legacy APIs are expected to set corresponding disjoint state as well.

Parameters
GraphicsShaderState- the graphics pipeline state

Reimplemented from IRHICommandContextPSOFallback.

◆ RHISetMultipleViewports()

void FOpenGLDynamicRHI::RHISetMultipleViewports ( uint32  Count,
const FViewportBounds Data 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHISetRasterizerState()

void FOpenGLDynamicRHI::RHISetRasterizerState ( FRHIRasterizerState NewState)
finaloverridevirtual

◆ RHISetScissorRect()

void FOpenGLDynamicRHI::RHISetScissorRect ( bool  bEnable,
uint32  MinX,
uint32  MinY,
uint32  MaxX,
uint32  MaxY 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHISetShaderParameters() [1/2]

void FOpenGLDynamicRHI::RHISetShaderParameters ( FRHIComputeShader Shader,
TConstArrayView< uint8 InParametersData,
TConstArrayView< FRHIShaderParameter InParameters,
TConstArrayView< FRHIShaderParameterResource InResourceParameters,
TConstArrayView< FRHIShaderParameterResource InBindlessParameters 
)
finaloverridevirtual

Implements IRHIComputeContext.

◆ RHISetShaderParameters() [2/2]

void FOpenGLDynamicRHI::RHISetShaderParameters ( FRHIGraphicsShader Shader,
TConstArrayView< uint8 InParametersData,
TConstArrayView< FRHIShaderParameter InParameters,
TConstArrayView< FRHIShaderParameterResource InResourceParameters,
TConstArrayView< FRHIShaderParameterResource InBindlessParameters 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHISetShaderUnbinds() [1/2]

void FOpenGLDynamicRHI::RHISetShaderUnbinds ( FRHIComputeShader Shader,
TConstArrayView< FRHIShaderParameterUnbind InUnbinds 
)
finaloverridevirtual

Reimplemented from IRHIComputeContext.

◆ RHISetShaderUnbinds() [2/2]

void FOpenGLDynamicRHI::RHISetShaderUnbinds ( FRHIGraphicsShader Shader,
TConstArrayView< FRHIShaderParameterUnbind InUnbinds 
)
finaloverridevirtual

Reimplemented from IRHICommandContext.

◆ RHISetStaticUniformBuffer()

void FOpenGLDynamicRHI::RHISetStaticUniformBuffer ( FUniformBufferStaticSlot  Slot,
FRHIUniformBuffer Buffer 
)
finaloverridevirtual

Implements IRHIComputeContext.

◆ RHISetStaticUniformBuffers()

void FOpenGLDynamicRHI::RHISetStaticUniformBuffers ( const FUniformBufferStaticBindings InUniformBuffers)
finaloverridevirtual

Implements IRHIComputeContext.

◆ RHISetStencilRef()

void FOpenGLDynamicRHI::RHISetStencilRef ( uint32  StencilRef)
finaloverridevirtual

Reimplemented from IRHICommandContext.

◆ RHISetStreamSource()

void FOpenGLDynamicRHI::RHISetStreamSource ( uint32  StreamIndex,
FRHIBuffer VertexBuffer,
uint32  Offset 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHISetUniformBufferDynamicOffset()

void FOpenGLDynamicRHI::RHISetUniformBufferDynamicOffset ( FUniformBufferStaticSlot  Slot,
uint32  Offset 
)
finaloverridevirtual

Reimplemented from IRHIComputeContext.

◆ RHISetViewport()

void FOpenGLDynamicRHI::RHISetViewport ( float  MinX,
float  MinY,
float  MinZ,
float  MaxX,
float  MaxY,
float  MaxZ 
)
finaloverridevirtual

Implements IRHICommandContext.

◆ RHISubmitCommandLists()

void FOpenGLDynamicRHI::RHISubmitCommandLists ( FRHISubmitCommandListsArgs &&  Args)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHISupportsFramebufferSRGBEnable()

bool FOpenGLDynamicRHI::RHISupportsFramebufferSRGBEnable ( ) const
finaloverridevirtual

Implements IOpenGLDynamicRHI.

◆ RHITick()

void FOpenGLDynamicRHI::RHITick ( float  DeltaTime)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIUnlockStagingBuffer()

void FOpenGLDynamicRHI::RHIUnlockStagingBuffer ( FRHIStagingBuffer StagingBuffer)
finaloverridevirtual

Unlock a staging buffer previously locked with RHILockStagingBuffer.

Parameters
StagingBufferThe buffer that was previously locked.

Reimplemented from FDynamicRHI.

◆ RHIUnlockTexture()

void FOpenGLDynamicRHI::RHIUnlockTexture ( FRHICommandListImmediate RHICmdList,
const FRHILockTextureArgs Arguments 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIUnmapStagingSurface()

void FOpenGLDynamicRHI::RHIUnmapStagingSurface ( FRHITexture Texture,
uint32  GPUIndex = 0 
)
finaloverridevirtual

call after a succesful RHIMapStagingSurface() call

Implements FDynamicRHI.

◆ RHIUnmapStagingSurface_RenderThread()

void FOpenGLDynamicRHI::RHIUnmapStagingSurface_RenderThread ( class FRHICommandListImmediate RHICmdList,
FRHITexture Texture,
uint32  GPUIndex 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ RHIUpdateTexture2D()

void FOpenGLDynamicRHI::RHIUpdateTexture2D ( FRHICommandListBase RHICmdList,
FRHITexture Texture,
uint32  MipIndex,
const struct FUpdateTextureRegion2D UpdateRegion,
uint32  SourcePitch,
const uint8 SourceData 
)
finaloverridevirtual

Updates a region of a 2D texture from system memory

Parameters
Texture- the RHI texture resource to update
MipIndex- mip level index to be modified
UpdateRegion- The rectangle to copy source image data from
SourcePitch- size in bytes of each row of the source image
SourceData- source image data, starting at the upper left corner of the source rectangle (in same pixel format as texture)

Implements FDynamicRHI.

◆ RHIUpdateTexture3D()

void FOpenGLDynamicRHI::RHIUpdateTexture3D ( FRHICommandListBase RHICmdList,
FRHITexture Texture,
uint32  MipIndex,
const struct FUpdateTextureRegion3D UpdateRegion,
uint32  SourceRowPitch,
uint32  SourceDepthPitch,
const uint8 SourceData 
)
finaloverridevirtual

Updates a region of a 3D texture from system memory

Parameters
Texture- the RHI texture resource to update
MipIndex- mip level index to be modified
UpdateRegion- The rectangle to copy source image data from
SourceRowPitch- size in bytes of each row of the source image, usually Bpp * SizeX
SourceDepthPitch- size in bytes of each depth slice of the source image, usually Bpp * SizeX * SizeY
SourceData- source image data, starting at the upper left corner of the source rectangle (in same pixel format as texture)

Implements FDynamicRHI.

◆ RHIUpdateUniformBuffer()

void FOpenGLDynamicRHI::RHIUpdateUniformBuffer ( FRHICommandListBase RHICmdList,
FRHIUniformBuffer UniformBufferRHI,
const void Contents 
)
finaloverridevirtual

Implements FDynamicRHI.

◆ RHIWriteGPUFence()

void FOpenGLDynamicRHI::RHIWriteGPUFence ( FRHIGPUFence FenceRHI)
finaloverridevirtual

Write the fence in the GPU timeline. The fence can then be tested on the CPU to know if the previous GPU commands are completed.

Parameters
Fence

Reimplemented from IRHIComputeContext.

◆ RHIWriteGPUFence_TopOfPipe()

void FOpenGLDynamicRHI::RHIWriteGPUFence_TopOfPipe ( FRHICommandListBase RHICmdList,
FRHIGPUFence FenceRHI 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ SetCustomPresent()

void FOpenGLDynamicRHI::SetCustomPresent ( class FRHICustomPresent InCustomPresent)

◆ SetRenderTargets()

void FOpenGLDynamicRHI::SetRenderTargets ( uint32  NumSimultaneousRenderTargets,
const FRHIRenderTargetView NewRenderTargets,
const FRHIDepthRenderTargetView NewDepthStencilTarget 
)

◆ SetRenderTargetsAndClear()

void FOpenGLDynamicRHI::SetRenderTargetsAndClear ( const FRHISetRenderTargetsInfo RenderTargetsInfo)

Convert all load action from NoAction to Clear for tiled GPU on OpenGL platform to avoid an unnecessary load action.

◆ SetResourcesFromTables()

template<class ShaderType >
FORCEINLINE void FOpenGLDynamicRHI::SetResourcesFromTables ( ShaderType *  Shader)

◆ SetShaderParametersCommon()

void FOpenGLDynamicRHI::SetShaderParametersCommon ( EShaderFrequency  ShaderFrequency,
TConstArrayView< uint8 InParametersData,
TConstArrayView< FRHIShaderParameter InParameters,
TConstArrayView< FRHIShaderParameterResource InResourceParameters 
)

◆ SetShaderUnbindsCommon()

void FOpenGLDynamicRHI::SetShaderUnbindsCommon ( EShaderFrequency  ShaderFrequency,
TConstArrayView< FRHIShaderParameterUnbind InUnbinds 
)

◆ Shutdown()

void FOpenGLDynamicRHI::Shutdown ( )
overridevirtual

Shutdown the RHI; handle shutdown and resource destruction before the RHI's actual destructor is called (so that all resources of the RHI are still available for shutdown).

Implements FDynamicRHI.

◆ UnlockBuffer_BottomOfPipe()

void FOpenGLDynamicRHI::UnlockBuffer_BottomOfPipe ( FRHICommandListBase RHICmdList,
FRHIBuffer Buffer 
)
finaloverridevirtual

Reimplemented from FDynamicRHI.

◆ UnlockStagingBuffer_RenderThread()

void FOpenGLDynamicRHI::UnlockStagingBuffer_RenderThread ( class FRHICommandListImmediate RHICmdList,
FRHIStagingBuffer StagingBuffer 
)
finaloverridevirtual

Unlock a staging buffer previously locked with LockStagingBuffer_RenderThread.

Parameters
RHICmdListThe command-list to execute on or synchronize with.
StagingBufferThe buffer what was previously locked.

Reimplemented from FDynamicRHI.

◆ UpdateSRV()

void FOpenGLDynamicRHI::UpdateSRV ( FOpenGLShaderResourceView SRV)

Friends And Related Symbol Documentation

◆ FOpenGLViewport

friend class FOpenGLViewport
friend

The documentation for this class was generated from the following files: