Commit Graph

67 Commits

Author SHA1 Message Date
shaun kime
edc7a45f74 enable FMA and Subtraction in favor of negated addition on Niagara Shader backend.
Also run another optimization path after scalarization
Originally authored by Arne.Schober, integrated by Shaun.Kime

#rb Arne.Schober
[FYI] Simon.Tovey
#tests Engine tests passed


#ROBOMERGE-OWNER: shaun.kime
#ROBOMERGE-AUTHOR: shaun.kime
#ROBOMERGE-SOURCE: CL 8927626 via CL 8927643 via CL 8927657
#ROBOMERGE-BOT: (v429-8924992)

[CL 8928191 by shaun kime in Main branch]
2019-09-20 10:59:27 -04:00
simon tovey
c1a674c709 - Storing compact form of databuffer layout in single array to reduce cache misses in register setup.
- Optimizing temp register layout for better cache usage.
- Moving VM context from TLS to pool.

#rb Stu.Mckenna, Shaun.Kime


#ROBOMERGE-OWNER: simon.tovey
#ROBOMERGE-AUTHOR: simon.tovey
#ROBOMERGE-SOURCE: CL 8886792 via CL 8886955 via CL 8889429
#ROBOMERGE-BOT: (v427-8887818)

[CL 8890014 by simon tovey in Main branch]
2019-09-19 12:36:11 -04:00
simon tovey
7087fab23a Fix for matrix params in external function calls. Or any function call for that matter.
#rb Shaun.Kime


#ROBOMERGE-SOURCE: CL 8744377 via CL 8781754
#ROBOMERGE-BOT: (v422-8689730)

[CL 8783815 by simon tovey in Main branch]
2019-09-17 19:16:28 -04:00
Marcus Wassmer
6517c68ef5 Copying //UE4/Dev-RenderPlat-Staging@8684824 to Dev-Main (//UE4/Dev-Main)
#rb none

[CL 8684840 by Marcus Wassmer in Main branch]
2019-09-14 09:45:25 -04:00
simon tovey
be7c3f9763 Now properly supporting DI function calls in the VM having unused output parameters.
#rb Shaun.Kime
#jira UE-75719


#ROBOMERGE-OWNER: simon.tovey
#ROBOMERGE-AUTHOR: simon.tovey
#ROBOMERGE-SOURCE: CL 7974077 via CL 7974683
#ROBOMERGE-BOT: (v396-7974030)

[CL 7975059 by simon tovey in Main branch]
2019-08-13 09:47:55 -04:00
shaun kime
42745a83da Handling edge case in the non-expression visitor.
[FYI] simon.tovey
#jira UE-78508
#tests n/a


#ROBOMERGE-SOURCE: CL 7844468 via CL 7861242
#ROBOMERGE-BOT: (v389-7813075)

[CL 7861298 by shaun kime in Main branch]
2019-08-08 01:23:58 -04:00
Rolando Caloca
aa0d2303d6 Copying //UE4/Dev-Rendering to Dev-Main (//UE4/Dev-Main) @ 6944469
#rb none
#rnx

[CL 6944849 by Rolando Caloca in Main branch]
2019-06-11 18:27:07 -04:00
rolando caloca
955a14de37 UE4 - Fix invalid IR on hlslcc potentially causing a crash
#rb none
[FYI] Jonas.Meyer
#rnx
#jira UE-71397

#ROBOMERGE-OWNER: rolando.caloca
#ROBOMERGE-AUTHOR: rolando.caloca
#ROBOMERGE-SOURCE: CL 5399410 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5399503 by rolando caloca in Main branch]
2019-03-14 14:16:41 -04:00
Simon Tovey
297d124251 Implementing CL5061473 in main manually to resolve merge issue.
Fix for data interface calls not being stripped correctly.

#jira none
#rb Frank.Fella

[CL 5061780 by Simon Tovey in Main branch]
2019-02-19 09:42:57 -05:00
Matt Collins
6b93e353eb Enabling Niagara VectorVM CVar.
#jira UE-69189
#rb none

[CL 4902577 by Matt Collins in Main branch]
2019-02-05 15:00:37 -05:00
Matt Collins
a0c6fc9fd2 Disabling the vectorvm fix in main. It will propagate up through dev-rendering.
#rb none

[CL 4879790 by Matt Collins in Main branch]
2019-02-02 15:40:51 -05:00
matt collins
022f230b84 Adds a cvar to allow niagara VM shader compilation to skip some of HLSLCC's backend optimization passes.
Depends on 4861258!

#jira UE-69189
#rb none
[FYI] morten.vassvik


#ROBOMERGE-SOURCE: CL 4861438 via CL 4865436

[CL 4873048 by matt collins in Main branch]
2019-02-01 18:49:12 -05:00
Matt Collins
013a4e05c6 Adds a cvar to allow niagara VM shader compilation to skip some of HLSLCC's backend optimization passes.
Depends on CL4860885!

#jira UE-69189
#rb none
#fyi morten.vassvik

[CL 4860958 by Matt Collins in Dev-Rendering branch]
2019-01-31 16:53:21 -05:00
Marcus Wassmer
e83575daa4 Merging //UE4/Dev-Main@4754280 to Dev-Rendering (//UE4/Dev-Rendering)
#rb none
Major update is from Niagara stream.

[CL 4757171 by Marcus Wassmer in Dev-Rendering branch]
2019-01-18 18:16:57 -05:00
Shaun Kime
4ae7273fa2 Copying //UE4/Dev-Niagara to Dev-Main (//UE4/Dev-Main) as of Niagara CL 4733936
#rb none
#tests Niagara auto-tests for DX11 pass

[CL 4734948 by Shaun Kime in Main branch]
2019-01-16 14:29:53 -05:00
Marcus Wassmer
cbfcbbb93b Merging //UE4/Dev-Main@4662404 to Dev-Rendering (//UE4/Dev-Rendering)
#rb none
Should be just copyright updates

[CL 4680440 by Marcus Wassmer in Dev-Rendering branch]
2019-01-03 19:16:26 -05:00
Ben Marsh
7598af0532 Update copyright notices to 2019.
#rb none
#lockdown Nick.Penwarden

[CL 4662404 by Ben Marsh in Main branch]
2018-12-14 13:41:00 -05:00
Guillaume Abadie
c72b7a33d8 Merging //UE4/Dev-Rendering-Graph@4492585 to Dev-Rendering (//UE4/Dev-Rendering)
This implements the framework to write the high level rendering code into passes organized in direct acyclic graph. It is also unifying the uniform buffer, shader parameters, and pass parameters to same single API: structures with run time meta data. This allow high level user code be extremely seamless, user code debugging, and render graph ease of implementation and debugging.

Issue of collaborative work of Arne Schnober, Brian Karis, Daniel Wright, Marcus Wassmer and Guillaume Abadie.

Names of the graph managed resources are not final.

#rb Arne.Schnober, Brian.Karis, Daniel.Wright, Marcus.Wassmer

[CL 4492694 by Guillaume Abadie in Dev-Rendering branch]
2018-10-19 17:36:35 -04:00
frank fella
0cf4a7b4cd Merging from Dev-Niagara 4360525, 4360676, 4364096 for Simon.Tovey
Some compile time optimizations

- Moved large map of hlsl keyword replacements from C++ to ini file to improve compile times.
- Now not using templates to handle input parameters to data interface. Now taking a bit from the bytecode offset to denote constant vs register.
- As well as improving compile times, this also makes DIs far easier to write and maintain so I've rolled out to all DIs. Has no affect on perf.
- Moved some things into the VectorVM namesspace.

#rb shaun.kime
#jira UE-61823

#ROBOMERGE-SOURCE: CL 4418639 in //UE4/Release-4.21/...
#ROBOMERGE-BOT: RELEASE (Release-4.21 -> Release-Staging-4.21)

[CL 4418642 by frank fella in Staging-4.21 branch]
2018-10-02 19:06:28 -04:00
Rolando Caloca
e3ec1a0d94 Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 4358666)
#lockdown Nick.Penwarden

============================
  MAJOR FEATURES & CHANGES
============================

Change 4073167 by Krzysztof.Narkowicz

	Added subsurface profile for eye shading model.
	#jira none

Change 4073422 by Krzysztof.Narkowicz

	Added dual specular for subsurface profile shading model.
	#jira none

Change 4075278 by Krzysztof.Narkowicz

	Fixed forward reflection/refraction rendering issues, which caused ShaderModels.Material.Refraction to fail.
	#jira none

Change 4084231 by Krzysztof.Narkowicz

	Dual specular - replace lobe spread with two separate roughness multipliers. Default material roughness is now replaced by an average lobe roughness in order to support non dual specular features.
	#jira none

Change 4092798 by Matt.Collins

	Some HDR refactoring.

	Previously the DisplayOutput and ColorGamut were only set in GameUserSettings.
	I added a Sink that checks the HDR enable. If it's toggled we apply the correct DisplayOutput and ColorGamut for the current platform (this way we get good settings even if you toggle via the console). These settings are still exposed via the console and can be set independently if the user wants.

Change 4096954 by Chris.Bunner

	Added ShaderModelID as scene texture option and renamed existing value to ShaderModelColor to better reflect the internal code.

Change 4111285 by Brian.Karis

	Eye shading update.
	Added Iris normal (disabled). Removed wrap. Fixed contact shadows.

Change 4155261 by Krzysztof.Narkowicz

	Planar reflection prefilter - use scene viewport size instead of reflection target size in order to keep filter size constant in screen space. This makes planar reflection filter more stable in case of dynamic resolution.

	#jira none

Change 4167644 by Krzysztof.Narkowicz

	Global shader map is now stored in multiple DDC entries (one per shader filename) instead of keeping everything in a single one. This allows to skip recompilation of unchanged shader files.

Change 4183727 by Yuriy.ODonnell

	Implemented auto-conversion from deferred to DBuffer decals in forward shading mode (when GBuffer is not available).

	Added support for specular and metallic channels for DBuffer decals, based on work by Chris Bunner.
	This requires DBufferC to be expanded from 2 to 4 channels, leading to slight increase in DBuffer bandwidth and memory requirements.

	Appearance of DBuffer decals is affected by this change, as specular and metallic channel values previously hard-coded in DBufferDecalShared.ush.
	Decals were forced to be non-metallic and have specular of 4% (0.5 numeric value). Now the authored decal material values will be used, which matches GBuffer decals.

	Added support for DBuffer decals with emissive component.

	Most decal types can now be automatically converted, with the exception of stain decals. Those are currently approximated as regular translucent decals.

Change 4197684 by laz.matech

	Added a PostProcess Volume test to the map to test that Cinematic Depth of View can be achieved through PPVs as well. Changed the BP_DepthOfFeildPOV asset - I exposed Focus Method so that it can be disabled for the PPV test. Added a second Hair Model head to the InFocusHair test so that it tests in and out of focus hair models (changed the name of the test to FocusHair).

	#jira none

Change 4225614 by Rolando.Caloca

	DR - Enable depth collision particles on Vulkan mobile

Change 4235489 by Uriel.Doyon

	Removed r.DefaultFeature.PointLightUnits and r.DefaultFeature.SpotLightUnits and replaced them by a single r.DefaultFeature.LightUnits which also controls the units of newly placed rect lights.

	#jira UE-59525

Change 4260154 by Mark.Satterthwaite

	Parallelize the creation of Metal archives and libraries when they are broken up into smaller sub-libraries, this should reduce apparent cook time by going wide across threads on the host of the cooker.

Change 4270594 by Brian.Karis

	Fix for textured rect light L pointing away from plane due to approximate diffuse integration.

Change 4273361 by Daniel.Wright

	Particle Cutouts with 8 verts now always use stochastic approach.  Circle textures with > 234 edges in the convex hull were overflowing the uint64 calculation of the total number of combinations, causing an infinite loop.

Change 4309174 by Mark.Satterthwaite

	Graph device utilization from the driver monitor stats - really helps see how well the GPU is being used.

Change 4310121 by Matt.Collins

	Optmizing RemoveUniformBuffersFromSource. Brings it from ~20% to ~1.5% in my testing.

	#jira none

Change 4312960 by Daniel.Wright

	Fix from Stephen Hill for incorrect light grid culling near the near plane

Change 4314169 by Richard.Wallis

	FShaderCache and associated public structures are now marked as deprecated.  All FShaderCache code hooks removed from MetalRHI, OpenGLDrv and engine Launch/Shutdown logic.

	#jira none

Change 4320760 by Arne.Schober

	DR - Remove SV_Coverage from basepass interpolants when running with Masked in early Depth with ForwardShading as otherwise earlyZ will be disabled (as the PS has to run).
	#jira UE-60992

Change 4334607 by Uriel.Doyon

	Added custom overrides to reset ULightComponent::Intensity to default (in FLightComponentDetails).
	Now settings a light Intesity to default resets the brightness to the archetype brightness.
	This handles correctly cases where the intensity units differs between the two objects.
	Also changed FLocalLightComponentDetails so that changing intensity units kepts the same brightness
	(by recomputing the Intensity).

	#jira UE-61401

Change 4336188 by Rolando.Caloca

	DR - Added -ReduceThreadUsage so programs can use less threads (for SCW )

Change 4337967 by Rolando.Caloca

	DR - Remove unused RHISupportsShaderCompression function

#rb none

[CL 4358751 by Rolando Caloca in Main branch]
2018-09-11 14:44:10 -04:00
Shaun Kime
9232998f0c Merging //UE4/Main to Dev-Niagara (//UE4/Dev-Niagara)
#rb none
#tests auto-tests for Niagara pass
#lockdown nick.penwarden

[CL 4336979 by Shaun Kime in Dev-Niagara branch]
2018-08-31 13:27:28 -04:00
Simon Tovey
cdbff82b3d Skeletal mesh improvements / additions
? Adding object version header for Dev-Niagara stream. Used to modify skeletal mesh data.
? Modified DataInterface outputs to be optional using a change to the register handler so it writes to a dummy value when the value is optonal.
? Refactored API so a single function can now output Position, Velocity and NBT data in any combination.
? Adding compile error and info when a DI function does not match a calling node. Allows DI APIs to be reworked safely. Though you do need to trigger a recompile when any API is changed.
? Refactored Triangle sampling functions to own cpp
? Vertex Sampling functions in own cpp
? Bone + Socket sampling functions in own cpp. (Experimental skeleton sampling in another shelf, left out of code for now)
? Made SkinOnTheFly the default for skinning mode.

#rb Shaun.Kime

[CL 4279177 by Simon Tovey in Dev-Niagara branch]
2018-08-13 09:55:45 -04:00
Simon Tovey
637f6f2dd5 Fixes in VMM backend and propagation visitors to ensure proper optimization for VM external function calls.
also adding a visitor to strip empty stats scopes.

#rb Mark.Satterthwaite

#codereview Shaun.Kime, Olaf.Piesche

[CL 4105249 by Simon Tovey in Dev-Niagara branch]
2018-06-01 04:05:55 -04:00
Simon Tovey
bc90d7fd2e Fix for VM Crash
#rb none
#codereivew Frank.Fella, Shaun.Kime, Olaf.Piesche

[CL 4102305 by Simon Tovey in Dev-Niagara branch]
2018-05-31 05:58:19 -04:00
Shaun Kime
295bf9ce53 Merging //UE4/Dev-Main to Dev-Niagara (//UE4/Dev-Niagara)
Engine and EngineTests

#rb none
#tests auto-tests pass

[CL 4101571 by Shaun Kime in Dev-Niagara branch]
2018-05-30 18:18:04 -04:00