Commit Graph

877 Commits

Author SHA1 Message Date
Stu McKenna
d0dc8793d5 - Fix for incorrect UAVs on Cube / Cube Arrays
#rb Mihnea.Balta
#jira UE-147331
#rnx
#preflight 62447a06df7d23dbfefa9598

[CL 19558624 by Stu McKenna in ue5-main branch]
2022-03-30 12:13:23 -04:00
Devin Doucette
292008ea35 Logging: Replaced GLog->PanicFlush() with GLog->Panic()
Panic allows only one thread to become the panic thread. In panic mode, logs are only sent to panic-safe output devices. Each call to Panic flushes buffered logs to panic-safe output devices, and flushes panic-safe output devices.

#jira UE-147152
#preflight 62424814292f228e09d8a612
#rb Zousar.Shaker
#fyi Brandon.Schaefer

[CL 19545093 by Devin Doucette in ue5-main branch]
2022-03-29 13:31:48 -04:00
Marc Audy
13c761841d Fix non-unity nopch compile errors
#rnx
#preflight 623ead83610771b0f5b67668
#preflight 623eb50f196f3ae80b533bbf

[CL 19521592 by Marc Audy in ue5-main branch]
2022-03-26 02:44:37 -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
Devin Doucette
c8d64e3c97 Logging: Added and migrated to GLog->PanicFlush() for crash handling
#preflight 623a433a10251d53d5796835
#rb Zousar.Shaker

[CL 19478551 by Devin Doucette in ue5-main branch]
2022-03-23 09:39:18 -04:00
christopher waters
6698ca0eb9 Cleaning up dxgi includes in D3D11RHI
#jira none
#rb mihnea.balta
#preflight 623351a484667926da270904

[CL 19421727 by christopher waters in ue5-main branch]
2022-03-17 11:51:00 -04:00
jeff newquist
1b91227ac0 Add EPixelFormatCapabilities::TextureStore to complete list of possible capabilities (BufferLoad, BufferStore, TextureLoad, TextureStore), since some platforms expose formats with differing capabilities.
Interpret D3D*_FORMAT_SUPPORT_BUFFER as EPixelFormatCapabilities::BufferLoad, rather than D3D*_FORMAT_SUPPORT_SHADER_LOAD, which is for texture loads.
#jira none
#rb chris.waters
#preflight 6230c93a7b5cb4076889c2d8

[CL 19404863 by jeff newquist in ue5-main branch]
2022-03-16 08:53:55 -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
christopher waters
b7f30cbbaf Adding minimal interfaces to D3D11 and D3D12 RHIs
- Adding ID3D12DynamicRHI and ID3D11DynamicRHI interfaces for plugins that want to touch DirectX resources/devices directly.
- Adding specific headers for including DirectX headers: D3D12ThirdParty.h and D3D11ThirdParty.h
- Modifying plugins that were using D3D11RHIPrivate.h and D3D12RHIPrivate.h to use the interfaces instead.
- Removing plugin references to UE Modules and ThirdParty libraries that were only needed because they included the private RHI headers.
- Removing D3D11RHI/Private and D3D12RHI/Private from plugin include paths.

#jira none
#rb jeannoe.morissette, kenzo.terelst, mihnea.balta, eric.mcdaniel
#preflight 6222395bb066ef60bbad004a

[CL 19267223 by christopher waters in ue5-main branch]
2022-03-04 11:34:00 -05:00
christopher waters
6d4ca5b847 Fixing invalid call to INTC_D3D11_GetSupportedVersions where the pSupportedExtVersionsCount argument needs to contain the correct count. This is preventing Nanite from rendering on discrete Intel video cards.
#jira UE-143610
#rb kenzo.terelst, jeannoe.morissette, lukas.hermanss
#preflight 6217b349785f20248baa3b03

#ROBOMERGE-AUTHOR: christopher.waters
#ROBOMERGE-SOURCE: CL 19115910 in //UE5/Release-5.0/... via CL 19116142
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19153312 by christopher waters in ue5-main branch]
2022-02-25 14:34:53 -05:00
aaron mcleran
158c3a5b16 Removing restricted platform names from file
#rb Maxwell.Hayes
#jira UE-130476
#preflight 6216c015a45a91013f430d08


#ROBOMERGE-AUTHOR: aaron.mcleran
#ROBOMERGE-SOURCE: CL 19106676 via CL 19107096 via CL 19107208 via CL 19107219 via CL 19110186
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19151559 by aaron mcleran in ue5-main branch]
2022-02-25 13:27:37 -05:00
christopher waters
a2503f0872 Adding ERHIInterfaceType so the public RHIs can identify themselves.
Adding templated GetDynamicRHI that makes sure we don't cast the Validation DynamicRHI by accident.

#jira none
#rb jeannoe.morissette, zach.bethel
#preflight 62169c43104496cff8a1d9df

[CL 19100864 by christopher waters in ue5-main branch]
2022-02-23 16:13:31 -05:00
christopher waters
940e858169 Finishing move to ComputePipelineState objects
- Deprecating IRHIComputeContext::RHISetComputeShader.
- Moving the fallback version of  RHISetComputePipelineState to IRHICommandContextPSOFallback.
- Making IRHIComputeContext::RHISetComputePipelineState pure virtual.
- Moving the fallback versions of RHICreateGraphicsPipelineState and RHICreateComputePipelineState into the new FDynamicRHIPSOFallback for platforms that were already using IRHICommandContextPSOFallback.
- Making FDynamicRHI::RHICreateGraphicsPipelineState and FDynamicRHI::RHICreateComputePipelineState pure virtual.

#jira none
#rb luke.thatcher, florin.pascu, will.damon, jeannoe.morissette
#preflight 621660bcc152c67496d9cc75

[CL 19095306 by christopher waters in ue5-main branch]
2022-02-23 13:17:16 -05:00
aaron mcleran
7e436c45ab Making sure codecs match up on cook vs runtime
#rb Maxwell.Hayes
#jira UE-141273
#preflight 6201b20d62420bfd049b13c3

#ROBOMERGE-AUTHOR: aaron.mcleran
#ROBOMERGE-SOURCE: CL 18911813 in //UE5/Release-5.0/... via CL 18919379 via CL 18920558
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v916-18915374)

[CL 18921347 by aaron mcleran in ue5-main branch]
2022-02-09 13:20:11 -05:00
jimmy smith
671c68d9b3 Fix ToStringHelper Non-unity CIS issue.
#jira UE-140535
#rb aaron.mcleran
#rb phil.popp
#preflight 6201caad97149bc07a91a458

#ROBOMERGE-AUTHOR: jimmy.smith
#ROBOMERGE-SOURCE: CL 18904384 in //UE5/Release-5.0/... via CL 18904476 via CL 18904619
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v913-18904215)

[CL 18904638 by jimmy smith in ue5-main branch]
2022-02-08 12:45:23 -05:00
christopher waters
227ac32a63 Removing deprecated RHI functions
#jira none
#rb luke.thatcher, dmitriy.dyomin, florin.pascu, zach.bethel, jeannoe.morissette
#preflight 61fb00ca5e35b9215b01b7d0

[CL 18844394 by christopher waters in ue5-main branch]
2022-02-03 12:09:32 -05:00
robert srinivasiah
3737a45475 Hololens: Dedicated Shader Platform
We can't share DDPI infrastructure with PC D3D ES3.1 because of conflicts from sharing. We need a separate shader platform.
For now, we'll just 'intrusively' plumb the new Hololens shader platform. In the future, we want to move as much code out into
Hololens-specific platform code to reduce conflict with shared paths that don't need to know about Hololens.

#rb steve.smith, christopher.waters
#jira UE-133375
#preflight 61f9ca302251c6fb596e583e

#ROBOMERGE-AUTHOR: robert.srinivasiah
#ROBOMERGE-SOURCE: CL 18818524 in //UE5/Release-5.0/... via CL 18818546 via CL 18822881
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18824735 by robert srinivasiah in ue5-main branch]
2022-02-02 08:00:15 -05:00
aaron mcleran
8db0b74958 Cleaning up codec definitions on soundwaves.
- Adding new enumeration to select PCM, ADPCM, Bink, and "platform specific"
- Updated platform codecs and various APIs to select correctly which codec to use
- Changed "is seekable streaming" semantics to "Is Seekable" since that is more correct in a post-stream-caching world
- Tried to clean up platform backends. Unable to move Bink decoder to multiplatform code because of module dependencies, will require a future refactor of our decoder module setup.

#rb Phil.Popp, Jimmy.Smith
#jira UE-140860
#preflight 61f97ad7f02e20f45add6d45

#ROBOMERGE-AUTHOR: aaron.mcleran
#ROBOMERGE-SOURCE: CL 18813332 in //UE5/Release-5.0/... via CL 18813341 via CL 18822758
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18824290 by aaron mcleran in ue5-main branch]
2022-02-02 07:35:13 -05:00
christopher waters
112a73b5c6 Adding depth clip control to the rasterizer state.
#jira UE-85381
#rb mihnea.balta, will.damon, jeannoe.morissette, arciel.rekman, luke.thatcher, eric.mcdaniel, florin.pascu, dmitriy.dyomin
#preflight 61f8545c114ec25fe0b4d12c

[CL 18799473 by christopher waters in ue5-main branch]
2022-01-31 17:28:38 -05:00
jimmy smith
c30a34c5b8 Incremental Refactor XAudio2, move stringify error codes into StringHelper
[CODEREVIEW] 18760692
#preflight 61f306361f12674afbc21105

#ROBOMERGE-AUTHOR: jimmy.smith
#ROBOMERGE-SOURCE: CL 18761821 in //UE5/Release-5.0/... via CL 18761887 via CL 18763071
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18763424 by jimmy smith in ue5-main branch]
2022-01-27 17:09:32 -05:00
jimmy smith
a5fa4e126f Fix AudioMixer XAudio2 to recover after failing to init, allowing for device swap after a open failture. Also strip out DLL fallback code as was causing issues with init recovery.
#rb aaron.mcleran phil.popp
[FYI] sondra.moyls
#jira UE-139275
#preflight 61f1d13de12e3fcf9b27d0cc

#ROBOMERGE-AUTHOR: jimmy.smith
#ROBOMERGE-SOURCE: CL 18747223 in //UE5/Release-5.0/... via CL 18747233 via CL 18747298
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18747310 by jimmy smith in ue5-main branch]
2022-01-26 18:21:15 -05:00
jeannoe morissette
c513b4ef5a Loop on PendingDeletes in DX11 (matches behavior on DX12 and Vulkan) since freeing resources can cause new pending deletes.
#rb christopher.waters,mihnea.balta
#jira UE-126789
#preflight 61f184387266f4e79bd70ba0

#ROBOMERGE-AUTHOR: jeannoe.morissette
#ROBOMERGE-SOURCE: CL 18737874 in //UE5/Release-5.0/... via CL 18738330 via CL 18739354
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18739951 by jeannoe morissette in ue5-main branch]
2022-01-26 13:53:59 -05:00
christopher waters
945a3112f0 Workaround for static analysis warning C6385, if we pass in SupportedExtensionsVersionCount to INTC_D3D11_GetSupportedVersions the second time, the static analyzer thinks it may be different from the first call.
#jira none
#rb trivial
#preflight 61f03ddc716bb9c66a2dc26f

#ROBOMERGE-AUTHOR: christopher.waters
#ROBOMERGE-SOURCE: CL 18725708 in //UE5/Release-5.0/... via CL 18725720 via CL 18725976
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18726019 by christopher waters in ue5-main branch]
2022-01-25 13:56:26 -05:00
christopher waters
c08bc8a9cd Intel extensions for 64bit atomics
#jira none
#rb mihnea.balta, graham.wihlidal
#preflight 61eeeb29ba69a4fdb219e68f

#ROBOMERGE-AUTHOR: christopher.waters
#ROBOMERGE-SOURCE: CL 18712534 in //UE5/Release-5.0/... via CL 18712568 via CL 18712835
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18712869 by christopher waters in ue5-main branch]
2022-01-24 14:48:23 -05:00
james doverspike
cba102fd02 CVar to crash on GPU OOM
#ROBOMERGE-AUTHOR: james.doverspike
#ROBOMERGE-SOURCE: CL 18668822 via CL 18668957 via CL 18669174 via CL 18669351 via CL 18669437 via CL 18669446 via CL 18669671 via CL 18669682 via CL 18669689
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v901-18665521)

[CL 18669702 by james doverspike in ue5-main branch]
2022-01-19 19:37:53 -05:00