Commit Graph

1143 Commits

Author SHA1 Message Date
guillaume abadie
6aa3e60ba3 Fixes VisualizeTexture not visualizing Texture2DArray's slices
#rb trivial
#preflight 6295e710926be5fb68ab8d37

#ROBOMERGE-AUTHOR: guillaume.abadie
#ROBOMERGE-SOURCE: CL 20436510 via CL 20436511 via CL 20436521
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20448582 by guillaume abadie in ue5-main branch]
2022-06-01 03:50:53 -04:00
Guillaume Abadie
bf28d22c62 Fixes crash in Dynamic Resolution with -ExecCmds="stat unitgraph"
#rb trivial
#jira none
#preflight trivial
#preflight 62948c337149e31ace6fe941

[CL 20429419 by Guillaume Abadie in ue5-main branch]
2022-05-30 05:39:47 -04:00
jeremy moore
925a8fe75c Fix some items rendering to a separate velocity pass when base velocity pass is used with r.SelectiveBasePassOutputs.
This logic took primitives with a material using static lighting and moved velocity writing to a second pass.
Seems like that is some old behavior and after asking around it isn't well known why we had it.
Anyway it's not good to pay the cost of that second pass, so removing that.
#preflight 628fd8f574630984fd4d4464

#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 20392160 via CL 20392172 via CL 20392182
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20398501 by jeremy moore in ue5-main branch]
2022-05-27 16:44:41 -04:00
Guillaume Abadie
2a0978a831 Fixes linking failure on shipping in render graph
#rb trivial
#jira UE-154236
#preflight trivial

[CL 20380402 by Guillaume Abadie in ue5-main branch]
2022-05-26 12:09:03 -04:00
zach bethel
20b82e1c4e Fixed 16 bit float GBuffer format to use PF_FloatRGBA.
#rb krysztof.narkowicz
#preflight trivial

[CL 20379496 by zach bethel in ue5-main branch]
2022-05-26 11:00:31 -04:00
Guillaume Abadie
bbb8d0e2c8 Rewrites dynamic resolution on top of the DynamicRenderScaling API
#rb none
#jira UE-152561
#preflight 628f43e6f622d972b5cb4f2f

[CL 20377247 by Guillaume Abadie in ue5-main branch]
2022-05-26 05:34:08 -04:00
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
benjamin rouveyrol
7a21ea463f hdr multi window/display support
This improves how the editor deals with displays that have different capabilities (some with HDR, others without).
Centralize where the CVars are accessed
Have the swapchain created in SDR when shown on a SDR display
Make sure color gamut matches the one supported by the platform/swapchain.
Allow Movie scene capture to override the gamut/output format to keep existing behaviour (MovieSceneCapture relies on swapchain data)

#preflight 628baef5183c1e13462a504d
#jira UE-150952
#rb luke.thatcher

[CL 20347067 by benjamin rouveyrol in ue5-main branch]
2022-05-24 09:04:39 -04:00
Arciel Rekman
5623c7e0ae Fix disabling instanced stereo crashing the project.
#rb Jules.Blok
#jira UE-152879
#preflight none
#fyi Robert.Srinivasiah

[CL 20301834 by Arciel Rekman in ue5-main branch]
2022-05-20 15:54:01 -04:00
tiago costa
e98ce47a3b Keep track of all callable shaders to build RTPSO
- GetRayTracingCallableLibrary() similar to how we handle hitgroups.
FindRayTracingCallableIndex(...) to query callable shader index in RTPSO.

#rb yuriy.odonnell
#preflight 628620c99016c6dd8974b510

[CL 20278150 by tiago costa in ue5-main branch]
2022-05-19 07:03:30 -04:00
zach bethel
53be0355a9 Deprecated CopyToResolveTarget method.
#rb luke.thatcher
#preflight 6285632d660b4a15be67ef57

[CL 20269210 by zach bethel in ue5-main branch]
2022-05-18 17:55:32 -04:00
christopher waters
5a7c632f9b Fixing static analysis warning.
#jira UE-152849
#rb none
#preflight 628518b41f474f0660f18580

[CL 20262533 by christopher waters in ue5-main branch]
2022-05-18 12:33:38 -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
b480e5be5e Fixed crash in RDG due to transient extracted texture.
#jira UE-152668
#preflight trivial

[CL 20262222 by zach bethel in ue5-main branch]
2022-05-18 12:12:48 -04:00
christopher waters
1e01768e33 Bindless shader parameters
- Adding support for bindless resources/samplers. The loose resources have to be wrapped in a macro that generates an index and proxy resource when bindless is enabled. Reflection has to parse these differently from other resources since they're parsed as uint parameters. The runtime also has to bind these differently since they end up needing to find their real resource in the binding data and then update a constant buffer.
- To assist in conversions, the shader compiler will detect if a shader is compiled with both bindless and non-bindless resources/samplers and will emit errors if that is the case.
- Adding support for bindless Uniform Buffer resources/samplers. Because Uniform Buffers aren't per-shader, they'll always update their constants with the bindless indices of their resources.
- Adding more flags to FShaderCodePackedResourceCounts required changing all the array initializations to individual parameters since not all the new flags are used everywhere.
- No shaders have been configured to support bindless resources/samplers. Yet.

#jira UE-139616
#rb zach.bethel, arciel.rekman
#preflight 6282b8ec44349a6581a21a39

[CL 20250348 by christopher waters in ue5-main branch]
2022-05-17 16:30:48 -04:00
zach bethel
8a1a598d53 Fixed static analysis error and added more assert information to catch regression.
#preflight trivial
#jira UE-152693

[CL 20247062 by zach bethel in ue5-main branch]
2022-05-17 13:54:01 -04:00
zach bethel
fdc795f5b9 Implemented support for fused CopySrc | CopyDest transitions for Vulkan in RDG.
- Simplified RDG transition logic to only use subresource transitions.
 - Don't allow unmergeable states to be merged during pass setup.

#preflight 627ebfadca3b90fc14fb9b85
#fyi jeannoe.morissette

[CL 20224647 by zach bethel in ue5-main branch]
2022-05-16 11:02:52 -04:00
zach bethel
e37a08177c Submit async compute work prior to a fence from graphics -> async compute so that prior work isn't grouped with the submission to work around an issue in D3D12, which currently brute forces a fence from graphics to async compute any time graphics work is submitted.
#preflight 627c359a9f7ad2a14b8388d0
#fyi sebastien.hillaire

[CL 20152556 by zach bethel in ue5-main branch]
2022-05-11 18:40:35 -04:00
zach bethel
8963f09235 Deprecated RDG variant of texture readback.
#preflight 627c36f11e74993343b92723

[CL 20152540 by zach bethel in ue5-main branch]
2022-05-11 18:40:20 -04:00
geoff evans
d90ca97505 RenderingThread: Fix lack of logging the message and callstack for check() failures
### Notes
The check() message and callstack is actually printed in FWindowsErrorOutputDevice::HandleError which is called in the __except block after we RaiseException() inside ReportAssert(). However, RenderingThread's __except doesn't do this, so the contents of GErrorHist are lost to everyone except for CrashReporter. This change adds this necessary logging.

Also, add Windows Launch support for -IgnoreDebugger when choosing __try/__except or not (this precedes initialization of GIgnoreDebugger). This makes debugging easier for this class of issue.

### Testing
Repro steps are in the JIRA. Tested at that change (which has a reliable RenderingThread check() failure), and at #head where no defect exists. Tests fail and pass, respectively, as expected.

#rnx
#rb francis.hurteau
#jira UE-151056
#preflight 627b0b4ac42338be653745e6

[CL 20140980 by geoff evans in ue5-main branch]
2022-05-11 11:19:14 -04:00
Dmitriy Dyomin
038d909044 Support shading models for mobile deferred path when static lighting is disabled
#rb wei.liu
#jira none
#preflight 627b5f586842238976719cc3

[CL 20134438 by Dmitriy Dyomin in ue5-main branch]
2022-05-11 03:17:42 -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
john huelin
95c1680b6e Fix DrawCallCount per pass not working when multithreaded RHI command recording is enabled.
[REVIEW]
#rnx

#ROBOMERGE-OWNER: john.huelin
#ROBOMERGE-AUTHOR: john.huelin
#ROBOMERGE-SOURCE: CL 20105654 via CL 20105671 via CL 20107113 via CL 20107146
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20110543 by john huelin in ue5-main branch]
2022-05-09 16:35:01 -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