Commit Graph

23 Commits

Author SHA1 Message Date
Marcus Wassmer
2826204161 Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3357411)
#lockdown Nick.Penwarden
#rb none

==========================
MAJOR FEATURES + CHANGES
==========================

Change 3244756 on 2017/01/03 by Marcus.Wassmer

	Copying //Tasks/UE4/Dev-Niagara@3244743 to Dev-Rendering (//UE4/Dev-Rendering)

Change 3248667 on 2017/01/05 by Olaf.Piesche

	Resaving default asset because of engine verison issue; maybe unnecessary, but resaving niagara engine content to be sure

	#jira UE-40160

Change 3249324 on 2017/01/06 by Marcus.Wassmer

	Resave with an actual version to stop cook warning

Change 3249611 on 2017/01/06 by Marcus.Wassmer

	Just remove warning-causing niagara data for now.

Change 3308052 on 2017/02/16 by Rolando.Caloca

	DR - Check for Vulkan SDK, and only use it if it's newer or the same as the headers we distribute

Change 3308109 on 2017/02/16 by Rolando.Caloca

	DR - Upgrade glslang to 1.0.39.1

Change 3308111 on 2017/02/16 by Rolando.Caloca

	DR - Update Vulkan distribution to 1.0.39.1

Change 3308153 on 2017/02/16 by Rolando.Caloca

	DR - Updated glslang libs

Change 3308842 on 2017/02/17 by Rolando.Caloca

	DR - Fixed copy/paste

Change 3310007 on 2017/02/17 by Chris.Bunner

	Back out CL 3221219 - causing MIC generation issues and superseded by CL 3273971.

	#jira UE-37792

Change 3310154 on 2017/02/17 by Chris.Bunner

	Assert when attempting to add a custom material attribute already in the base attributes list.

Change 3310155 on 2017/02/17 by Chris.Bunner

	PR #3231: Validate material index before accessing (Contributed by projectgheist)

	#jira UE-41774, UE-41788

Change 3310162 on 2017/02/17 by Chris.Bunner

	PR #3252: Added MobileMaterialInterface to UsedMaterials (Contributed by projectgheist)

	#jira UE-41823, UE-41950

Change 3310176 on 2017/02/17 by Chris.Bunner

	Merging CL 3233886: AMD HDR support (requires r.AMDSupportsHDRDisplayOutput=1 in ini).
	Update to AGS 5.0.5.
	Partial code tidy up.

Change 3310187 on 2017/02/17 by Chris.Bunner

	Preserve constant expressions rather than always casting after translating a material attribute. Losing the notion of constant means we can't correctly detect used properties and falsely enable e.g. PDO. Happened because of the incorrect component masks in BreakMaterialNodes which then had to be downcast to the correct type which is done as an inline fragment rather than swizzle expression.

	#jira UE-41594

Change 3310215 on 2017/02/17 by Chris.Bunner

	Prevent SpeedTree node compiling for skeletal meshes (not supported as uses more UV sets than available).
	More descriptive error for missing Cubemap UV input on TextureSample material node .

	#jira UE-33098

Change 3310838 on 2017/02/18 by Joe.Graf

	Moved some private functions to public for a licensee

	#CodeReview: matt.kuhlenschmidt
	#rb: n/a

Change 3311876 on 2017/02/20 by Rolando.Caloca

	DR - Expose skin cache cvar r.SkinCache.AccumulationBufferSizeInKB

	#jira UE-42014

Change 3314139 on 2017/02/21 by Rolando.Caloca

	DR - Minor cleanup pass
	- Remove FVulkanPendingState
	- Renamed some classes for clarity
	- Hoist pending UAVs for flush out to pending compute state

Change 3314642 on 2017/02/21 by Rolando.Caloca

	DR - Some more renaming

Change 3315431 on 2017/02/21 by Ben.Salem

	Properly set default values for test time out and tick. We now will default to ticking once per second, and tracking the macro stats of GPU/Render/Game thread time.

	#tests Ran showdown demo several times

Change 3316710 on 2017/02/22 by Rolando.Caloca

	DR - hlslcc - Fix refract intrinsic

Change 3316718 on 2017/02/22 by Rolando.Caloca

	DR - hlslcc - Built libs to pick up change from 3316710 - refract fix

Change 3316820 on 2017/02/22 by Benjamin.Hyder

	updating Tm-TrigNodes map

Change 3317192 on 2017/02/22 by Benjamin.Hyder

	Updating QA-Decals map

Change 3317528 on 2017/02/22 by Benjamin.Hyder

	Updating QA-Decals map

Change 3317639 on 2017/02/22 by Benjamin.Hyder

	Updating Decal on Complex Mesh example in QA-Decals

Change 3317764 on 2017/02/22 by Benjamin.Hyder

	Final updates to QA-Decals

Change 3318319 on 2017/02/22 by Rolando.Caloca

	DR - minor reorg/rename

Change 3318379 on 2017/02/22 by Rolando.Caloca

	DR - more cleanup

Change 3321181 on 2017/02/24 by Rolando.Caloca

	DR - Fix GL bug

Change 3321247 on 2017/02/24 by Rolando.Caloca

	DR - Fix misc bugs

Change 3321898 on 2017/02/24 by Chris.Bunner

	Only issue clear TLV dispatch if required.

	#jira UERNDR-193

Change 3321904 on 2017/02/24 by Chris.Bunner

	Added comment for potential future optimization.

Change 3322013 on 2017/02/24 by Uriel.Doyon

	Fixed separate translucency being affected by Gaussian DOF
	#jira UE-40489

Change 3322517 on 2017/02/24 by Uriel.Doyon

	Fixed issue with InvestigateTexture command removing budget limit.
	Fixed StreamingBounds show flag not working. It nows shows the streaming bound for the currently selected textures.
	#jira UE-40485

Change 3323470 on 2017/02/27 by Chad.Garyet

	Removing DDC job from dev-rendering

Change 3323479 on 2017/02/27 by Chad.Garyet

	Removing RDU agent type

Change 3323519 on 2017/02/27 by Chad.Garyet

	removing NCL/LHR/SEA agent types to clean up space

Change 3323639 on 2017/02/27 by Benjamin.Hyder

	More updates to QA-Decals

Change 3324207 on 2017/02/27 by Uriel.Doyon

	Fixed typo ScaleTexturesByGlobalMyBias ->  ScaleTexturesByGlobalMipBias
	Removed bad merge in FStreamingTextureLevelContext::GetBuildDataIndexRef

Change 3324396 on 2017/02/27 by Uriel.Doyon

	Fixed an issue with the Streaming Bounds show flag interferring with the static level data initialization
	#jira UE-40485

Change 3325227 on 2017/02/28 by Chris.Bunner

	Fix-up AMD AGS libs.

Change 3325566 on 2017/02/28 by Uriel.Doyon

	Fixed possible out-of-bound access in GetUsedTexture() when passing ERHIFeatureLevel::Num

Change 3326009 on 2017/02/28 by Uriel.Doyon

	Better fix for 3325566, as the previous fix would ignore the material instance overrides.

Change 3327058 on 2017/03/01 by Benjamin.Hyder

	Preparing TM_Shadermodels map for automation

Change 3328222 on 2017/03/01 by Chris.Bunner

	Prevent decals from drawing in separate translucency pass. Whilst user control and material relevance were already removed, if the flag was checked before being disabled (by swapping to decal domain) this was still being read in the render loop, now explicitly ignores decals.

	#jira UE-42449, UE-42446

Change 3329848 on 2017/03/02 by Uriel.Doyon

	Added some extra logs to help track UE-42168

Change 3329977 on 2017/03/02 by Rolando.Caloca

	DR - Fix bad clear value

Change 3330008 on 2017/03/02 by Benjamin.Hyder

	More preparations for QA-Decals automation

Change 3330754 on 2017/03/02 by Daniel.Wright

	Prominent comment explaining reflection env async compute usage and why it's not overlapped with anything

Change 3331451 on 2017/03/03 by Marc.Olano

	Manually unroll simplex noise loop to avoid PSO bug on AMD/Metal

Change 3331839 on 2017/03/03 by Rolando.Caloca

	DR - hlslcc - add missing file to project

Change 3332247 on 2017/03/03 by Rolando.Caloca

	DR - Fix for integrated intel
	PR #3305
	#jira UE-42393

Change 3332259 on 2017/03/03 by Rolando.Caloca

	DR - Fix bad index into pixel formats
	PR #3237
	#jira UE-41855

Change 3332305 on 2017/03/03 by Rolando.Caloca

	DR - OpenGL SRV for index buffers
	PR #3271
	#jira UE-32618

Change 3332313 on 2017/03/03 by Rolando.Caloca

	DR - Fix for integrated intel (properly)
	PR #3305
	#jira UE-42393

Change 3332317 on 2017/03/03 by Rolando.Caloca

	DR - OpenGL SRV for index buffers (properly)
	PR #3271
	#jira UE-32618

Change 3332368 on 2017/03/03 by Rolando.Caloca

	DR - Minor fixes so -sm4 and -sm5 can be used on windows with OpenGL/Vulkan

Change 3333690 on 2017/03/06 by Daniel.Wright

	[Copy] Changing movable skylight properties no longer affects static draw lists

Change 3333693 on 2017/03/06 by Daniel.Wright

	[Copy] Added 'r.AOListMeshDistanceFields' which dumps out mesh distance fields sorted by memory size, useful for directing content optimizations

Change 3333705 on 2017/03/06 by Daniel.Wright

	[Copy] Mesh distance fields are now 8 bit fixed point by default, but can be changed back to 16 bit floating piont with a project setting.
	* 8 bit uses half memory but introduces error for thin surfaces or large meshes.

Change 3333721 on 2017/03/06 by David.Hill

	DecalProxy:
	Copy float FadeScreenSize to FDeferredDecalProxy for use in the render thread.  This avoids  pointer chasing to the UDecalComponent (game thread component).

Change 3333772 on 2017/03/06 by Daniel.Wright

	[Copy] Scene motion blur data is only updated for the main renderer frames.  Fixes scene captures and planar reflections breaking object motion blur.

Change 3333790 on 2017/03/06 by Daniel.Wright

	[Copy] Mesh distance field generation uses Embree, for a 2.5x speedup
	* Can switch back to old kDOP generation with 'r.DistanceFieldBuild.UseEmbree 0' for debugging

Change 3333822 on 2017/03/06 by Daniel.Wright

	[Copy] Moved mesh distance field code into MeshDistanceFieldUtilities.cpp
	* Moved FMeshUtilities to its own header so the 8k line MeshUtilites.cpp file can be further split up

Change 3333827 on 2017/03/06 by Daniel.Wright

	[Copy] Range compress 8bit distance fields - gets one extra bit of precision on average

Change 3333828 on 2017/03/06 by Daniel.Wright

	[Copy] Raised High ShadowQuality to 2048 as 1024 for CSM is way too low

Change 3333831 on 2017/03/06 by Daniel.Wright

	Non-editor compile fix

Change 3333836 on 2017/03/06 by Daniel.Wright

	[Copy] Workaround for gobal distance field volume textures being bloated by 4x on PS4 due to the recommended tiling modes.  They now use a 2d tiling mode which avoids the bloat, saving 96Mb.

Change 3333843 on 2017/03/06 by Daniel.Wright

	[Copy] Added OcclusionExponent to skylight component
	* Useful for brightening up indoors without losing contact shadows as MinOcclusion does

Change 3333845 on 2017/03/06 by Daniel.Wright

	[Copy] Capsule shadow BP functions

Change 3333850 on 2017/03/06 by Daniel.Wright

	[Copy] Added OcclusionCombineMode to skylight component

Change 3333854 on 2017/03/06 by Daniel.Wright

	[Copy] Gnm properly registers clears as GPU work so those events show up in profilegpu

Change 3333857 on 2017/03/06 by Daniel.Wright

	[Copy] Clear light attenuation for local lights with a quad covering their screen extents
	* Clearing the entire light attenuation buffer costs .1ms on PS4.  This optimization lowers the minimum cost of a shadow casting light from .15ms -> .03ms.
	* Shadowed lights in Fortnite with 25 lights 3.7ms -> 1.42ms on PS4

Change 3333860 on 2017/03/06 by Daniel.Wright

	[Copy] Flush deferred deletes when reallocating distance field atlas to reduce peak memory

Change 3333861 on 2017/03/06 by Daniel.Wright

	[Copy] Disable all distance field features on Intel cards as HD 4000 hangs in the RHICreateTexture3D call to allocate the large atlas

Change 3333869 on 2017/03/06 by Daniel.Wright

	[Copy] Volumetric Fog using a volume texture mapped to the camera frustum
	* Volumetric fog can be enabled on an Exponential Height Fog component with additional controls
	* Lights have a VolumetricScatteringIntensity
	* New cvars r.VolumetricFog, r.VolumetricFog.GridPixelSize, r.VolumetricFog.GridSizeZ, r.VolumetricFog.DepthDistributionScale
	* Lighting features supported:
	   * Directional light with CSM and a light function
	   * Point / spot lights without shadows / light functions / IES profiles
	   * Skylight with occlusion from distance fields
	* Analytical height fog covers the view range past where the volumetric fog ends
	* Temporal reprojection is used on the volumetric fog scattering and extinction to achieve stability
	* Translucency integrates properly into volumetric fog
	* Height fog StartDistance is not supported by volumetric fog and should be set to 0.

Change 3333894 on 2017/03/06 by Daniel.Wright

	[Copy] Initialize GDummyVolumetricFogGlobalDataUniformBuffer outside of parallel rendering

Change 3333902 on 2017/03/06 by Daniel.Wright

	[Copy] Better handling of volumetric fog enabled with distance of 0

Change 3333903 on 2017/03/06 by Daniel.Wright

	[Copy] Fixed volumetric fog trying to render light functions for a point light

Change 3333908 on 2017/03/06 by Daniel.Wright

	[Copy] Volumetric materials
	* Added new material domain Volume, which can output Scattering, Absorption and Emissive.  All properties are in world space densities.
	* Particle systems using the Volume domain are voxelized based on their ParticlePosition and ParticleRadius
	* Volumetric fog integration is now energy conservative - scattering is integrated against transmission over the depth of each slice.
	* Added bOverrideLightColorsWithFogInscatteringColors to exponential height fog, which can be enabled to make Volumetric Fog match Height fog more closely

Change 3334134 on 2017/03/06 by Daniel.Wright

	[Copy from Michael Trepka] Added Embree 2.14.0 and changed MeshUtilities to use it as this solves issues with Embree leaking TLS keys. UnrealLightmass is still using older Embree 2.7.0 until we can find time to properly test it with the new version. Also, invalidated distance field DDC to force it to rebuild with updated Embree.

Change 3334420 on 2017/03/06 by Daniel.Wright

	Fixed RTDF shadows

Change 3335467 on 2017/03/07 by Benjamin.Hyder

	Initial submission of QA-Decals map to EngineTest

Change 3335556 on 2017/03/07 by Daniel.Wright

	Changed mesh distance field default format back to R16f

Change 3338020 on 2017/03/08 by Daniel.Wright

	Disable volumetric fog in vertex shaders for feature levels which don't support it

Change 3339394 on 2017/03/09 by Chris.Bunner

	Correctly handle material texture translation error edge case.

	#jira UE-42579, UE-42670

Change 3339992 on 2017/03/09 by Daniel.Wright

	Only compile volumetric fog shaders on supporting platforms

Change 3341858 on 2017/03/10 by Arne.Schober

	Copying //UE4/Dev-Rendering-PSO to Dev-Rendering (//UE4/Dev-Rendering)

	#RB Rolando.Caloca, Marcus.Wassmer, Daniel.Wright, Nick.Penwarden, Mark.Satterthwaite

Change 3342004 on 2017/03/10 by Arne.Schober

	Copying //UE4/Dev-Rendering-PSO to Dev-Rendering (//UE4/Dev-Rendering)
	Fix unity build

	#RB Marcus.Wassmer

Change 3343307 on 2017/03/13 by Marcus.Wassmer

	Update showflags when we are guaranteed it will happen in all possible ways to spawn the scenecapture. (drag into editor, PIE, -game, etc)

Change 3343732 on 2017/03/13 by Rolando.Caloca

	DR - Vulkan compute pipeline & refactor

Change 3344846 on 2017/03/14 by Rolando.Caloca

	DR - Android compile fixes

Change 3344883 on 2017/03/14 by Rolando.Caloca

	DR - Add missing stencil load/store to PSO initializer

Change 3344985 on 2017/03/14 by Rolando.Caloca

	DR - Made load/store actions uint8

Change 3345141 on 2017/03/14 by Rolando.Caloca

	DR - vk - Rework render pass hash

Change 3345304 on 2017/03/14 by Benjamin.Hyder

	Updating TM-Distancefields map to include TemplateFloor mesh

Change 3345387 on 2017/03/14 by Rolando.Caloca

	DR - Add _RenderThread calls for Create*Shader so RHIs can choose not to stall when creating

Change 3345388 on 2017/03/14 by Rolando.Caloca

	DR - Do not stall when creating shaders on Vulkan

Change 3345722 on 2017/03/14 by Chris.Bunner

	PR #3357: MinimalAPI add to many material expressions (Contributed by DeanoC)

	#jira UE-42752

Change 3345723 on 2017/03/14 by Chris.Bunner

	Reduce log verbosity causing spamming during  landscape editing.

	#jira UE-42714

Change 3345725 on 2017/03/14 by Chris.Bunner

	[Duplicate 3341860] Fixed material translation error with multiple connections from custom interpolator nodes.

Change 3345726 on 2017/03/14 by Chris.Bunner

	Typo fixes.

Change 3345732 on 2017/03/14 by Rolando.Caloca

	DR - Decouple vertex declaration off BSS

Change 3345746 on 2017/03/14 by Chris.Bunner

	Added sign() intrinsic material graph node and delisted material function workaround.

Change 3346042 on 2017/03/14 by Chris.Bunner

	Implement missing size query interface for FRenderTargetResources.

	#jira UE-41672

Change 3346387 on 2017/03/14 by Daniel.Wright

	[Copy] Added VolumetricScatteringIntensity to particle lights

Change 3346389 on 2017/03/14 by Daniel.Wright

	[Copy] Clamp Volumetric material attributes to fp16 range to avoid INFs
	Disable volumetric fog when the fog show flag is disabled

Change 3346392 on 2017/03/14 by Daniel.Wright

	[Copy] Fixed skylight being much too bright on volumetric fog

Change 3346406 on 2017/03/14 by Daniel.Wright

	[Copy] CSM resolution is now controlled by r.Shadow.MaxCSMResolution.
	* Changed HighPC to use 1024 MaxShadowResolution (max for all non-CSM shadows), saves 60Mb in Fortnite

Change 3346412 on 2017/03/14 by Daniel.Wright

	[Copy] TexCreate_ReduceMemoryWithTilingMode for translucency lighting 3d textures, saves 13Mb

Change 3346414 on 2017/03/14 by Daniel.Wright

	[Copy] TexCreate_ReduceMemoryWithTilingMode for volumetric fog 3d textures, saves 13Mb

Change 3346415 on 2017/03/14 by Daniel.Wright

	[Copy] Missing file from cl 3338451

Change 3346421 on 2017/03/14 by Daniel.Wright

	[Copy] Fixed NaNs in volumetric fog due to rendering when height fog is disabled
	* Volumetric fog converts NaNs to black now so they don't spread

Change 3346422 on 2017/03/14 by Daniel.Wright

	[Copy] Fixed NaN in volumetric fog with low density values

Change 3346423 on 2017/03/14 by Daniel.Wright

	[Copy] Changed default VolumetricFogScatteringDistribution to .2

Change 3346430 on 2017/03/14 by Daniel.Wright

	[Copy] New translucent material option to compute fog per pixel instead of the default per vertex

Change 3346432 on 2017/03/14 by Daniel.Wright

	[Copy] Moved Volumetric Fog parameters to view uniform buffer for translucency pass
	Fixed lifetimes of temporary Volumetric Fog render targets

Change 3346526 on 2017/03/14 by Daniel.Wright

	[Copy] Volumetric Fog supports point and spot light shadows
	* These lights are injected separately so that per-light resources can be bound (shadow depth map, static shadow depth map)
	* Forward lighting of local lights can be forced with 'r.VolumetricFog.InjectShadowedLightsSeparately 0'
	* Shadowed lights come at a cost: 2.9ms for volumetric fog on 970 -> 4.2ms with shadowing

Change 3347053 on 2017/03/15 by Rolando.Caloca

	DR - android compile fix

Change 3347384 on 2017/03/15 by Rolando.Caloca

	DR - Fix merge issue

Change 3347643 on 2017/03/15 by Marcus.Wassmer

	Fix some bugs with the 'disable stationary skylight ffor the project' feature.
	Fixes lighting in Persona on Paragon.

Change 3347979 on 2017/03/15 by Rolando.Caloca

	DR - Allow to automatically apply cached rendertargets to PSO initializer

Change 3348024 on 2017/03/15 by Rolando.Caloca

	DR - Remove NullPS on Vulkan to avoid deadlock

Change 3348303 on 2017/03/15 by Rolando.Caloca

	DR - Fix for debugging SCW with material SRT

Change 3348357 on 2017/03/15 by Marcus.Wassmer

	Fix stencildither and a stencilref bug that was probably breaking decals sometimes.

Change 3348549 on 2017/03/15 by Marcus.Wassmer

	Hopefully fix static analysis for potential nullptr access.

Change 3348614 on 2017/03/15 by Marcus.Wassmer

	Duplicate some switch changes to fix crash on launch.

Change 3349369 on 2017/03/16 by Gil.Gribb

	Fixed botched merge

Change 3349947 on 2017/03/16 by Rolando.Caloca

	DR - Fix for mismatched primitive type

Change 3349956 on 2017/03/16 by Benjamin.Hyder

	initial updates to TM-DistanceFields map

Change 3350151 on 2017/03/16 by Rolando.Caloca

	DR - Fix UT compile issue

Change 3350155 on 2017/03/16 by Rolando.Caloca

	DR - Catch mismatched primitive type on PSOs on D3D11

Change 3350192 on 2017/03/16 by Daniel.Wright

	Fix for point light shadow depths rendering with wrong cull mode due to PSO refactor

Change 3350736 on 2017/03/16 by Daniel.Wright

	Fixed formatting from merge

Change 3350881 on 2017/03/16 by Rolando.Caloca

	DR - Fix texture arrays as UAVs on Metal

Change 3350927 on 2017/03/16 by Rolando.Caloca

	DR - Fix warning

Change 3350935 on 2017/03/16 by Daniel.Wright

	Fix for materials with non-Surface domains being skipped in mesh passes

Change 3351583 on 2017/03/17 by Marcus.Wassmer

	Fix clang platforms

Change 3351917 on 2017/03/17 by Marcus.Wassmer

	Fix linux compile

Change 3351973 on 2017/03/17 by Marcus.Wassmer

	Fix mismatched rendertargetformat

Change 3352038 on 2017/03/17 by Daniel.Wright

	Enabled GetAndOrCreateGraphicsPipelineState ensures in Development for testing

Change 3352110 on 2017/03/17 by Marcus.Wassmer

	Fix missing RT PSO apply

Change 3352695 on 2017/03/17 by Arne.Schober

	DR - Remove PSO Rendertarget check in DX12 Resolve with Shader.
	#RB Rolando.Caloca

Change 3352960 on 2017/03/17 by Arne.Schober

	DR - Fix some things that slipped trough the PSO merge
	#RB none

Change 3353150 on 2017/03/18 by Rolando.Caloca

	DR - compile fix

Change 3353205 on 2017/03/18 by Arne.Schober

	DR - Fix Incremental Compile and PS4 runtime error where CMASK is not allowed for ThickTile Mode

	#RB none

Change 3353207 on 2017/03/18 by Arne.Schober

	DR - Fix Confusion

	#RB none

Change 3355183 on 2017/03/20 by Nick.Bullard

	Fixed up Content orginzation for Decals automation tests in EngineTest

Change 3355627 on 2017/03/20 by Arne.Schober

	DR - [UE-43094] - removed ensure in comporiton graph as control of the clear color cannot be gurantueed.

Change 3356342 on 2017/03/21 by Marcus.Wassmer

	Fix clang errors

Change 3356591 on 2017/03/21 by Arne.Schober

	DR - Fix ensure message
	#RB none

Change 3356873 on 2017/03/21 by Arne.Schober

	DR - Fix comparission of undefined values in RendertargetApply Check

Change 3357261 on 2017/03/21 by Marcus.Wassmer

	Fix LinuxEditor compile

Change 3357294 on 2017/03/21 by Marcus.Wassmer

	Add missing SSE functions

Change 3357351 on 2017/03/21 by Frank.Fella

	Fix win32 and linux compiler errors

Change 3357370 on 2017/03/21 by Arne.Schober

	DR - disable ensure in test builds

	#RB Marcus.Wassmer

[CL 3357449 by Marcus Wassmer in Main branch]
2017-03-21 17:46:52 -04:00
Ben Marsh
20bf0eb6a1 Updating copyright notices to 2017 (copying from //Tasks/UE4/Dev-Copyright-2017).
#rb none
#lockdown Nick.Penwarden

[CL 3226823 by Ben Marsh in Main branch]
2016-12-08 08:52:44 -05:00
Ben Marsh
4ba423868f Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340)
#lockdown Nick.Penwarden
#rb none

==========================
MAJOR FEATURES + CHANGES
==========================

Change 3209340 on 2016/11/23 by Ben.Marsh

	Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.

	Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.

	  * Every header now includes everything it needs to compile.
	        * There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
	        * There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
	  * Every .cpp file includes its matching .h file first.
	        * This helps validate that each header is including everything it needs to compile.
	  * No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
	        * You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
	        * There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
	  * No engine code explicitly includes a precompiled header any more.
	        * We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
	        * PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.

	Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.

[CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
Nick Shin
bf99b65065 jukka's (Mozilla) fixes to SSE2 and GL issues for HTML5
these came from:
fd48bc0e4a

#jira UE-37329 - //UE4/Main: Step 'Compile UE4Game HTML5' - 300 Warnings
#rb none
#lockdown josh.adams

[CL 3180928 by Nick Shin in Main branch]
2016-10-31 21:17:42 -04:00
Josh Adams
877a542dd6 Copying //UE4/Dev-Platform to //UE4/Main (Source: //UE4/Dev-Platform @ 2970079)
==========================
MAJOR FEATURES + CHANGES
==========================

Change 2945365 on 2016/04/15 by Mark.Satterthwaite

	Assert if anyone calls RHIClearUAV on a structured-buffer or texture under Metal - there's no clear way to implement these cases yet.

Change 2945366 on 2016/04/15 by Mark.Satterthwaite

	Change the Metal parallel command-context submission to hand-off the entire NSArray of MTLCommandBuffers to avoid race conditions between one use of a context and the next.

Change 2945394 on 2016/04/15 by Mark.Satterthwaite

	Duplicate CL #2943702 from 4.11.2: Change the way Metal validates the render-target state so that in FMetalContext::PrepareToDraw it can issue a last-ditch attempt to restore the render-targets. This won't fix the cause of the Mac Metal crashes but it might mitigate some of them and provide more information about why they are occurring.

Change 2945444 on 2016/04/15 by Mark.Satterthwaite

	Cache the Metal fallback depth-stencil surface for the canvas tile rendering so that we only ever keep one spare depth-stencil surface around. This costs us a little more permanent memory but reduces churn.

Change 2945457 on 2016/04/15 by Mark.Satterthwaite

	Add validation code to MetalRHI to ensure that we don't erroneously re-clear existing render contents when restoring the render command encoder. This will only be active when the Metal debug layer is enabled and is completely compiled away in Test & Shipping builds for performance.

Change 2946249 on 2016/04/16 by Nick.Shin

	build HarfBuzz for HTML5

	#jira UE-28552 - HarfBuzz - HTML5

Change 2946250 on 2016/04/16 by Nick.Shin

	Rename/move file(s)

	move emscripten (part 1 of 2)
	from Engine/Source/ThirdParty/HTML5/emsdk
	to Engine/Extras/ThirdPartyNotUE/emsdk

	this is a request from legal

Change 2946251 on 2016/04/16 by Nick.Shin

	move emscripten (part 2 of 2)
	build scripts and cpp files updated with new emscripten path

	from Engine/Source/ThirdParty/HTML5/emsdk
	to Engine/Extras/ThirdPartyNotUE/emsdk

	this is a request from legal

Change 2946516 on 2016/04/18 by Mark.Satterthwaite

	Disable r.DFShadowScatterTileCulling  as well as r.AOScatterTileCulling  on Mac because we don't have the necessary RW textures on Metal.

Change 2947000 on 2016/04/18 by Michael.Trepka

	Print OS X version to log in FMacPlatformMisc::PlatformInit()

Change 2948197 on 2016/04/19 by Lee.Clark

	PS4 - Use SDK 3.508.031

Change 2948301 on 2016/04/19 by Nick.Shin

	upgrading zlib openssl libcurl libwebsockets

	part 1 of 2 -- adding new compiled versions (part 2 will be removing the old version -- which will be done after platform owners are given a chance to recompile for their platform - most notably: zlib)

	NOTE: Linux libraries are built for CentOS 6.7 (i.e. 2010 - glibc 2.12 and gcc 4.4.7)

	#jira UEPLAT-1246  -  Update libWebsockets
	#jira UEPLAT-1221  -  update websocket library
	#jira UEPLAT-1223  -  Arrange testing for 'update websocket library'
	#jira UEPLAT-1203  -  Add Linux library for libwebsockets
	#jira UEPLAT-1204  -  Rebuild libwebsockets with SSL

Change 2948319 on 2016/04/19 by Nick.Shin

	update zlib to v1.2.8

	part 1 of 4 - doing this in stages for tracking purposes

	#jira UEPLAT-1246  -  Update libWebsockets
	#jira UEPLAT-1221  -  update websocket library

Change 2948320 on 2016/04/19 by Nick.Shin

	update OpenSSL to v1.0.1s

	part 2 of 4 - doing this in stages for tracking purposes

	also, removing dynamic libs (for windows) -- these are no longer needed as this is now statically linked in editor
	- tested by installing perforce server setup with ssl access only and pointing editor source code to it as ssl:hostname:port
	- also tested trying accessing it without ssl which resulted in access denied indicating a successful test of dynamic lib removal

	#jira UEPLAT-1246  -  Update libWebsockets
	#jira UEPLAT-1221  -  update websocket library
	#jira UEPLAT-1204  -  Rebuild libwebsockets with SSL

Change 2948322 on 2016/04/19 by Nick.Shin

	update libwebsockets to v1.7.4

	part 4 of 4 - doing this in stages for tracking purposes

	#jira UEPLAT-1246  -  Update libWebsockets
	#jira UEPLAT-1221  -  update websocket library
	#jira UEPLAT-1204  -  Rebuild libwebsockets with SSL

Change 2948323 on 2016/04/19 by Nick.Shin

	build scripts

	pull source and compile - zlib openssl libcurl & libwebsockets

	tested on:
	- Win64 VS2013 & VS2015
	- OSX
	- Linux

	#jira UEPLAT-1246  -  Update libWebsockets
	#jira UEPLAT-1221  -  update websocket library
	#jira UEPLAT-1203  -  Add Linux library for libwebsockets
	#jira UEPLAT-1204  -  Rebuild libwebsockets with SSL

Change 2948337 on 2016/04/19 by Lee.Clark

	VS 2015 libScePad support

Change 2948382 on 2016/04/19 by Mark.Satterthwaite

	Add Mac model, CPU string, num HTs to the log on Mac so that errors reported to us contain the data that Apple want when we turn them into bug-reports. Also added a missing sigaction from the trampoline.

Change 2948385 on 2016/04/19 by Mark.Satterthwaite

	Disambiguate Metal command-buffer failures by vendor & error type so that we don't end up with just one crash-reporting entry for many different kinds of crash and enable this assertion on all builds because it will always be fatal and failing to crash here may end up causing the Mac to reboot.

Change 2948460 on 2016/04/19 by Peter.Sauerbrei

	fix for wrong line endings

Change 2948526 on 2016/04/19 by Nick.Shin

	fix for wrong line endings

Change 2949334 on 2016/04/20 by Nick.Shin

	fix library path

	for some reason, NetworkFileSystem and HttpNetworkReplayStreaming on Mac platform needs full path - even though lib path was set...

Change 2949398 on 2016/04/20 by Lee.Clark

	PS4 - Fix SDK compile warnings

Change 2949656 on 2016/04/20 by Nick.Shin

	Back out changelist 2948320

	but keeping the C# build file as-is

Change 2949676 on 2016/04/20 by Mark.Satterthwaite

	Double-buffer the Metal viewport's back-buffer so that we can access the contents of the back-buffer after EndDrawingViewport is called until BeginDrawingViewport is called again on this viewport, this makes it possible to capture movies on Metal.
	#jira UE-29140

Change 2950025 on 2016/04/20 by Mark.Satterthwaite

	Undo CL #2949676 and instead on Mac where we want to be able to capture videos of gameplay we just insert an intermediate texture as the back-buffer and use a manual blit to the drawable prior to present. This also changes the code to enforce that the back-buffer render-target should never be nil as the code & Metal API itself assumes that this situation cannot occur but it would appear from continued crashes inside PrepareToDraw that it actually can in the field. This will address another potential cause of UE-29006.
	#jira UE-29006

Change 2950084 on 2016/04/20 by Nick.Shin

	OSX warning fix:

	UE4 supports down to OSX 10.9 rebuilt the zlib openssl libcurl and libwebsockets to support that

	build file also updated to use MACOSX_DEVELOPMENT_TARGET=10.9

Change 2950613 on 2016/04/20 by Dmitry.Rekman

	UAT: Disable modules that are not supported on Linux.

	#rb none
	#codereview Ben.Marsh, Michael.Trepka, Josh.Adams
	#tests Run RunUAT.sh

Change 2951065 on 2016/04/21 by Nick.Shin

	temp: update SSL dlls in Engine/Binaries/ThirdParty/OpenSSL/Win64

Change 2951556 on 2016/04/21 by Nick.Shin

	static libs double checked

	#jira UE-29674 - Editor fails to open in Dev-Platform

Change 2951559 on 2016/04/21 by Nick.Shin

	static libs double checked

	forgot these files - they were in another changelist

	#jira UE-29674 - Editor fails to open in Dev-Platform

Change 2951574 on 2016/04/21 by Nick.Shin

	remove unused variable warning

	was bughunt code...

Change 2951652 on 2016/04/21 by Josh.Adams

	- Disabled MRT support on iPad Air 1 devices, since it doesn't support wide enough MRTs that the engine needs (ie, only use MRTs in METAL_MRT mode on iOS)

Change 2951656 on 2016/04/21 by Josh.Adams

	- Fixed Mac compile error in Metal

Change 2951718 on 2016/04/21 by Nick.Shin

	remove shared SSL DLLs in a controlled manner

	tested with QA help who was able to replicate the bug in the morning - and was able to successfully run the editor with this changelist (shelved - remote unshelved test - thanks Dan.Bullard_volt!)

	#jira UE-29674 - Editor fails to open in Dev-Platform

Change 2951862 on 2016/04/21 by Lee.Clark

	PS4 - Enable Neo high resolution support.

Change 2952409 on 2016/04/22 by Nick.Shin

	add win32 build targets for zlib openssl libcurl libwebsockets

	part 1 of 2: these are the libs and header files

Change 2952411 on 2016/04/22 by Nick.Shin

	add win32 build targets for zlib openssl libcurl libwebsockets

	part 1 of 2: these are the C# build scripts

Change 2952580 on 2016/04/22 by Lee.Clark

	PS4 - Fix staging and deploying of system prxs

Change 2953152 on 2016/04/22 by Mark.Satterthwaite

	Only cache instances of TShadowDepthVS  with bIsForGeometryShader=true when the RHI can handle the underlying feature. We can save memory on iOS by only emitting these shaders on Mac Metal or RHI's with Geometry shaders which have the required H/W to do this.

Change 2953385 on 2016/04/22 by Nick.Shin

	use HarfBuzz libs for HTML5

	c# build files updated to link in the harfbuzz libs

	#jira UE-28552 - HarfBuzz - HTML5

Change 2954686 on 2016/04/25 by Nick.Shin

	from legal:

	Emscripten approved for redistribution provided that *all* files are checked into the following directory: Engine/Extras/ThirdPartyNotUE

	Please also check in the attached .tps files and licenses alongside the TPS itself. This will allow us to track third party files within P4.

Change 2954928 on 2016/04/25 by Daniel.Lamb

	Fixed min number of threads allocated for compiling shaders in cooker.

Change 2954942 on 2016/04/25 by Daniel.Lamb

	Added flag -skipcompile for running visual studio.
	Skip force compilation on -multiprocess flag.
	#jira UE-22308
	#PR 1678
	#1678

Change 2954948 on 2016/04/25 by Josh.Adams

	Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform)

Change 2955370 on 2016/04/25 by Josh.Adams

	- Fixing C# error from main
	#lockdown nick.penwarden

Change 2957745 on 2016/04/27 by Daniel.Lamb

	Pull request from acordon@microsoft.com.

	Fixed deterministic cooking issue with StaticMeshComponent using StaticMesh before it had it's postload call.

Change 2957747 on 2016/04/27 by Daniel.Lamb

	Pull request from acordon@microsoft.com.

	Resave packages commandlet now can also rebuild asset registry paths with consistent case.

Change 2957750 on 2016/04/27 by Daniel.Lamb

	Pull request from acordon@microsoft.com.

	Fixed deterministic cooking issue with StaticMeshComponent using StaticMesh before it had it's postload call.

Change 2958708 on 2016/04/28 by Nick.Shin

	remove boringSSL

	#jira UE-29970 - QAGame launch on fails for Win64, fatal error LNK1169: one or more multiply defined symbols found
	#lockdown josh.adams

Change 2958724 on 2016/04/28 by Nick.Shin

	moved setting bVerifyPeer flag AFTER CertBundlePath has been set...

	otherwise, libCurl is going to try to verify the SSL session - but without a cert file, it makes no sense to try and verify the session

	- we could (and probably should) make this an error condition - but the constructor has the bVerifyPeer set to true -- which would mean that all games will need to have a cert file and/or know to set bVerifyPeer to false...

	- and so far, only linux and android seem to have code in place to make use of the cert files...

	#jira UE-29950 - Orion deticated server MCP authentication fails when using CURL
	#lockdown josh.adams

Change 2959058 on 2016/04/28 by Mark.Satterthwaite

	Mac Metal RHIGetSupportedResolution & RHIGetAvailableResolutions exactly as they were for Mac OpenGL.

Change 2959587 on 2016/04/28 by Jeff.Campeau

	Use response files for compiling CPPs using the VC toolchain to avoid issues where the command line is too long for XGE

Change 2959605 on 2016/04/28 by Jeff.Campeau

	Reuse existing response files if contents are unmodified.
	#2278

Change 2959680 on 2016/04/28 by Daniel.Lamb

	Don't cook clients when building only server configs.
	#pr 2127
	#2127

Change 2959764 on 2016/04/28 by Nick.Shin

	set PS4 back to using boringSSL - until OpenSSL has been built for it

	#jira UE-30088 - Orion PS4 Cook and Deploy fails to build for PS4

Change 2959875 on 2016/04/28 by Jeff.Campeau

	Simplified compression to use a bitwindow param instead of a targetplatform param
	Added bitwindow parameter for unrealpak
	Set Xbox One to pass 12 bit window for paks (for hw decompress)

Change 2959960 on 2016/04/28 by Nick.Shin

	removed url protocol scheme from external script loads - this will support fetching scripts with either http or https automatically

	and added window.focus after game has finished compiling - this will help if game is inside an iframe

	#jira UE-29886 - HTML5 project does not load using itch.io

Change 2960064 on 2016/04/28 by Dmitry.Rekman

	XMPP: Add missing dependency on OpenSSL on Linux.

Change 2961310 on 2016/04/29 by Mark.Satterthwaite

	DistanceField tile alignment changes to attempt to make it work on Mac.

Change 2961602 on 2016/04/29 by Nick.Shin

	#ifndef'd EMSCRIPTEN around FOpenGL::Flush();

	answerhub 409649 - HTML5 OpenGL backend doesn't need to flush GL commands

Change 2961604 on 2016/04/29 by Nick.Shin

	return "()" on empty object

	answerhub 390139 - JSON Conversion of TMaps of UStructs Can't Deserialize

Change 2963068 on 2016/05/02 by Peter.Sauerbrei

	Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform)

Change 2963302 on 2016/05/02 by Peter.Sauerbrei

	fix for PS4 build failure

Change 2963731 on 2016/05/02 by Dmitry.Rekman

	Linux: move crash/ensure info from Binaries to Saved (UE-28411).

	- Allows running from read/only locations, since Saved can be redirected.

	#rb none
	#codereview Chris.Wood, David.Vossel

Change 2963737 on 2016/05/02 by Dmitry.Rekman

	CrashMalloc: get allocation size also from jemalloc.

	- Editor builds on Linux are otherwise shutting down on attempting to realloc things ("binned" is not used for the editor).

	#rb none
	#codereview Chris.Wood, Robert.Manuszewski, Steve.Robb

Change 2963989 on 2016/05/03 by Lee.Clark

	PS4 - Fix texture initialization

Change 2964296 on 2016/05/03 by Dmitry.Rekman

	Better fix for getting previous allocation size.

	- Suggested by GilG.

	#codereview Gil.Gribb

Change 2964398 on 2016/05/03 by Mark.Satterthwaite

	Added GetCompressionBitWindow to IPlatformCompression so that FArchive compression can acquire the platform specific window value at runtime even without the Developer-only TargetPlatform modules. This allows the ShaderCache to perform runtime compression of preloaded shaders in-game without crashing.
	#jira UE-30238

Change 2965966 on 2016/05/04 by Peter.Sauerbrei

	fix for bad path when deploying from mac
	#jira UE-30294
	#lockdown josh.adams

Change 2968380 on 2016/05/05 by Dmitry.Rekman

	Fix visibility placement which breaks Linux build.

	#lockdown Josh.Adams
	#codereview James.Golding

Change 2969002 on 2016/05/06 by Nick.Shin

	use boringssl until webrtc recompiled with openssl work is finished

	#jira UE-30298 - Fortnite and Orion crash on login
	#lockdown josh.adams

Change 2969545 on 2016/05/06 by Josh.Adams

	Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform)
	#lockdown nick.penwarden

Change 2969923 on 2016/05/06 by Chris.Babcock

	Fix linker warning (mismatched function/variable for glMapBufferOES and glUnmapBufferOES)
	#jira UE-30222
	#ue4
	#android
	#lockdown Josh.Adams

Change 2970016 on 2016/05/07 by Nick.Shin

	undo all of the following upgrades:
	- zlib
	- openssl
	- libcurl
	- libwebsockets

	and reset webrtc

	#jira UE-30298 - Fortnite and Orion crash on login
	#lockdown josh.adams

#lockdown nick.penwarden

[CL 2970080 by Josh Adams in Main branch]
2016-05-07 12:42:47 -04:00
Matthew Griffin
bb70b349ce Merging CL 2804086 from //UE4/Release-4.11 to Dev-Main (//UE4/Dev-Main) to isolate copyright update
#lockdown Nick.Penwarden

[CL 2819020 by Matthew Griffin in Main branch]
2016-01-07 08:17:16 -05:00
Mark Satterthwaite
d680a8702b Reset OpenGL timestamp queries in EndRenderQuery so that the result is recached. This code was broken in CL #2489182 by removing the RHIResetRenderQuery call that was essential for them to work in their previous guise.
[CL 2610323 by Mark Satterthwaite in Main branch]
2015-07-03 07:01:35 -04:00
Frank Fella
62629773a5 Prevent a crash on shutdown in windows in open gl by setting the current gl display context to null when the current device context is being released back to the system. This also required a small change to frame profiling to guard against the null context, and a change to the slate font texture which could end up processing a texture with a null context.
[CL 2553538 by Frank Fella in Main branch]
2015-05-15 17:01:47 -04:00
Gil Gribb
c8c3d793ea UE4 - remove rhimethods.h and all of the macro stuff relating to that
[CL 2524145 by Gil Gribb in Main branch]
2015-04-24 07:50:10 -04:00
Gil Gribb
9429bc3ef4 UE4 - Demacroize the RHI, step 1. Eliminate DYNAMIC_CAST_D3D11RESOURCE et al
[CL 2517876 by Gil Gribb in Main branch]
2015-04-20 13:30:27 -04:00
Gil Gribb
a6344aaf0b UE4 - remove several ifdefs related to parallel rendering making it available for DX12 and any PC RHI
[CL 2489182 by Gil Gribb in Main branch]
2015-03-24 08:49:41 -04:00
Dmitry Rekman
67287cc949 Allocate GL queries on heap.
(Merging CL 2419951 from UT branch, fixes issues with r.RHICmdBypass 0).

[CL 2430394 by Dmitry Rekman in Main branch]
2015-02-03 15:24:41 -05:00
Keith Judge
a2f0ebf6a4 Optimize new Xbox One query system to use a single GPU fence per batch, rather than a fence per query.
[CL 2405079 by Keith Judge in Main branch]
2015-01-13 15:07:43 -05:00
Ben Marsh
149375b14b Update copyright notices to 2015.
[CL 2379638 by Ben Marsh in Main branch]
2014-12-07 19:09:38 -05:00
Ben Marsh
5bb8828252 More fixes for doxygen warnings.
[CL 2368556 by Ben Marsh in Main branch]
2014-11-24 12:52:19 -05:00
Niklas Smedberg
bb8f417304 Support for OpenGL ES 3.1 + Android Extension Pack
[CL 2303212 by Niklas Smedberg in Main branch]
2014-09-18 17:49:40 -04:00
Mark Satterthwaite
6fd74f8d80 Wrap glFlush so that on OS X we always call glFlushRenderAPPLE which is faster, while still sufficient for these calls.
#codereview michael.trepka

[CL 2251430 by Mark Satterthwaite in Main branch]
2014-08-11 10:55:35 -04:00
Peter Sauerbrei
b90b75fd9a fix flush bit for iOS in a different manner
#ue4
#ios

#codereview mark.satterthwaite

[CL 2074162 by Peter Sauerbrei in Main branch]
2014-05-15 10:12:36 -04:00
Mark Satterthwaite
009f0447f5 Put the GL_SYNC_FLUSH_COMMANDS_BIT back when calling FOpenGL::ClientWaitSync for the benefit of iOS.
#codereview michael.trepka, daniel.wright

[CL 2073155 by Mark Satterthwaite in Main branch]
2014-05-14 14:51:57 -04:00
Mark Satterthwaite
a18355f075 Fix use of OpenGL sync objects across different contexts - they must be flushed to the GPU before attempting to wait on them on a different context. Flushing the context after issuing as suggested by Apple which means we shouldn't need to do so when waiting on the sync object.
#codereview michael.trepka, niklas.smedberg

[CL 2072849 by Mark Satterthwaite in Main branch]
2014-05-14 09:12:54 -04:00
Niklas Smedberg
788e586345 Merging updates for OpenGL4
- ARB_vertex_attrib_binding support
  - ARB_buffer_storage support
  - ARB_texture_view enhanced support (stencil texture views)
  - Re-enable redix sort on OpenGL
  - Depth bounds test support
  - NVX_gpu_memory_info support
  - ARB_tessellation_shader support

[CL 2060769 by Niklas Smedberg in Main branch]
2014-04-30 23:51:07 -04:00
UnrealBot
db494a6e69 Engine source (Main branch up to CL 2037954) 2014-04-02 18:09:23 -04:00
Tim Sweeney
324683ce78 Engine source (Main branch up to CL 2026164) 2014-03-14 14:13:41 -04:00