Commit Graph

16 Commits

Author SHA1 Message Date
Guillaume Abadie
0734868f53 Implements DynamicRenderScaling API with GPU timing measurement integrated within RDG
This allows to define a new dynamic scaling in the renderer with low amount of boiler plate:

DynamicRenderScaling::FHeuristicSettings GetDynamicTranslucencyResolutionSettings()
{
	RenderingDynamicScaling::FHeuristicSettings BucketSetting;
	BucketSetting.Model = RenderingDynamicScaling::EHeuristicModel::Quadratic;
	BucketSetting.bModelScalesWithPrimaryScreenPercentage = true;
	BucketSetting.MinResolutionFraction = ...
	...
	return BucketSetting;
}

DynamicRenderScaling::FBudget GDynamicTranslucencyResolution(TEXT("DynamicTranslucencyResolution"), &GetDynamicTranslucencyResolutionSettings);


And then simply define a scope to measure the GPU timing as such:

{
	DynamicRenderScaling::FRDGScope DynamicTranslucencyResolutionScope(GraphBuilder, GDynamicTranslucencyResolution);

	// add passes to GraphBuilder
}

#rb zach.bethel
#jira UE-152561
#preflight 628f1219bb14235aa38c904c

[CL 20376428 by Guillaume Abadie in ue5-main branch]
2022-05-26 01:58:36 -04:00
christopher waters
4b9e68073c Deprecating RHICreateTexture2D and RHICreateTextureExternal2D.
#jira none
#rb zach.bethel
#preflight 627a6ec010766ef8c1f54f1e

[CL 20129702 by christopher waters in ue5-main branch]
2022-05-10 17:13:37 -04:00
zach bethel
2156756315 Replaced use of CopyToResolveTarget with CopyTexture.
#preflight 627a90ff7e5f24d1edd73422
#rb luke.thatcher, jason.hoerner

[CL 20127337 by zach bethel in ue5-main branch]
2022-05-10 14:47:34 -04:00
zach bethel
1a6dbc061d Deprecated FRDGBufferDesc::EUnderlyingType
#preflight 62756de8d8373707f22a6144
#rb christopher.waters

[CL 20082899 by zach bethel in ue5-main branch]
2022-05-06 15:44:23 -04:00
jeannoe morissette
95da1ff33f DumpGPU: Skip AvailableVirtual in IsUnsafeToDumpResource check if it's exactly 0 (value when it's not supported).
#rb Guillaume.Abadie
#preflight 6273d2596a646b1d153d86af
#rnx

[CL 20057045 by jeannoe morissette in ue5-main branch]
2022-05-05 09:43:53 -04:00
zach bethel
ac11396729 Fixed test and validation regressions due to RDG changes.
#preflight 6272a1f12f6d177be3c60a53
#jira UE-150908

[CL 20043535 by zach bethel in ue5-main branch]
2022-05-04 12:41:19 -04:00
guillaume abadie
d4b1dc7ad5 Adds OS name and version into DumpGPU's informations tab
#rb trivial
#preflight trivial

#ROBOMERGE-AUTHOR: guillaume.abadie
#ROBOMERGE-SOURCE: CL 20025927 via CL 20025954 via CL 20025973
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20029272 by guillaume abadie in ue5-main branch]
2022-05-03 14:19:54 -04:00
guillaume abadie
4dc8472228 Adds support for Texture2DArray in DumpGPU
#rb juan.canada
#preflight 62711cc29d6c2f8f5b1a2111

#ROBOMERGE-AUTHOR: guillaume.abadie
#ROBOMERGE-SOURCE: CL 20023927 via CL 20023941 via CL 20023946
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20024812 by guillaume abadie in ue5-main branch]
2022-05-03 09:58:16 -04:00
zach bethel
10131e1285 Refactored RDG in preparation for UnifiedBuffer conversions.
- Refactord 'Finalized Access' feature into a more flexible 'External' vs. 'Internal' access mode per resource toggle.
      - Resources can transition between modes multiple times within the graph.
      - Supports async compute pipeline.
      - Supports queueing of requests to avoid back-to-back helper passes.
      - This feature is needed to support conversion of GPU scene buffers.

 - Deprecated the ReadOnly and ForceTracking resource flags and added a 'SkipTracking' flag instead.
      - Previous semantics were confusing and error prone.
      - New model requires a manual flag to tell RDG never to transition a resource.
      - This flag is used for read-only dummy resources as an optimization.

 - Renamed some of the auxiliary 'FinalizedResource' utilities since the name no longer matches the semantics.

#preflight 6266cc6d0634d0904ce4ba46

[CL 19904734 by zach bethel in ue5-main branch]
2022-04-25 13:00:12 -04:00
zach bethel
3864629f00 Minor RDG improvements in preparation for UnifiedBuffer conversion.
- Added resource pool counters and events.
 - Added AllocatePooledBuffer method and refactored pool to no longer take a command list.
 - Refactored swap chain barrier logic to be a bit cleaner.
 - Added helper methods to cast between views.
 - Added power of two alignment option to buffer pool.
 - Added GetTypeHash implementations for RDG SRV | UAV descriptors.

#preflight 62631046006fa20b683d130f

[CL 19873407 by zach bethel in ue5-main branch]
2022-04-22 17:11:57 -04:00
jason hoerner
0fb10e3017 MGPU: Fixes for Lumen, solving issues with black or too dark lighting on secondary GPUs or when swapping GPU assignments for a view.
* Page captures are now tracked separately per GPU, to avoid problems with uninitialized pages on other GPUs.  Pages that need capturing for the first time on a given GPU are prioritized and not counted against the throttled limit for page recaptures.
* Lumen scene buffer uploads are run across all GPUs.
* Lumen one-time procedural texture generation (OctahedralSolidAngleTexture) runs across all GPUs.
* DumpGPU was upgraded to be able to preview compressed formats used by Lumen (BC4, BC5, BC6H, BC7), critical for debugging Lumen behavior.

#jira UE-146458
#rnx
#rb krzysztof.narkowicz guillaume.abadie
#preflight 62374b6ff101b8d0afc6ac7f
#lockdown Mihnea.Balta

#ROBOMERGE-AUTHOR: jason.hoerner
#ROBOMERGE-SOURCE: CL 19807327 in //UE5/Release-5.0/... via CL 19807923
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v939-19570697)

[CL 19812041 by jason hoerner in ue5-main branch]
2022-04-19 13:25:38 -04:00
juan canada
40c97ded70 Fixed compilation error introduced by 19547074 colliding with 19546929
[FYI] Edwin.Maynard, guilaume.abadie
#jira UE-147462
#rb none
#preflight none

#ROBOMERGE-AUTHOR: juan.canada
#ROBOMERGE-SOURCE: CL 19550057 via CL 19550110 via CL 19550143
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v937-19513599)

[CL 19560930 by juan canada in ue5-main branch]
2022-03-30 14:18:00 -04:00
guillaume abadie
d5f3de4025 Have DumpGPU to dump a log on crash, as well as a Base/Status.txt to explicitly detect in the viewer if something went really wrong
#rb juan.canada
#preflight 62433f34927e60e34141e8dd

#ROBOMERGE-AUTHOR: guillaume.abadie
#ROBOMERGE-SOURCE: CL 19547074 via CL 19547081 via CL 19547085
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v937-19513599)

[CL 19560863 by guillaume abadie in ue5-main branch]
2022-03-30 14:16:07 -04:00
guillaume abadie
04d236812f Do not DumpGPU RDG resources that are read-only
#jira UE-146647
#rb trivial
#preflight 6241c8808330d27ee3908af4

#ROBOMERGE-AUTHOR: guillaume.abadie
#ROBOMERGE-SOURCE: CL 19527390 via CL 19527520 via CL 19527536
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v937-19513599)

[CL 19532702 by guillaume abadie in ue5-main branch]
2022-03-28 16:26:45 -04:00
guillaume abadie
7b9b4fd2a9 Implements DumpGPUServices plugin to have DumpGPU -upload
#rb juan.canada
#preflight 623ca9fed078aec3e42ee738

#ROBOMERGE-AUTHOR: guillaume.abadie
#ROBOMERGE-SOURCE: CL 19499603 via CL 19500414 via CL 19500427
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v936-19480137)

[CL 19502702 by guillaume abadie in ue5-main branch]
2022-03-24 17:10:00 -04:00
guillaume abadie
f54db62401 Renames RenderGraphDumpResources.cpp to DumpGPU.cpp
#rb juan.canada

#ROBOMERGE-AUTHOR: guillaume.abadie
#ROBOMERGE-SOURCE: CL 19477736 via CL 19481398 via CL 19481536
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v936-19480137)

[CL 19484020 by guillaume abadie in ue5-main branch]
2022-03-23 15:54:30 -04:00