2019-12-26 14:45:42 -05:00
// Copyright Epic Games, Inc. All Rights Reserved.
2014-03-14 14:13:41 -04:00
/*=============================================================================
PostProcessMaterial . cpp : Post processing Material implementation .
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */
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
# include "PostProcess/PostProcessMaterial.h"
2019-03-01 00:27:41 -05:00
# include "RendererModule.h"
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
# include "Materials/Material.h"
# include "MaterialShaderType.h"
# include "MaterialShader.h"
2014-08-21 06:03:00 -04:00
# include "SceneUtils.h"
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
# include "PostProcess/SceneRenderTargets.h"
# include "PostProcess/SceneFilterRendering.h"
# include "SceneRendering.h"
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3249742)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3232283 on 2016/12/13 by Ben.Woodhouse
D3D12 - downgrade root signature size warning to a log following a discussion with Microsoft. There's not much we can actually do about it, and it's not relevant to all hardware
#jira UE-36999
Change 3232641 on 2016/12/13 by Mark.Satterthwaite
- Eliminate redundant state changes in MetalRHI in the state cache.
- Add a new debug level for setting buffers to nil prior to calls to set*Bytes so that the tool doesn't display incorrect data.
- Make testing for validation & statistics features use the same EMetalFeatures API as everything else for consistency.
- Cache the fallback depth-stencil texture in the state cache and ignore it for determining whether a pass can restart - if we are using this texture its contents are worthless anyway.
Change 3232661 on 2016/12/13 by Mark.Satterthwaite
Re-enable Metal SM5 & DFAO/DistanceFieldShadowing on Intel for 10.12.2 or later.
Change 3232759 on 2016/12/13 by Ben.Woodhouse
Fix memory leak on XB1 when calling GPURealloc with count of 0, suggested on UDN
https://udn.unrealengine.com/questions/326660/gpurealloc-leak.html
Change 3232803 on 2016/12/13 by Ben.Marsh
Add UT to the populate DDC job, and cook UT and Fortnite for Mac as well.
Change 3232836 on 2016/12/13 by Ben.Marsh
Split cooks to populate DDC into separate nodes for each platform. May help to reduce number of timeouts on remote VMs.
Change 3232974 on 2016/12/13 by Rolando.Caloca
DR - Refactor common code to UWorld::RecreateScene
#jira UE-36719
PR #2824
Change 3232976 on 2016/12/13 by Ben.Marsh
Add missing dependency on tools node for Mac cooks. Need to compile SCW first.
Change 3233289 on 2016/12/13 by Olaf.Piesche
Fixing potentially broken spot/point light fade with old content; initialize new properties properly
Change 3233811 on 2016/12/13 by Mark.Satterthwaite
Fix compiling QA-Material tessellation shaders that don't need to emit from Hull or sample in Domain the HSOut buffer which was confusing MetalBackend.
Change 3233854 on 2016/12/13 by Mark.Satterthwaite
More information about texture type validation errors in Metal.
Change 3234650 on 2016/12/14 by Rolando.Caloca
DR - vk - Fix bad aspect on depth cubemaps
Change 3234651 on 2016/12/14 by Rolando.Caloca
DR - vk - Fix for 32 bit crash on dump layer
Change 3234813 on 2016/12/14 by Guillaume.Abadie
Fixes texture mask static lighting when using GBuffer selective outputs.
#jira UE-39527
Change 3235047 on 2016/12/14 by Uriel.Doyon
Refactored HLOD texture streaming strategy to separate forced load from visibility.
Added an incremental update in the last stage of the texture streaming update load to clear any pending work.
Added an option "All" to the "BuildMateriaTexturelStreamingData" command to force rebuild everything.
Change 3235317 on 2016/12/14 by Uriel.Doyon
Removed timed primitives in the texture streaming since it was not used and there is now a fallback implementation in UPrimitiveComponent::GetStreamingTextureInfo.
Change 3235431 on 2016/12/14 by Rolando.Caloca
DR - Fix for Vulkan drawing black
Change 3236788 on 2016/12/15 by Mark.Satterthwaite
Fix 10.11.6 support (aka -nometalv2): the stencil view workaround necessitates a mid-render blit and the way things were setup resulted in the HasValidRenderTargets assert firing. Refactored the code to separate the concept or valid render-states in the cache from active render-states in the render-pass. Now it works as intended and will be needed for 4.15.
Change 3236850 on 2016/12/15 by Mark.Satterthwaite
Make changing the Metal Shader Version project setting prompt the user to restart for the changes to take effect.
#jira UE-39801
Change 3237002 on 2016/12/15 by Benjamin.Hyder
submitting updated TM-Shadermodels map
Change 3237312 on 2016/12/15 by Rolando.Caloca
DR - Change more macros to lambdas
Change 3237394 on 2016/12/15 by Mark.Satterthwaite
Add Metal-specific permutations of TBasePassHS - they affect the C++ definition on all platforms but are only cached or used on Metal - because the way we compile the combined VS+HS tessellation stage requires that the combined VS + HS HLSL code references the same resources, otherwise we get incorrect resouce bindings and subsequently fail to render properly. Long-term the Metal tessellation code will need to be refactored so that the vertex shader stage is emitted as a separate shader from the hull shader stage as this but will keep cropping back up and continue to complicate the engine.
#jira UE-39799
Change 3237490 on 2016/12/15 by Daniel.Wright
Fixed ULandscapeComponent::GetUsedMaterials
Change 3237597 on 2016/12/15 by Ben.Woodhouse
Disable timestamp queries on pre-Maxwell nvidia hardware. Local testing suggests that this is the major cause of instability in the UE4.14 release.
It's possible that we could be more targeted by only excluding Fermi and older hardware, but identifying fermi hardware by device ID is difficult in practice, since the range overlaps with Kepler.
Change 3237654 on 2016/12/15 by Daniel.Wright
Non-editor compile fix
Change 3238229 on 2016/12/16 by Rolando.Caloca
DR - Remove ExcludeRect from inner RHI Clear methods; ensure will happen if trying to use it
Change 3238236 on 2016/12/16 by Rolando.Caloca
DR - Compile fixes
Change 3238280 on 2016/12/16 by Marc.Olano
Small optimization to Lanczos-3 upsample shader code.
Change 3238321 on 2016/12/16 by Rolando.Caloca
DR - Compile fix
Change 3238331 on 2016/12/16 by Rolando.Caloca
DR - compile fix
Change 3238495 on 2016/12/16 by Marc.Olano
Replace TEA random number generator with PCG.
Was only used in #if-disabled reference rendering, but ldoes make better quality reference rendering when enabled.
Change 3238496 on 2016/12/16 by Marc.Olano
Tone mapping fix for OR-31752, cherry picked from Orion 3208273
Assumption that green is approximates luminance fails on red/blue HDR content, resulting in ugly black artifacts. Go back to luminance.
Change 3238520 on 2016/12/16 by Rolando.Caloca
DR - CIS Fix
Change 3238571 on 2016/12/16 by Rolando.Caloca
DR - CIS fix
Change 3238605 on 2016/12/16 by Daniel.Wright
Sharing IndirectLightingCacheTextureSampler samplers
Change 3238626 on 2016/12/16 by Daniel.Wright
Ray Traced Distance Field Shadow optimizations
* Tighter light space tile culling
* Skip ray marching pixels before the RTDF cascade near distance, or further than the cascade far distance
* Depth bounds test on upsample
* Created FLightTileIntersectionParameters for encapsulation of light tile culling functionality
* RTDF shadow time went from 1.8ms -> .8ms and 3.1ms -> 1.2ms in FortGPUTestbed on 7870 with these changes
Change 3238652 on 2016/12/16 by Rolando.Caloca
DR - RHI clear methods no longer have an ExcludeRect, use DrawClearQuad functions instead
Change 3238855 on 2016/12/16 by Rolando.Caloca
DR - Added FRHITexture2D GetSizeXY
Change 3238881 on 2016/12/16 by Rolando.Caloca
DR - CIS fix
Change 3239008 on 2016/12/16 by Arne.Schober
DR - Fixing accidently returning a stackpointer in EnqueueRenderCommands
Change 3239012 on 2016/12/16 by Arne.Schober
DR - missing file
Change 3239255 on 2016/12/17 by Rolando.Caloca
DR - Remove shader clears from D3D11
Change 3239690 on 2016/12/19 by Rolando.Caloca
DR - vk - Misc fixes from 1.0.37.00 SDK warnings
Change 3239964 on 2016/12/19 by Rolando.Caloca
DR - Fix click on editor not showing selected
Change 3239995 on 2016/12/19 by Rolando.Caloca
DR - Enable dist field on GL4 & Vulkan SM5
Change 3240162 on 2016/12/19 by Daniel.Wright
Added EnableDepthBoundsTest / DisableDepthBoundsTest to RHIUtilites to share some common code
Change 3240163 on 2016/12/19 by Daniel.Wright
Distance field self shadowing controls for hiding world position offset self-shadow artifacts
* Removed static mesh build settings DistanceFieldBias, which shrunk the distance field, breaking AO and shadows
* Added DistanceFieldSelfShadowBias, which prevents occlusion close to the surface only, maintaining shadows on the ground and AO on the ground
Change 3240271 on 2016/12/19 by Daniel.Wright
Use 16 bit indices for distance field objects culled to tiles, when 16 bit will be enough. Saves 10mb of tile culling buffers.
Change 3240282 on 2016/12/19 by Rolando.Caloca
DR - Proper fix for hit proxies clear
- Added missing stencil ref to DrawClearQuad
Change 3240316 on 2016/12/19 by Rolando.Caloca
DR - vk - Fixed some new 1.0.37.0 warnings
Change 3240354 on 2016/12/19 by Rolando.Caloca
DR - Dev shaders on sm4/5
Change 3240759 on 2016/12/20 by Rolando.Caloca
DR - Fix bad crc on GL element declarations
Change 3240895 on 2016/12/20 by Rolando.Caloca
DR - vk - Swapchain fixes
Change 3241057 on 2016/12/20 by Rolando.Caloca
DR - vk - Fix resize on desktop
Change 3241112 on 2016/12/20 by Rolando.Caloca
DR - vk - Fix 1.0.37.0 warnings
- Ignore some warnings we know we can't fix
Change 3241310 on 2016/12/20 by Rolando.Caloca
DR - vk - Fix crash
Change 3241417 on 2016/12/20 by Daniel.Wright
[Copy] Fixed race condition with FPrecomputedLightVolume::Data which was exposed when switching lighting scenarios
Change 3241990 on 2016/12/21 by Daniel.Wright
Converted DistanceFieldVolume data to BulkData
* FDistanceFieldVolumeData Serialize time from .7s on PS4 to 0s
Change 3242005 on 2016/12/21 by Daniel.Wright
Removed unused !USE_DEPTH_RANGE_LISTS path to reduce complexity
Change 3242295 on 2016/12/21 by Bob.Tellez
Duplicating CL#3242294 from //Fortnite/Main
#UE4 Re-applying the fix for rendering editor primitives when r.EarlyZPassOnlyMaterialMasking is enabled
Change 3242487 on 2016/12/21 by Marcus.Wassmer
Fix typo
Change 3243091 on 2016/12/22 by Daniel.Wright
Fixed too many groups dispatched for TConeTraceScreenGridGlobalOcclusionCS
Change 3243161 on 2016/12/22 by Uriel.Doyon
New async tasks for the streaming update. Optimizing the biggest frame cost.
Change 3243179 on 2016/12/22 by Uriel.Doyon
Fixed possible invalid access from the async FNormalizeLightmapTexelFactorTask
Change 3243236 on 2016/12/22 by Daniel.Wright
Fixed DFAO bilateral upsample
* Depth buffer was being unbound due to lack of DepthRead_StencilNop
Change 3243452 on 2016/12/23 by Ben.Woodhouse
Bring back 1024 render query limit workaround on D3D12 which was lost during the merge from partners
#jira UE-35247
Change 3243512 on 2016/12/23 by Uriel.Doyon
Improved task system for texture streaming.
Change 3243742 on 2016/12/26 by Rolando.Caloca
DR - vk - Fix UAV clears
- Removed old validation layer
- Print found device layers
Change 3243745 on 2016/12/27 by Rolando.Caloca
DR - vk - Fix for texture cube arrays
- Warning for ClearUAVs
Change 3243762 on 2016/12/27 by Rolando.Caloca
DR - vk - Always use pipeline cache
Change 3244450 on 2016/12/31 by Rolando.Caloca
DR - vk - Pre reqs for separate transfer queue
Change 3244453 on 2016/12/31 by Rolando.Caloca
DR - vk - Win32 compile fix
Change 3244756 on 2017/01/03 by Marcus.Wassmer
Copying //Tasks/UE4/Dev-Niagara@3244743 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3244757 on 2017/01/03 by Marcus.Wassmer
Niagara is still experimental in non-task branches.
Change 3245059 on 2017/01/03 by Benjamin.Hyder
Submitting TM-TrigNodes map
Change 3245500 on 2017/01/03 by Olaf.Piesche
Compile fix #1 for post-merge problems
Change 3245572 on 2017/01/03 by Olaf.Piesche
(Speculative) fix #2 for post-merge build problem. Hopefully fixes public distribution level error for cross compiler tool.
Change 3245683 on 2017/01/03 by Marcus.Wassmer
Fix some niagara warnings
Change 3245732 on 2017/01/03 by Marcus.Wassmer
Fix Niagara compile on clang platforms.
Fix a few warnings / static analysis things as well.
Change 3246403 on 2017/01/04 by Rolando.Caloca
DR - vk - Fix bogus warning
Change 3246432 on 2017/01/04 by Marcus.Wassmer
Copying //Tasks/UE4/Dev-Niagara@3246424 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3246538 on 2017/01/04 by Rolando.Caloca
DR - vk - Show hitch time for compute psos
Change 3246580 on 2017/01/04 by Rolando.Caloca
DR - vk - compile fix
Change 3246610 on 2017/01/04 by Rolando.Caloca
DR - Compute PSO pre reqs
Change 3246707 on 2017/01/04 by Marcus.Wassmer
Add missing integer operations to UnrealMathDirectX.h
Change 3246786 on 2017/01/04 by Marcus.Wassmer
Avoid public dependency build errors. Should probably just remove the DDCUtils module instead
Change 3246828 on 2017/01/04 by Olaf.Piesche
UE-39249; need to check the view as well as the view family in CheckAndUpdateLastFrame; scene captures use a different family, but each eye for VR uses a different scene view.
Change 3247026 on 2017/01/04 by Rolando.Caloca
DR - Remove CrossCompilerTool as it's not required anymore
Change 3247086 on 2017/01/04 by Marcus.Wassmer
Remove includes for Core.h monolithic header
Change 3247227 on 2017/01/04 by Marcus.Wassmer
Fix typo and compile errors.
Change 3247228 on 2017/01/04 by Marcus.Wassmer
Use crossplatform intrinsics
Change 3247229 on 2017/01/04 by Marcus.Wassmer
Implement missing integer NEON operations.
Change NEON vectorint to match name and sign from other platforms
Change 3247245 on 2017/01/04 by Marcus.Wassmer
Fixing various warnings/errors from clang platforms (Mac/Linux)
Change 3247331 on 2017/01/04 by Marcus.Wassmer
More Mac/clang fixes
Change 3247958 on 2017/01/05 by Marcus.Wassmer
VectorInt < - > Float ops should be conversions not reinterpret cast
Change 3247959 on 2017/01/05 by Marcus.Wassmer
Add missing ops to non-vector header
Change 3247964 on 2017/01/05 by Rolando.Caloca
DR - Temp fix for crash
#jira UE-40211
Change 3248067 on 2017/01/05 by Rolando.Caloca
DR - Static analysis fixes
#jira UE-40167
Change 3248284 on 2017/01/05 by Rolando.Caloca
DR - Linuix Compile fix
#jira UE-40260
Change 3248288 on 2017/01/05 by Rolando.Caloca
DR - Linux compile fix
#jira UE-40264
Change 3248399 on 2017/01/05 by Brian.Karis
Filtered importance sampling for envmap prefiltering.
Fixed SSR on clearcoat with skylight only.
Change 3248503 on 2017/01/05 by Rolando.Caloca
DR - Linux fixes
#jira UE-40264
Change 3248666 on 2017/01/05 by Brian.Karis
Fix GL compile error
Change 3248740 on 2017/01/05 by Marcus.Wassmer
Fix linux and clang errors/warnings
Change 3248851 on 2017/01/05 by Marcus.Wassmer
Simplest fix for ES2 compile errors
Change 3249217 on 2017/01/06 by Simon.Tovey
Speculative fix for static analysis warning
Change 3249296 on 2017/01/06 by Ben.Woodhouse
XB1/Fast semantics:
Add missing L1/L2 cache flush on transition to readable (or RW). The missing cache flush was causing indeterminism when reading from a texture shortly after writing to it as a render target.
This fixes bloom and diffuse irradiance issues
The bug has been there for a while, but CL 3227787 (drawclear early out) caused it to manifest
#jira UE-39727
#jira UE-40238
Change 3249300 on 2017/01/06 by Ben.Woodhouse
Remove workaround for diffuse irradiance (redundant clear). No longer necessary with CL 3249296
Change 3249387 on 2017/01/06 by Rolando.Caloca
DR - Fix GL clear issues
#jira UE-40254
Change 3249435 on 2017/01/06 by Ben.Woodhouse
Duplicated from UT CL 3238664
Fix dbuffer decal rendering issues in fullscreen on PC. Also fixes crash in editor when viewing dbuffer materials.
Pass clearcolor in RT params for system textures to workaround a bug with ClearColorTexture not working in fullscreen mode on DX11. Make sure dbuffer targets are bound if we're rendering mesh decals
#jira UT-6891
#jira UE-39842
Change 3249721 on 2017/01/06 by Marcus.Wassmer
Remove final references to non-existent Niagara data
Change 3249742 on 2017/01/06 by Marcus.Wassmer
Fix missing GPU particles on Mac.
Pointers getting reused is causing the blendstate equality operator to fail.
Simple workaround until we have time for a proper fix.
[CL 3249983 by Marcus Wassmer in Main branch]
2017-01-06 17:51:46 -05:00
# include "ClearQuad.h"
2019-03-01 00:26:27 -05:00
# include "Materials/MaterialExpressionSceneTexture.h"
2019-01-17 11:29:10 -05:00
# include "RHI/Public/PipelineStateCache.h"
2019-05-24 19:15:38 -04:00
# include "PostProcessing.h"
2019-05-13 07:54:13 -04:00
# include "PostProcessMobile.h"
2019-09-14 09:45:25 -04:00
# include "BufferVisualizationData.h"
2020-09-24 00:43:27 -04:00
# include "SceneTextureParameters.h"
2020-10-20 11:36:46 -04:00
# include "SystemTextures.h"
2022-03-03 10:05:56 -05:00
# include "Strata/Strata.h"
2014-03-14 14:13:41 -04:00
2019-09-14 09:45:25 -04:00
namespace
{
TAutoConsoleVariable < int32 > CVarPostProcessAllowStencilTest (
2019-03-01 00:26:27 -05:00
TEXT ( " r.PostProcessAllowStencilTest " ) ,
1 ,
TEXT ( " Enables stencil testing in post process materials. \n " )
TEXT ( " 0: disable stencil testing \n " )
TEXT ( " 1: allow stencil testing \n " )
) ;
2019-09-14 09:45:25 -04:00
TAutoConsoleVariable < int32 > CVarPostProcessAllowBlendModes (
2019-03-01 00:26:27 -05:00
TEXT ( " r.PostProcessAllowBlendModes " ) ,
1 ,
TEXT ( " Enables blend modes in post process materials. \n " )
TEXT ( " 0: disable blend modes. Uses replace \n " )
TEXT ( " 1: allow blend modes \n " )
) ;
2019-09-14 09:45:25 -04:00
TAutoConsoleVariable < int32 > CVarPostProcessingDisableMaterials (
TEXT ( " r.PostProcessing.DisableMaterials " ) ,
0 ,
TEXT ( " Allows to disable post process materials. \n " ) ,
ECVF_Scalability | ECVF_RenderThreadSafe ) ;
bool IsPostProcessStencilTestAllowed ( )
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3056055)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3011102 on 2016/06/13 by Steve.Cano
After taking a screenshot using glReadPixels, transfer the data to the target buffer from bottom row up to fix the "upside-down" render that OpenGL does. Confirmed with QA (owen.stupka_volt) that this does not appear to be happening on iOS (non-metal devices, inclusion of iOS in write-up was a mistake), verified on an ipod touch 5. Also confirmed that this does not happen on html5, and that Mobile HDR flag does not make a difference in function.
#jira UE-26421
#ue4
#android
Change 3015801 on 2016/06/16 by Dmitriy.Dyomin
Probbably fix for UE-30878, was not able to repro an actual crash(FFoliageInstanceBaseCache::AddInstanceBaseId). Added even more logging in case fix does not work.
#jira UE-30878
Change 3015903 on 2016/06/16 by Dmitriy.Dyomin
Fixed: Levels window has Refresh/UI issues when World Composition is active
#jira UE-26160
Change 3018352 on 2016/06/17 by Chris.Babcock
Handle Android media prepare failure (URL without internet for example)
#jira UE-32029
#ue4
#android
Change 3026387 on 2016/06/24 by Jack.Porter
Remove FFuncTestManager warning about PIE when running on a standalone game binary
Change 3026398 on 2016/06/24 by Jack.Porter
Prevent FSocketBSD::Recv returning false on SE_EWOULDBLOCK
Change 3027553 on 2016/06/25 by Niklas.Smedberg
OpenGL: Made some block size calculation work for arbitrary block sizes (e.g. not pow-of-two).
Change 3027554 on 2016/06/25 by Niklas.Smedberg
Metal: copyFromTexture now gets block-aligned size parameter (e.g. used for texture streaming)
Change 3028061 on 2016/06/26 by Jack.Porter
Fixed a problem where newly discovered instances were not added to an existing session in the Session Browser.
Fixed a problem where selecting an instance in a session with multiple instances didn't deselect the previously selected instance correctly.
Change 3029220 on 2016/06/27 by Steve.Cano
Change Android Tilt values to use GetRotationMatrix/GetOrientation logic, same as java-side android would use, and adjust slightly to match as closely as possible to iOS values for tilt. There is drift and some differences in the "Y" value but the same sort of inconsistencies are also seen on iOS.
#jira UE-6135
#ue4
#android
Change 3030420 on 2016/06/28 by Jack.Porter
Fix crash with RenderOutputValidation when running with cooked content
Change 3030426 on 2016/06/28 by Jack.Porter
Fix to CL 3026398 - make FSocketBSD(IPv6)::Recv(From) return false when recv returns 0.
A return value of 0 indicates the connection was shutdown in an orderly manner.
Change 3030973 on 2016/06/28 by Steve.Cano
Added a landscape downloader background along with the options to change it from within Android settings
#ue4
#android
#jira UE-32318
Change 3031757 on 2016/06/28 by Chris.Babcock
Remove unused methods from AndroidJNI header
#ue4
#android
Change 3032387 on 2016/06/29 by Allan.Bentham
Rename android es31+aep -> glesdeferred.
Change 3032711 on 2016/06/29 by Allan.Bentham
Rename GLSL_310_ES_EXT shader define:
ES31_AEP_PROFILE -> ESDEFERRED_PROFILE
bumped UE_SHADER_GLSL_310_ES_EXT_VER version number.
Change 3033698 on 2016/06/29 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3034210 on 2016/06/30 by Steve.Cano
Added a new AndroidRuntimeSettings variable that allows creation of installers for both Windows and Mac/Linux if set to true.
#jira UE-32302
#ue4
#android
Change 3034530 on 2016/06/30 by Chris.Babcock
Rename FManifestReader to FAndroidFileManifestReader in AndroidFile
#jira UE-32679
#ue4
#android
Change 3034612 on 2016/06/30 by Steve.Cano
Change Alpha from being set to a range of 0-255 to being in a range of 0-1 (which is the correct range of values)
#jira UE-25325
#ue4
#android
Change 3034679 on 2016/06/30 by Chris.Babcock
Fix tooltip (.command for mac, not .sh)
#jira UE-32302
#ue4
#android
Change 3038881 on 2016/07/05 by Jack.Porter
Package and launch on multiple Android devices simultaneously using the -Device=xxxxxxx+yyyyyyyy+zzzzzzzz format generated by a Project Launcher profile when you select multiple devices
#jira UEMOB-115
Change 3039240 on 2016/07/06 by Jack.Porter
TcpMessageTransport - connection-based message bus transport.
#jira UEMOB-112
#jira UEMOB-113
Change 3039252 on 2016/07/06 by Jack.Porter
Enable messaging and session services and functional testing on Android when launched with -messaging
Android device detection module support for adding port forwarding and connection announcement for TcpMessageTransport
#jira UEMOB-112
#jira UEMOB-113
Change 3039264 on 2016/07/06 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3040041 on 2016/07/06 by Chris.Babcock
Pass proper value to script generator functions
#jira UE-32861
#ue4
#android
Change 3040890 on 2016/07/07 by Allan.Bentham
Fix shadow crash
#jira UE-32884
Change 3041458 on 2016/07/07 by Peter.Sauerbrei
fix for IOS launch on failures
Change 3041542 on 2016/07/07 by Peter.Sauerbrei
better fix for the multi-device deployment issue
Change 3041774 on 2016/07/07 by Steve.Cano
Fixing crash that occurs when a games app id for Google Play is set before configuring the apk packaging. Also validating the value that is inserted and using it to override any values that have been hand-inserted into the GooglePlayAppID.xml
#jira UE-16992
#android
#ue4
Change 3042222 on 2016/07/08 by Dmitriy.Dyomin
Mobile packaging scenarious
Added a wizard for creating launcher profiles (Android & IOS) for scenario: Minimal App + Downloadable content
Added Archive step to launcher profiles to be able to store build product into specified directory
Changes to a cooker to be able to pack DLC based with a different flavor to a release App
Changes to DLC packaging to be able to build streaming data without chunking pak files
#jira UEMOB-119
Change 3042244 on 2016/07/08 by Dmitriy.Dyomin
Fixed crash in FTcpMessageTransportConnection::Stop
Change 3042270 on 2016/07/08 by Dmitriy.Dyomin
GitHub #2320 : [ULevelStreamingKismet] Load Level Instance, Enables UE4 Users to create multiple transformed instances of a .umap without having to include in persistent level's list ? Rama
contributed by: EverNewJoy
#jira UE-29867
Change 3042449 on 2016/07/08 by Dmitriy.Dyomin
Fixing Mac Editor build erros from CL# 3042222
Change 3042480 on 2016/07/08 by Allan.Bentham
Add ES3.1 profile & compiler_glsl_es3_1 to shaders.
Change 3042481 on 2016/07/08 by Allan.Bentham
hlslcc - ES3.1 changes.
set ES3.1 version number to 310
Do not use ES2 keywords for ES3.1.
Generate Layout Locations for ES3.1
bump version.
Change 3042483 on 2016/07/08 by Allan.Bentham
Add mobile ES3.1 support.
Recreates EGL and ES3.1 context during PlatformInitOpenGL if ES3.1 is required.
Change 3042485 on 2016/07/08 by Allan.Bentham
Undo android XGE change.
Change 3042506 on 2016/07/08 by Dmitriy.Dyomin
One more compile fix from CL# 3042222
Change 3044173 on 2016/07/10 by Dmitriy.Dyomin
UAT: Added support for building target platforms with multiple cook flavors
ex: -targetplatform=Android -cookflavor=ETC1+ETC2
Change 3044213 on 2016/07/11 by Dmitriy.Dyomin
Fixed: Can't stream in a level whose name is a substring of another streaming level
#jira UE-32999
Change 3044221 on 2016/07/11 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3044815 on 2016/07/11 by Allan.Bentham
Corrected NAME_GLSL_ES3_1_ANDROID format string.
Change 3046911 on 2016/07/12 by Chris.Babcock
Add handling of OnTextChanged for virtual keyboard input on Android
#jira UE-32348
#ue4
#android
Change 3046958 on 2016/07/12 by Chris.Babcock
Rename some functions with Error in the name to prevent false coloring in the logs
#jira UE-30541
#ue4
#android
Change 3047169 on 2016/07/12 by Chris.Babcock
Return player ID and handle auth token for Google Play Games on Android (contributed by gameDNAstudio)
#jira UE-30610
#pr #2372
#ue4
#android
Change 3047406 on 2016/07/12 by Jack.Porter
Add missing import to GameActivity.java
Change 3047442 on 2016/07/13 by Dmitriy.Dyomin
Added: Mobile custom post-process
Limitations: can fetch only from PostProcessInput0 (SceneColor) other scene textures are not supported. Does not support "Replacing the Tonemapper" blendable location.
#jira UEMOB-147
Change 3047466 on 2016/07/13 by Dmitriy.Dyomin
Disabled engine crash handler on Android, system crash handler works more reliably across different os versions/devices
Change 3047746 on 2016/07/13 by Jack.Porter
Rename FBasePassFowardDynamicPointLightInfo
Change 3047778 on 2016/07/13 by Jack.Porter
Missing file for rename FBasePassFowardDynamicPointLightInfo
Change 3047788 on 2016/07/13 by Allan.Bentham
Fix incorrect TargetPlatformDescriptor string generation.
Change 3047790 on 2016/07/13 by Allan.Bentham
Fixed half3x3 matrix use with ES3.1 glsl
Fixed couple of interpolator precision mismatch.
Fixed ES3.1 support detection issues
Change 3047816 on 2016/07/13 by Allan.Bentham
Remove AndroidGL4 remnants.
Change 3048926 on 2016/07/13 by Chris.Babcock
Added detection of Amazon Fire TV to disable requiring virtual joysticks
#ue4
#android
Change 3049335 on 2016/07/14 by Dmitriy.Dyomin
Fixing UAT crash when packaging project for iOS
Change 3049390 on 2016/07/14 by Jack.Porter
Disabled error for warning 4819 "The file contains a character that cannot be represented in the current code page (xxx). Save the file in Unicode format to prevent data loss"
This is triggered by European characters and copyright symbols in source saved as latin-1 when compiling on non-US windows. Seen often in 3rd party headers, eg nvapi.
#code_review: Ben.Marsh
Change 3049391 on 2016/07/14 by Jack.Porter
Fixed incorrect comment order in CL 3049390
Change 3049545 on 2016/07/14 by Dmitriy.Dyomin
Reworking some code from CL#3047442 to make static analizer happy
Change 3049626 on 2016/07/14 by Allan.Bentham
Automatic CSM shader toggling
#jira UE-27429
Change 3051574 on 2016/07/15 by Jack.Porter
Support for lighting channels on Mobile
- Multiple directional lights are supported in different channels but primitives are only affected by the directional light in the first channel they have set
- CSM shadows from stationary or movable directional lights correctly follow their lighting channels
- No channel limitations for dynamic point lights
Notes:
Removed mobile-specific directional light shadowing fields from View uniform buffer and mobile no longers uses SimpleDirectionalLight.
Separate uniform buffers for mobile directional light are generated for each lighting channel.
CSM culling information is now stored in FViewInfo and not per FVisibleLightViewInfo as the visibility bits are per view.
#code_review Daniel.Wright
#jira UEMOB-110
Change 3051699 on 2016/07/15 by Steve.Cano
Preserve the original, pre-transformed input vertices for Slate shaders, which is required to properly do anti-aliasing (the ViewProjection-transformed values were causing the lines to not be drawn).
#jira UE-20320
#ue4
#android
Change 3051744 on 2016/07/15 by Chris.Babcock
Fix Android Vulkan include path checks (contributed by kodomastro)
#jira UE-33311
#PR #2602
#ue4
#android
Change 3052023 on 2016/07/15 by Chris.Babcock
Fix shadowed variables
Change 3052110 on 2016/07/15 by Chris.Babcock
Compile fixes for light channel support on mobile
- missing template
- accessor function for MobileDirectionalLights from scene
Change 3052242 on 2016/07/15 by Chris.Babcock
Compile fixes for light channel support on mobile
- removed dependency on C++14 feature
Change 3052730 on 2016/07/16 by Dmitriy.Dyomin
Win32 build fix
Change 3053041 on 2016/07/17 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3053054 on 2016/07/17 by Jack.Porter
Changed use of old function ShouldUseDeferredRenderer() to new GetShadingPath()
Change 3053055 on 2016/07/17 by Jack.Porter
Fixed local variable aliasing in unity build
Change 3053206 on 2016/07/18 by Jack.Porter
Support ExecuteJavascript on iOS and Android
Expose ExecuteJavascript to widget blueprint
Fix ExecuteJavascript unicode string support on desktop platforms
#jira UEMOB-152
Change 3053323 on 2016/07/18 by Dmitriy.Dyomin
Added: Ability to set thread affinity for a device in Device Profiles (ex: +CVars=android.SetThreadAffinity=RT 0x02 GT 0x01)
#jira UEMOB-107
Change 3053723 on 2016/07/18 by Jack.Porter
Fix for UnrealTournamentProto.Automation.cs build errors
Change 3055090 on 2016/07/19 by Dmitriy.Dyomin
Junk OnlineBlueprintSupport module binaries
[CL 3056789 by Jack Porter in Main branch]
2016-07-19 19:13:01 -04:00
{
2019-09-14 09:45:25 -04:00
return CVarPostProcessAllowStencilTest . GetValueOnRenderThread ( ) ! = 0 ;
}
2021-01-13 12:58:25 -04:00
enum class EMaterialCustomDepthPolicy : uint32
2019-09-14 09:45:25 -04:00
{
// Custom depth is disabled.
Disabled ,
// Custom Depth-Stencil is enabled; potentially simultaneous SRV / DSV usage.
Enabled
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3056055)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3011102 on 2016/06/13 by Steve.Cano
After taking a screenshot using glReadPixels, transfer the data to the target buffer from bottom row up to fix the "upside-down" render that OpenGL does. Confirmed with QA (owen.stupka_volt) that this does not appear to be happening on iOS (non-metal devices, inclusion of iOS in write-up was a mistake), verified on an ipod touch 5. Also confirmed that this does not happen on html5, and that Mobile HDR flag does not make a difference in function.
#jira UE-26421
#ue4
#android
Change 3015801 on 2016/06/16 by Dmitriy.Dyomin
Probbably fix for UE-30878, was not able to repro an actual crash(FFoliageInstanceBaseCache::AddInstanceBaseId). Added even more logging in case fix does not work.
#jira UE-30878
Change 3015903 on 2016/06/16 by Dmitriy.Dyomin
Fixed: Levels window has Refresh/UI issues when World Composition is active
#jira UE-26160
Change 3018352 on 2016/06/17 by Chris.Babcock
Handle Android media prepare failure (URL without internet for example)
#jira UE-32029
#ue4
#android
Change 3026387 on 2016/06/24 by Jack.Porter
Remove FFuncTestManager warning about PIE when running on a standalone game binary
Change 3026398 on 2016/06/24 by Jack.Porter
Prevent FSocketBSD::Recv returning false on SE_EWOULDBLOCK
Change 3027553 on 2016/06/25 by Niklas.Smedberg
OpenGL: Made some block size calculation work for arbitrary block sizes (e.g. not pow-of-two).
Change 3027554 on 2016/06/25 by Niklas.Smedberg
Metal: copyFromTexture now gets block-aligned size parameter (e.g. used for texture streaming)
Change 3028061 on 2016/06/26 by Jack.Porter
Fixed a problem where newly discovered instances were not added to an existing session in the Session Browser.
Fixed a problem where selecting an instance in a session with multiple instances didn't deselect the previously selected instance correctly.
Change 3029220 on 2016/06/27 by Steve.Cano
Change Android Tilt values to use GetRotationMatrix/GetOrientation logic, same as java-side android would use, and adjust slightly to match as closely as possible to iOS values for tilt. There is drift and some differences in the "Y" value but the same sort of inconsistencies are also seen on iOS.
#jira UE-6135
#ue4
#android
Change 3030420 on 2016/06/28 by Jack.Porter
Fix crash with RenderOutputValidation when running with cooked content
Change 3030426 on 2016/06/28 by Jack.Porter
Fix to CL 3026398 - make FSocketBSD(IPv6)::Recv(From) return false when recv returns 0.
A return value of 0 indicates the connection was shutdown in an orderly manner.
Change 3030973 on 2016/06/28 by Steve.Cano
Added a landscape downloader background along with the options to change it from within Android settings
#ue4
#android
#jira UE-32318
Change 3031757 on 2016/06/28 by Chris.Babcock
Remove unused methods from AndroidJNI header
#ue4
#android
Change 3032387 on 2016/06/29 by Allan.Bentham
Rename android es31+aep -> glesdeferred.
Change 3032711 on 2016/06/29 by Allan.Bentham
Rename GLSL_310_ES_EXT shader define:
ES31_AEP_PROFILE -> ESDEFERRED_PROFILE
bumped UE_SHADER_GLSL_310_ES_EXT_VER version number.
Change 3033698 on 2016/06/29 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3034210 on 2016/06/30 by Steve.Cano
Added a new AndroidRuntimeSettings variable that allows creation of installers for both Windows and Mac/Linux if set to true.
#jira UE-32302
#ue4
#android
Change 3034530 on 2016/06/30 by Chris.Babcock
Rename FManifestReader to FAndroidFileManifestReader in AndroidFile
#jira UE-32679
#ue4
#android
Change 3034612 on 2016/06/30 by Steve.Cano
Change Alpha from being set to a range of 0-255 to being in a range of 0-1 (which is the correct range of values)
#jira UE-25325
#ue4
#android
Change 3034679 on 2016/06/30 by Chris.Babcock
Fix tooltip (.command for mac, not .sh)
#jira UE-32302
#ue4
#android
Change 3038881 on 2016/07/05 by Jack.Porter
Package and launch on multiple Android devices simultaneously using the -Device=xxxxxxx+yyyyyyyy+zzzzzzzz format generated by a Project Launcher profile when you select multiple devices
#jira UEMOB-115
Change 3039240 on 2016/07/06 by Jack.Porter
TcpMessageTransport - connection-based message bus transport.
#jira UEMOB-112
#jira UEMOB-113
Change 3039252 on 2016/07/06 by Jack.Porter
Enable messaging and session services and functional testing on Android when launched with -messaging
Android device detection module support for adding port forwarding and connection announcement for TcpMessageTransport
#jira UEMOB-112
#jira UEMOB-113
Change 3039264 on 2016/07/06 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3040041 on 2016/07/06 by Chris.Babcock
Pass proper value to script generator functions
#jira UE-32861
#ue4
#android
Change 3040890 on 2016/07/07 by Allan.Bentham
Fix shadow crash
#jira UE-32884
Change 3041458 on 2016/07/07 by Peter.Sauerbrei
fix for IOS launch on failures
Change 3041542 on 2016/07/07 by Peter.Sauerbrei
better fix for the multi-device deployment issue
Change 3041774 on 2016/07/07 by Steve.Cano
Fixing crash that occurs when a games app id for Google Play is set before configuring the apk packaging. Also validating the value that is inserted and using it to override any values that have been hand-inserted into the GooglePlayAppID.xml
#jira UE-16992
#android
#ue4
Change 3042222 on 2016/07/08 by Dmitriy.Dyomin
Mobile packaging scenarious
Added a wizard for creating launcher profiles (Android & IOS) for scenario: Minimal App + Downloadable content
Added Archive step to launcher profiles to be able to store build product into specified directory
Changes to a cooker to be able to pack DLC based with a different flavor to a release App
Changes to DLC packaging to be able to build streaming data without chunking pak files
#jira UEMOB-119
Change 3042244 on 2016/07/08 by Dmitriy.Dyomin
Fixed crash in FTcpMessageTransportConnection::Stop
Change 3042270 on 2016/07/08 by Dmitriy.Dyomin
GitHub #2320 : [ULevelStreamingKismet] Load Level Instance, Enables UE4 Users to create multiple transformed instances of a .umap without having to include in persistent level's list ? Rama
contributed by: EverNewJoy
#jira UE-29867
Change 3042449 on 2016/07/08 by Dmitriy.Dyomin
Fixing Mac Editor build erros from CL# 3042222
Change 3042480 on 2016/07/08 by Allan.Bentham
Add ES3.1 profile & compiler_glsl_es3_1 to shaders.
Change 3042481 on 2016/07/08 by Allan.Bentham
hlslcc - ES3.1 changes.
set ES3.1 version number to 310
Do not use ES2 keywords for ES3.1.
Generate Layout Locations for ES3.1
bump version.
Change 3042483 on 2016/07/08 by Allan.Bentham
Add mobile ES3.1 support.
Recreates EGL and ES3.1 context during PlatformInitOpenGL if ES3.1 is required.
Change 3042485 on 2016/07/08 by Allan.Bentham
Undo android XGE change.
Change 3042506 on 2016/07/08 by Dmitriy.Dyomin
One more compile fix from CL# 3042222
Change 3044173 on 2016/07/10 by Dmitriy.Dyomin
UAT: Added support for building target platforms with multiple cook flavors
ex: -targetplatform=Android -cookflavor=ETC1+ETC2
Change 3044213 on 2016/07/11 by Dmitriy.Dyomin
Fixed: Can't stream in a level whose name is a substring of another streaming level
#jira UE-32999
Change 3044221 on 2016/07/11 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3044815 on 2016/07/11 by Allan.Bentham
Corrected NAME_GLSL_ES3_1_ANDROID format string.
Change 3046911 on 2016/07/12 by Chris.Babcock
Add handling of OnTextChanged for virtual keyboard input on Android
#jira UE-32348
#ue4
#android
Change 3046958 on 2016/07/12 by Chris.Babcock
Rename some functions with Error in the name to prevent false coloring in the logs
#jira UE-30541
#ue4
#android
Change 3047169 on 2016/07/12 by Chris.Babcock
Return player ID and handle auth token for Google Play Games on Android (contributed by gameDNAstudio)
#jira UE-30610
#pr #2372
#ue4
#android
Change 3047406 on 2016/07/12 by Jack.Porter
Add missing import to GameActivity.java
Change 3047442 on 2016/07/13 by Dmitriy.Dyomin
Added: Mobile custom post-process
Limitations: can fetch only from PostProcessInput0 (SceneColor) other scene textures are not supported. Does not support "Replacing the Tonemapper" blendable location.
#jira UEMOB-147
Change 3047466 on 2016/07/13 by Dmitriy.Dyomin
Disabled engine crash handler on Android, system crash handler works more reliably across different os versions/devices
Change 3047746 on 2016/07/13 by Jack.Porter
Rename FBasePassFowardDynamicPointLightInfo
Change 3047778 on 2016/07/13 by Jack.Porter
Missing file for rename FBasePassFowardDynamicPointLightInfo
Change 3047788 on 2016/07/13 by Allan.Bentham
Fix incorrect TargetPlatformDescriptor string generation.
Change 3047790 on 2016/07/13 by Allan.Bentham
Fixed half3x3 matrix use with ES3.1 glsl
Fixed couple of interpolator precision mismatch.
Fixed ES3.1 support detection issues
Change 3047816 on 2016/07/13 by Allan.Bentham
Remove AndroidGL4 remnants.
Change 3048926 on 2016/07/13 by Chris.Babcock
Added detection of Amazon Fire TV to disable requiring virtual joysticks
#ue4
#android
Change 3049335 on 2016/07/14 by Dmitriy.Dyomin
Fixing UAT crash when packaging project for iOS
Change 3049390 on 2016/07/14 by Jack.Porter
Disabled error for warning 4819 "The file contains a character that cannot be represented in the current code page (xxx). Save the file in Unicode format to prevent data loss"
This is triggered by European characters and copyright symbols in source saved as latin-1 when compiling on non-US windows. Seen often in 3rd party headers, eg nvapi.
#code_review: Ben.Marsh
Change 3049391 on 2016/07/14 by Jack.Porter
Fixed incorrect comment order in CL 3049390
Change 3049545 on 2016/07/14 by Dmitriy.Dyomin
Reworking some code from CL#3047442 to make static analizer happy
Change 3049626 on 2016/07/14 by Allan.Bentham
Automatic CSM shader toggling
#jira UE-27429
Change 3051574 on 2016/07/15 by Jack.Porter
Support for lighting channels on Mobile
- Multiple directional lights are supported in different channels but primitives are only affected by the directional light in the first channel they have set
- CSM shadows from stationary or movable directional lights correctly follow their lighting channels
- No channel limitations for dynamic point lights
Notes:
Removed mobile-specific directional light shadowing fields from View uniform buffer and mobile no longers uses SimpleDirectionalLight.
Separate uniform buffers for mobile directional light are generated for each lighting channel.
CSM culling information is now stored in FViewInfo and not per FVisibleLightViewInfo as the visibility bits are per view.
#code_review Daniel.Wright
#jira UEMOB-110
Change 3051699 on 2016/07/15 by Steve.Cano
Preserve the original, pre-transformed input vertices for Slate shaders, which is required to properly do anti-aliasing (the ViewProjection-transformed values were causing the lines to not be drawn).
#jira UE-20320
#ue4
#android
Change 3051744 on 2016/07/15 by Chris.Babcock
Fix Android Vulkan include path checks (contributed by kodomastro)
#jira UE-33311
#PR #2602
#ue4
#android
Change 3052023 on 2016/07/15 by Chris.Babcock
Fix shadowed variables
Change 3052110 on 2016/07/15 by Chris.Babcock
Compile fixes for light channel support on mobile
- missing template
- accessor function for MobileDirectionalLights from scene
Change 3052242 on 2016/07/15 by Chris.Babcock
Compile fixes for light channel support on mobile
- removed dependency on C++14 feature
Change 3052730 on 2016/07/16 by Dmitriy.Dyomin
Win32 build fix
Change 3053041 on 2016/07/17 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3053054 on 2016/07/17 by Jack.Porter
Changed use of old function ShouldUseDeferredRenderer() to new GetShadingPath()
Change 3053055 on 2016/07/17 by Jack.Porter
Fixed local variable aliasing in unity build
Change 3053206 on 2016/07/18 by Jack.Porter
Support ExecuteJavascript on iOS and Android
Expose ExecuteJavascript to widget blueprint
Fix ExecuteJavascript unicode string support on desktop platforms
#jira UEMOB-152
Change 3053323 on 2016/07/18 by Dmitriy.Dyomin
Added: Ability to set thread affinity for a device in Device Profiles (ex: +CVars=android.SetThreadAffinity=RT 0x02 GT 0x01)
#jira UEMOB-107
Change 3053723 on 2016/07/18 by Jack.Porter
Fix for UnrealTournamentProto.Automation.cs build errors
Change 3055090 on 2016/07/19 by Dmitriy.Dyomin
Junk OnlineBlueprintSupport module binaries
[CL 3056789 by Jack Porter in Main branch]
2016-07-19 19:13:01 -04:00
} ;
2022-05-11 06:10:52 -04:00
EMaterialCustomDepthPolicy GetMaterialCustomDepthPolicy ( const FMaterial * Material )
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3056055)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3011102 on 2016/06/13 by Steve.Cano
After taking a screenshot using glReadPixels, transfer the data to the target buffer from bottom row up to fix the "upside-down" render that OpenGL does. Confirmed with QA (owen.stupka_volt) that this does not appear to be happening on iOS (non-metal devices, inclusion of iOS in write-up was a mistake), verified on an ipod touch 5. Also confirmed that this does not happen on html5, and that Mobile HDR flag does not make a difference in function.
#jira UE-26421
#ue4
#android
Change 3015801 on 2016/06/16 by Dmitriy.Dyomin
Probbably fix for UE-30878, was not able to repro an actual crash(FFoliageInstanceBaseCache::AddInstanceBaseId). Added even more logging in case fix does not work.
#jira UE-30878
Change 3015903 on 2016/06/16 by Dmitriy.Dyomin
Fixed: Levels window has Refresh/UI issues when World Composition is active
#jira UE-26160
Change 3018352 on 2016/06/17 by Chris.Babcock
Handle Android media prepare failure (URL without internet for example)
#jira UE-32029
#ue4
#android
Change 3026387 on 2016/06/24 by Jack.Porter
Remove FFuncTestManager warning about PIE when running on a standalone game binary
Change 3026398 on 2016/06/24 by Jack.Porter
Prevent FSocketBSD::Recv returning false on SE_EWOULDBLOCK
Change 3027553 on 2016/06/25 by Niklas.Smedberg
OpenGL: Made some block size calculation work for arbitrary block sizes (e.g. not pow-of-two).
Change 3027554 on 2016/06/25 by Niklas.Smedberg
Metal: copyFromTexture now gets block-aligned size parameter (e.g. used for texture streaming)
Change 3028061 on 2016/06/26 by Jack.Porter
Fixed a problem where newly discovered instances were not added to an existing session in the Session Browser.
Fixed a problem where selecting an instance in a session with multiple instances didn't deselect the previously selected instance correctly.
Change 3029220 on 2016/06/27 by Steve.Cano
Change Android Tilt values to use GetRotationMatrix/GetOrientation logic, same as java-side android would use, and adjust slightly to match as closely as possible to iOS values for tilt. There is drift and some differences in the "Y" value but the same sort of inconsistencies are also seen on iOS.
#jira UE-6135
#ue4
#android
Change 3030420 on 2016/06/28 by Jack.Porter
Fix crash with RenderOutputValidation when running with cooked content
Change 3030426 on 2016/06/28 by Jack.Porter
Fix to CL 3026398 - make FSocketBSD(IPv6)::Recv(From) return false when recv returns 0.
A return value of 0 indicates the connection was shutdown in an orderly manner.
Change 3030973 on 2016/06/28 by Steve.Cano
Added a landscape downloader background along with the options to change it from within Android settings
#ue4
#android
#jira UE-32318
Change 3031757 on 2016/06/28 by Chris.Babcock
Remove unused methods from AndroidJNI header
#ue4
#android
Change 3032387 on 2016/06/29 by Allan.Bentham
Rename android es31+aep -> glesdeferred.
Change 3032711 on 2016/06/29 by Allan.Bentham
Rename GLSL_310_ES_EXT shader define:
ES31_AEP_PROFILE -> ESDEFERRED_PROFILE
bumped UE_SHADER_GLSL_310_ES_EXT_VER version number.
Change 3033698 on 2016/06/29 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3034210 on 2016/06/30 by Steve.Cano
Added a new AndroidRuntimeSettings variable that allows creation of installers for both Windows and Mac/Linux if set to true.
#jira UE-32302
#ue4
#android
Change 3034530 on 2016/06/30 by Chris.Babcock
Rename FManifestReader to FAndroidFileManifestReader in AndroidFile
#jira UE-32679
#ue4
#android
Change 3034612 on 2016/06/30 by Steve.Cano
Change Alpha from being set to a range of 0-255 to being in a range of 0-1 (which is the correct range of values)
#jira UE-25325
#ue4
#android
Change 3034679 on 2016/06/30 by Chris.Babcock
Fix tooltip (.command for mac, not .sh)
#jira UE-32302
#ue4
#android
Change 3038881 on 2016/07/05 by Jack.Porter
Package and launch on multiple Android devices simultaneously using the -Device=xxxxxxx+yyyyyyyy+zzzzzzzz format generated by a Project Launcher profile when you select multiple devices
#jira UEMOB-115
Change 3039240 on 2016/07/06 by Jack.Porter
TcpMessageTransport - connection-based message bus transport.
#jira UEMOB-112
#jira UEMOB-113
Change 3039252 on 2016/07/06 by Jack.Porter
Enable messaging and session services and functional testing on Android when launched with -messaging
Android device detection module support for adding port forwarding and connection announcement for TcpMessageTransport
#jira UEMOB-112
#jira UEMOB-113
Change 3039264 on 2016/07/06 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3040041 on 2016/07/06 by Chris.Babcock
Pass proper value to script generator functions
#jira UE-32861
#ue4
#android
Change 3040890 on 2016/07/07 by Allan.Bentham
Fix shadow crash
#jira UE-32884
Change 3041458 on 2016/07/07 by Peter.Sauerbrei
fix for IOS launch on failures
Change 3041542 on 2016/07/07 by Peter.Sauerbrei
better fix for the multi-device deployment issue
Change 3041774 on 2016/07/07 by Steve.Cano
Fixing crash that occurs when a games app id for Google Play is set before configuring the apk packaging. Also validating the value that is inserted and using it to override any values that have been hand-inserted into the GooglePlayAppID.xml
#jira UE-16992
#android
#ue4
Change 3042222 on 2016/07/08 by Dmitriy.Dyomin
Mobile packaging scenarious
Added a wizard for creating launcher profiles (Android & IOS) for scenario: Minimal App + Downloadable content
Added Archive step to launcher profiles to be able to store build product into specified directory
Changes to a cooker to be able to pack DLC based with a different flavor to a release App
Changes to DLC packaging to be able to build streaming data without chunking pak files
#jira UEMOB-119
Change 3042244 on 2016/07/08 by Dmitriy.Dyomin
Fixed crash in FTcpMessageTransportConnection::Stop
Change 3042270 on 2016/07/08 by Dmitriy.Dyomin
GitHub #2320 : [ULevelStreamingKismet] Load Level Instance, Enables UE4 Users to create multiple transformed instances of a .umap without having to include in persistent level's list ? Rama
contributed by: EverNewJoy
#jira UE-29867
Change 3042449 on 2016/07/08 by Dmitriy.Dyomin
Fixing Mac Editor build erros from CL# 3042222
Change 3042480 on 2016/07/08 by Allan.Bentham
Add ES3.1 profile & compiler_glsl_es3_1 to shaders.
Change 3042481 on 2016/07/08 by Allan.Bentham
hlslcc - ES3.1 changes.
set ES3.1 version number to 310
Do not use ES2 keywords for ES3.1.
Generate Layout Locations for ES3.1
bump version.
Change 3042483 on 2016/07/08 by Allan.Bentham
Add mobile ES3.1 support.
Recreates EGL and ES3.1 context during PlatformInitOpenGL if ES3.1 is required.
Change 3042485 on 2016/07/08 by Allan.Bentham
Undo android XGE change.
Change 3042506 on 2016/07/08 by Dmitriy.Dyomin
One more compile fix from CL# 3042222
Change 3044173 on 2016/07/10 by Dmitriy.Dyomin
UAT: Added support for building target platforms with multiple cook flavors
ex: -targetplatform=Android -cookflavor=ETC1+ETC2
Change 3044213 on 2016/07/11 by Dmitriy.Dyomin
Fixed: Can't stream in a level whose name is a substring of another streaming level
#jira UE-32999
Change 3044221 on 2016/07/11 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3044815 on 2016/07/11 by Allan.Bentham
Corrected NAME_GLSL_ES3_1_ANDROID format string.
Change 3046911 on 2016/07/12 by Chris.Babcock
Add handling of OnTextChanged for virtual keyboard input on Android
#jira UE-32348
#ue4
#android
Change 3046958 on 2016/07/12 by Chris.Babcock
Rename some functions with Error in the name to prevent false coloring in the logs
#jira UE-30541
#ue4
#android
Change 3047169 on 2016/07/12 by Chris.Babcock
Return player ID and handle auth token for Google Play Games on Android (contributed by gameDNAstudio)
#jira UE-30610
#pr #2372
#ue4
#android
Change 3047406 on 2016/07/12 by Jack.Porter
Add missing import to GameActivity.java
Change 3047442 on 2016/07/13 by Dmitriy.Dyomin
Added: Mobile custom post-process
Limitations: can fetch only from PostProcessInput0 (SceneColor) other scene textures are not supported. Does not support "Replacing the Tonemapper" blendable location.
#jira UEMOB-147
Change 3047466 on 2016/07/13 by Dmitriy.Dyomin
Disabled engine crash handler on Android, system crash handler works more reliably across different os versions/devices
Change 3047746 on 2016/07/13 by Jack.Porter
Rename FBasePassFowardDynamicPointLightInfo
Change 3047778 on 2016/07/13 by Jack.Porter
Missing file for rename FBasePassFowardDynamicPointLightInfo
Change 3047788 on 2016/07/13 by Allan.Bentham
Fix incorrect TargetPlatformDescriptor string generation.
Change 3047790 on 2016/07/13 by Allan.Bentham
Fixed half3x3 matrix use with ES3.1 glsl
Fixed couple of interpolator precision mismatch.
Fixed ES3.1 support detection issues
Change 3047816 on 2016/07/13 by Allan.Bentham
Remove AndroidGL4 remnants.
Change 3048926 on 2016/07/13 by Chris.Babcock
Added detection of Amazon Fire TV to disable requiring virtual joysticks
#ue4
#android
Change 3049335 on 2016/07/14 by Dmitriy.Dyomin
Fixing UAT crash when packaging project for iOS
Change 3049390 on 2016/07/14 by Jack.Porter
Disabled error for warning 4819 "The file contains a character that cannot be represented in the current code page (xxx). Save the file in Unicode format to prevent data loss"
This is triggered by European characters and copyright symbols in source saved as latin-1 when compiling on non-US windows. Seen often in 3rd party headers, eg nvapi.
#code_review: Ben.Marsh
Change 3049391 on 2016/07/14 by Jack.Porter
Fixed incorrect comment order in CL 3049390
Change 3049545 on 2016/07/14 by Dmitriy.Dyomin
Reworking some code from CL#3047442 to make static analizer happy
Change 3049626 on 2016/07/14 by Allan.Bentham
Automatic CSM shader toggling
#jira UE-27429
Change 3051574 on 2016/07/15 by Jack.Porter
Support for lighting channels on Mobile
- Multiple directional lights are supported in different channels but primitives are only affected by the directional light in the first channel they have set
- CSM shadows from stationary or movable directional lights correctly follow their lighting channels
- No channel limitations for dynamic point lights
Notes:
Removed mobile-specific directional light shadowing fields from View uniform buffer and mobile no longers uses SimpleDirectionalLight.
Separate uniform buffers for mobile directional light are generated for each lighting channel.
CSM culling information is now stored in FViewInfo and not per FVisibleLightViewInfo as the visibility bits are per view.
#code_review Daniel.Wright
#jira UEMOB-110
Change 3051699 on 2016/07/15 by Steve.Cano
Preserve the original, pre-transformed input vertices for Slate shaders, which is required to properly do anti-aliasing (the ViewProjection-transformed values were causing the lines to not be drawn).
#jira UE-20320
#ue4
#android
Change 3051744 on 2016/07/15 by Chris.Babcock
Fix Android Vulkan include path checks (contributed by kodomastro)
#jira UE-33311
#PR #2602
#ue4
#android
Change 3052023 on 2016/07/15 by Chris.Babcock
Fix shadowed variables
Change 3052110 on 2016/07/15 by Chris.Babcock
Compile fixes for light channel support on mobile
- missing template
- accessor function for MobileDirectionalLights from scene
Change 3052242 on 2016/07/15 by Chris.Babcock
Compile fixes for light channel support on mobile
- removed dependency on C++14 feature
Change 3052730 on 2016/07/16 by Dmitriy.Dyomin
Win32 build fix
Change 3053041 on 2016/07/17 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3053054 on 2016/07/17 by Jack.Porter
Changed use of old function ShouldUseDeferredRenderer() to new GetShadingPath()
Change 3053055 on 2016/07/17 by Jack.Porter
Fixed local variable aliasing in unity build
Change 3053206 on 2016/07/18 by Jack.Porter
Support ExecuteJavascript on iOS and Android
Expose ExecuteJavascript to widget blueprint
Fix ExecuteJavascript unicode string support on desktop platforms
#jira UEMOB-152
Change 3053323 on 2016/07/18 by Dmitriy.Dyomin
Added: Ability to set thread affinity for a device in Device Profiles (ex: +CVars=android.SetThreadAffinity=RT 0x02 GT 0x01)
#jira UEMOB-107
Change 3053723 on 2016/07/18 by Jack.Porter
Fix for UnrealTournamentProto.Automation.cs build errors
Change 3055090 on 2016/07/19 by Dmitriy.Dyomin
Junk OnlineBlueprintSupport module binaries
[CL 3056789 by Jack Porter in Main branch]
2016-07-19 19:13:01 -04:00
{
2019-09-14 09:45:25 -04:00
check ( Material ) ;
// Material requesting stencil test and post processing CVar allows it.
if ( Material - > IsStencilTestEnabled ( ) & & IsPostProcessStencilTestAllowed ( ) )
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3056055)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3011102 on 2016/06/13 by Steve.Cano
After taking a screenshot using glReadPixels, transfer the data to the target buffer from bottom row up to fix the "upside-down" render that OpenGL does. Confirmed with QA (owen.stupka_volt) that this does not appear to be happening on iOS (non-metal devices, inclusion of iOS in write-up was a mistake), verified on an ipod touch 5. Also confirmed that this does not happen on html5, and that Mobile HDR flag does not make a difference in function.
#jira UE-26421
#ue4
#android
Change 3015801 on 2016/06/16 by Dmitriy.Dyomin
Probbably fix for UE-30878, was not able to repro an actual crash(FFoliageInstanceBaseCache::AddInstanceBaseId). Added even more logging in case fix does not work.
#jira UE-30878
Change 3015903 on 2016/06/16 by Dmitriy.Dyomin
Fixed: Levels window has Refresh/UI issues when World Composition is active
#jira UE-26160
Change 3018352 on 2016/06/17 by Chris.Babcock
Handle Android media prepare failure (URL without internet for example)
#jira UE-32029
#ue4
#android
Change 3026387 on 2016/06/24 by Jack.Porter
Remove FFuncTestManager warning about PIE when running on a standalone game binary
Change 3026398 on 2016/06/24 by Jack.Porter
Prevent FSocketBSD::Recv returning false on SE_EWOULDBLOCK
Change 3027553 on 2016/06/25 by Niklas.Smedberg
OpenGL: Made some block size calculation work for arbitrary block sizes (e.g. not pow-of-two).
Change 3027554 on 2016/06/25 by Niklas.Smedberg
Metal: copyFromTexture now gets block-aligned size parameter (e.g. used for texture streaming)
Change 3028061 on 2016/06/26 by Jack.Porter
Fixed a problem where newly discovered instances were not added to an existing session in the Session Browser.
Fixed a problem where selecting an instance in a session with multiple instances didn't deselect the previously selected instance correctly.
Change 3029220 on 2016/06/27 by Steve.Cano
Change Android Tilt values to use GetRotationMatrix/GetOrientation logic, same as java-side android would use, and adjust slightly to match as closely as possible to iOS values for tilt. There is drift and some differences in the "Y" value but the same sort of inconsistencies are also seen on iOS.
#jira UE-6135
#ue4
#android
Change 3030420 on 2016/06/28 by Jack.Porter
Fix crash with RenderOutputValidation when running with cooked content
Change 3030426 on 2016/06/28 by Jack.Porter
Fix to CL 3026398 - make FSocketBSD(IPv6)::Recv(From) return false when recv returns 0.
A return value of 0 indicates the connection was shutdown in an orderly manner.
Change 3030973 on 2016/06/28 by Steve.Cano
Added a landscape downloader background along with the options to change it from within Android settings
#ue4
#android
#jira UE-32318
Change 3031757 on 2016/06/28 by Chris.Babcock
Remove unused methods from AndroidJNI header
#ue4
#android
Change 3032387 on 2016/06/29 by Allan.Bentham
Rename android es31+aep -> glesdeferred.
Change 3032711 on 2016/06/29 by Allan.Bentham
Rename GLSL_310_ES_EXT shader define:
ES31_AEP_PROFILE -> ESDEFERRED_PROFILE
bumped UE_SHADER_GLSL_310_ES_EXT_VER version number.
Change 3033698 on 2016/06/29 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3034210 on 2016/06/30 by Steve.Cano
Added a new AndroidRuntimeSettings variable that allows creation of installers for both Windows and Mac/Linux if set to true.
#jira UE-32302
#ue4
#android
Change 3034530 on 2016/06/30 by Chris.Babcock
Rename FManifestReader to FAndroidFileManifestReader in AndroidFile
#jira UE-32679
#ue4
#android
Change 3034612 on 2016/06/30 by Steve.Cano
Change Alpha from being set to a range of 0-255 to being in a range of 0-1 (which is the correct range of values)
#jira UE-25325
#ue4
#android
Change 3034679 on 2016/06/30 by Chris.Babcock
Fix tooltip (.command for mac, not .sh)
#jira UE-32302
#ue4
#android
Change 3038881 on 2016/07/05 by Jack.Porter
Package and launch on multiple Android devices simultaneously using the -Device=xxxxxxx+yyyyyyyy+zzzzzzzz format generated by a Project Launcher profile when you select multiple devices
#jira UEMOB-115
Change 3039240 on 2016/07/06 by Jack.Porter
TcpMessageTransport - connection-based message bus transport.
#jira UEMOB-112
#jira UEMOB-113
Change 3039252 on 2016/07/06 by Jack.Porter
Enable messaging and session services and functional testing on Android when launched with -messaging
Android device detection module support for adding port forwarding and connection announcement for TcpMessageTransport
#jira UEMOB-112
#jira UEMOB-113
Change 3039264 on 2016/07/06 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3040041 on 2016/07/06 by Chris.Babcock
Pass proper value to script generator functions
#jira UE-32861
#ue4
#android
Change 3040890 on 2016/07/07 by Allan.Bentham
Fix shadow crash
#jira UE-32884
Change 3041458 on 2016/07/07 by Peter.Sauerbrei
fix for IOS launch on failures
Change 3041542 on 2016/07/07 by Peter.Sauerbrei
better fix for the multi-device deployment issue
Change 3041774 on 2016/07/07 by Steve.Cano
Fixing crash that occurs when a games app id for Google Play is set before configuring the apk packaging. Also validating the value that is inserted and using it to override any values that have been hand-inserted into the GooglePlayAppID.xml
#jira UE-16992
#android
#ue4
Change 3042222 on 2016/07/08 by Dmitriy.Dyomin
Mobile packaging scenarious
Added a wizard for creating launcher profiles (Android & IOS) for scenario: Minimal App + Downloadable content
Added Archive step to launcher profiles to be able to store build product into specified directory
Changes to a cooker to be able to pack DLC based with a different flavor to a release App
Changes to DLC packaging to be able to build streaming data without chunking pak files
#jira UEMOB-119
Change 3042244 on 2016/07/08 by Dmitriy.Dyomin
Fixed crash in FTcpMessageTransportConnection::Stop
Change 3042270 on 2016/07/08 by Dmitriy.Dyomin
GitHub #2320 : [ULevelStreamingKismet] Load Level Instance, Enables UE4 Users to create multiple transformed instances of a .umap without having to include in persistent level's list ? Rama
contributed by: EverNewJoy
#jira UE-29867
Change 3042449 on 2016/07/08 by Dmitriy.Dyomin
Fixing Mac Editor build erros from CL# 3042222
Change 3042480 on 2016/07/08 by Allan.Bentham
Add ES3.1 profile & compiler_glsl_es3_1 to shaders.
Change 3042481 on 2016/07/08 by Allan.Bentham
hlslcc - ES3.1 changes.
set ES3.1 version number to 310
Do not use ES2 keywords for ES3.1.
Generate Layout Locations for ES3.1
bump version.
Change 3042483 on 2016/07/08 by Allan.Bentham
Add mobile ES3.1 support.
Recreates EGL and ES3.1 context during PlatformInitOpenGL if ES3.1 is required.
Change 3042485 on 2016/07/08 by Allan.Bentham
Undo android XGE change.
Change 3042506 on 2016/07/08 by Dmitriy.Dyomin
One more compile fix from CL# 3042222
Change 3044173 on 2016/07/10 by Dmitriy.Dyomin
UAT: Added support for building target platforms with multiple cook flavors
ex: -targetplatform=Android -cookflavor=ETC1+ETC2
Change 3044213 on 2016/07/11 by Dmitriy.Dyomin
Fixed: Can't stream in a level whose name is a substring of another streaming level
#jira UE-32999
Change 3044221 on 2016/07/11 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3044815 on 2016/07/11 by Allan.Bentham
Corrected NAME_GLSL_ES3_1_ANDROID format string.
Change 3046911 on 2016/07/12 by Chris.Babcock
Add handling of OnTextChanged for virtual keyboard input on Android
#jira UE-32348
#ue4
#android
Change 3046958 on 2016/07/12 by Chris.Babcock
Rename some functions with Error in the name to prevent false coloring in the logs
#jira UE-30541
#ue4
#android
Change 3047169 on 2016/07/12 by Chris.Babcock
Return player ID and handle auth token for Google Play Games on Android (contributed by gameDNAstudio)
#jira UE-30610
#pr #2372
#ue4
#android
Change 3047406 on 2016/07/12 by Jack.Porter
Add missing import to GameActivity.java
Change 3047442 on 2016/07/13 by Dmitriy.Dyomin
Added: Mobile custom post-process
Limitations: can fetch only from PostProcessInput0 (SceneColor) other scene textures are not supported. Does not support "Replacing the Tonemapper" blendable location.
#jira UEMOB-147
Change 3047466 on 2016/07/13 by Dmitriy.Dyomin
Disabled engine crash handler on Android, system crash handler works more reliably across different os versions/devices
Change 3047746 on 2016/07/13 by Jack.Porter
Rename FBasePassFowardDynamicPointLightInfo
Change 3047778 on 2016/07/13 by Jack.Porter
Missing file for rename FBasePassFowardDynamicPointLightInfo
Change 3047788 on 2016/07/13 by Allan.Bentham
Fix incorrect TargetPlatformDescriptor string generation.
Change 3047790 on 2016/07/13 by Allan.Bentham
Fixed half3x3 matrix use with ES3.1 glsl
Fixed couple of interpolator precision mismatch.
Fixed ES3.1 support detection issues
Change 3047816 on 2016/07/13 by Allan.Bentham
Remove AndroidGL4 remnants.
Change 3048926 on 2016/07/13 by Chris.Babcock
Added detection of Amazon Fire TV to disable requiring virtual joysticks
#ue4
#android
Change 3049335 on 2016/07/14 by Dmitriy.Dyomin
Fixing UAT crash when packaging project for iOS
Change 3049390 on 2016/07/14 by Jack.Porter
Disabled error for warning 4819 "The file contains a character that cannot be represented in the current code page (xxx). Save the file in Unicode format to prevent data loss"
This is triggered by European characters and copyright symbols in source saved as latin-1 when compiling on non-US windows. Seen often in 3rd party headers, eg nvapi.
#code_review: Ben.Marsh
Change 3049391 on 2016/07/14 by Jack.Porter
Fixed incorrect comment order in CL 3049390
Change 3049545 on 2016/07/14 by Dmitriy.Dyomin
Reworking some code from CL#3047442 to make static analizer happy
Change 3049626 on 2016/07/14 by Allan.Bentham
Automatic CSM shader toggling
#jira UE-27429
Change 3051574 on 2016/07/15 by Jack.Porter
Support for lighting channels on Mobile
- Multiple directional lights are supported in different channels but primitives are only affected by the directional light in the first channel they have set
- CSM shadows from stationary or movable directional lights correctly follow their lighting channels
- No channel limitations for dynamic point lights
Notes:
Removed mobile-specific directional light shadowing fields from View uniform buffer and mobile no longers uses SimpleDirectionalLight.
Separate uniform buffers for mobile directional light are generated for each lighting channel.
CSM culling information is now stored in FViewInfo and not per FVisibleLightViewInfo as the visibility bits are per view.
#code_review Daniel.Wright
#jira UEMOB-110
Change 3051699 on 2016/07/15 by Steve.Cano
Preserve the original, pre-transformed input vertices for Slate shaders, which is required to properly do anti-aliasing (the ViewProjection-transformed values were causing the lines to not be drawn).
#jira UE-20320
#ue4
#android
Change 3051744 on 2016/07/15 by Chris.Babcock
Fix Android Vulkan include path checks (contributed by kodomastro)
#jira UE-33311
#PR #2602
#ue4
#android
Change 3052023 on 2016/07/15 by Chris.Babcock
Fix shadowed variables
Change 3052110 on 2016/07/15 by Chris.Babcock
Compile fixes for light channel support on mobile
- missing template
- accessor function for MobileDirectionalLights from scene
Change 3052242 on 2016/07/15 by Chris.Babcock
Compile fixes for light channel support on mobile
- removed dependency on C++14 feature
Change 3052730 on 2016/07/16 by Dmitriy.Dyomin
Win32 build fix
Change 3053041 on 2016/07/17 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3053054 on 2016/07/17 by Jack.Porter
Changed use of old function ShouldUseDeferredRenderer() to new GetShadingPath()
Change 3053055 on 2016/07/17 by Jack.Porter
Fixed local variable aliasing in unity build
Change 3053206 on 2016/07/18 by Jack.Porter
Support ExecuteJavascript on iOS and Android
Expose ExecuteJavascript to widget blueprint
Fix ExecuteJavascript unicode string support on desktop platforms
#jira UEMOB-152
Change 3053323 on 2016/07/18 by Dmitriy.Dyomin
Added: Ability to set thread affinity for a device in Device Profiles (ex: +CVars=android.SetThreadAffinity=RT 0x02 GT 0x01)
#jira UEMOB-107
Change 3053723 on 2016/07/18 by Jack.Porter
Fix for UnrealTournamentProto.Automation.cs build errors
Change 3055090 on 2016/07/19 by Dmitriy.Dyomin
Junk OnlineBlueprintSupport module binaries
[CL 3056789 by Jack Porter in Main branch]
2016-07-19 19:13:01 -04:00
{
2019-09-14 09:45:25 -04:00
// Custom stencil texture allocated and available.
2021-01-13 12:58:25 -04:00
if ( GetCustomDepthMode ( ) = = ECustomDepthMode : : EnabledWithStencil )
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3056055)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3011102 on 2016/06/13 by Steve.Cano
After taking a screenshot using glReadPixels, transfer the data to the target buffer from bottom row up to fix the "upside-down" render that OpenGL does. Confirmed with QA (owen.stupka_volt) that this does not appear to be happening on iOS (non-metal devices, inclusion of iOS in write-up was a mistake), verified on an ipod touch 5. Also confirmed that this does not happen on html5, and that Mobile HDR flag does not make a difference in function.
#jira UE-26421
#ue4
#android
Change 3015801 on 2016/06/16 by Dmitriy.Dyomin
Probbably fix for UE-30878, was not able to repro an actual crash(FFoliageInstanceBaseCache::AddInstanceBaseId). Added even more logging in case fix does not work.
#jira UE-30878
Change 3015903 on 2016/06/16 by Dmitriy.Dyomin
Fixed: Levels window has Refresh/UI issues when World Composition is active
#jira UE-26160
Change 3018352 on 2016/06/17 by Chris.Babcock
Handle Android media prepare failure (URL without internet for example)
#jira UE-32029
#ue4
#android
Change 3026387 on 2016/06/24 by Jack.Porter
Remove FFuncTestManager warning about PIE when running on a standalone game binary
Change 3026398 on 2016/06/24 by Jack.Porter
Prevent FSocketBSD::Recv returning false on SE_EWOULDBLOCK
Change 3027553 on 2016/06/25 by Niklas.Smedberg
OpenGL: Made some block size calculation work for arbitrary block sizes (e.g. not pow-of-two).
Change 3027554 on 2016/06/25 by Niklas.Smedberg
Metal: copyFromTexture now gets block-aligned size parameter (e.g. used for texture streaming)
Change 3028061 on 2016/06/26 by Jack.Porter
Fixed a problem where newly discovered instances were not added to an existing session in the Session Browser.
Fixed a problem where selecting an instance in a session with multiple instances didn't deselect the previously selected instance correctly.
Change 3029220 on 2016/06/27 by Steve.Cano
Change Android Tilt values to use GetRotationMatrix/GetOrientation logic, same as java-side android would use, and adjust slightly to match as closely as possible to iOS values for tilt. There is drift and some differences in the "Y" value but the same sort of inconsistencies are also seen on iOS.
#jira UE-6135
#ue4
#android
Change 3030420 on 2016/06/28 by Jack.Porter
Fix crash with RenderOutputValidation when running with cooked content
Change 3030426 on 2016/06/28 by Jack.Porter
Fix to CL 3026398 - make FSocketBSD(IPv6)::Recv(From) return false when recv returns 0.
A return value of 0 indicates the connection was shutdown in an orderly manner.
Change 3030973 on 2016/06/28 by Steve.Cano
Added a landscape downloader background along with the options to change it from within Android settings
#ue4
#android
#jira UE-32318
Change 3031757 on 2016/06/28 by Chris.Babcock
Remove unused methods from AndroidJNI header
#ue4
#android
Change 3032387 on 2016/06/29 by Allan.Bentham
Rename android es31+aep -> glesdeferred.
Change 3032711 on 2016/06/29 by Allan.Bentham
Rename GLSL_310_ES_EXT shader define:
ES31_AEP_PROFILE -> ESDEFERRED_PROFILE
bumped UE_SHADER_GLSL_310_ES_EXT_VER version number.
Change 3033698 on 2016/06/29 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3034210 on 2016/06/30 by Steve.Cano
Added a new AndroidRuntimeSettings variable that allows creation of installers for both Windows and Mac/Linux if set to true.
#jira UE-32302
#ue4
#android
Change 3034530 on 2016/06/30 by Chris.Babcock
Rename FManifestReader to FAndroidFileManifestReader in AndroidFile
#jira UE-32679
#ue4
#android
Change 3034612 on 2016/06/30 by Steve.Cano
Change Alpha from being set to a range of 0-255 to being in a range of 0-1 (which is the correct range of values)
#jira UE-25325
#ue4
#android
Change 3034679 on 2016/06/30 by Chris.Babcock
Fix tooltip (.command for mac, not .sh)
#jira UE-32302
#ue4
#android
Change 3038881 on 2016/07/05 by Jack.Porter
Package and launch on multiple Android devices simultaneously using the -Device=xxxxxxx+yyyyyyyy+zzzzzzzz format generated by a Project Launcher profile when you select multiple devices
#jira UEMOB-115
Change 3039240 on 2016/07/06 by Jack.Porter
TcpMessageTransport - connection-based message bus transport.
#jira UEMOB-112
#jira UEMOB-113
Change 3039252 on 2016/07/06 by Jack.Porter
Enable messaging and session services and functional testing on Android when launched with -messaging
Android device detection module support for adding port forwarding and connection announcement for TcpMessageTransport
#jira UEMOB-112
#jira UEMOB-113
Change 3039264 on 2016/07/06 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3040041 on 2016/07/06 by Chris.Babcock
Pass proper value to script generator functions
#jira UE-32861
#ue4
#android
Change 3040890 on 2016/07/07 by Allan.Bentham
Fix shadow crash
#jira UE-32884
Change 3041458 on 2016/07/07 by Peter.Sauerbrei
fix for IOS launch on failures
Change 3041542 on 2016/07/07 by Peter.Sauerbrei
better fix for the multi-device deployment issue
Change 3041774 on 2016/07/07 by Steve.Cano
Fixing crash that occurs when a games app id for Google Play is set before configuring the apk packaging. Also validating the value that is inserted and using it to override any values that have been hand-inserted into the GooglePlayAppID.xml
#jira UE-16992
#android
#ue4
Change 3042222 on 2016/07/08 by Dmitriy.Dyomin
Mobile packaging scenarious
Added a wizard for creating launcher profiles (Android & IOS) for scenario: Minimal App + Downloadable content
Added Archive step to launcher profiles to be able to store build product into specified directory
Changes to a cooker to be able to pack DLC based with a different flavor to a release App
Changes to DLC packaging to be able to build streaming data without chunking pak files
#jira UEMOB-119
Change 3042244 on 2016/07/08 by Dmitriy.Dyomin
Fixed crash in FTcpMessageTransportConnection::Stop
Change 3042270 on 2016/07/08 by Dmitriy.Dyomin
GitHub #2320 : [ULevelStreamingKismet] Load Level Instance, Enables UE4 Users to create multiple transformed instances of a .umap without having to include in persistent level's list ? Rama
contributed by: EverNewJoy
#jira UE-29867
Change 3042449 on 2016/07/08 by Dmitriy.Dyomin
Fixing Mac Editor build erros from CL# 3042222
Change 3042480 on 2016/07/08 by Allan.Bentham
Add ES3.1 profile & compiler_glsl_es3_1 to shaders.
Change 3042481 on 2016/07/08 by Allan.Bentham
hlslcc - ES3.1 changes.
set ES3.1 version number to 310
Do not use ES2 keywords for ES3.1.
Generate Layout Locations for ES3.1
bump version.
Change 3042483 on 2016/07/08 by Allan.Bentham
Add mobile ES3.1 support.
Recreates EGL and ES3.1 context during PlatformInitOpenGL if ES3.1 is required.
Change 3042485 on 2016/07/08 by Allan.Bentham
Undo android XGE change.
Change 3042506 on 2016/07/08 by Dmitriy.Dyomin
One more compile fix from CL# 3042222
Change 3044173 on 2016/07/10 by Dmitriy.Dyomin
UAT: Added support for building target platforms with multiple cook flavors
ex: -targetplatform=Android -cookflavor=ETC1+ETC2
Change 3044213 on 2016/07/11 by Dmitriy.Dyomin
Fixed: Can't stream in a level whose name is a substring of another streaming level
#jira UE-32999
Change 3044221 on 2016/07/11 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3044815 on 2016/07/11 by Allan.Bentham
Corrected NAME_GLSL_ES3_1_ANDROID format string.
Change 3046911 on 2016/07/12 by Chris.Babcock
Add handling of OnTextChanged for virtual keyboard input on Android
#jira UE-32348
#ue4
#android
Change 3046958 on 2016/07/12 by Chris.Babcock
Rename some functions with Error in the name to prevent false coloring in the logs
#jira UE-30541
#ue4
#android
Change 3047169 on 2016/07/12 by Chris.Babcock
Return player ID and handle auth token for Google Play Games on Android (contributed by gameDNAstudio)
#jira UE-30610
#pr #2372
#ue4
#android
Change 3047406 on 2016/07/12 by Jack.Porter
Add missing import to GameActivity.java
Change 3047442 on 2016/07/13 by Dmitriy.Dyomin
Added: Mobile custom post-process
Limitations: can fetch only from PostProcessInput0 (SceneColor) other scene textures are not supported. Does not support "Replacing the Tonemapper" blendable location.
#jira UEMOB-147
Change 3047466 on 2016/07/13 by Dmitriy.Dyomin
Disabled engine crash handler on Android, system crash handler works more reliably across different os versions/devices
Change 3047746 on 2016/07/13 by Jack.Porter
Rename FBasePassFowardDynamicPointLightInfo
Change 3047778 on 2016/07/13 by Jack.Porter
Missing file for rename FBasePassFowardDynamicPointLightInfo
Change 3047788 on 2016/07/13 by Allan.Bentham
Fix incorrect TargetPlatformDescriptor string generation.
Change 3047790 on 2016/07/13 by Allan.Bentham
Fixed half3x3 matrix use with ES3.1 glsl
Fixed couple of interpolator precision mismatch.
Fixed ES3.1 support detection issues
Change 3047816 on 2016/07/13 by Allan.Bentham
Remove AndroidGL4 remnants.
Change 3048926 on 2016/07/13 by Chris.Babcock
Added detection of Amazon Fire TV to disable requiring virtual joysticks
#ue4
#android
Change 3049335 on 2016/07/14 by Dmitriy.Dyomin
Fixing UAT crash when packaging project for iOS
Change 3049390 on 2016/07/14 by Jack.Porter
Disabled error for warning 4819 "The file contains a character that cannot be represented in the current code page (xxx). Save the file in Unicode format to prevent data loss"
This is triggered by European characters and copyright symbols in source saved as latin-1 when compiling on non-US windows. Seen often in 3rd party headers, eg nvapi.
#code_review: Ben.Marsh
Change 3049391 on 2016/07/14 by Jack.Porter
Fixed incorrect comment order in CL 3049390
Change 3049545 on 2016/07/14 by Dmitriy.Dyomin
Reworking some code from CL#3047442 to make static analizer happy
Change 3049626 on 2016/07/14 by Allan.Bentham
Automatic CSM shader toggling
#jira UE-27429
Change 3051574 on 2016/07/15 by Jack.Porter
Support for lighting channels on Mobile
- Multiple directional lights are supported in different channels but primitives are only affected by the directional light in the first channel they have set
- CSM shadows from stationary or movable directional lights correctly follow their lighting channels
- No channel limitations for dynamic point lights
Notes:
Removed mobile-specific directional light shadowing fields from View uniform buffer and mobile no longers uses SimpleDirectionalLight.
Separate uniform buffers for mobile directional light are generated for each lighting channel.
CSM culling information is now stored in FViewInfo and not per FVisibleLightViewInfo as the visibility bits are per view.
#code_review Daniel.Wright
#jira UEMOB-110
Change 3051699 on 2016/07/15 by Steve.Cano
Preserve the original, pre-transformed input vertices for Slate shaders, which is required to properly do anti-aliasing (the ViewProjection-transformed values were causing the lines to not be drawn).
#jira UE-20320
#ue4
#android
Change 3051744 on 2016/07/15 by Chris.Babcock
Fix Android Vulkan include path checks (contributed by kodomastro)
#jira UE-33311
#PR #2602
#ue4
#android
Change 3052023 on 2016/07/15 by Chris.Babcock
Fix shadowed variables
Change 3052110 on 2016/07/15 by Chris.Babcock
Compile fixes for light channel support on mobile
- missing template
- accessor function for MobileDirectionalLights from scene
Change 3052242 on 2016/07/15 by Chris.Babcock
Compile fixes for light channel support on mobile
- removed dependency on C++14 feature
Change 3052730 on 2016/07/16 by Dmitriy.Dyomin
Win32 build fix
Change 3053041 on 2016/07/17 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3053054 on 2016/07/17 by Jack.Porter
Changed use of old function ShouldUseDeferredRenderer() to new GetShadingPath()
Change 3053055 on 2016/07/17 by Jack.Porter
Fixed local variable aliasing in unity build
Change 3053206 on 2016/07/18 by Jack.Porter
Support ExecuteJavascript on iOS and Android
Expose ExecuteJavascript to widget blueprint
Fix ExecuteJavascript unicode string support on desktop platforms
#jira UEMOB-152
Change 3053323 on 2016/07/18 by Dmitriy.Dyomin
Added: Ability to set thread affinity for a device in Device Profiles (ex: +CVars=android.SetThreadAffinity=RT 0x02 GT 0x01)
#jira UEMOB-107
Change 3053723 on 2016/07/18 by Jack.Porter
Fix for UnrealTournamentProto.Automation.cs build errors
Change 3055090 on 2016/07/19 by Dmitriy.Dyomin
Junk OnlineBlueprintSupport module binaries
[CL 3056789 by Jack Porter in Main branch]
2016-07-19 19:13:01 -04:00
{
2021-01-13 12:58:25 -04:00
return EMaterialCustomDepthPolicy : : Enabled ;
2019-09-14 09:45:25 -04:00
}
else
{
UE_LOG ( LogRenderer , Warning , TEXT ( " PostProcessMaterial uses stencil test, but stencil not allocated. Set r.CustomDepth to 3 to allocate custom stencil. " ) ) ;
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3056055)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3011102 on 2016/06/13 by Steve.Cano
After taking a screenshot using glReadPixels, transfer the data to the target buffer from bottom row up to fix the "upside-down" render that OpenGL does. Confirmed with QA (owen.stupka_volt) that this does not appear to be happening on iOS (non-metal devices, inclusion of iOS in write-up was a mistake), verified on an ipod touch 5. Also confirmed that this does not happen on html5, and that Mobile HDR flag does not make a difference in function.
#jira UE-26421
#ue4
#android
Change 3015801 on 2016/06/16 by Dmitriy.Dyomin
Probbably fix for UE-30878, was not able to repro an actual crash(FFoliageInstanceBaseCache::AddInstanceBaseId). Added even more logging in case fix does not work.
#jira UE-30878
Change 3015903 on 2016/06/16 by Dmitriy.Dyomin
Fixed: Levels window has Refresh/UI issues when World Composition is active
#jira UE-26160
Change 3018352 on 2016/06/17 by Chris.Babcock
Handle Android media prepare failure (URL without internet for example)
#jira UE-32029
#ue4
#android
Change 3026387 on 2016/06/24 by Jack.Porter
Remove FFuncTestManager warning about PIE when running on a standalone game binary
Change 3026398 on 2016/06/24 by Jack.Porter
Prevent FSocketBSD::Recv returning false on SE_EWOULDBLOCK
Change 3027553 on 2016/06/25 by Niklas.Smedberg
OpenGL: Made some block size calculation work for arbitrary block sizes (e.g. not pow-of-two).
Change 3027554 on 2016/06/25 by Niklas.Smedberg
Metal: copyFromTexture now gets block-aligned size parameter (e.g. used for texture streaming)
Change 3028061 on 2016/06/26 by Jack.Porter
Fixed a problem where newly discovered instances were not added to an existing session in the Session Browser.
Fixed a problem where selecting an instance in a session with multiple instances didn't deselect the previously selected instance correctly.
Change 3029220 on 2016/06/27 by Steve.Cano
Change Android Tilt values to use GetRotationMatrix/GetOrientation logic, same as java-side android would use, and adjust slightly to match as closely as possible to iOS values for tilt. There is drift and some differences in the "Y" value but the same sort of inconsistencies are also seen on iOS.
#jira UE-6135
#ue4
#android
Change 3030420 on 2016/06/28 by Jack.Porter
Fix crash with RenderOutputValidation when running with cooked content
Change 3030426 on 2016/06/28 by Jack.Porter
Fix to CL 3026398 - make FSocketBSD(IPv6)::Recv(From) return false when recv returns 0.
A return value of 0 indicates the connection was shutdown in an orderly manner.
Change 3030973 on 2016/06/28 by Steve.Cano
Added a landscape downloader background along with the options to change it from within Android settings
#ue4
#android
#jira UE-32318
Change 3031757 on 2016/06/28 by Chris.Babcock
Remove unused methods from AndroidJNI header
#ue4
#android
Change 3032387 on 2016/06/29 by Allan.Bentham
Rename android es31+aep -> glesdeferred.
Change 3032711 on 2016/06/29 by Allan.Bentham
Rename GLSL_310_ES_EXT shader define:
ES31_AEP_PROFILE -> ESDEFERRED_PROFILE
bumped UE_SHADER_GLSL_310_ES_EXT_VER version number.
Change 3033698 on 2016/06/29 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3034210 on 2016/06/30 by Steve.Cano
Added a new AndroidRuntimeSettings variable that allows creation of installers for both Windows and Mac/Linux if set to true.
#jira UE-32302
#ue4
#android
Change 3034530 on 2016/06/30 by Chris.Babcock
Rename FManifestReader to FAndroidFileManifestReader in AndroidFile
#jira UE-32679
#ue4
#android
Change 3034612 on 2016/06/30 by Steve.Cano
Change Alpha from being set to a range of 0-255 to being in a range of 0-1 (which is the correct range of values)
#jira UE-25325
#ue4
#android
Change 3034679 on 2016/06/30 by Chris.Babcock
Fix tooltip (.command for mac, not .sh)
#jira UE-32302
#ue4
#android
Change 3038881 on 2016/07/05 by Jack.Porter
Package and launch on multiple Android devices simultaneously using the -Device=xxxxxxx+yyyyyyyy+zzzzzzzz format generated by a Project Launcher profile when you select multiple devices
#jira UEMOB-115
Change 3039240 on 2016/07/06 by Jack.Porter
TcpMessageTransport - connection-based message bus transport.
#jira UEMOB-112
#jira UEMOB-113
Change 3039252 on 2016/07/06 by Jack.Porter
Enable messaging and session services and functional testing on Android when launched with -messaging
Android device detection module support for adding port forwarding and connection announcement for TcpMessageTransport
#jira UEMOB-112
#jira UEMOB-113
Change 3039264 on 2016/07/06 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3040041 on 2016/07/06 by Chris.Babcock
Pass proper value to script generator functions
#jira UE-32861
#ue4
#android
Change 3040890 on 2016/07/07 by Allan.Bentham
Fix shadow crash
#jira UE-32884
Change 3041458 on 2016/07/07 by Peter.Sauerbrei
fix for IOS launch on failures
Change 3041542 on 2016/07/07 by Peter.Sauerbrei
better fix for the multi-device deployment issue
Change 3041774 on 2016/07/07 by Steve.Cano
Fixing crash that occurs when a games app id for Google Play is set before configuring the apk packaging. Also validating the value that is inserted and using it to override any values that have been hand-inserted into the GooglePlayAppID.xml
#jira UE-16992
#android
#ue4
Change 3042222 on 2016/07/08 by Dmitriy.Dyomin
Mobile packaging scenarious
Added a wizard for creating launcher profiles (Android & IOS) for scenario: Minimal App + Downloadable content
Added Archive step to launcher profiles to be able to store build product into specified directory
Changes to a cooker to be able to pack DLC based with a different flavor to a release App
Changes to DLC packaging to be able to build streaming data without chunking pak files
#jira UEMOB-119
Change 3042244 on 2016/07/08 by Dmitriy.Dyomin
Fixed crash in FTcpMessageTransportConnection::Stop
Change 3042270 on 2016/07/08 by Dmitriy.Dyomin
GitHub #2320 : [ULevelStreamingKismet] Load Level Instance, Enables UE4 Users to create multiple transformed instances of a .umap without having to include in persistent level's list ? Rama
contributed by: EverNewJoy
#jira UE-29867
Change 3042449 on 2016/07/08 by Dmitriy.Dyomin
Fixing Mac Editor build erros from CL# 3042222
Change 3042480 on 2016/07/08 by Allan.Bentham
Add ES3.1 profile & compiler_glsl_es3_1 to shaders.
Change 3042481 on 2016/07/08 by Allan.Bentham
hlslcc - ES3.1 changes.
set ES3.1 version number to 310
Do not use ES2 keywords for ES3.1.
Generate Layout Locations for ES3.1
bump version.
Change 3042483 on 2016/07/08 by Allan.Bentham
Add mobile ES3.1 support.
Recreates EGL and ES3.1 context during PlatformInitOpenGL if ES3.1 is required.
Change 3042485 on 2016/07/08 by Allan.Bentham
Undo android XGE change.
Change 3042506 on 2016/07/08 by Dmitriy.Dyomin
One more compile fix from CL# 3042222
Change 3044173 on 2016/07/10 by Dmitriy.Dyomin
UAT: Added support for building target platforms with multiple cook flavors
ex: -targetplatform=Android -cookflavor=ETC1+ETC2
Change 3044213 on 2016/07/11 by Dmitriy.Dyomin
Fixed: Can't stream in a level whose name is a substring of another streaming level
#jira UE-32999
Change 3044221 on 2016/07/11 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3044815 on 2016/07/11 by Allan.Bentham
Corrected NAME_GLSL_ES3_1_ANDROID format string.
Change 3046911 on 2016/07/12 by Chris.Babcock
Add handling of OnTextChanged for virtual keyboard input on Android
#jira UE-32348
#ue4
#android
Change 3046958 on 2016/07/12 by Chris.Babcock
Rename some functions with Error in the name to prevent false coloring in the logs
#jira UE-30541
#ue4
#android
Change 3047169 on 2016/07/12 by Chris.Babcock
Return player ID and handle auth token for Google Play Games on Android (contributed by gameDNAstudio)
#jira UE-30610
#pr #2372
#ue4
#android
Change 3047406 on 2016/07/12 by Jack.Porter
Add missing import to GameActivity.java
Change 3047442 on 2016/07/13 by Dmitriy.Dyomin
Added: Mobile custom post-process
Limitations: can fetch only from PostProcessInput0 (SceneColor) other scene textures are not supported. Does not support "Replacing the Tonemapper" blendable location.
#jira UEMOB-147
Change 3047466 on 2016/07/13 by Dmitriy.Dyomin
Disabled engine crash handler on Android, system crash handler works more reliably across different os versions/devices
Change 3047746 on 2016/07/13 by Jack.Porter
Rename FBasePassFowardDynamicPointLightInfo
Change 3047778 on 2016/07/13 by Jack.Porter
Missing file for rename FBasePassFowardDynamicPointLightInfo
Change 3047788 on 2016/07/13 by Allan.Bentham
Fix incorrect TargetPlatformDescriptor string generation.
Change 3047790 on 2016/07/13 by Allan.Bentham
Fixed half3x3 matrix use with ES3.1 glsl
Fixed couple of interpolator precision mismatch.
Fixed ES3.1 support detection issues
Change 3047816 on 2016/07/13 by Allan.Bentham
Remove AndroidGL4 remnants.
Change 3048926 on 2016/07/13 by Chris.Babcock
Added detection of Amazon Fire TV to disable requiring virtual joysticks
#ue4
#android
Change 3049335 on 2016/07/14 by Dmitriy.Dyomin
Fixing UAT crash when packaging project for iOS
Change 3049390 on 2016/07/14 by Jack.Porter
Disabled error for warning 4819 "The file contains a character that cannot be represented in the current code page (xxx). Save the file in Unicode format to prevent data loss"
This is triggered by European characters and copyright symbols in source saved as latin-1 when compiling on non-US windows. Seen often in 3rd party headers, eg nvapi.
#code_review: Ben.Marsh
Change 3049391 on 2016/07/14 by Jack.Porter
Fixed incorrect comment order in CL 3049390
Change 3049545 on 2016/07/14 by Dmitriy.Dyomin
Reworking some code from CL#3047442 to make static analizer happy
Change 3049626 on 2016/07/14 by Allan.Bentham
Automatic CSM shader toggling
#jira UE-27429
Change 3051574 on 2016/07/15 by Jack.Porter
Support for lighting channels on Mobile
- Multiple directional lights are supported in different channels but primitives are only affected by the directional light in the first channel they have set
- CSM shadows from stationary or movable directional lights correctly follow their lighting channels
- No channel limitations for dynamic point lights
Notes:
Removed mobile-specific directional light shadowing fields from View uniform buffer and mobile no longers uses SimpleDirectionalLight.
Separate uniform buffers for mobile directional light are generated for each lighting channel.
CSM culling information is now stored in FViewInfo and not per FVisibleLightViewInfo as the visibility bits are per view.
#code_review Daniel.Wright
#jira UEMOB-110
Change 3051699 on 2016/07/15 by Steve.Cano
Preserve the original, pre-transformed input vertices for Slate shaders, which is required to properly do anti-aliasing (the ViewProjection-transformed values were causing the lines to not be drawn).
#jira UE-20320
#ue4
#android
Change 3051744 on 2016/07/15 by Chris.Babcock
Fix Android Vulkan include path checks (contributed by kodomastro)
#jira UE-33311
#PR #2602
#ue4
#android
Change 3052023 on 2016/07/15 by Chris.Babcock
Fix shadowed variables
Change 3052110 on 2016/07/15 by Chris.Babcock
Compile fixes for light channel support on mobile
- missing template
- accessor function for MobileDirectionalLights from scene
Change 3052242 on 2016/07/15 by Chris.Babcock
Compile fixes for light channel support on mobile
- removed dependency on C++14 feature
Change 3052730 on 2016/07/16 by Dmitriy.Dyomin
Win32 build fix
Change 3053041 on 2016/07/17 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3053054 on 2016/07/17 by Jack.Porter
Changed use of old function ShouldUseDeferredRenderer() to new GetShadingPath()
Change 3053055 on 2016/07/17 by Jack.Porter
Fixed local variable aliasing in unity build
Change 3053206 on 2016/07/18 by Jack.Porter
Support ExecuteJavascript on iOS and Android
Expose ExecuteJavascript to widget blueprint
Fix ExecuteJavascript unicode string support on desktop platforms
#jira UEMOB-152
Change 3053323 on 2016/07/18 by Dmitriy.Dyomin
Added: Ability to set thread affinity for a device in Device Profiles (ex: +CVars=android.SetThreadAffinity=RT 0x02 GT 0x01)
#jira UEMOB-107
Change 3053723 on 2016/07/18 by Jack.Porter
Fix for UnrealTournamentProto.Automation.cs build errors
Change 3055090 on 2016/07/19 by Dmitriy.Dyomin
Junk OnlineBlueprintSupport module binaries
[CL 3056789 by Jack Porter in Main branch]
2016-07-19 19:13:01 -04:00
}
}
2021-01-13 12:58:25 -04:00
return EMaterialCustomDepthPolicy : : Disabled ;
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3056055)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3011102 on 2016/06/13 by Steve.Cano
After taking a screenshot using glReadPixels, transfer the data to the target buffer from bottom row up to fix the "upside-down" render that OpenGL does. Confirmed with QA (owen.stupka_volt) that this does not appear to be happening on iOS (non-metal devices, inclusion of iOS in write-up was a mistake), verified on an ipod touch 5. Also confirmed that this does not happen on html5, and that Mobile HDR flag does not make a difference in function.
#jira UE-26421
#ue4
#android
Change 3015801 on 2016/06/16 by Dmitriy.Dyomin
Probbably fix for UE-30878, was not able to repro an actual crash(FFoliageInstanceBaseCache::AddInstanceBaseId). Added even more logging in case fix does not work.
#jira UE-30878
Change 3015903 on 2016/06/16 by Dmitriy.Dyomin
Fixed: Levels window has Refresh/UI issues when World Composition is active
#jira UE-26160
Change 3018352 on 2016/06/17 by Chris.Babcock
Handle Android media prepare failure (URL without internet for example)
#jira UE-32029
#ue4
#android
Change 3026387 on 2016/06/24 by Jack.Porter
Remove FFuncTestManager warning about PIE when running on a standalone game binary
Change 3026398 on 2016/06/24 by Jack.Porter
Prevent FSocketBSD::Recv returning false on SE_EWOULDBLOCK
Change 3027553 on 2016/06/25 by Niklas.Smedberg
OpenGL: Made some block size calculation work for arbitrary block sizes (e.g. not pow-of-two).
Change 3027554 on 2016/06/25 by Niklas.Smedberg
Metal: copyFromTexture now gets block-aligned size parameter (e.g. used for texture streaming)
Change 3028061 on 2016/06/26 by Jack.Porter
Fixed a problem where newly discovered instances were not added to an existing session in the Session Browser.
Fixed a problem where selecting an instance in a session with multiple instances didn't deselect the previously selected instance correctly.
Change 3029220 on 2016/06/27 by Steve.Cano
Change Android Tilt values to use GetRotationMatrix/GetOrientation logic, same as java-side android would use, and adjust slightly to match as closely as possible to iOS values for tilt. There is drift and some differences in the "Y" value but the same sort of inconsistencies are also seen on iOS.
#jira UE-6135
#ue4
#android
Change 3030420 on 2016/06/28 by Jack.Porter
Fix crash with RenderOutputValidation when running with cooked content
Change 3030426 on 2016/06/28 by Jack.Porter
Fix to CL 3026398 - make FSocketBSD(IPv6)::Recv(From) return false when recv returns 0.
A return value of 0 indicates the connection was shutdown in an orderly manner.
Change 3030973 on 2016/06/28 by Steve.Cano
Added a landscape downloader background along with the options to change it from within Android settings
#ue4
#android
#jira UE-32318
Change 3031757 on 2016/06/28 by Chris.Babcock
Remove unused methods from AndroidJNI header
#ue4
#android
Change 3032387 on 2016/06/29 by Allan.Bentham
Rename android es31+aep -> glesdeferred.
Change 3032711 on 2016/06/29 by Allan.Bentham
Rename GLSL_310_ES_EXT shader define:
ES31_AEP_PROFILE -> ESDEFERRED_PROFILE
bumped UE_SHADER_GLSL_310_ES_EXT_VER version number.
Change 3033698 on 2016/06/29 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3034210 on 2016/06/30 by Steve.Cano
Added a new AndroidRuntimeSettings variable that allows creation of installers for both Windows and Mac/Linux if set to true.
#jira UE-32302
#ue4
#android
Change 3034530 on 2016/06/30 by Chris.Babcock
Rename FManifestReader to FAndroidFileManifestReader in AndroidFile
#jira UE-32679
#ue4
#android
Change 3034612 on 2016/06/30 by Steve.Cano
Change Alpha from being set to a range of 0-255 to being in a range of 0-1 (which is the correct range of values)
#jira UE-25325
#ue4
#android
Change 3034679 on 2016/06/30 by Chris.Babcock
Fix tooltip (.command for mac, not .sh)
#jira UE-32302
#ue4
#android
Change 3038881 on 2016/07/05 by Jack.Porter
Package and launch on multiple Android devices simultaneously using the -Device=xxxxxxx+yyyyyyyy+zzzzzzzz format generated by a Project Launcher profile when you select multiple devices
#jira UEMOB-115
Change 3039240 on 2016/07/06 by Jack.Porter
TcpMessageTransport - connection-based message bus transport.
#jira UEMOB-112
#jira UEMOB-113
Change 3039252 on 2016/07/06 by Jack.Porter
Enable messaging and session services and functional testing on Android when launched with -messaging
Android device detection module support for adding port forwarding and connection announcement for TcpMessageTransport
#jira UEMOB-112
#jira UEMOB-113
Change 3039264 on 2016/07/06 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3040041 on 2016/07/06 by Chris.Babcock
Pass proper value to script generator functions
#jira UE-32861
#ue4
#android
Change 3040890 on 2016/07/07 by Allan.Bentham
Fix shadow crash
#jira UE-32884
Change 3041458 on 2016/07/07 by Peter.Sauerbrei
fix for IOS launch on failures
Change 3041542 on 2016/07/07 by Peter.Sauerbrei
better fix for the multi-device deployment issue
Change 3041774 on 2016/07/07 by Steve.Cano
Fixing crash that occurs when a games app id for Google Play is set before configuring the apk packaging. Also validating the value that is inserted and using it to override any values that have been hand-inserted into the GooglePlayAppID.xml
#jira UE-16992
#android
#ue4
Change 3042222 on 2016/07/08 by Dmitriy.Dyomin
Mobile packaging scenarious
Added a wizard for creating launcher profiles (Android & IOS) for scenario: Minimal App + Downloadable content
Added Archive step to launcher profiles to be able to store build product into specified directory
Changes to a cooker to be able to pack DLC based with a different flavor to a release App
Changes to DLC packaging to be able to build streaming data without chunking pak files
#jira UEMOB-119
Change 3042244 on 2016/07/08 by Dmitriy.Dyomin
Fixed crash in FTcpMessageTransportConnection::Stop
Change 3042270 on 2016/07/08 by Dmitriy.Dyomin
GitHub #2320 : [ULevelStreamingKismet] Load Level Instance, Enables UE4 Users to create multiple transformed instances of a .umap without having to include in persistent level's list ? Rama
contributed by: EverNewJoy
#jira UE-29867
Change 3042449 on 2016/07/08 by Dmitriy.Dyomin
Fixing Mac Editor build erros from CL# 3042222
Change 3042480 on 2016/07/08 by Allan.Bentham
Add ES3.1 profile & compiler_glsl_es3_1 to shaders.
Change 3042481 on 2016/07/08 by Allan.Bentham
hlslcc - ES3.1 changes.
set ES3.1 version number to 310
Do not use ES2 keywords for ES3.1.
Generate Layout Locations for ES3.1
bump version.
Change 3042483 on 2016/07/08 by Allan.Bentham
Add mobile ES3.1 support.
Recreates EGL and ES3.1 context during PlatformInitOpenGL if ES3.1 is required.
Change 3042485 on 2016/07/08 by Allan.Bentham
Undo android XGE change.
Change 3042506 on 2016/07/08 by Dmitriy.Dyomin
One more compile fix from CL# 3042222
Change 3044173 on 2016/07/10 by Dmitriy.Dyomin
UAT: Added support for building target platforms with multiple cook flavors
ex: -targetplatform=Android -cookflavor=ETC1+ETC2
Change 3044213 on 2016/07/11 by Dmitriy.Dyomin
Fixed: Can't stream in a level whose name is a substring of another streaming level
#jira UE-32999
Change 3044221 on 2016/07/11 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3044815 on 2016/07/11 by Allan.Bentham
Corrected NAME_GLSL_ES3_1_ANDROID format string.
Change 3046911 on 2016/07/12 by Chris.Babcock
Add handling of OnTextChanged for virtual keyboard input on Android
#jira UE-32348
#ue4
#android
Change 3046958 on 2016/07/12 by Chris.Babcock
Rename some functions with Error in the name to prevent false coloring in the logs
#jira UE-30541
#ue4
#android
Change 3047169 on 2016/07/12 by Chris.Babcock
Return player ID and handle auth token for Google Play Games on Android (contributed by gameDNAstudio)
#jira UE-30610
#pr #2372
#ue4
#android
Change 3047406 on 2016/07/12 by Jack.Porter
Add missing import to GameActivity.java
Change 3047442 on 2016/07/13 by Dmitriy.Dyomin
Added: Mobile custom post-process
Limitations: can fetch only from PostProcessInput0 (SceneColor) other scene textures are not supported. Does not support "Replacing the Tonemapper" blendable location.
#jira UEMOB-147
Change 3047466 on 2016/07/13 by Dmitriy.Dyomin
Disabled engine crash handler on Android, system crash handler works more reliably across different os versions/devices
Change 3047746 on 2016/07/13 by Jack.Porter
Rename FBasePassFowardDynamicPointLightInfo
Change 3047778 on 2016/07/13 by Jack.Porter
Missing file for rename FBasePassFowardDynamicPointLightInfo
Change 3047788 on 2016/07/13 by Allan.Bentham
Fix incorrect TargetPlatformDescriptor string generation.
Change 3047790 on 2016/07/13 by Allan.Bentham
Fixed half3x3 matrix use with ES3.1 glsl
Fixed couple of interpolator precision mismatch.
Fixed ES3.1 support detection issues
Change 3047816 on 2016/07/13 by Allan.Bentham
Remove AndroidGL4 remnants.
Change 3048926 on 2016/07/13 by Chris.Babcock
Added detection of Amazon Fire TV to disable requiring virtual joysticks
#ue4
#android
Change 3049335 on 2016/07/14 by Dmitriy.Dyomin
Fixing UAT crash when packaging project for iOS
Change 3049390 on 2016/07/14 by Jack.Porter
Disabled error for warning 4819 "The file contains a character that cannot be represented in the current code page (xxx). Save the file in Unicode format to prevent data loss"
This is triggered by European characters and copyright symbols in source saved as latin-1 when compiling on non-US windows. Seen often in 3rd party headers, eg nvapi.
#code_review: Ben.Marsh
Change 3049391 on 2016/07/14 by Jack.Porter
Fixed incorrect comment order in CL 3049390
Change 3049545 on 2016/07/14 by Dmitriy.Dyomin
Reworking some code from CL#3047442 to make static analizer happy
Change 3049626 on 2016/07/14 by Allan.Bentham
Automatic CSM shader toggling
#jira UE-27429
Change 3051574 on 2016/07/15 by Jack.Porter
Support for lighting channels on Mobile
- Multiple directional lights are supported in different channels but primitives are only affected by the directional light in the first channel they have set
- CSM shadows from stationary or movable directional lights correctly follow their lighting channels
- No channel limitations for dynamic point lights
Notes:
Removed mobile-specific directional light shadowing fields from View uniform buffer and mobile no longers uses SimpleDirectionalLight.
Separate uniform buffers for mobile directional light are generated for each lighting channel.
CSM culling information is now stored in FViewInfo and not per FVisibleLightViewInfo as the visibility bits are per view.
#code_review Daniel.Wright
#jira UEMOB-110
Change 3051699 on 2016/07/15 by Steve.Cano
Preserve the original, pre-transformed input vertices for Slate shaders, which is required to properly do anti-aliasing (the ViewProjection-transformed values were causing the lines to not be drawn).
#jira UE-20320
#ue4
#android
Change 3051744 on 2016/07/15 by Chris.Babcock
Fix Android Vulkan include path checks (contributed by kodomastro)
#jira UE-33311
#PR #2602
#ue4
#android
Change 3052023 on 2016/07/15 by Chris.Babcock
Fix shadowed variables
Change 3052110 on 2016/07/15 by Chris.Babcock
Compile fixes for light channel support on mobile
- missing template
- accessor function for MobileDirectionalLights from scene
Change 3052242 on 2016/07/15 by Chris.Babcock
Compile fixes for light channel support on mobile
- removed dependency on C++14 feature
Change 3052730 on 2016/07/16 by Dmitriy.Dyomin
Win32 build fix
Change 3053041 on 2016/07/17 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3053054 on 2016/07/17 by Jack.Porter
Changed use of old function ShouldUseDeferredRenderer() to new GetShadingPath()
Change 3053055 on 2016/07/17 by Jack.Porter
Fixed local variable aliasing in unity build
Change 3053206 on 2016/07/18 by Jack.Porter
Support ExecuteJavascript on iOS and Android
Expose ExecuteJavascript to widget blueprint
Fix ExecuteJavascript unicode string support on desktop platforms
#jira UEMOB-152
Change 3053323 on 2016/07/18 by Dmitriy.Dyomin
Added: Ability to set thread affinity for a device in Device Profiles (ex: +CVars=android.SetThreadAffinity=RT 0x02 GT 0x01)
#jira UEMOB-107
Change 3053723 on 2016/07/18 by Jack.Porter
Fix for UnrealTournamentProto.Automation.cs build errors
Change 3055090 on 2016/07/19 by Dmitriy.Dyomin
Junk OnlineBlueprintSupport module binaries
[CL 3056789 by Jack Porter in Main branch]
2016-07-19 19:13:01 -04:00
}
2019-09-14 09:45:25 -04:00
FRHIDepthStencilState * GetMaterialStencilState ( const FMaterial * Material )
{
static FRHIDepthStencilState * StencilStates [ ] =
{
TStaticDepthStencilState < false , CF_Always , true , CF_Less > : : GetRHI ( ) ,
TStaticDepthStencilState < false , CF_Always , true , CF_LessEqual > : : GetRHI ( ) ,
TStaticDepthStencilState < false , CF_Always , true , CF_Greater > : : GetRHI ( ) ,
TStaticDepthStencilState < false , CF_Always , true , CF_GreaterEqual > : : GetRHI ( ) ,
TStaticDepthStencilState < false , CF_Always , true , CF_Equal > : : GetRHI ( ) ,
TStaticDepthStencilState < false , CF_Always , true , CF_NotEqual > : : GetRHI ( ) ,
TStaticDepthStencilState < false , CF_Always , true , CF_Never > : : GetRHI ( ) ,
TStaticDepthStencilState < false , CF_Always , true , CF_Always > : : GetRHI ( ) ,
} ;
2019-09-28 08:19:35 -04:00
static_assert ( EMaterialStencilCompare : : MSC_Count = = UE_ARRAY_COUNT ( StencilStates ) , " Ensure that all EMaterialStencilCompare values are accounted for. " ) ;
2019-09-14 09:45:25 -04:00
check ( Material ) ;
return StencilStates [ Material - > GetStencilCompare ( ) ] ;
}
bool IsMaterialBlendEnabled ( const FMaterial * Material )
{
check ( Material ) ;
return Material - > GetBlendableOutputAlpha ( ) & & CVarPostProcessAllowBlendModes . GetValueOnRenderThread ( ) ! = 0 ;
}
FRHIBlendState * GetMaterialBlendState ( const FMaterial * Material )
{
static FRHIBlendState * BlendStates [ ] =
{
TStaticBlendState < > : : GetRHI ( ) ,
TStaticBlendState < > : : GetRHI ( ) ,
TStaticBlendState < CW_RGB , BO_Add , BF_SourceAlpha , BF_InverseSourceAlpha , BO_Add , BF_Zero , BF_One > : : GetRHI ( ) ,
TStaticBlendState < CW_RGB , BO_Add , BF_One , BF_One > : : GetRHI ( ) ,
TStaticBlendState < CW_RGB , BO_Add , BF_DestColor , BF_Zero > : : GetRHI ( ) ,
TStaticBlendState < CW_RGBA , BO_Add , BF_One , BF_InverseSourceAlpha , BO_Add , BF_One , BF_InverseSourceAlpha > : : GetRHI ( ) ,
TStaticBlendState < CW_RGBA , BO_Add , BF_Zero , BF_InverseSourceAlpha , BO_Add , BF_Zero , BF_InverseSourceAlpha > : : GetRHI ( ) ,
} ;
2019-09-28 08:19:35 -04:00
static_assert ( EBlendMode : : BLEND_MAX = = UE_ARRAY_COUNT ( BlendStates ) , " Ensure that all EBlendMode values are accounted for. " ) ;
2019-09-14 09:45:25 -04:00
check ( Material ) ;
2022-03-03 10:05:56 -05:00
if ( Strata : : IsStrataEnabled ( ) )
{
switch ( Material - > GetStrataBlendMode ( ) )
{
case EStrataBlendMode : : SBM_Opaque :
case EStrataBlendMode : : SBM_Masked :
return TStaticBlendState < > : : GetRHI ( ) ;
case EStrataBlendMode : : SBM_TranslucentColoredTransmittance : // A platform may not support dual source blending so we always only use grey scale transmittance
case EStrataBlendMode : : SBM_TranslucentGreyTransmittance :
return TStaticBlendState < CW_RGBA , BO_Add , BF_One , BF_InverseSourceAlpha , BO_Add , BF_One , BF_InverseSourceAlpha > : : GetRHI ( ) ;
case EStrataBlendMode : : SBM_ColoredTransmittanceOnly :
return TStaticBlendState < CW_RGB , BO_Add , BF_DestColor , BF_Zero > : : GetRHI ( ) ;
case EStrataBlendMode : : SBM_AlphaHoldout :
return TStaticBlendState < CW_RGBA , BO_Add , BF_Zero , BF_InverseSourceAlpha , BO_Add , BF_Zero , BF_InverseSourceAlpha > : : GetRHI ( ) ;
default :
check ( false ) ;
return TStaticBlendState < > : : GetRHI ( ) ;
}
}
2019-09-14 09:45:25 -04:00
return BlendStates [ Material - > GetBlendMode ( ) ] ;
}
2022-05-11 06:10:52 -04:00
bool PostProcessStencilTest ( const uint32 StencilValue , const uint32 StencilComp , const uint32 StencilRef )
2022-02-25 19:55:53 -05:00
{
bool bStencilTestPassed = true ;
switch ( StencilComp )
{
case EMaterialStencilCompare : : MSC_Less :
2022-03-04 03:03:20 -05:00
bStencilTestPassed = ( StencilRef < StencilValue ) ;
2022-02-25 19:55:53 -05:00
break ;
case EMaterialStencilCompare : : MSC_LessEqual :
2022-03-04 03:03:20 -05:00
bStencilTestPassed = ( StencilRef < = StencilValue ) ;
2022-02-25 19:55:53 -05:00
break ;
case EMaterialStencilCompare : : MSC_GreaterEqual :
2022-03-04 03:03:20 -05:00
bStencilTestPassed = ( StencilRef > = StencilValue ) ;
2022-02-25 19:55:53 -05:00
break ;
case EMaterialStencilCompare : : MSC_Equal :
2022-03-04 03:03:20 -05:00
bStencilTestPassed = ( StencilRef = = StencilValue ) ;
2022-02-25 19:55:53 -05:00
break ;
case EMaterialStencilCompare : : MSC_Greater :
2022-03-04 03:03:20 -05:00
bStencilTestPassed = ( StencilRef > StencilValue ) ;
2022-02-25 19:55:53 -05:00
break ;
case EMaterialStencilCompare : : MSC_NotEqual :
2022-03-04 03:03:20 -05:00
bStencilTestPassed = ( StencilRef ! = StencilValue ) ;
2022-02-25 19:55:53 -05:00
break ;
case EMaterialStencilCompare : : MSC_Never :
bStencilTestPassed = false ;
break ;
default :
break ;
}
return ! bStencilTestPassed ;
}
2019-09-14 09:45:25 -04:00
class FPostProcessMaterialShader : public FMaterialShader
{
public :
using FParameters = FPostProcessMaterialParameters ;
SHADER_USE_PARAMETER_STRUCT_WITH_LEGACY_BASE ( FPostProcessMaterialShader , FMaterialShader ) ;
2019-06-11 18:27:07 -04:00
static bool ShouldCompilePermutation ( const FMaterialShaderPermutationParameters & Parameters )
2014-03-14 14:13:41 -04:00
{
2020-02-06 13:13:41 -05:00
if ( Parameters . MaterialParameters . MaterialDomain = = MD_PostProcess )
2019-09-14 09:45:25 -04:00
{
2022-05-11 06:10:52 -04:00
return ! IsMobilePlatform ( Parameters . Platform ) | | IsMobileHDR ( ) ;
2019-09-14 09:45:25 -04:00
}
return false ;
2014-03-14 14:13:41 -04:00
}
2019-06-11 18:27:07 -04:00
static void ModifyCompilationEnvironment ( const FMaterialShaderPermutationParameters & Parameters , FShaderCompilerEnvironment & OutEnvironment )
2015-04-20 18:18:08 -04:00
{
2019-06-11 18:27:07 -04:00
FMaterialShader : : ModifyCompilationEnvironment ( Parameters , OutEnvironment ) ;
2015-04-20 18:18:08 -04:00
OutEnvironment . SetDefine ( TEXT ( " POST_PROCESS_MATERIAL " ) , 1 ) ;
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3056055)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3011102 on 2016/06/13 by Steve.Cano
After taking a screenshot using glReadPixels, transfer the data to the target buffer from bottom row up to fix the "upside-down" render that OpenGL does. Confirmed with QA (owen.stupka_volt) that this does not appear to be happening on iOS (non-metal devices, inclusion of iOS in write-up was a mistake), verified on an ipod touch 5. Also confirmed that this does not happen on html5, and that Mobile HDR flag does not make a difference in function.
#jira UE-26421
#ue4
#android
Change 3015801 on 2016/06/16 by Dmitriy.Dyomin
Probbably fix for UE-30878, was not able to repro an actual crash(FFoliageInstanceBaseCache::AddInstanceBaseId). Added even more logging in case fix does not work.
#jira UE-30878
Change 3015903 on 2016/06/16 by Dmitriy.Dyomin
Fixed: Levels window has Refresh/UI issues when World Composition is active
#jira UE-26160
Change 3018352 on 2016/06/17 by Chris.Babcock
Handle Android media prepare failure (URL without internet for example)
#jira UE-32029
#ue4
#android
Change 3026387 on 2016/06/24 by Jack.Porter
Remove FFuncTestManager warning about PIE when running on a standalone game binary
Change 3026398 on 2016/06/24 by Jack.Porter
Prevent FSocketBSD::Recv returning false on SE_EWOULDBLOCK
Change 3027553 on 2016/06/25 by Niklas.Smedberg
OpenGL: Made some block size calculation work for arbitrary block sizes (e.g. not pow-of-two).
Change 3027554 on 2016/06/25 by Niklas.Smedberg
Metal: copyFromTexture now gets block-aligned size parameter (e.g. used for texture streaming)
Change 3028061 on 2016/06/26 by Jack.Porter
Fixed a problem where newly discovered instances were not added to an existing session in the Session Browser.
Fixed a problem where selecting an instance in a session with multiple instances didn't deselect the previously selected instance correctly.
Change 3029220 on 2016/06/27 by Steve.Cano
Change Android Tilt values to use GetRotationMatrix/GetOrientation logic, same as java-side android would use, and adjust slightly to match as closely as possible to iOS values for tilt. There is drift and some differences in the "Y" value but the same sort of inconsistencies are also seen on iOS.
#jira UE-6135
#ue4
#android
Change 3030420 on 2016/06/28 by Jack.Porter
Fix crash with RenderOutputValidation when running with cooked content
Change 3030426 on 2016/06/28 by Jack.Porter
Fix to CL 3026398 - make FSocketBSD(IPv6)::Recv(From) return false when recv returns 0.
A return value of 0 indicates the connection was shutdown in an orderly manner.
Change 3030973 on 2016/06/28 by Steve.Cano
Added a landscape downloader background along with the options to change it from within Android settings
#ue4
#android
#jira UE-32318
Change 3031757 on 2016/06/28 by Chris.Babcock
Remove unused methods from AndroidJNI header
#ue4
#android
Change 3032387 on 2016/06/29 by Allan.Bentham
Rename android es31+aep -> glesdeferred.
Change 3032711 on 2016/06/29 by Allan.Bentham
Rename GLSL_310_ES_EXT shader define:
ES31_AEP_PROFILE -> ESDEFERRED_PROFILE
bumped UE_SHADER_GLSL_310_ES_EXT_VER version number.
Change 3033698 on 2016/06/29 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3034210 on 2016/06/30 by Steve.Cano
Added a new AndroidRuntimeSettings variable that allows creation of installers for both Windows and Mac/Linux if set to true.
#jira UE-32302
#ue4
#android
Change 3034530 on 2016/06/30 by Chris.Babcock
Rename FManifestReader to FAndroidFileManifestReader in AndroidFile
#jira UE-32679
#ue4
#android
Change 3034612 on 2016/06/30 by Steve.Cano
Change Alpha from being set to a range of 0-255 to being in a range of 0-1 (which is the correct range of values)
#jira UE-25325
#ue4
#android
Change 3034679 on 2016/06/30 by Chris.Babcock
Fix tooltip (.command for mac, not .sh)
#jira UE-32302
#ue4
#android
Change 3038881 on 2016/07/05 by Jack.Porter
Package and launch on multiple Android devices simultaneously using the -Device=xxxxxxx+yyyyyyyy+zzzzzzzz format generated by a Project Launcher profile when you select multiple devices
#jira UEMOB-115
Change 3039240 on 2016/07/06 by Jack.Porter
TcpMessageTransport - connection-based message bus transport.
#jira UEMOB-112
#jira UEMOB-113
Change 3039252 on 2016/07/06 by Jack.Porter
Enable messaging and session services and functional testing on Android when launched with -messaging
Android device detection module support for adding port forwarding and connection announcement for TcpMessageTransport
#jira UEMOB-112
#jira UEMOB-113
Change 3039264 on 2016/07/06 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3040041 on 2016/07/06 by Chris.Babcock
Pass proper value to script generator functions
#jira UE-32861
#ue4
#android
Change 3040890 on 2016/07/07 by Allan.Bentham
Fix shadow crash
#jira UE-32884
Change 3041458 on 2016/07/07 by Peter.Sauerbrei
fix for IOS launch on failures
Change 3041542 on 2016/07/07 by Peter.Sauerbrei
better fix for the multi-device deployment issue
Change 3041774 on 2016/07/07 by Steve.Cano
Fixing crash that occurs when a games app id for Google Play is set before configuring the apk packaging. Also validating the value that is inserted and using it to override any values that have been hand-inserted into the GooglePlayAppID.xml
#jira UE-16992
#android
#ue4
Change 3042222 on 2016/07/08 by Dmitriy.Dyomin
Mobile packaging scenarious
Added a wizard for creating launcher profiles (Android & IOS) for scenario: Minimal App + Downloadable content
Added Archive step to launcher profiles to be able to store build product into specified directory
Changes to a cooker to be able to pack DLC based with a different flavor to a release App
Changes to DLC packaging to be able to build streaming data without chunking pak files
#jira UEMOB-119
Change 3042244 on 2016/07/08 by Dmitriy.Dyomin
Fixed crash in FTcpMessageTransportConnection::Stop
Change 3042270 on 2016/07/08 by Dmitriy.Dyomin
GitHub #2320 : [ULevelStreamingKismet] Load Level Instance, Enables UE4 Users to create multiple transformed instances of a .umap without having to include in persistent level's list ? Rama
contributed by: EverNewJoy
#jira UE-29867
Change 3042449 on 2016/07/08 by Dmitriy.Dyomin
Fixing Mac Editor build erros from CL# 3042222
Change 3042480 on 2016/07/08 by Allan.Bentham
Add ES3.1 profile & compiler_glsl_es3_1 to shaders.
Change 3042481 on 2016/07/08 by Allan.Bentham
hlslcc - ES3.1 changes.
set ES3.1 version number to 310
Do not use ES2 keywords for ES3.1.
Generate Layout Locations for ES3.1
bump version.
Change 3042483 on 2016/07/08 by Allan.Bentham
Add mobile ES3.1 support.
Recreates EGL and ES3.1 context during PlatformInitOpenGL if ES3.1 is required.
Change 3042485 on 2016/07/08 by Allan.Bentham
Undo android XGE change.
Change 3042506 on 2016/07/08 by Dmitriy.Dyomin
One more compile fix from CL# 3042222
Change 3044173 on 2016/07/10 by Dmitriy.Dyomin
UAT: Added support for building target platforms with multiple cook flavors
ex: -targetplatform=Android -cookflavor=ETC1+ETC2
Change 3044213 on 2016/07/11 by Dmitriy.Dyomin
Fixed: Can't stream in a level whose name is a substring of another streaming level
#jira UE-32999
Change 3044221 on 2016/07/11 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3044815 on 2016/07/11 by Allan.Bentham
Corrected NAME_GLSL_ES3_1_ANDROID format string.
Change 3046911 on 2016/07/12 by Chris.Babcock
Add handling of OnTextChanged for virtual keyboard input on Android
#jira UE-32348
#ue4
#android
Change 3046958 on 2016/07/12 by Chris.Babcock
Rename some functions with Error in the name to prevent false coloring in the logs
#jira UE-30541
#ue4
#android
Change 3047169 on 2016/07/12 by Chris.Babcock
Return player ID and handle auth token for Google Play Games on Android (contributed by gameDNAstudio)
#jira UE-30610
#pr #2372
#ue4
#android
Change 3047406 on 2016/07/12 by Jack.Porter
Add missing import to GameActivity.java
Change 3047442 on 2016/07/13 by Dmitriy.Dyomin
Added: Mobile custom post-process
Limitations: can fetch only from PostProcessInput0 (SceneColor) other scene textures are not supported. Does not support "Replacing the Tonemapper" blendable location.
#jira UEMOB-147
Change 3047466 on 2016/07/13 by Dmitriy.Dyomin
Disabled engine crash handler on Android, system crash handler works more reliably across different os versions/devices
Change 3047746 on 2016/07/13 by Jack.Porter
Rename FBasePassFowardDynamicPointLightInfo
Change 3047778 on 2016/07/13 by Jack.Porter
Missing file for rename FBasePassFowardDynamicPointLightInfo
Change 3047788 on 2016/07/13 by Allan.Bentham
Fix incorrect TargetPlatformDescriptor string generation.
Change 3047790 on 2016/07/13 by Allan.Bentham
Fixed half3x3 matrix use with ES3.1 glsl
Fixed couple of interpolator precision mismatch.
Fixed ES3.1 support detection issues
Change 3047816 on 2016/07/13 by Allan.Bentham
Remove AndroidGL4 remnants.
Change 3048926 on 2016/07/13 by Chris.Babcock
Added detection of Amazon Fire TV to disable requiring virtual joysticks
#ue4
#android
Change 3049335 on 2016/07/14 by Dmitriy.Dyomin
Fixing UAT crash when packaging project for iOS
Change 3049390 on 2016/07/14 by Jack.Porter
Disabled error for warning 4819 "The file contains a character that cannot be represented in the current code page (xxx). Save the file in Unicode format to prevent data loss"
This is triggered by European characters and copyright symbols in source saved as latin-1 when compiling on non-US windows. Seen often in 3rd party headers, eg nvapi.
#code_review: Ben.Marsh
Change 3049391 on 2016/07/14 by Jack.Porter
Fixed incorrect comment order in CL 3049390
Change 3049545 on 2016/07/14 by Dmitriy.Dyomin
Reworking some code from CL#3047442 to make static analizer happy
Change 3049626 on 2016/07/14 by Allan.Bentham
Automatic CSM shader toggling
#jira UE-27429
Change 3051574 on 2016/07/15 by Jack.Porter
Support for lighting channels on Mobile
- Multiple directional lights are supported in different channels but primitives are only affected by the directional light in the first channel they have set
- CSM shadows from stationary or movable directional lights correctly follow their lighting channels
- No channel limitations for dynamic point lights
Notes:
Removed mobile-specific directional light shadowing fields from View uniform buffer and mobile no longers uses SimpleDirectionalLight.
Separate uniform buffers for mobile directional light are generated for each lighting channel.
CSM culling information is now stored in FViewInfo and not per FVisibleLightViewInfo as the visibility bits are per view.
#code_review Daniel.Wright
#jira UEMOB-110
Change 3051699 on 2016/07/15 by Steve.Cano
Preserve the original, pre-transformed input vertices for Slate shaders, which is required to properly do anti-aliasing (the ViewProjection-transformed values were causing the lines to not be drawn).
#jira UE-20320
#ue4
#android
Change 3051744 on 2016/07/15 by Chris.Babcock
Fix Android Vulkan include path checks (contributed by kodomastro)
#jira UE-33311
#PR #2602
#ue4
#android
Change 3052023 on 2016/07/15 by Chris.Babcock
Fix shadowed variables
Change 3052110 on 2016/07/15 by Chris.Babcock
Compile fixes for light channel support on mobile
- missing template
- accessor function for MobileDirectionalLights from scene
Change 3052242 on 2016/07/15 by Chris.Babcock
Compile fixes for light channel support on mobile
- removed dependency on C++14 feature
Change 3052730 on 2016/07/16 by Dmitriy.Dyomin
Win32 build fix
Change 3053041 on 2016/07/17 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3053054 on 2016/07/17 by Jack.Porter
Changed use of old function ShouldUseDeferredRenderer() to new GetShadingPath()
Change 3053055 on 2016/07/17 by Jack.Porter
Fixed local variable aliasing in unity build
Change 3053206 on 2016/07/18 by Jack.Porter
Support ExecuteJavascript on iOS and Android
Expose ExecuteJavascript to widget blueprint
Fix ExecuteJavascript unicode string support on desktop platforms
#jira UEMOB-152
Change 3053323 on 2016/07/18 by Dmitriy.Dyomin
Added: Ability to set thread affinity for a device in Device Profiles (ex: +CVars=android.SetThreadAffinity=RT 0x02 GT 0x01)
#jira UEMOB-107
Change 3053723 on 2016/07/18 by Jack.Porter
Fix for UnrealTournamentProto.Automation.cs build errors
Change 3055090 on 2016/07/19 by Dmitriy.Dyomin
Junk OnlineBlueprintSupport module binaries
[CL 3056789 by Jack Porter in Main branch]
2016-07-19 19:13:01 -04:00
2020-02-06 13:13:41 -05:00
EBlendableLocation Location = EBlendableLocation ( Parameters . MaterialParameters . BlendableLocation ) ;
2019-10-03 17:43:31 -04:00
OutEnvironment . SetDefine ( TEXT ( " POST_PROCESS_MATERIAL_BEFORE_TONEMAP " ) , ( Location = = BL_AfterTonemapping | | Location = = BL_ReplacingTonemapper ) ? 0 : 1 ) ;
2022-05-11 06:10:52 -04:00
if ( IsMobilePlatform ( Parameters . Platform ) )
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3056055)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3011102 on 2016/06/13 by Steve.Cano
After taking a screenshot using glReadPixels, transfer the data to the target buffer from bottom row up to fix the "upside-down" render that OpenGL does. Confirmed with QA (owen.stupka_volt) that this does not appear to be happening on iOS (non-metal devices, inclusion of iOS in write-up was a mistake), verified on an ipod touch 5. Also confirmed that this does not happen on html5, and that Mobile HDR flag does not make a difference in function.
#jira UE-26421
#ue4
#android
Change 3015801 on 2016/06/16 by Dmitriy.Dyomin
Probbably fix for UE-30878, was not able to repro an actual crash(FFoliageInstanceBaseCache::AddInstanceBaseId). Added even more logging in case fix does not work.
#jira UE-30878
Change 3015903 on 2016/06/16 by Dmitriy.Dyomin
Fixed: Levels window has Refresh/UI issues when World Composition is active
#jira UE-26160
Change 3018352 on 2016/06/17 by Chris.Babcock
Handle Android media prepare failure (URL without internet for example)
#jira UE-32029
#ue4
#android
Change 3026387 on 2016/06/24 by Jack.Porter
Remove FFuncTestManager warning about PIE when running on a standalone game binary
Change 3026398 on 2016/06/24 by Jack.Porter
Prevent FSocketBSD::Recv returning false on SE_EWOULDBLOCK
Change 3027553 on 2016/06/25 by Niklas.Smedberg
OpenGL: Made some block size calculation work for arbitrary block sizes (e.g. not pow-of-two).
Change 3027554 on 2016/06/25 by Niklas.Smedberg
Metal: copyFromTexture now gets block-aligned size parameter (e.g. used for texture streaming)
Change 3028061 on 2016/06/26 by Jack.Porter
Fixed a problem where newly discovered instances were not added to an existing session in the Session Browser.
Fixed a problem where selecting an instance in a session with multiple instances didn't deselect the previously selected instance correctly.
Change 3029220 on 2016/06/27 by Steve.Cano
Change Android Tilt values to use GetRotationMatrix/GetOrientation logic, same as java-side android would use, and adjust slightly to match as closely as possible to iOS values for tilt. There is drift and some differences in the "Y" value but the same sort of inconsistencies are also seen on iOS.
#jira UE-6135
#ue4
#android
Change 3030420 on 2016/06/28 by Jack.Porter
Fix crash with RenderOutputValidation when running with cooked content
Change 3030426 on 2016/06/28 by Jack.Porter
Fix to CL 3026398 - make FSocketBSD(IPv6)::Recv(From) return false when recv returns 0.
A return value of 0 indicates the connection was shutdown in an orderly manner.
Change 3030973 on 2016/06/28 by Steve.Cano
Added a landscape downloader background along with the options to change it from within Android settings
#ue4
#android
#jira UE-32318
Change 3031757 on 2016/06/28 by Chris.Babcock
Remove unused methods from AndroidJNI header
#ue4
#android
Change 3032387 on 2016/06/29 by Allan.Bentham
Rename android es31+aep -> glesdeferred.
Change 3032711 on 2016/06/29 by Allan.Bentham
Rename GLSL_310_ES_EXT shader define:
ES31_AEP_PROFILE -> ESDEFERRED_PROFILE
bumped UE_SHADER_GLSL_310_ES_EXT_VER version number.
Change 3033698 on 2016/06/29 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3034210 on 2016/06/30 by Steve.Cano
Added a new AndroidRuntimeSettings variable that allows creation of installers for both Windows and Mac/Linux if set to true.
#jira UE-32302
#ue4
#android
Change 3034530 on 2016/06/30 by Chris.Babcock
Rename FManifestReader to FAndroidFileManifestReader in AndroidFile
#jira UE-32679
#ue4
#android
Change 3034612 on 2016/06/30 by Steve.Cano
Change Alpha from being set to a range of 0-255 to being in a range of 0-1 (which is the correct range of values)
#jira UE-25325
#ue4
#android
Change 3034679 on 2016/06/30 by Chris.Babcock
Fix tooltip (.command for mac, not .sh)
#jira UE-32302
#ue4
#android
Change 3038881 on 2016/07/05 by Jack.Porter
Package and launch on multiple Android devices simultaneously using the -Device=xxxxxxx+yyyyyyyy+zzzzzzzz format generated by a Project Launcher profile when you select multiple devices
#jira UEMOB-115
Change 3039240 on 2016/07/06 by Jack.Porter
TcpMessageTransport - connection-based message bus transport.
#jira UEMOB-112
#jira UEMOB-113
Change 3039252 on 2016/07/06 by Jack.Porter
Enable messaging and session services and functional testing on Android when launched with -messaging
Android device detection module support for adding port forwarding and connection announcement for TcpMessageTransport
#jira UEMOB-112
#jira UEMOB-113
Change 3039264 on 2016/07/06 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3040041 on 2016/07/06 by Chris.Babcock
Pass proper value to script generator functions
#jira UE-32861
#ue4
#android
Change 3040890 on 2016/07/07 by Allan.Bentham
Fix shadow crash
#jira UE-32884
Change 3041458 on 2016/07/07 by Peter.Sauerbrei
fix for IOS launch on failures
Change 3041542 on 2016/07/07 by Peter.Sauerbrei
better fix for the multi-device deployment issue
Change 3041774 on 2016/07/07 by Steve.Cano
Fixing crash that occurs when a games app id for Google Play is set before configuring the apk packaging. Also validating the value that is inserted and using it to override any values that have been hand-inserted into the GooglePlayAppID.xml
#jira UE-16992
#android
#ue4
Change 3042222 on 2016/07/08 by Dmitriy.Dyomin
Mobile packaging scenarious
Added a wizard for creating launcher profiles (Android & IOS) for scenario: Minimal App + Downloadable content
Added Archive step to launcher profiles to be able to store build product into specified directory
Changes to a cooker to be able to pack DLC based with a different flavor to a release App
Changes to DLC packaging to be able to build streaming data without chunking pak files
#jira UEMOB-119
Change 3042244 on 2016/07/08 by Dmitriy.Dyomin
Fixed crash in FTcpMessageTransportConnection::Stop
Change 3042270 on 2016/07/08 by Dmitriy.Dyomin
GitHub #2320 : [ULevelStreamingKismet] Load Level Instance, Enables UE4 Users to create multiple transformed instances of a .umap without having to include in persistent level's list ? Rama
contributed by: EverNewJoy
#jira UE-29867
Change 3042449 on 2016/07/08 by Dmitriy.Dyomin
Fixing Mac Editor build erros from CL# 3042222
Change 3042480 on 2016/07/08 by Allan.Bentham
Add ES3.1 profile & compiler_glsl_es3_1 to shaders.
Change 3042481 on 2016/07/08 by Allan.Bentham
hlslcc - ES3.1 changes.
set ES3.1 version number to 310
Do not use ES2 keywords for ES3.1.
Generate Layout Locations for ES3.1
bump version.
Change 3042483 on 2016/07/08 by Allan.Bentham
Add mobile ES3.1 support.
Recreates EGL and ES3.1 context during PlatformInitOpenGL if ES3.1 is required.
Change 3042485 on 2016/07/08 by Allan.Bentham
Undo android XGE change.
Change 3042506 on 2016/07/08 by Dmitriy.Dyomin
One more compile fix from CL# 3042222
Change 3044173 on 2016/07/10 by Dmitriy.Dyomin
UAT: Added support for building target platforms with multiple cook flavors
ex: -targetplatform=Android -cookflavor=ETC1+ETC2
Change 3044213 on 2016/07/11 by Dmitriy.Dyomin
Fixed: Can't stream in a level whose name is a substring of another streaming level
#jira UE-32999
Change 3044221 on 2016/07/11 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3044815 on 2016/07/11 by Allan.Bentham
Corrected NAME_GLSL_ES3_1_ANDROID format string.
Change 3046911 on 2016/07/12 by Chris.Babcock
Add handling of OnTextChanged for virtual keyboard input on Android
#jira UE-32348
#ue4
#android
Change 3046958 on 2016/07/12 by Chris.Babcock
Rename some functions with Error in the name to prevent false coloring in the logs
#jira UE-30541
#ue4
#android
Change 3047169 on 2016/07/12 by Chris.Babcock
Return player ID and handle auth token for Google Play Games on Android (contributed by gameDNAstudio)
#jira UE-30610
#pr #2372
#ue4
#android
Change 3047406 on 2016/07/12 by Jack.Porter
Add missing import to GameActivity.java
Change 3047442 on 2016/07/13 by Dmitriy.Dyomin
Added: Mobile custom post-process
Limitations: can fetch only from PostProcessInput0 (SceneColor) other scene textures are not supported. Does not support "Replacing the Tonemapper" blendable location.
#jira UEMOB-147
Change 3047466 on 2016/07/13 by Dmitriy.Dyomin
Disabled engine crash handler on Android, system crash handler works more reliably across different os versions/devices
Change 3047746 on 2016/07/13 by Jack.Porter
Rename FBasePassFowardDynamicPointLightInfo
Change 3047778 on 2016/07/13 by Jack.Porter
Missing file for rename FBasePassFowardDynamicPointLightInfo
Change 3047788 on 2016/07/13 by Allan.Bentham
Fix incorrect TargetPlatformDescriptor string generation.
Change 3047790 on 2016/07/13 by Allan.Bentham
Fixed half3x3 matrix use with ES3.1 glsl
Fixed couple of interpolator precision mismatch.
Fixed ES3.1 support detection issues
Change 3047816 on 2016/07/13 by Allan.Bentham
Remove AndroidGL4 remnants.
Change 3048926 on 2016/07/13 by Chris.Babcock
Added detection of Amazon Fire TV to disable requiring virtual joysticks
#ue4
#android
Change 3049335 on 2016/07/14 by Dmitriy.Dyomin
Fixing UAT crash when packaging project for iOS
Change 3049390 on 2016/07/14 by Jack.Porter
Disabled error for warning 4819 "The file contains a character that cannot be represented in the current code page (xxx). Save the file in Unicode format to prevent data loss"
This is triggered by European characters and copyright symbols in source saved as latin-1 when compiling on non-US windows. Seen often in 3rd party headers, eg nvapi.
#code_review: Ben.Marsh
Change 3049391 on 2016/07/14 by Jack.Porter
Fixed incorrect comment order in CL 3049390
Change 3049545 on 2016/07/14 by Dmitriy.Dyomin
Reworking some code from CL#3047442 to make static analizer happy
Change 3049626 on 2016/07/14 by Allan.Bentham
Automatic CSM shader toggling
#jira UE-27429
Change 3051574 on 2016/07/15 by Jack.Porter
Support for lighting channels on Mobile
- Multiple directional lights are supported in different channels but primitives are only affected by the directional light in the first channel they have set
- CSM shadows from stationary or movable directional lights correctly follow their lighting channels
- No channel limitations for dynamic point lights
Notes:
Removed mobile-specific directional light shadowing fields from View uniform buffer and mobile no longers uses SimpleDirectionalLight.
Separate uniform buffers for mobile directional light are generated for each lighting channel.
CSM culling information is now stored in FViewInfo and not per FVisibleLightViewInfo as the visibility bits are per view.
#code_review Daniel.Wright
#jira UEMOB-110
Change 3051699 on 2016/07/15 by Steve.Cano
Preserve the original, pre-transformed input vertices for Slate shaders, which is required to properly do anti-aliasing (the ViewProjection-transformed values were causing the lines to not be drawn).
#jira UE-20320
#ue4
#android
Change 3051744 on 2016/07/15 by Chris.Babcock
Fix Android Vulkan include path checks (contributed by kodomastro)
#jira UE-33311
#PR #2602
#ue4
#android
Change 3052023 on 2016/07/15 by Chris.Babcock
Fix shadowed variables
Change 3052110 on 2016/07/15 by Chris.Babcock
Compile fixes for light channel support on mobile
- missing template
- accessor function for MobileDirectionalLights from scene
Change 3052242 on 2016/07/15 by Chris.Babcock
Compile fixes for light channel support on mobile
- removed dependency on C++14 feature
Change 3052730 on 2016/07/16 by Dmitriy.Dyomin
Win32 build fix
Change 3053041 on 2016/07/17 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3053054 on 2016/07/17 by Jack.Porter
Changed use of old function ShouldUseDeferredRenderer() to new GetShadingPath()
Change 3053055 on 2016/07/17 by Jack.Porter
Fixed local variable aliasing in unity build
Change 3053206 on 2016/07/18 by Jack.Porter
Support ExecuteJavascript on iOS and Android
Expose ExecuteJavascript to widget blueprint
Fix ExecuteJavascript unicode string support on desktop platforms
#jira UEMOB-152
Change 3053323 on 2016/07/18 by Dmitriy.Dyomin
Added: Ability to set thread affinity for a device in Device Profiles (ex: +CVars=android.SetThreadAffinity=RT 0x02 GT 0x01)
#jira UEMOB-107
Change 3053723 on 2016/07/18 by Jack.Porter
Fix for UnrealTournamentProto.Automation.cs build errors
Change 3055090 on 2016/07/19 by Dmitriy.Dyomin
Junk OnlineBlueprintSupport module binaries
[CL 3056789 by Jack Porter in Main branch]
2016-07-19 19:13:01 -04:00
{
2020-02-06 13:13:41 -05:00
OutEnvironment . SetDefine ( TEXT ( " POST_PROCESS_MATERIAL_BEFORE_TONEMAP " ) , ( Parameters . MaterialParameters . BlendableLocation ! = BL_AfterTonemapping ) ? 1 : 0 ) ;
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3056055)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3011102 on 2016/06/13 by Steve.Cano
After taking a screenshot using glReadPixels, transfer the data to the target buffer from bottom row up to fix the "upside-down" render that OpenGL does. Confirmed with QA (owen.stupka_volt) that this does not appear to be happening on iOS (non-metal devices, inclusion of iOS in write-up was a mistake), verified on an ipod touch 5. Also confirmed that this does not happen on html5, and that Mobile HDR flag does not make a difference in function.
#jira UE-26421
#ue4
#android
Change 3015801 on 2016/06/16 by Dmitriy.Dyomin
Probbably fix for UE-30878, was not able to repro an actual crash(FFoliageInstanceBaseCache::AddInstanceBaseId). Added even more logging in case fix does not work.
#jira UE-30878
Change 3015903 on 2016/06/16 by Dmitriy.Dyomin
Fixed: Levels window has Refresh/UI issues when World Composition is active
#jira UE-26160
Change 3018352 on 2016/06/17 by Chris.Babcock
Handle Android media prepare failure (URL without internet for example)
#jira UE-32029
#ue4
#android
Change 3026387 on 2016/06/24 by Jack.Porter
Remove FFuncTestManager warning about PIE when running on a standalone game binary
Change 3026398 on 2016/06/24 by Jack.Porter
Prevent FSocketBSD::Recv returning false on SE_EWOULDBLOCK
Change 3027553 on 2016/06/25 by Niklas.Smedberg
OpenGL: Made some block size calculation work for arbitrary block sizes (e.g. not pow-of-two).
Change 3027554 on 2016/06/25 by Niklas.Smedberg
Metal: copyFromTexture now gets block-aligned size parameter (e.g. used for texture streaming)
Change 3028061 on 2016/06/26 by Jack.Porter
Fixed a problem where newly discovered instances were not added to an existing session in the Session Browser.
Fixed a problem where selecting an instance in a session with multiple instances didn't deselect the previously selected instance correctly.
Change 3029220 on 2016/06/27 by Steve.Cano
Change Android Tilt values to use GetRotationMatrix/GetOrientation logic, same as java-side android would use, and adjust slightly to match as closely as possible to iOS values for tilt. There is drift and some differences in the "Y" value but the same sort of inconsistencies are also seen on iOS.
#jira UE-6135
#ue4
#android
Change 3030420 on 2016/06/28 by Jack.Porter
Fix crash with RenderOutputValidation when running with cooked content
Change 3030426 on 2016/06/28 by Jack.Porter
Fix to CL 3026398 - make FSocketBSD(IPv6)::Recv(From) return false when recv returns 0.
A return value of 0 indicates the connection was shutdown in an orderly manner.
Change 3030973 on 2016/06/28 by Steve.Cano
Added a landscape downloader background along with the options to change it from within Android settings
#ue4
#android
#jira UE-32318
Change 3031757 on 2016/06/28 by Chris.Babcock
Remove unused methods from AndroidJNI header
#ue4
#android
Change 3032387 on 2016/06/29 by Allan.Bentham
Rename android es31+aep -> glesdeferred.
Change 3032711 on 2016/06/29 by Allan.Bentham
Rename GLSL_310_ES_EXT shader define:
ES31_AEP_PROFILE -> ESDEFERRED_PROFILE
bumped UE_SHADER_GLSL_310_ES_EXT_VER version number.
Change 3033698 on 2016/06/29 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3034210 on 2016/06/30 by Steve.Cano
Added a new AndroidRuntimeSettings variable that allows creation of installers for both Windows and Mac/Linux if set to true.
#jira UE-32302
#ue4
#android
Change 3034530 on 2016/06/30 by Chris.Babcock
Rename FManifestReader to FAndroidFileManifestReader in AndroidFile
#jira UE-32679
#ue4
#android
Change 3034612 on 2016/06/30 by Steve.Cano
Change Alpha from being set to a range of 0-255 to being in a range of 0-1 (which is the correct range of values)
#jira UE-25325
#ue4
#android
Change 3034679 on 2016/06/30 by Chris.Babcock
Fix tooltip (.command for mac, not .sh)
#jira UE-32302
#ue4
#android
Change 3038881 on 2016/07/05 by Jack.Porter
Package and launch on multiple Android devices simultaneously using the -Device=xxxxxxx+yyyyyyyy+zzzzzzzz format generated by a Project Launcher profile when you select multiple devices
#jira UEMOB-115
Change 3039240 on 2016/07/06 by Jack.Porter
TcpMessageTransport - connection-based message bus transport.
#jira UEMOB-112
#jira UEMOB-113
Change 3039252 on 2016/07/06 by Jack.Porter
Enable messaging and session services and functional testing on Android when launched with -messaging
Android device detection module support for adding port forwarding and connection announcement for TcpMessageTransport
#jira UEMOB-112
#jira UEMOB-113
Change 3039264 on 2016/07/06 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3040041 on 2016/07/06 by Chris.Babcock
Pass proper value to script generator functions
#jira UE-32861
#ue4
#android
Change 3040890 on 2016/07/07 by Allan.Bentham
Fix shadow crash
#jira UE-32884
Change 3041458 on 2016/07/07 by Peter.Sauerbrei
fix for IOS launch on failures
Change 3041542 on 2016/07/07 by Peter.Sauerbrei
better fix for the multi-device deployment issue
Change 3041774 on 2016/07/07 by Steve.Cano
Fixing crash that occurs when a games app id for Google Play is set before configuring the apk packaging. Also validating the value that is inserted and using it to override any values that have been hand-inserted into the GooglePlayAppID.xml
#jira UE-16992
#android
#ue4
Change 3042222 on 2016/07/08 by Dmitriy.Dyomin
Mobile packaging scenarious
Added a wizard for creating launcher profiles (Android & IOS) for scenario: Minimal App + Downloadable content
Added Archive step to launcher profiles to be able to store build product into specified directory
Changes to a cooker to be able to pack DLC based with a different flavor to a release App
Changes to DLC packaging to be able to build streaming data without chunking pak files
#jira UEMOB-119
Change 3042244 on 2016/07/08 by Dmitriy.Dyomin
Fixed crash in FTcpMessageTransportConnection::Stop
Change 3042270 on 2016/07/08 by Dmitriy.Dyomin
GitHub #2320 : [ULevelStreamingKismet] Load Level Instance, Enables UE4 Users to create multiple transformed instances of a .umap without having to include in persistent level's list ? Rama
contributed by: EverNewJoy
#jira UE-29867
Change 3042449 on 2016/07/08 by Dmitriy.Dyomin
Fixing Mac Editor build erros from CL# 3042222
Change 3042480 on 2016/07/08 by Allan.Bentham
Add ES3.1 profile & compiler_glsl_es3_1 to shaders.
Change 3042481 on 2016/07/08 by Allan.Bentham
hlslcc - ES3.1 changes.
set ES3.1 version number to 310
Do not use ES2 keywords for ES3.1.
Generate Layout Locations for ES3.1
bump version.
Change 3042483 on 2016/07/08 by Allan.Bentham
Add mobile ES3.1 support.
Recreates EGL and ES3.1 context during PlatformInitOpenGL if ES3.1 is required.
Change 3042485 on 2016/07/08 by Allan.Bentham
Undo android XGE change.
Change 3042506 on 2016/07/08 by Dmitriy.Dyomin
One more compile fix from CL# 3042222
Change 3044173 on 2016/07/10 by Dmitriy.Dyomin
UAT: Added support for building target platforms with multiple cook flavors
ex: -targetplatform=Android -cookflavor=ETC1+ETC2
Change 3044213 on 2016/07/11 by Dmitriy.Dyomin
Fixed: Can't stream in a level whose name is a substring of another streaming level
#jira UE-32999
Change 3044221 on 2016/07/11 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3044815 on 2016/07/11 by Allan.Bentham
Corrected NAME_GLSL_ES3_1_ANDROID format string.
Change 3046911 on 2016/07/12 by Chris.Babcock
Add handling of OnTextChanged for virtual keyboard input on Android
#jira UE-32348
#ue4
#android
Change 3046958 on 2016/07/12 by Chris.Babcock
Rename some functions with Error in the name to prevent false coloring in the logs
#jira UE-30541
#ue4
#android
Change 3047169 on 2016/07/12 by Chris.Babcock
Return player ID and handle auth token for Google Play Games on Android (contributed by gameDNAstudio)
#jira UE-30610
#pr #2372
#ue4
#android
Change 3047406 on 2016/07/12 by Jack.Porter
Add missing import to GameActivity.java
Change 3047442 on 2016/07/13 by Dmitriy.Dyomin
Added: Mobile custom post-process
Limitations: can fetch only from PostProcessInput0 (SceneColor) other scene textures are not supported. Does not support "Replacing the Tonemapper" blendable location.
#jira UEMOB-147
Change 3047466 on 2016/07/13 by Dmitriy.Dyomin
Disabled engine crash handler on Android, system crash handler works more reliably across different os versions/devices
Change 3047746 on 2016/07/13 by Jack.Porter
Rename FBasePassFowardDynamicPointLightInfo
Change 3047778 on 2016/07/13 by Jack.Porter
Missing file for rename FBasePassFowardDynamicPointLightInfo
Change 3047788 on 2016/07/13 by Allan.Bentham
Fix incorrect TargetPlatformDescriptor string generation.
Change 3047790 on 2016/07/13 by Allan.Bentham
Fixed half3x3 matrix use with ES3.1 glsl
Fixed couple of interpolator precision mismatch.
Fixed ES3.1 support detection issues
Change 3047816 on 2016/07/13 by Allan.Bentham
Remove AndroidGL4 remnants.
Change 3048926 on 2016/07/13 by Chris.Babcock
Added detection of Amazon Fire TV to disable requiring virtual joysticks
#ue4
#android
Change 3049335 on 2016/07/14 by Dmitriy.Dyomin
Fixing UAT crash when packaging project for iOS
Change 3049390 on 2016/07/14 by Jack.Porter
Disabled error for warning 4819 "The file contains a character that cannot be represented in the current code page (xxx). Save the file in Unicode format to prevent data loss"
This is triggered by European characters and copyright symbols in source saved as latin-1 when compiling on non-US windows. Seen often in 3rd party headers, eg nvapi.
#code_review: Ben.Marsh
Change 3049391 on 2016/07/14 by Jack.Porter
Fixed incorrect comment order in CL 3049390
Change 3049545 on 2016/07/14 by Dmitriy.Dyomin
Reworking some code from CL#3047442 to make static analizer happy
Change 3049626 on 2016/07/14 by Allan.Bentham
Automatic CSM shader toggling
#jira UE-27429
Change 3051574 on 2016/07/15 by Jack.Porter
Support for lighting channels on Mobile
- Multiple directional lights are supported in different channels but primitives are only affected by the directional light in the first channel they have set
- CSM shadows from stationary or movable directional lights correctly follow their lighting channels
- No channel limitations for dynamic point lights
Notes:
Removed mobile-specific directional light shadowing fields from View uniform buffer and mobile no longers uses SimpleDirectionalLight.
Separate uniform buffers for mobile directional light are generated for each lighting channel.
CSM culling information is now stored in FViewInfo and not per FVisibleLightViewInfo as the visibility bits are per view.
#code_review Daniel.Wright
#jira UEMOB-110
Change 3051699 on 2016/07/15 by Steve.Cano
Preserve the original, pre-transformed input vertices for Slate shaders, which is required to properly do anti-aliasing (the ViewProjection-transformed values were causing the lines to not be drawn).
#jira UE-20320
#ue4
#android
Change 3051744 on 2016/07/15 by Chris.Babcock
Fix Android Vulkan include path checks (contributed by kodomastro)
#jira UE-33311
#PR #2602
#ue4
#android
Change 3052023 on 2016/07/15 by Chris.Babcock
Fix shadowed variables
Change 3052110 on 2016/07/15 by Chris.Babcock
Compile fixes for light channel support on mobile
- missing template
- accessor function for MobileDirectionalLights from scene
Change 3052242 on 2016/07/15 by Chris.Babcock
Compile fixes for light channel support on mobile
- removed dependency on C++14 feature
Change 3052730 on 2016/07/16 by Dmitriy.Dyomin
Win32 build fix
Change 3053041 on 2016/07/17 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3053054 on 2016/07/17 by Jack.Porter
Changed use of old function ShouldUseDeferredRenderer() to new GetShadingPath()
Change 3053055 on 2016/07/17 by Jack.Porter
Fixed local variable aliasing in unity build
Change 3053206 on 2016/07/18 by Jack.Porter
Support ExecuteJavascript on iOS and Android
Expose ExecuteJavascript to widget blueprint
Fix ExecuteJavascript unicode string support on desktop platforms
#jira UEMOB-152
Change 3053323 on 2016/07/18 by Dmitriy.Dyomin
Added: Ability to set thread affinity for a device in Device Profiles (ex: +CVars=android.SetThreadAffinity=RT 0x02 GT 0x01)
#jira UEMOB-107
Change 3053723 on 2016/07/18 by Jack.Porter
Fix for UnrealTournamentProto.Automation.cs build errors
Change 3055090 on 2016/07/19 by Dmitriy.Dyomin
Junk OnlineBlueprintSupport module binaries
[CL 3056789 by Jack Porter in Main branch]
2016-07-19 19:13:01 -04:00
}
2022-01-13 05:42:09 -05:00
2022-02-22 12:35:58 -05:00
// PostProcessMaterial can both read & write Strata data
OutEnvironment . SetDefine ( TEXT ( " STRATA_INLINE_SHADING " ) , 1 ) ;
OutEnvironment . SetDefine ( TEXT ( " STRATA_DEFERRED_SHADING " ) , 1 ) ;
2015-04-20 18:18:08 -04:00
}
2014-03-14 14:13:41 -04:00
2019-09-14 09:45:25 -04:00
protected :
template < typename TRHIShader >
2020-10-29 13:38:15 -04:00
static void SetParameters ( FRHICommandList & RHICmdList , const TShaderRef < FPostProcessMaterialShader > & Shader , TRHIShader * ShaderRHI , const FViewInfo & View , const FMaterialRenderProxy * Proxy , const FMaterial & Material , const FParameters & Parameters )
2014-03-14 14:13:41 -04:00
{
2020-02-06 13:13:41 -05:00
FMaterialShader * MaterialShader = Shader . GetShader ( ) ;
2020-10-22 19:19:16 -04:00
MaterialShader - > SetParameters ( RHICmdList , ShaderRHI , Proxy , Material , View ) ;
2020-02-06 13:13:41 -05:00
SetShaderParameters ( RHICmdList , Shader , ShaderRHI , Parameters ) ;
2014-03-14 14:13:41 -04:00
}
} ;
2019-09-14 09:45:25 -04:00
class FPostProcessMaterialVS : public FPostProcessMaterialShader
2014-03-14 14:13:41 -04:00
{
public :
2020-02-06 13:13:41 -05:00
DECLARE_SHADER_TYPE ( FPostProcessMaterialVS , Material ) ;
2014-03-14 14:13:41 -04:00
2020-10-29 13:38:15 -04:00
static void SetParameters ( FRHICommandList & RHICmdList , const TShaderRef < FPostProcessMaterialVS > & Shader , const FViewInfo & View , const FMaterialRenderProxy * Proxy , const FMaterial & Material , const FParameters & Parameters )
2014-03-14 14:13:41 -04:00
{
2020-10-29 13:38:15 -04:00
FPostProcessMaterialShader : : SetParameters ( RHICmdList , Shader , Shader . GetVertexShader ( ) , View , Proxy , Material , Parameters ) ;
2014-03-14 14:13:41 -04:00
}
2019-09-14 09:45:25 -04:00
FPostProcessMaterialVS ( ) = default ;
FPostProcessMaterialVS ( const ShaderMetaType : : CompiledShaderInitializerType & Initializer )
: FPostProcessMaterialShader ( Initializer )
{ }
2014-03-14 14:13:41 -04:00
} ;
2019-09-14 09:45:25 -04:00
class FPostProcessMaterialPS : public FPostProcessMaterialShader
2014-03-14 14:13:41 -04:00
{
2019-09-14 09:45:25 -04:00
public :
2020-02-06 13:13:41 -05:00
DECLARE_SHADER_TYPE ( FPostProcessMaterialPS , Material ) ;
2015-03-30 11:04:47 -04:00
2020-10-29 13:38:15 -04:00
static void SetParameters ( FRHICommandList & RHICmdList , const TShaderRef < FPostProcessMaterialPS > & Shader , const FViewInfo & View , const FMaterialRenderProxy * Proxy , const FMaterial & Material , const FParameters & Parameters )
2015-03-30 11:04:47 -04:00
{
2020-10-29 13:38:15 -04:00
FPostProcessMaterialShader : : SetParameters ( RHICmdList , Shader , Shader . GetPixelShader ( ) , View , Proxy , Material , Parameters ) ;
2015-03-30 11:04:47 -04:00
}
2019-03-13 21:20:37 -04:00
2019-09-14 09:45:25 -04:00
FPostProcessMaterialPS ( ) = default ;
FPostProcessMaterialPS ( const ShaderMetaType : : CompiledShaderInitializerType & Initializer )
: FPostProcessMaterialShader ( Initializer )
{ }
2020-02-09 23:33:32 -05:00
static void ModifyCompilationEnvironment ( const FMaterialShaderPermutationParameters & Parameters , FShaderCompilerEnvironment & OutEnvironment )
{
FPostProcessMaterialShader : : ModifyCompilationEnvironment ( Parameters , OutEnvironment ) ;
}
2019-09-14 09:45:25 -04:00
} ;
2020-02-06 13:13:41 -05:00
IMPLEMENT_SHADER_TYPE ( , FPostProcessMaterialVS , TEXT ( " /Engine/Private/PostProcessMaterialShaders.usf " ) , TEXT ( " MainVS " ) , SF_Vertex ) ;
IMPLEMENT_SHADER_TYPE ( , FPostProcessMaterialPS , TEXT ( " /Engine/Private/PostProcessMaterialShaders.usf " ) , TEXT ( " MainPS " ) , SF_Pixel ) ;
2019-09-14 09:45:25 -04:00
2015-08-27 10:28:11 -04:00
class FPostProcessMaterialVertexDeclaration : public FRenderResource
{
public :
FVertexDeclarationRHIRef VertexDeclarationRHI ;
2019-09-14 09:45:25 -04:00
void InitRHI ( ) override
2015-08-27 10:28:11 -04:00
{
FVertexDeclarationElementList Elements ;
uint32 Stride = sizeof ( FFilterVertex ) ;
2019-09-14 09:45:25 -04:00
Elements . Add ( FVertexElement ( 0 , STRUCT_OFFSET ( FFilterVertex , Position ) , VET_Float4 , 0 , Stride ) ) ;
2019-02-15 18:52:44 -05:00
VertexDeclarationRHI = PipelineStateCache : : GetOrCreateVertexDeclaration ( Elements ) ;
2015-08-27 10:28:11 -04:00
}
2019-09-14 09:45:25 -04:00
void ReleaseRHI ( ) override
2015-08-27 10:28:11 -04:00
{
VertexDeclarationRHI . SafeRelease ( ) ;
}
} ;
2019-09-14 09:45:25 -04:00
2020-10-22 19:19:16 -04:00
void GetMaterialInfo (
const UMaterialInterface * InMaterialInterface ,
ERHIFeatureLevel : : Type InFeatureLevel ,
EPixelFormat InOutputFormat ,
const FMaterial * & OutMaterial ,
const FMaterialRenderProxy * & OutMaterialProxy ,
const FMaterialShaderMap * & OutMaterialShaderMap ,
TShaderRef < FPostProcessMaterialVS > & OutVertexShader ,
TShaderRef < FPostProcessMaterialPS > & OutPixelShader )
{
FMaterialShaderTypes ShaderTypes ;
{
2022-05-11 06:10:52 -04:00
ShaderTypes . AddShaderType < FPostProcessMaterialVS > ( ) ;
ShaderTypes . AddShaderType < FPostProcessMaterialPS > ( ) ;
2020-10-22 19:19:16 -04:00
}
const FMaterialRenderProxy * MaterialProxy = InMaterialInterface - > GetRenderProxy ( ) ;
check ( MaterialProxy ) ;
const FMaterial * Material = nullptr ;
FMaterialShaders Shaders ;
while ( MaterialProxy )
{
Material = MaterialProxy - > GetMaterialNoFallback ( InFeatureLevel ) ;
if ( Material & & Material - > GetMaterialDomain ( ) = = MD_PostProcess )
{
if ( Material - > TryGetShaders ( ShaderTypes , nullptr , Shaders ) )
{
break ;
}
}
MaterialProxy = MaterialProxy - > GetFallback ( InFeatureLevel ) ;
}
check ( Material ) ;
if ( Material - > IsStencilTestEnabled ( ) | | Material - > GetBlendableOutputAlpha ( ) )
{
// Only allowed to have blend/stencil test if output format is compatible with ePId_Input0.
// PF_Unknown implies output format is that of EPId_Input0
ensure ( InOutputFormat = = PF_Unknown ) ;
}
const FMaterialShaderMap * MaterialShaderMap = Material - > GetRenderingThreadShaderMap ( ) ;
check ( MaterialShaderMap ) ;
OutMaterial = Material ;
OutMaterialProxy = MaterialProxy ;
OutMaterialShaderMap = MaterialShaderMap ;
Shaders . TryGetVertexShader ( OutVertexShader ) ;
Shaders . TryGetPixelShader ( OutPixelShader ) ;
}
2015-08-27 10:28:11 -04:00
TGlobalResource < FPostProcessMaterialVertexDeclaration > GPostProcessMaterialVertexDeclaration ;
2014-03-14 14:13:41 -04:00
2019-09-14 09:45:25 -04:00
} //! namespace
2019-10-17 04:24:15 -04:00
static void AddCopyAndFlipTexturePass ( FRDGBuilder & GraphBuilder , const FViewInfo & View , FRDGTextureRef SrcTexture , FRDGTextureRef DestTexture )
{
// Other RHIs can't flip and copy at the same time, so we'll use a pixel shader to perform the copy, together with the FlipYAxis
// flag on the screen pass. This path is only taken when using the mobile preview feature in the editor with
// r.Mobile.ForceRHISwitchVerticalAxis set to 1, so we don't care about it being sub-optimal.
FIntPoint Size = SrcTexture - > Desc . Extent ;
const FScreenPassTextureViewport InputViewport ( SrcTexture - > Desc . Extent , FIntRect ( FIntPoint : : ZeroValue , Size ) ) ;
const FScreenPassTextureViewport OutputViewport ( DestTexture - > Desc . Extent , FIntRect ( FIntPoint : : ZeroValue , Size ) ) ;
TShaderMapRef < FCopyRectPS > PixelShader ( View . ShaderMap ) ;
FCopyRectPS : : FParameters * Parameters = GraphBuilder . AllocParameters < FCopyRectPS : : FParameters > ( ) ;
Parameters - > InputTexture = SrcTexture ;
Parameters - > InputSampler = TStaticSamplerState < > : : GetRHI ( ) ;
Parameters - > RenderTargets [ 0 ] = FRenderTargetBinding ( DestTexture , ERenderTargetLoadAction : : ENoAction ) ;
2020-02-06 13:13:41 -05:00
AddDrawScreenPass ( GraphBuilder , RDG_EVENT_NAME ( " DrawTexture " ) , View , OutputViewport , InputViewport , PixelShader , Parameters , EScreenPassDrawFlags : : FlipYAxis ) ;
2019-10-17 04:24:15 -04:00
}
2020-06-23 18:40:00 -04:00
void AddMobileMSAADecodeAndDrawTexturePass (
2020-02-26 21:42:01 -05:00
FRDGBuilder & GraphBuilder ,
const FViewInfo & View ,
FScreenPassTexture Input ,
FScreenPassRenderTarget Output )
{
const FScreenPassTextureViewport InputViewport ( Input ) ;
const FScreenPassTextureViewport OutputViewport ( Output ) ;
2020-09-24 00:43:27 -04:00
TShaderMapRef < FMSAADecodeAndCopyRectPS_Mobile > PixelShader ( View . ShaderMap ) ;
2020-02-26 21:42:01 -05:00
2020-09-24 00:43:27 -04:00
FMSAADecodeAndCopyRectPS_Mobile : : FParameters * Parameters = GraphBuilder . AllocParameters < FMSAADecodeAndCopyRectPS_Mobile : : FParameters > ( ) ;
2020-02-26 21:42:01 -05:00
Parameters - > InputTexture = Input . Texture ;
Parameters - > InputSampler = TStaticSamplerState < > : : GetRHI ( ) ;
Parameters - > RenderTargets [ 0 ] = Output . GetRenderTargetBinding ( ) ;
AddDrawScreenPass ( GraphBuilder , RDG_EVENT_NAME ( " MobileMSAADecodeAndDrawTexture " ) , View , OutputViewport , InputViewport , PixelShader , Parameters ) ;
}
2019-10-01 13:03:04 -04:00
FScreenPassTexture AddPostProcessMaterialPass (
2019-09-14 09:45:25 -04:00
FRDGBuilder & GraphBuilder ,
2019-10-01 13:03:04 -04:00
const FViewInfo & View ,
const FPostProcessMaterialInputs & Inputs ,
2020-06-23 18:40:00 -04:00
const UMaterialInterface * MaterialInterface )
2014-03-14 14:13:41 -04:00
{
2019-09-14 09:45:25 -04:00
Inputs . Validate ( ) ;
2019-10-01 13:03:04 -04:00
const FScreenPassTexture SceneColor = Inputs . GetInput ( EPostProcessMaterialInput : : SceneColor ) ;
2019-09-14 09:45:25 -04:00
2019-10-01 13:03:04 -04:00
const ERHIFeatureLevel : : Type FeatureLevel = View . GetFeatureLevel ( ) ;
2019-09-14 09:45:25 -04:00
const FMaterial * Material = nullptr ;
const FMaterialRenderProxy * MaterialRenderProxy = nullptr ;
const FMaterialShaderMap * MaterialShaderMap = nullptr ;
2020-10-22 19:19:16 -04:00
TShaderRef < FPostProcessMaterialVS > VertexShader ;
TShaderRef < FPostProcessMaterialPS > PixelShader ;
GetMaterialInfo ( MaterialInterface , FeatureLevel , Inputs . OutputFormat , Material , MaterialRenderProxy , MaterialShaderMap , VertexShader , PixelShader ) ;
2019-09-14 09:45:25 -04:00
2019-10-01 13:03:04 -04:00
FRHIDepthStencilState * DefaultDepthStencilState = FScreenPassPipelineState : : FDefaultDepthStencilState : : GetRHI ( ) ;
2019-09-14 09:45:25 -04:00
FRHIDepthStencilState * DepthStencilState = DefaultDepthStencilState ;
FRDGTextureRef DepthStencilTexture = nullptr ;
// Allocate custom depth stencil texture(s) and depth stencil state.
2022-05-11 06:10:52 -04:00
const EMaterialCustomDepthPolicy CustomStencilPolicy = GetMaterialCustomDepthPolicy ( Material ) ;
2019-09-14 09:45:25 -04:00
2021-05-11 14:15:48 -04:00
if ( CustomStencilPolicy = = EMaterialCustomDepthPolicy : : Enabled & & HasBeenProduced ( Inputs . CustomDepthTexture ) )
2019-09-14 09:45:25 -04:00
{
check ( Inputs . CustomDepthTexture ) ;
DepthStencilTexture = Inputs . CustomDepthTexture ;
DepthStencilState = GetMaterialStencilState ( Material ) ;
}
2019-10-01 13:03:04 -04:00
FRHIBlendState * DefaultBlendState = FScreenPassPipelineState : : FDefaultBlendState : : GetRHI ( ) ;
2020-01-15 01:29:06 -05:00
FRHIBlendState * BlendState = DefaultBlendState ;
if ( IsMaterialBlendEnabled ( Material ) )
{
BlendState = GetMaterialBlendState ( Material ) ;
}
2019-09-14 09:45:25 -04:00
// Blend / Depth Stencil usage requires that the render target have primed color data.
2020-06-23 18:40:00 -04:00
const bool bCompositeWithInput = DepthStencilState ! = DefaultDepthStencilState | | BlendState ! = DefaultBlendState ;
2019-09-14 09:45:25 -04:00
// We only prime color on the output texture if we are using fixed function Blend / Depth-Stencil,
// or we need to retain previously rendered views.
2020-06-23 18:40:00 -04:00
const bool bPrimeOutputColor = bCompositeWithInput | | ! View . IsFirstInFamily ( ) ;
2019-09-14 09:45:25 -04:00
2019-10-16 02:54:09 -04:00
// Inputs.OverrideOutput is used to force drawing directly to the backbuffer. OpenGL doesn't support using the backbuffer color target with a custom depth/stencil
// buffer, so in that case we must draw to an intermediate target and copy to the backbuffer at the end. Ideally, we would test if Inputs.OverrideOutput.Texture
2022-03-14 09:14:58 -04:00
// is actually the backbuffer, but it's not worth doing all the plumbing and increasing the RHI surface area just for this hack.
2020-06-23 18:40:00 -04:00
const bool bBackbufferWithDepthStencil = ( DepthStencilTexture ! = nullptr & & ! GRHISupportsBackBufferWithCustomDepthStencil & & Inputs . OverrideOutput . IsValid ( ) ) ;
2019-10-17 04:24:15 -04:00
// The other case when we must render to an intermediate target is when we have to flip the image vertically because we're the last postprocess pass on mobile OpenGL.
// We can't simply output a flipped image, because the parts of the input image which show through the stencil mask or are blended in must also be flipped. In that case,
// we render normally to the intermediate target and flip the image when we copy to the output target.
2020-06-23 18:40:00 -04:00
const bool bCompositeWithInputAndFlipY = bCompositeWithInput & & Inputs . bFlipYAxis ;
2020-02-26 21:42:01 -05:00
// We need to decode the target color for blending material, force it rendering to an intermediate render target and decode the color.
2020-06-23 18:40:00 -04:00
const bool bCompositeWithInputAndDecode = Inputs . bMetalMSAAHDRDecode & & bCompositeWithInput ;
const bool bForceIntermediateTarget = bBackbufferWithDepthStencil | | bCompositeWithInputAndFlipY | | bCompositeWithInputAndDecode ;
2019-10-16 02:54:09 -04:00
2019-10-01 13:03:04 -04:00
FScreenPassRenderTarget Output = Inputs . OverrideOutput ;
2019-09-14 09:45:25 -04:00
// We can re-use the scene color texture as the render target if we're not simultaneously reading from it.
// This is only necessary to do if we're going to be priming content from the render target since it avoids
// the copy. Otherwise, we just allocate a new render target.
2022-02-02 08:00:15 -05:00
const bool bValidShaderPlatform = ( GMaxRHIShaderPlatform ! = SP_PCD3D_ES3_1 ) & & ( GMaxRHIShaderPlatform ! = SP_D3D_ES3_1_HOLOLENS ) ; // This might actually work with Hololens GPUs, but we haven't enabled it before
if ( ! Output . IsValid ( ) & & ! MaterialShaderMap - > UsesSceneTexture ( PPI_PostProcessInput0 ) & & bPrimeOutputColor & & ! bForceIntermediateTarget & & Inputs . bAllowSceneColorInputAsOutput & & bValidShaderPlatform )
2019-09-14 09:45:25 -04:00
{
2019-10-01 13:03:04 -04:00
Output = FScreenPassRenderTarget ( SceneColor , ERenderTargetLoadAction : : ELoad ) ;
2019-09-14 09:45:25 -04:00
}
else
{
// Allocate new transient output texture if none exists.
2020-06-23 18:40:00 -04:00
if ( ! Output . IsValid ( ) | | bForceIntermediateTarget )
2019-09-14 09:45:25 -04:00
{
2019-10-01 13:03:04 -04:00
FRDGTextureDesc OutputDesc = SceneColor . Texture - > Desc ;
OutputDesc . Reset ( ) ;
if ( Inputs . OutputFormat ! = PF_Unknown )
2019-09-14 09:45:25 -04:00
{
2019-10-01 13:03:04 -04:00
OutputDesc . Format = Inputs . OutputFormat ;
2019-09-14 09:45:25 -04:00
}
2019-10-01 13:03:04 -04:00
OutputDesc . ClearValue = FClearValueBinding ( FLinearColor : : Black ) ;
2021-06-14 09:12:41 -04:00
OutputDesc . Flags & = ( ~ ETextureCreateFlags : : FastVRAM ) ;
2019-10-01 13:03:04 -04:00
OutputDesc . Flags | = GFastVRamConfig . PostProcessMaterial ;
2019-09-14 09:45:25 -04:00
2019-10-01 13:03:04 -04:00
Output = FScreenPassRenderTarget ( GraphBuilder . CreateTexture ( OutputDesc , TEXT ( " PostProcessMaterial " ) ) , SceneColor . ViewRect , View . GetOverwriteLoadAction ( ) ) ;
2019-09-14 09:45:25 -04:00
}
2020-06-23 18:40:00 -04:00
if ( bPrimeOutputColor | | bForceIntermediateTarget )
2019-09-14 09:45:25 -04:00
{
// Copy existing contents to new output and use load-action to preserve untouched pixels.
2020-06-23 18:40:00 -04:00
if ( Inputs . bMetalMSAAHDRDecode )
2020-02-26 21:42:01 -05:00
{
2020-06-23 18:40:00 -04:00
AddMobileMSAADecodeAndDrawTexturePass ( GraphBuilder , View , SceneColor , Output ) ;
2020-02-26 21:42:01 -05:00
}
else
{
AddDrawTexturePass ( GraphBuilder , View , SceneColor , Output ) ;
}
2019-10-01 13:03:04 -04:00
Output . LoadAction = ERenderTargetLoadAction : : ELoad ;
2019-09-14 09:45:25 -04:00
}
}
2019-10-01 13:03:04 -04:00
const FScreenPassTextureViewport SceneColorViewport ( SceneColor ) ;
const FScreenPassTextureViewport OutputViewport ( Output ) ;
2019-09-14 09:45:25 -04:00
2021-06-09 11:40:42 -04:00
RDG_EVENT_SCOPE ( GraphBuilder , " PostProcessMaterial %dx%d Material=%s " , SceneColorViewport . Rect . Width ( ) , SceneColorViewport . Rect . Height ( ) , * Material - > GetAssetName ( ) ) ;
2019-09-14 09:45:25 -04:00
2020-02-09 23:33:32 -05:00
const uint32 MaterialStencilRef = Material - > GetStencilRefValue ( ) ;
2020-09-24 00:43:27 -04:00
const bool bMobilePlatform = IsMobilePlatform ( View . GetShaderPlatform ( ) ) ;
2019-09-14 09:45:25 -04:00
2020-09-24 00:43:27 -04:00
FPostProcessMaterialParameters * PostProcessMaterialParameters = GraphBuilder . AllocParameters < FPostProcessMaterialParameters > ( ) ;
PostProcessMaterialParameters - > SceneTextures = Inputs . SceneTextures ;
2020-06-23 18:40:00 -04:00
PostProcessMaterialParameters - > View = View . ViewUniformBuffer ;
2020-09-24 00:43:27 -04:00
if ( bMobilePlatform )
{
2021-02-02 04:25:26 -04:00
PostProcessMaterialParameters - > EyeAdaptationBuffer = GraphBuilder . CreateSRV ( GetEyeAdaptationBuffer ( GraphBuilder , View ) , PF_A32B32G32R32F ) ;
2020-09-24 00:43:27 -04:00
}
else
{
PostProcessMaterialParameters - > EyeAdaptationTexture = GetEyeAdaptationTexture ( GraphBuilder , View ) ;
}
2020-01-15 19:57:19 -05:00
PostProcessMaterialParameters - > PostProcessOutput = GetScreenPassTextureViewportParameters ( OutputViewport ) ;
2019-10-01 13:03:04 -04:00
PostProcessMaterialParameters - > RenderTargets [ 0 ] = Output . GetRenderTargetBinding ( ) ;
2019-09-14 09:45:25 -04:00
2020-06-23 18:40:00 -04:00
// The target color will be decoded if bForceIntermediateTarget is true in any case, but we might still need to decode the input color
PostProcessMaterialParameters - > bMetalMSAAHDRDecode = Inputs . bMetalMSAAHDRDecode ? 1 : 0 ;
2022-05-11 06:10:52 -04:00
if ( DepthStencilTexture )
2019-09-14 09:45:25 -04:00
{
PostProcessMaterialParameters - > RenderTargets . DepthStencil = FDepthStencilBinding (
DepthStencilTexture ,
ERenderTargetLoadAction : : ELoad ,
ERenderTargetLoadAction : : ELoad ,
FExclusiveDepthStencil : : DepthRead_StencilRead ) ;
}
PostProcessMaterialParameters - > PostProcessInput_BilinearSampler = TStaticSamplerState < SF_Bilinear , AM_Clamp , AM_Clamp , AM_Clamp > : : GetRHI ( ) ; ;
2019-10-01 13:03:04 -04:00
const FScreenPassTexture BlackDummy ( GSystemTextures . GetBlackDummy ( GraphBuilder ) ) ;
2019-09-14 09:45:25 -04:00
// This gets passed in whether or not it's used.
2019-10-01 13:03:04 -04:00
GraphBuilder . RemoveUnusedTextureWarning ( BlackDummy . Texture ) ;
2019-09-14 09:45:25 -04:00
FRHISamplerState * PointClampSampler = TStaticSamplerState < SF_Point , AM_Clamp , AM_Clamp , AM_Clamp > : : GetRHI ( ) ;
for ( uint32 InputIndex = 0 ; InputIndex < kPostProcessMaterialInputCountMax ; + + InputIndex )
{
2019-10-01 13:03:04 -04:00
FScreenPassTexture Input = Inputs . GetInput ( ( EPostProcessMaterialInput ) InputIndex ) ;
2019-09-14 09:45:25 -04:00
// Need to provide valid textures for when shader compilation doesn't cull unused parameters.
2019-10-01 13:03:04 -04:00
if ( ! Input . Texture | | ! MaterialShaderMap - > UsesSceneTexture ( PPI_PostProcessInput0 + InputIndex ) )
2019-09-14 09:45:25 -04:00
{
2019-10-01 13:03:04 -04:00
Input = BlackDummy ;
2019-09-14 09:45:25 -04:00
}
2019-10-01 13:03:04 -04:00
PostProcessMaterialParameters - > PostProcessInput [ InputIndex ] = GetScreenPassTextureInput ( Input , PointClampSampler ) ;
2019-09-14 09:45:25 -04:00
}
2020-06-23 18:40:00 -04:00
PostProcessMaterialParameters - > bFlipYAxis = Inputs . bFlipYAxis & & ! bForceIntermediateTarget ;
2022-04-01 08:35:55 -04:00
PostProcessMaterialParameters - > Strata = Strata : : BindStrataGlobalUniformParameters ( View ) ;
2019-09-14 09:45:25 -04:00
2020-01-24 18:07:01 -05:00
ClearUnusedGraphResources ( VertexShader , PixelShader , PostProcessMaterialParameters ) ;
2019-09-14 09:45:25 -04:00
2019-10-01 13:03:04 -04:00
EScreenPassDrawFlags ScreenPassFlags = EScreenPassDrawFlags : : AllowHMDHiddenAreaMask ;
2019-10-17 04:24:15 -04:00
if ( PostProcessMaterialParameters - > bFlipYAxis )
2019-09-14 09:45:25 -04:00
{
2019-10-01 13:03:04 -04:00
ScreenPassFlags | = EScreenPassDrawFlags : : FlipYAxis ;
}
2019-09-14 09:45:25 -04:00
2022-02-25 19:55:53 -05:00
// check if we can skip that draw call in case if all pixels will fail the stencil test of the material
bool bSkipPostProcess = false ;
2019-09-14 09:45:25 -04:00
2022-02-08 14:00:07 -05:00
if ( Material - > IsStencilTestEnabled ( ) & & IsPostProcessStencilTestAllowed ( ) )
2019-10-16 02:54:09 -04:00
{
2022-02-08 14:00:07 -05:00
bool bFailStencil = true ;
2022-05-11 06:10:52 -04:00
const uint32 StencilComp = Material - > GetStencilCompare ( ) ;
2022-03-04 03:03:20 -05:00
// Always check against clear value, since a material might want to perform operations against that value
2022-05-11 06:10:52 -04:00
const uint32 StencilClearValue = Inputs . CustomDepthTexture ? Inputs . CustomDepthTexture - > Desc . ClearValue . Value . DSValue . Stencil : 0 ;
bFailStencil & = PostProcessStencilTest ( StencilClearValue , StencilComp , MaterialStencilRef ) ;
2022-02-08 14:00:07 -05:00
2022-03-11 13:50:57 -05:00
2022-02-08 14:00:07 -05:00
for ( const uint32 & Value : View . CustomDepthStencilValues )
2019-10-17 04:24:15 -04:00
{
2022-05-11 06:10:52 -04:00
bFailStencil & = PostProcessStencilTest ( Value , StencilComp , MaterialStencilRef ) ;
2022-02-08 14:00:07 -05:00
if ( ! bFailStencil )
2019-10-17 04:24:15 -04:00
{
2022-02-08 14:00:07 -05:00
break ;
}
}
bSkipPostProcess = bFailStencil ;
}
if ( ! bSkipPostProcess )
{
2022-02-25 16:22:08 -05:00
AddDrawScreenPass (
GraphBuilder ,
RDG_EVENT_NAME ( " PostProcessMaterial " ) ,
View ,
OutputViewport ,
SceneColorViewport ,
2022-04-25 10:22:27 -04:00
// Uses default depth stencil on mobile since the stencil test is done in pixel shader.
2022-05-11 06:10:52 -04:00
FScreenPassPipelineState ( VertexShader , PixelShader , BlendState , DepthStencilState , MaterialStencilRef ) ,
2022-02-25 16:22:08 -05:00
PostProcessMaterialParameters ,
ScreenPassFlags ,
2022-05-11 06:10:52 -04:00
[ & View , VertexShader , PixelShader , MaterialRenderProxy , Material , PostProcessMaterialParameters ] ( FRHICommandList & RHICmdList )
2022-02-25 16:22:08 -05:00
{
FPostProcessMaterialVS : : SetParameters ( RHICmdList , VertexShader , View , MaterialRenderProxy , * Material , * PostProcessMaterialParameters ) ;
FPostProcessMaterialPS : : SetParameters ( RHICmdList , PixelShader , View , MaterialRenderProxy , * Material , * PostProcessMaterialParameters ) ;
} ) ;
2022-02-08 14:00:07 -05:00
2022-02-25 16:22:08 -05:00
if ( bForceIntermediateTarget & & ! bCompositeWithInputAndDecode )
{
if ( ! Inputs . bFlipYAxis )
2022-02-08 14:00:07 -05:00
{
2022-02-25 16:22:08 -05:00
// We shouldn't get here unless we had an override target.
check ( Inputs . OverrideOutput . IsValid ( ) ) ;
AddDrawTexturePass ( GraphBuilder , View , Output . Texture , Inputs . OverrideOutput . Texture ) ;
Output = Inputs . OverrideOutput ;
}
else
{
FScreenPassRenderTarget TempTarget = Output ;
if ( Inputs . OverrideOutput . IsValid ( ) )
2022-02-08 14:00:07 -05:00
{
2019-10-17 04:24:15 -04:00
Output = Inputs . OverrideOutput ;
}
else
{
2022-02-25 16:22:08 -05:00
Output = FScreenPassRenderTarget ( SceneColor , ERenderTargetLoadAction : : ENoAction ) ;
2022-02-08 14:00:07 -05:00
}
2022-02-25 16:22:08 -05:00
AddCopyAndFlipTexturePass ( GraphBuilder , View , TempTarget . Texture , Output . Texture ) ;
2019-10-17 04:24:15 -04:00
}
2019-10-16 02:54:09 -04:00
}
2022-02-25 16:22:08 -05:00
}
2022-03-04 03:03:20 -05:00
else
{
2022-03-04 04:12:05 -05:00
// When skipping the pass, we still need to output a valid FScreenPassRenderTarget
2022-03-04 03:03:20 -05:00
Output = FScreenPassRenderTarget ( SceneColor , ERenderTargetLoadAction : : ENoAction ) ;
2022-03-04 04:12:05 -05:00
// If there is override output, we need to output to that
if ( Inputs . OverrideOutput . IsValid ( ) )
{
AddDrawTexturePass ( GraphBuilder , View , Output . Texture , Inputs . OverrideOutput . Texture ) ;
Output = Inputs . OverrideOutput ;
}
2022-03-04 03:03:20 -05:00
}
2019-10-16 02:54:09 -04:00
2019-10-01 13:03:04 -04:00
return MoveTemp ( Output ) ;
2019-09-14 09:45:25 -04:00
}
static bool IsPostProcessMaterialsEnabledForView ( const FViewInfo & View )
{
if ( ! View . Family - > EngineShowFlags . PostProcessing | |
! View . Family - > EngineShowFlags . PostProcessMaterial | |
View . Family - > EngineShowFlags . VisualizeShadingModels | |
CVarPostProcessingDisableMaterials . GetValueOnRenderThread ( ) ! = 0 )
{
return false ;
}
return true ;
}
static FPostProcessMaterialNode * IteratePostProcessMaterialNodes ( const FFinalPostProcessSettings & Dest , EBlendableLocation Location , FBlendableEntry * & Iterator )
{
for ( ; ; )
{
FPostProcessMaterialNode * DataPtr = Dest . BlendableManager . IterateBlendables < FPostProcessMaterialNode > ( Iterator ) ;
if ( ! DataPtr | | DataPtr - > GetLocation ( ) = = Location )
{
return DataPtr ;
}
}
}
2019-10-01 13:03:04 -04:00
FPostProcessMaterialChain GetPostProcessMaterialChain ( const FViewInfo & View , EBlendableLocation Location )
2019-09-14 09:45:25 -04:00
{
if ( ! IsPostProcessMaterialsEnabledForView ( View ) )
{
2019-10-01 13:03:04 -04:00
return { } ;
2019-09-14 09:45:25 -04:00
}
const FSceneViewFamily & ViewFamily = * View . Family ;
2019-10-01 13:03:04 -04:00
TArray < FPostProcessMaterialNode , TInlineAllocator < 10 > > Nodes ;
2019-09-14 09:45:25 -04:00
FBlendableEntry * Iterator = nullptr ;
if ( ViewFamily . EngineShowFlags . VisualizeBuffer )
{
2020-01-24 18:07:01 -05:00
UMaterialInterface * VisMaterial = GetBufferVisualizationData ( ) . GetMaterial ( View . CurrentBufferVisualizationMode ) ;
UMaterial * Material = VisMaterial ? VisMaterial - > GetMaterial ( ) : nullptr ;
2019-09-14 09:45:25 -04:00
if ( Material & & Material - > BlendableLocation = = Location )
{
2020-01-29 18:45:15 -05:00
Nodes . Add ( FPostProcessMaterialNode ( Material , Location , Material - > BlendablePriority , Material - > bIsBlendable ) ) ;
2019-09-14 09:45:25 -04:00
}
}
2019-10-01 13:03:04 -04:00
while ( FPostProcessMaterialNode * Data = IteratePostProcessMaterialNodes ( View . FinalPostProcessSettings , Location , Iterator ) )
2019-09-14 09:45:25 -04:00
{
check ( Data - > GetMaterialInterface ( ) ) ;
2019-10-01 13:03:04 -04:00
Nodes . Add ( * Data ) ;
2019-09-14 09:45:25 -04:00
}
2019-10-01 13:03:04 -04:00
if ( ! Nodes . Num ( ) )
2019-09-14 09:45:25 -04:00
{
2019-10-01 13:03:04 -04:00
return { } ;
2019-09-14 09:45:25 -04:00
}
2019-10-01 13:03:04 -04:00
: : Sort ( Nodes . GetData ( ) , Nodes . Num ( ) , FPostProcessMaterialNode : : FCompare ( ) ) ;
FPostProcessMaterialChain OutputChain ;
OutputChain . Reserve ( Nodes . Num ( ) ) ;
for ( const FPostProcessMaterialNode & Node : Nodes )
{
OutputChain . Add ( Node . GetMaterialInterface ( ) ) ;
}
return OutputChain ;
}
FScreenPassTexture AddPostProcessMaterialChain (
FRDGBuilder & GraphBuilder ,
const FViewInfo & View ,
const FPostProcessMaterialInputs & InputsTemplate ,
const FPostProcessMaterialChain & Materials )
{
FScreenPassTexture Outputs = InputsTemplate . GetInput ( EPostProcessMaterialInput : : SceneColor ) ;
2020-09-24 00:43:27 -04:00
bool bFirstMaterialInChain = true ;
2019-10-01 13:03:04 -04:00
for ( const UMaterialInterface * MaterialInterface : Materials )
{
FPostProcessMaterialInputs Inputs = InputsTemplate ;
Inputs . SetInput ( EPostProcessMaterialInput : : SceneColor , Outputs ) ;
2020-09-24 00:43:27 -04:00
// Only the first material in the chain needs to decode the input color
Inputs . bMetalMSAAHDRDecode = Inputs . bMetalMSAAHDRDecode & & bFirstMaterialInChain ;
bFirstMaterialInChain = false ;
2019-10-01 13:03:04 -04:00
// Certain inputs are only respected by the final post process material in the chain.
if ( MaterialInterface ! = Materials . Last ( ) )
{
Inputs . OverrideOutput = FScreenPassRenderTarget ( ) ;
Inputs . bFlipYAxis = false ;
}
Outputs = AddPostProcessMaterialPass ( GraphBuilder , View , Inputs , MaterialInterface ) ;
}
return Outputs ;
2019-09-14 09:45:25 -04:00
}
2022-02-24 23:44:16 -05:00
extern void AddDumpToColorArrayPass ( FRDGBuilder & GraphBuilder , FScreenPassTexture Input , TArray < FColor > * OutputColorArray , FIntPoint * OutputExtents ) ;
2019-10-01 13:03:04 -04:00
bool IsHighResolutionScreenshotMaskEnabled ( const FViewInfo & View )
{
return View . Family - > EngineShowFlags . HighResScreenshotMask | | View . FinalPostProcessSettings . HighResScreenshotCaptureRegionMaterial ;
}
FScreenPassTexture AddHighResolutionScreenshotMaskPass (
FRDGBuilder & GraphBuilder ,
const FViewInfo & View ,
const FHighResolutionScreenshotMaskInputs & Inputs )
{
check ( Inputs . Material | | Inputs . MaskMaterial | | Inputs . CaptureRegionMaterial ) ;
enum class EPass
{
Material ,
MaskMaterial ,
CaptureRegionMaterial ,
MAX
} ;
const TCHAR * PassNames [ ]
{
TEXT ( " Material " ) ,
TEXT ( " MaskMaterial " ) ,
TEXT ( " CaptureRegionMaterial " )
} ;
2019-10-01 13:43:14 -04:00
static_assert ( UE_ARRAY_COUNT ( PassNames ) = = static_cast < uint32 > ( EPass : : MAX ) , " Pass names array doesn't match pass enum " ) ;
2019-10-01 13:03:04 -04:00
2020-01-09 18:11:07 -05:00
const bool bHighResScreenshotMask = View . Family - > EngineShowFlags . HighResScreenshotMask ! = 0 ;
2019-10-01 13:03:04 -04:00
TOverridePassSequence < EPass > PassSequence ( Inputs . OverrideOutput ) ;
2020-01-09 18:11:07 -05:00
PassSequence . SetEnabled ( EPass : : Material , bHighResScreenshotMask & & Inputs . Material ! = nullptr ) ;
PassSequence . SetEnabled ( EPass : : MaskMaterial , bHighResScreenshotMask & & Inputs . MaskMaterial ! = nullptr & & GIsHighResScreenshot ) ;
2019-10-01 13:03:04 -04:00
PassSequence . SetEnabled ( EPass : : CaptureRegionMaterial , Inputs . CaptureRegionMaterial ! = nullptr ) ;
PassSequence . Finalize ( ) ;
FScreenPassTexture Output = Inputs . SceneColor ;
if ( PassSequence . IsEnabled ( EPass : : Material ) )
{
FPostProcessMaterialInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : Material , PassInputs . OverrideOutput ) ;
PassInputs . SetInput ( EPostProcessMaterialInput : : SceneColor , Output ) ;
2020-09-24 00:43:27 -04:00
PassInputs . SceneTextures = Inputs . SceneTextures ;
2019-10-01 13:03:04 -04:00
Output = AddPostProcessMaterialPass ( GraphBuilder , View , PassInputs , Inputs . Material ) ;
}
if ( PassSequence . IsEnabled ( EPass : : MaskMaterial ) )
{
2019-10-23 15:07:28 -04:00
PassSequence . AcceptPass ( EPass : : MaskMaterial ) ;
2019-10-01 13:03:04 -04:00
FPostProcessMaterialInputs PassInputs ;
PassInputs . SetInput ( EPostProcessMaterialInput : : SceneColor , Output ) ;
2020-09-24 00:43:27 -04:00
PassInputs . SceneTextures = Inputs . SceneTextures ;
2019-10-01 13:03:04 -04:00
2021-10-27 15:14:40 -04:00
// Explicitly allocate the render target to match the FSceneView extents and rect, so the output pixel arrangement matches
FRDGTextureDesc MaskOutputDesc = Output . Texture - > Desc ;
MaskOutputDesc . Reset ( ) ;
MaskOutputDesc . ClearValue = FClearValueBinding ( FLinearColor : : Black ) ;
MaskOutputDesc . Flags | = GFastVRamConfig . PostProcessMaterial ;
MaskOutputDesc . Extent = View . UnconstrainedViewRect . Size ( ) ;
PassInputs . OverrideOutput = FScreenPassRenderTarget (
GraphBuilder . CreateTexture ( MaskOutputDesc , TEXT ( " PostProcessMaterial " ) ) , View . UnscaledViewRect , View . GetOverwriteLoadAction ( ) ) ;
2019-10-23 15:07:28 -04:00
// Disallow the scene color input as output optimization since we need to not pollute the scene texture.
PassInputs . bAllowSceneColorInputAsOutput = false ;
2019-10-01 13:03:04 -04:00
2019-10-23 15:07:28 -04:00
FScreenPassTexture MaskOutput = AddPostProcessMaterialPass ( GraphBuilder , View , PassInputs , Inputs . MaskMaterial ) ;
2022-02-24 23:44:16 -05:00
AddDumpToColorArrayPass ( GraphBuilder , MaskOutput , FScreenshotRequest : : GetHighresScreenshotMaskColorArray ( ) , & FScreenshotRequest : : GetHighresScreenshotMaskExtents ( ) ) ;
2019-10-23 15:07:28 -04:00
// The mask material pass is actually outputting to system memory. If we're the last pass in the chain
// and the override output is valid, we need to perform a copy of the input to the output. Since we can't
// sample from the override output (since it might be the backbuffer), we still need to participate in
// the pass sequence.
if ( PassSequence . IsLastPass ( EPass : : MaskMaterial ) & & Inputs . OverrideOutput . IsValid ( ) )
{
AddDrawTexturePass ( GraphBuilder , View , Output , Inputs . OverrideOutput ) ;
Output = Inputs . OverrideOutput ;
}
2019-10-01 13:03:04 -04:00
}
if ( PassSequence . IsEnabled ( EPass : : CaptureRegionMaterial ) )
{
FPostProcessMaterialInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : CaptureRegionMaterial , PassInputs . OverrideOutput ) ;
PassInputs . SetInput ( EPostProcessMaterialInput : : SceneColor , Output ) ;
2020-09-24 00:43:27 -04:00
PassInputs . SceneTextures = Inputs . SceneTextures ;
2019-10-01 13:03:04 -04:00
Output = AddPostProcessMaterialPass ( GraphBuilder , View , PassInputs , Inputs . CaptureRegionMaterial ) ;
}
return Output ;
2021-10-27 15:14:40 -04:00
}