Commit Graph

891 Commits

Author SHA1 Message Date
Marc Audy
e5a303d119 Fix CIS issues
#codereview ahmed.rizwan, yujiang.wang, graham.wihlidal, Aidan.Possemiers, luke.thatcher, zach.bethel
#rnx
#preflight

[CL 20306971 by Marc Audy in ue5-main branch]
2022-05-20 20:25:42 -04:00
zach bethel
acc746696b Implemented dedicated MSAA resolve code path for platforms, bypassing RHICopyToResolveTarget.
#preflight 6286ba2015019f64776e4b3e
#rb christopher.waters

[CL 20298040 by zach bethel in ue5-main branch]
2022-05-20 13:24:58 -04:00
dmitriy dyomin
cd48e968f6 Add logging for GL buffer lock fail
#ROBOMERGE-AUTHOR: dmitriy.dyomin
#ROBOMERGE-SOURCE: CL 20258568 via CL 20258571 via CL 20258573 via CL 20258576
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20262912 by dmitriy dyomin in ue5-main branch]
2022-05-18 12:52:44 -04:00
zach bethel
f6311d1011 Cleaned up FRHIRenderPassInfo cruft and forwarded resolve operations through a common RHI core method.
#preflight 62842b5982530182724612f6

[CL 20262457 by zach bethel in ue5-main branch]
2022-05-18 12:29:26 -04:00
zach bethel
379ccdd136 Added RHICopyTexture unit tests and fixed up inconsistencies / bugs.
- A zero size now uses the source texture size adjusted to the source mip.
 - Source / dest offsets and size now properly scale with each successive mip level.
 - Fixed bug in reflection capture GPU copy due to inconsistent behavior.
 - Deprecated GRHISupportsCopyToTextureMultipleMips which is now always true.

#rb brian.white
#preflight 627fc1af3339713c4a9800da

[CL 20224824 by zach bethel in ue5-main branch]
2022-05-16 11:11:35 -04:00
christopher waters
3b18bce7f0 Fixing initial state issues after changing the FRHITextureCreateDesc creation.
#jira UE-151907
#rb mihnea.balta
#preflight 627e751b7c26e2477354c142

[CL 20182229 by christopher waters in ue5-main branch]
2022-05-13 11:45:30 -04:00
christopher waters
9ef9e2bf50 Removing the long-form create functions and constructors from FRHITextureCreateDesc in favor of the shorter versions.
#jira none
#rb luke.thatcher
#preflight 627d7c70a82f3adab8b3524e

[CL 20172685 by christopher waters in ue5-main branch]
2022-05-12 17:59:39 -04:00
Luke Thatcher
1177b6f932 Fix incorrect handling of bArray argument in FOpenGLDynamicRHI::RHICreateTextureCubeFromResource
#rb none
#preflight skip
#jira none

[CL 20145336 by Luke Thatcher in ue5-main branch]
2022-05-11 14:12:18 -04:00
Wei Liu
355707489e Refactor of mobile custom depth/stencil to line up with pc on all mobile platform.
#jira none

#rb Dmitriy.Dyomin
#fyi Serge.Bernier
#preflight 627b87a65d003338d95018bf

[CL 20135905 by Wei Liu in ue5-main branch]
2022-05-11 06:10:52 -04:00
zach bethel
8753b64663 Fixed inconsistencies between RHI's with CopyTexture. Replaced implicit check for equality with an assert at the command list.
#jira UE-139646
#rb luke.thatcher
#preflight 627a99cb68422389764263b5

[CL 20129376 by zach bethel in ue5-main branch]
2022-05-10 16:53:36 -04:00
carl lloyd
192abb6ebb Changed PLS to require ARM framebuffer depth/stencil fetch on OpenGL
#jira UE-145425, UE-145424
#rb Jack.Porter
#fyi Wei.Liu
#preflight 627910784561731dbeee9c30

[CL 20101739 by carl lloyd in ue5-main branch]
2022-05-09 09:28:57 -04:00
Florin Pascu
c0ea537f82 Set Backbuffer's TexCreate_ResolveTargetable flag for cases when MobileHDR=false and MSAA is enabled
#jira UE-150528
#rb Dmitriy.Dyomin,Jack.Porter,Mihnea.Balta
#preflight 6270f3625e6ce673f4327ac5

[CL 20022856 by Florin Pascu in ue5-main branch]
2022-05-03 05:40:12 -04:00
Dmitriy Dyomin
271c3e1047 Removed support for separate shader objects from GL RHI as it was never used for GLES
#rb none
#jira none
#preflight 626802d0943f717ebfbb2968

[CL 19920264 by Dmitriy Dyomin in ue5-main branch]
2022-04-26 10:58:48 -04:00
Dmitriy Dyomin
2c431881de Added better state tracking for a case where both real UBs and eUBs are used together in GL
#rb none
#jira none
#preflight 6267aa315037f70ba02d3684

[CL 19916728 by Dmitriy Dyomin in ue5-main branch]
2022-04-26 04:22:05 -04:00
Jack Porter
d624a71ae6 Fix Static Analysis warning
#rb None
#jira UE-149946
#fyi Carl.Lloyd
#preflight 62664f83d80b06866cb2f232

[CL 19899162 by Jack Porter in ue5-main branch]
2022-04-25 04:02:12 -04:00
Dmitriy Dyomin
aef16fa692 Log value of GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EX
#rb none
#preflight 625fa5d26b458c3f859d604e

[CL 19826521 by Dmitriy Dyomin in ue5-main branch]
2022-04-20 02:27:02 -04:00
Dmitriy Dyomin
d95b02416a Remove TextureView path in GL RHI, as it's not supported in GL ES
#rb none
#preflight 625f965e4617dd4429f9d210

[CL 19826433 by Dmitriy Dyomin in ue5-main branch]
2022-04-20 01:54:11 -04:00
carl lloyd
54e296cef5 Added support for forcing Real UB's when using emulated UB's
#rb Dmitriy.Dyomin, Laura.Hermanns, Mihnea.Balta
#preflight 62556f463f5641db59f06e8b

[CL 19719192 by carl lloyd in ue5-main branch]
2022-04-12 08:41:13 -04:00
dmytro vovk
74bdc5a190 Refactored usage of out of scope strings in RHICreateAliasedTexture
#jira none
#review Mihnea.Balta
#preflight 624ec8ac8e5ae00f0adc5c81

[CL 19667797 by dmytro vovk in ue5-main branch]
2022-04-07 09:20:43 -04:00
zach bethel
f457a69101 Added RHI tracked access API to remove Unknown transitions.
- New RHI command list SetTrackedAccess method for the user to supply a current whole-resource state.
 - New RHI command context GetTrackedAccess method for querying the tracked access in RHIBeginTransitions / RHIEndTransitions on the RHI thread.
 - Hooked RHICmdList.Transition and FRHICommandListExecutor::Transition to assign tracked state automatically.
 - Refactored RDG and resource pools to use new RHI tracking.
      - FRDGPooledBuffer / FRDGPooledTexture no longer contain tracked state. RDG temp-allocates state through the graph allocator instead.
      - All prologue transitions are 'Unknown', and all epilogue transitions coalesce into a whole resource state.
 - Implemented platform support for patching the 'before' state with the tracked state.
 - Implemented various RHI validation checks:
      - Asserts that the user assigned tracked state matches RHI validation tracked state, for all subresources.
      - Asserts that tracked state is not assigned or queried from a parallel translation context.
 - Added FRHIViewableResource and FRHIView base classes to RHI. FRHIView contains a pointer to an FRHIViewableResource. This is currently a raw pointer, but should be extended to a full reference in a later CL.

NOTE on RHI thread constraint:

Transition evaluation is now restricted to the RHI thread (i.e. no parallel translation contexts). Transitions aren't performed in parallel translate contexts anyway, so this is not a problem. If, however, we decide to refactor parallel translation to be more general, this implementation could be extended to track the state per context and update from the 'dispatch' thread.

#preflight 6233b4396666d7e753a16aaf
#rb kenzo.terelst

[CL 19513316 by zach bethel in ue5-main branch]
2022-03-25 11:19:10 -04:00
dmitriy dyomin
968550df5c Fixed: incorrect CRC check for OpenGL shaders
#rb allan.bentham

#ROBOMERGE-AUTHOR: dmitriy.dyomin
#ROBOMERGE-SOURCE: CL 19418910 via CL 19418927 via CL 19419418 via CL 19428996 via CL 19429147
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v930-19419903)

[CL 19432565 by dmitriy dyomin in ue5-main branch]
2022-03-18 02:32:51 -04:00
Luke Thatcher
ee64a28f30 Copying //UE5/Dev-ParallelRendering to //UE5/Main
This change is the copy-up of work from //UE5/Dev-ParallelRendering to unify the various RHI texture types
 - The separate RHI texture types (FRHITexture2D, FRHITexture2DArray, FRHITexture3D, FRHITextureCube, FRHITextureCubeArray) have been replaced with a single type: FRHITexture.
 - Includes the required refactoring / fixes for the various platform RHIs.

The old texture types are still supported via typedefs, but will soon be marked deprecated. Future rendering code should make use of the FRHITexture type instead.

#jira UE-139559
#rb Mihnea.Balta
#preflight 622f3af819287beb2c3047f6
#robomerge[FN_ENGINEMERGE] DEV-NC

[CL 19371962 by Luke Thatcher in ue5-main branch]
2022-03-14 09:14:58 -04:00
dmitriy dyomin
71ab9573ca Fixed: Correctly count texture and render target memory usage in OpenGL RHI
#rb allan.bentham
[FYI] peter.sauerbrei

#ROBOMERGE-AUTHOR: dmitriy.dyomin
#ROBOMERGE-SOURCE: CL 19284140 via CL 19284141 via CL 19295456 via CL 19304888 via CL 19305089
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)

[CL 19347124 by dmitriy dyomin in ue5-main branch]
2022-03-10 21:02:22 -05:00
christopher waters
f650cb0d4e Adding minimal interface to OpenGLDrv
- Adding IOpenGLDynamicRHI interface for plugins that want to touch OpenGL resources/handles directly.
- Modifying plugins that were using OpenGLDrv.h to use the interface instead.
- Removing plugin references to UE Modules and ThirdParty libraries that were only needed because they included the private RHI headers.
- Removing OpenGLDrv/Private from plugin include paths.

#jira none
#rb dmitriy.dyomin, lukas.hermanns, robert.srinivasiah
#preflight 6226442206521a56d5d99678
#robomerge FNNC

[CL 19314031 by christopher waters in ue5-main branch]
2022-03-08 18:48:58 -05:00
allan bentham
bc9a67a871 Android OGL will create multiple separate services for precompiling GLES programs.
only used during PSO precompiling.
This can reduce PSO precompile times by as much as 2/3rds.
It is enabled by default, it can be disabled via Android.OpenGL.NumRemoteProgramCompileServices=0 or setting android configrule variable 'DisableProgramCompileServices' to true.

#rb chris.babcock, Dmitriy.Dyomin
[FYI] peter.sauerbrei, jack.porter


#preflight 6218decf847077002e87365b

#ROBOMERGE-OWNER: allan.bentham
#ROBOMERGE-AUTHOR: allan.bentham
#ROBOMERGE-SOURCE: CL 19147130 via CL 19147174 via CL 19148641 via CL 19148655 via CL 19160382
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19161662 by allan bentham in ue5-main branch]
2022-02-25 19:54:29 -05:00