Commit Graph

167 Commits

Author SHA1 Message Date
Sebastien Hillaire
768995e820 Strata - added a check for a case that is not handled well.
#rb none
#preflight none
#fyi charles.derousiers

[CL 23221875 by Sebastien Hillaire in ue5-main branch]
2022-11-21 11:12:38 -05:00
Charles deRousiers
463ca1dae6 Fix compilation error/warning when Strata is enabled on dx11.
#rb none
#jira none
#preflight 637b5fc14004f73f622f3d3f
#fyi sebastien.hillaire

[CL 23219130 by Charles deRousiers in ue5-main branch]
2022-11-21 06:43:48 -05:00
Charles deRousiers
a35061a7cf Add initial mobile support for Strata.
This CL adds
* Forward shading support (deferred support will be added later on)
* Slab/Eye/Hair/SLW support
* Directional/Local/Env/Planar lighting

There are a couple of followup to the initial CL:
* Fix incorrect env. specular contribution which is too low to what is supposed to be
* Add SH lighting support
* Merge StrataForwardLighting and StrataMobileFowardLighting if possible as there are a lot of overlap

#rb sebastien.hillaire, wei.liu, dmitriy.dyomin
#jira none
#preflight 6377b4ff3377450900751434

[CL 23218346 by Charles deRousiers in ue5-main branch]
2022-11-21 02:30:07 -05:00
Sebastien Hillaire
b19df6202a Strata - fixed static variable shadowing.
#rb none
#preflight none

[CL 23158492 by Sebastien Hillaire in ue5-main branch]
2022-11-16 13:54:10 -05:00
Sebastien Hillaire
cd4aa07281 Strata - added high quality normal according to GBuffer format.
#rb none
#preflight https://horde.devtools.epicgames.com/job/6374f970b6636838280f3278
#fyi charles.derousiers

[CL 23155230 by Sebastien Hillaire in ue5-main branch]
2022-11-16 11:35:48 -05:00
Sebastien Hillaire
f34b2df7d5 Fixed Strata looking bad on some platforms requiring render target format specification (not account for Strata target count, motion blur not specifying the correct index)
#rb none
#preflight https://horde.devtools.epicgames.com/job/63749aff3248425305676b3b
#fyi charles.derousiers, jamie.hayes

[CL 23151575 by Sebastien Hillaire in ue5-main branch]
2022-11-16 03:26:45 -05:00
Charles deRousiers
2a12147bc9 Drive Strata/Lumen tile overflow based on material max BSDF
#rb none
#jira none
#preflight 635ab63d015611ae3af1a47e
#fyi sebastien.hillaire

[CL 22813356 by Charles deRousiers in ue5-main branch]
2022-10-27 13:24:29 -04:00
Charles deRousiers
3cab756227 Add strata overview debug info mode.
This summarize most of Strata settings into a single place for quite debugging.

This is mapped onto r.Strata.ViewMode 7

#rb none
#jira none
#preflight 635a87b1f1493f9786606cf9
#fyi sebastien.hillaire

[CL 22809090 by Charles deRousiers in ue5-main branch]
2022-10-27 09:52:35 -04:00
jamie hayes
0e1478025d - Don't output velocity for WPO-enabled Nanite clusters when emitting depth with velocity output enabled.
- Split the Nanite shading pass up into two when outputting velocity during the depth pre-pass: Non-WPO & WPO.
- Add the ability to use an alternate GBuffer layout for given materials to satisfy the output bindings required by the new second Nanite shading pass.

#rb graham.wihlidal, jason.nadro
#jira UE-164554

[CL 22581659 by jamie hayes in ue5-main branch]
2022-10-17 17:59:19 -04:00
sebastien hillaire
2192c51c9f Strata - fixed Debug Visualization.
#jira UE-166658
#rb charles.derousiers
#preflight https://horde.devtools.epicgames.com/job/634545e41d5e6dbf75e18048
#lockdown juan.canada

[CL 22460486 by sebastien hillaire in ue5-main branch]
2022-10-11 12:59:51 -04:00
Charles deRousiers
97346bad07 Ensure Strata Dbuffer pass shader is only compiled if DBuffer is enabled.
#rb none
#jira none
#preflight 634566b8a502e110c7a5e6c6
#fyi sebastien.hillaire

[CL 22456697 by Charles deRousiers in ue5-main branch]
2022-10-11 09:32:40 -04:00
Charles deRousiers
027fc7314d Move Strata material buffer slice 0 into ESRAM.
This CL remove SceneColor from ESRAM without noticeable perf impact.

Other perf differences:
* No impact on base pass cost
* Classification 0.373 -> 0.240
* DBufferPass 0.510 -> 0.420

#rb none
#jira none
#preflight 632ac7bfa236a029de179da0
#fyi sebastien.hillaire

[CL 22109121 by Charles deRousiers in ue5-main branch]
2022-09-21 04:35:09 -04:00
Charles deRousiers
28559fc994 Add UAV overlap for Strata dbuffer pass to avoid bubble.
#rb none
#jira none
#fyi sebastien.hillaire
#preflight 6329c9419840225da26827e2

[CL 22093608 by Charles deRousiers in ue5-main branch]
2022-09-20 11:15:19 -04:00
Charles deRousiers
ecf8b88fde Add dedicated 'decal tile' data to Strata (optional), to dispatch decal work only where there are decals on the frame.
This makes the dbuffer pass 0.05ms faster, but the makes the classification slower by 0.1ms. So no win for now, but further optimization are coming. Disabled for now.

#rb none
#jira none
#preflight 632979ec9840225da24fc245
#fyi sebastien.hillaire

[CL 22091302 by Charles deRousiers in ue5-main branch]
2022-09-20 09:05:17 -04:00
Charles deRousiers
1c7e1bedc1 Fix warning on shader parameter binding.
#rb none
#jira none
#preflight skip

[CL 22051670 by Charles deRousiers in ue5-main branch]
2022-09-16 12:20:04 -04:00
Charles deRousiers
7564de8031 Strata Dbuffer pass now respect material decal responsness.
This CL uses stentil buffer bit to mark the material decal responsness, which is later use during the DBuffer pass to blend decals material data.

#rb none
#jira none
#preflight 632493d3ea1c94f4c5c7785a
#fyi sebastien.hillaire

[CL 22050151 by Charles deRousiers in ue5-main branch]
2022-09-16 11:26:53 -04:00
Charles deRousiers
f7a18f5fbf Add support for blending DBuffer as a post-pass.
The post base-pass dbuffer blending only works for simple and single materials. Complex material are still apply during the base pass. This pass is disabled by default, and will be enabled only per-platform. Following needs to happen making unpacking/packing modulare and reusable.

On lower-platform this allows to reduce significatly the cost of base pass (BasePass:-1.2ms DBufferPass+0.4ms = -0.8ms net), as the compiler can better prune code, and allows to increase occupancy.

#rb none
#jira none
#preflight 6324633b74361465145e0f75
#fyi sebastien.hillaire

[CL 22048223 by Charles deRousiers in ue5-main branch]
2022-09-16 08:21:00 -04:00
Charles deRousiers
64aa33f6c2 Change Strata byte per pixel budget to be driven per platform, rather than a global project settings.
#rb none
#jira none
#preflight 6322ef526a1299de1d3daaa6
#fyi sebastien.hillaire

[CL 22025779 by Charles deRousiers in ue5-main branch]
2022-09-15 05:43:33 -04:00
Charles deRousiers
74472aeeaa Fix invalid check for platform with resolution higher than 2048.
#rb none
#jira none
#preflight skip
#fyi sebastien.hillaire

[CL 21890674 by Charles deRousiers in ue5-main branch]
2022-09-08 06:34:05 -04:00
Charles deRousiers
c8d1de15e0 Add Strata tile coord encoding on 8 bit on platform with resolutin which do not exceed 1080p.
This saves memory bandwidth during classification

#rb none
#jira none
#preflight 631781df2b7fe03eb6442427
#fyi sebastien.hillaire

[CL 21824572 by Charles deRousiers in ue5-main branch]
2022-09-06 14:20:32 -04:00
Sebastien Hillaire
9d41dfdd51 Strata - advanced strata shader debug is now put into a slice of the strata material buffer.
#rb none
#preflight https://horde.devtools.epicgames.com/job/630f279398103d4521ca8b96
#fyi charles.derousiers

[CL 21718399 by Sebastien Hillaire in ue5-main branch]
2022-08-31 05:33:41 -04:00
Sebastien Hillaire
e27b68cc9b Strata - moving SSSData at the end of the strata material buffer to reduce UAV count limitation on dx11.
Fixed a bug wehre loadiung fast material would not be done correctly inside the classification pass for the sharedmemeory path.
#rb none
#jira UE-161415
#preflight https://horde.devtools.epicgames.com/job/630909b9987e7155b1af0aec
#fyi charles.derousiers

[CL 21661992 by Sebastien Hillaire in ue5-main branch]
2022-08-29 02:55:17 -04:00
Charles deRousiers
637da17ba8 Add basic analytic support for Strata.
#rb none
#jira UE-161695
#preflight 6307492203520e063c2558d3
#fyi sebastien.hillaire

[CL 21561520 by Charles deRousiers in ue5-main branch]
2022-08-25 06:29:15 -04:00
Charles deRousiers
ddcfb9cfd5 * Add shading quality for Strata.
* Chang Xbox/PS4 to use approximate Vis function.

#rb none
#jira none
#preflight 6305f86dc00af5e2945cb293
#fyi sebastien.hillaire

[CL 21538424 by Charles deRousiers in ue5-main branch]
2022-08-24 08:30:22 -04:00
Charles deRousiers
8b1c2e8aa9 Disabling Strata CMask clearing path until we fix all platforms.
#rb none
#jira none
#preflight skip
#fyi sebastien.hillaire

[CL 21455877 by Charles deRousiers in ue5-main branch]
2022-08-19 08:21:55 -04:00