2016-01-07 08:17:16 -05:00
|
|
|
// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.
|
2014-09-18 17:49:40 -04:00
|
|
|
|
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
|
|
|
#if PLATFORM_ANDROIDESDEFERRED
|
2014-09-18 17:49:40 -04:00
|
|
|
/*=============================================================================
|
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
|
|
|
AndroidESDeferredOpenGL.cpp: Manual loading of OpenGL functions from DLL.
|
2014-09-18 17:49:40 -04:00
|
|
|
=============================================================================*/
|
|
|
|
|
|
|
|
|
|
#include "OpenGLDrvPrivate.h"
|
|
|
|
|
|
|
|
|
|
#include "AndroidApplication.h"
|
|
|
|
|
#include "AndroidOpenGLPrivate.h"
|
|
|
|
|
#include <dlfcn.h>
|
|
|
|
|
#include <android/log.h>
|
|
|
|
|
#include <android/native_window_jni.h>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define LOG_TAG "UE4"
|
|
|
|
|
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
|
|
|
|
|
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
|
|
|
|
|
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)
|
|
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
// OpenGL function pointers
|
|
|
|
|
|
|
|
|
|
#define DEFINE_GL_ENTRYPOINTS(Type,Func) Type Func = NULL;
|
|
|
|
|
ENUM_GL_ENTRYPOINTS_CORE(DEFINE_GL_ENTRYPOINTS) \
|
|
|
|
|
ENUM_GL_ENTRYPOINTS_MANUAL(DEFINE_GL_ENTRYPOINTS) \
|
|
|
|
|
ENUM_GL_ENTRYPOINTS_OPTIONAL(DEFINE_GL_ENTRYPOINTS)
|
|
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
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
|
|
|
bool FAndroidESDeferredOpenGL::bSupportsBindlessTexture = false;
|
Copying //UE4/Dev-Platform to //UE4/Dev-Main (Source: //UE4/Dev-Platform @ 3173994)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3118934 on 2016/09/08 by Jeff.Campeau
Shader compression setting based on target platform instead of cooking host platform.
#jira UE-35753
Change 3150366 on 2016/10/04 by Nick.Shin
emscripten SDK 1.36.11
windows and mac binaries will be checked in separately
#jira UE-36562 - //UE4/Main: Compile UE4Game HTML5 completed with errors: 2 errors
Change 3150367 on 2016/10/04 by Daniel.Lamb
Removed caching of cooked platform data from postload.
#test cook paragon
Change 3150368 on 2016/10/04 by Daniel.Lamb
Added new setting to reserve the maximum amount of memory to leave free for the cooker..
Change 3151091 on 2016/10/04 by Nick.Shin
upgrade emsdk toolchain to "tag-1.36.11"
(along with updates to make scripts)
#jira UEPLAT-890 - HTML5 Multithreading
#jira UE-36562 - //UE4/Main: Compile UE4Game HTML5 completed with errors: 2 errors
Change 3151205 on 2016/10/04 by Daniel.Lamb
HasShaderJobs now includes the PendingFinalizedShadermaps in it's check
#test cook paragon.
Change 3151501 on 2016/10/05 by Luke.Thatcher
[PLATFORM] [PS4] [!] Fix memory usage in PS4 crash handler server.
- The ORTMAPI com object implements a Dispose method which we we're calling, so the object was leaked until it eventually gets GC'd.
- Whilst that object is alive, the orbis-debugserver-x64.exe process stays alive, using up to 2GB memory per instance.
- Also limited the server to processing a single crash dump at once, via a task queue.
Change 3151608 on 2016/10/05 by Nick.Shin
fix CIS build warnings and errors
this is for HTML5 platform
Change 3151851 on 2016/10/05 by Michael.Trepka
Added DesktopRect and WorkArea to FMonitorInfo for desktop platforms and used that to fix an issue in SceneViewport where windowed fullscreen mode would be forced to primary monitor and incorrectly positioned on desktops where a taskbar/dock/etc. was on the left
#jira FORT-30638
Change 3152085 on 2016/10/05 by Josh.Adams
- Fixing some Wolf Launcher things (icon, string)
Change 3152451 on 2016/10/05 by Daniel.Lamb
Enabled logging to help debug shader compiler issue.
#test Cook Paragon.
Change 3152880 on 2016/10/05 by Dmitry.Rekman
Linux: add support for new multiarch toolchain.
- Redoing the change as submitted to Dev-Mobile.
Change 3152957 on 2016/10/05 by Dmitry.Rekman
Linux: fix crosstoolchain for non-AutoSDKs case.
- Redoing the fix for UE-36899 from Dev-Mobile.
Change 3153109 on 2016/10/06 by Keith.Judge
Remove D3D11_RESOURCE_MISC_SHARED from XB1 D3D11.x RHI as it is invalid.
Change 3153176 on 2016/10/06 by Keith.Judge
Xbox One - Disable engine analytics on XB1 shipping games, as per XRs. Verified http requests from devkit with Fiddler.
Change 3153213 on 2016/10/06 by Keith.Judge
Xbox One - Plug small memory leak in the movie player.
Change 3153258 on 2016/10/06 by Josh.Adams
- Moved Wolf OSS to proper location for Online plugins
Change 3153450 on 2016/10/06 by Josh.Adams
wolf net driver class stub
Change 3153451 on 2016/10/06 by Josh.Adams
- Fixed more Wolf OSS errors without special sdk
Change 3153471 on 2016/10/06 by Dmitry.Rekman
Linux: fix always rebuilding FixDeps.
Change 3153472 on 2016/10/06 by Josh.Adams
- Deleting some old test files
Change 3153535 on 2016/10/06 by Josh.Adams
- And... fixed some build errors again with the special sdk
Change 3153819 on 2016/10/06 by Daniel.Lamb
Remove some dead code in the cook on the fly server.
#test Cook QAGame
Change 3154050 on 2016/10/06 by Dmitry.Rekman
Linux: remove some of the clang 3.9.0 warnings.
- Add missing destructors.
- Deal with defined() being undefined in a #define.
- Prevent casting nullptr to reference (or suppress that warning for third party code).
- Case sensitivity fixes.
- Make deoptimization work properly.
- Code still crashes when compiling some of the editor targets.
Change 3154071 on 2016/10/06 by Josh.Adams
- Fixed an issue with Wolf shader compiler optimizing out global array
- Fixed Windows display internal thing
Change 3154567 on 2016/10/07 by Luke.Thatcher
[PLATFORM] [PS4] [!] Hack fix for PS4 crash handler site leaking sony debug server processes.
- Find and kill the process after each task
Change 3154570 on 2016/10/07 by Keith.Judge
Fix crash when run with -nolive. Unititialized member fix.
Change 3154572 on 2016/10/07 by Keith.Judge
Xbox One - Small optimization I did a while ago for Paragon and forgot to submit. Removed the SRV dynamic/static distinction in the state cache and calling code, as it makes no difference since fast semantics.
Change 3154656 on 2016/10/07 by Dmitry.Rekman
Linux: make Test configuration drop core by default.
Change 3154789 on 2016/10/07 by Dmitry.Rekman
Linux: remove multiple instances of target platform device.
Change 3154957 on 2016/10/07 by Joe.Graf
Changed additional plugin directories for project descriptors to be absolute in memory and path relative on disk
Change 3155298 on 2016/10/07 by Dmitry.Rekman
Fix CIS (LinuxTargetDevice not linking).
Change 3155684 on 2016/10/07 by Josh.Adams
- Added -PulseC option for Quickmatch
Change 3155691 on 2016/10/07 by Josh.Adams
- New Wolf NetDriver for P2P sockets. Not working yet
- OSS is _not_ currently usable, for reference
Change 3155750 on 2016/10/07 by Dmitry.Rekman
Linux: fix UT server build (UE-37042).
Change 3156816 on 2016/10/10 by Josh.Adams
- Fixed compile errors wihtout extra SDK bits
Change 3156872 on 2016/10/10 by Keith.Judge
Xbox One - Fix corrupted screenshots. Needed a GPU/CPU sync point, which legacy D3D11.x used to do for us, but now we have to do manually.
#jira UE-37038
Change 3156936 on 2016/10/10 by Josh.Adams
- Backed out changes from files that got pulled into a changelist by mistake
Change 3157602 on 2016/10/10 by Josh.Adams
- FIxed Wolf crash on level quit (at least in ShooterGame)
Change 3157676 on 2016/10/10 by Josh.Adams
- Fixed Wolf audio playback in latest SDK
Change 3158544 on 2016/10/11 by Josh.Adams
- Disabled one of the Wolf file mount points in Debug builds due to SDK bug
Change 3158603 on 2016/10/11 by Josh.Adams
- FIxed type in non-Debug
Change 3159257 on 2016/10/11 by Dmitry.Rekman
Linux: case-sensitive fixes.
Change 3159537 on 2016/10/12 by Luke.Thatcher
[PLATFORM] [PS4] [!] Fix leaking orbis-dbgserver-x64 processes in PS4 crash handler.
- We needed to call Marshal.ReleaseComObject on the CoreFileAPI object to shut down the child processes.
- Disabled the kill process hack.
[!] Also fixed "Unknown" usernames in PS4 crash dumps.
- Sony had changed the format of the PS4 settings file in system software 4.008.071.
[!] Fixed exception getting modules from crash dump when symbols have not been loaded.
- Just skipping this step now, as it was only used for logging.
Change 3159581 on 2016/10/12 by Joe.Conley
Wolf support for TPri_Lowest was missing, so I added that and the corresponding WolfThreadPriority_Lowest
Change 3159749 on 2016/10/12 by Luke.Thatcher
[PLATFORM] [PS4] [~] Re-enable kill process hack in PS4 crash server. The ReleaseComObject fix hasn't solved the leaking processes on the server.
Change 3160336 on 2016/10/12 by Daniel.Lamb
Fix for skip editor content flag being passed throught o UAT.
#jira UE-37223
Change 3160341 on 2016/10/12 by Dmitry.Rekman
Linux: fixes for Fortnite and Orion editors.
- Also, again disable XGE because clang 3.9.0-based toolchain crashes when compiling those with XGE.
Change 3160473 on 2016/10/12 by Nick.Shin
remove old emsdk
Change 3160528 on 2016/10/12 by Michael.Trepka
Copy of CL 3160314 from //Fortnite/Main
Fixed incorrect rect initialization in Mac GetDisplayMetrics
Change 3160591 on 2016/10/12 by Josh.Adams
- Fixed wolf coimpiling without stats
#jira UE-37230
Change 3160866 on 2016/10/12 by Dmitry.Rekman
OpenGL: fix swapped arguments.
- Cengiz noticed this while working on one of bugs.
Change 3160978 on 2016/10/12 by Josh.Adams
- Fixed issue with running out of Wolf audio pools on large games
Change 3160979 on 2016/10/12 by Josh.Adams
- Enabled Curl HTTP on Wolf, along with basic SSL (no local cert importing yet)
Change 3161025 on 2016/10/12 by Dmitry.Rekman
Disable poison proxy.
- Malloc::GetAllocationSize() may not account for alignment for mallocs like Binned and Binned2, resulting in a memory stomp.
Change 3161034 on 2016/10/12 by Josh.Adams
-Wolf Http changes - load .pem files if they exist (although they aren't being staged automatically yet)
- Added network pause to make sure its ready before we Http
Change 3161046 on 2016/10/12 by Dmitry.Rekman
TestPAL: adding a test for Malloc::GetAllocationSize().
Change 3161212 on 2016/10/13 by Dan.Mahashin
- Upgraded to new NXCP API. Confirmed to run ok with SunTemple on 0.11.2 SDK.
Change 3161624 on 2016/10/13 by Josh.Adams
- Fixed MAX_PATH usage, should be PLATFORM_MAX_FILEPATH_LENGTH
Change 3161639 on 2016/10/13 by Josh.Adams
- Added curl to main Wolf build since now it's used not just with OSS
Change 3161737 on 2016/10/13 by Josh.Adams
- Added support for staging .pem files for SSL peer verification
Change 3161923 on 2016/10/13 by Dmitry.Rekman
Linux: provide choice between RTLD_GLOBAL/LOCAL when opening DSOs (UE-36716).
- By default, Unreal modules will be opened with RTLD_LOCAL (so the hot reload has a chance to work).
- However, if "ue4_module_options" symbol is exported (a string with comma-separated options), and "linux_global_symbols" is present in that string, RTLD_LAZY will be used.
- DSOs that don't have either ue4_module_options nor are recognized as UE4 modules will be loaded RTLD_GLOBAL.
- PR #2823 by 20tab.
Change 3163532 on 2016/10/14 by Michael.Trepka
Copy of CL 3162466
By default, do not compile Mac OpenGL and Metal SM4 shaders while cooking
#jira UE-37088
Change 3163550 on 2016/10/14 by Josh.Stoddard
Fix key event processing during movies using FDefaultGameMoviePlayer
#jira UE-37294
Change 3163687 on 2016/10/14 by Josh.Adams
- Added a workaround for Wolf crashing inside vswprintf with %p
Change 3163693 on 2016/10/14 by Josh.Adams
- Added a delegate for getting extra on-screen messages (like the Shaders to compile, etc).
Change 3163725 on 2016/10/14 by Josh.Adams
- Added high level Wolf network transition functions for Wolf
Change 3163745 on 2016/10/14 by Josh.Adams
- Wolf OSS changes for new high level networking logic, cleaned up includes, added on screen messages with status
Change 3164455 on 2016/10/17 by Josh.Adams
- SOmehow a file wasn't checked out, but writable. Checking in now
Change 3164630 on 2016/10/17 by Michael.Trepka
Copy of CL 3162062
Replaced FWindowsCursor hack for warping the mouse cursor to the center of the viewport with a better fix for the original problem (users being able to resize the window while the cursor is hidden and the mouse controls the camera). This change removes round window corners in borderless window mode and disables window resizing when the cursor is hidden.
Change 3164975 on 2016/10/17 by Joe.Graf
Changed the New Plugin Wizard to only show plugin types available for that project type (content only or code)
Change 3165213 on 2016/10/17 by Josh.Adams
- Fixed some perf testing by disabling the startup benchmark for UT on non-desktop platforms
Change 3165576 on 2016/10/18 by Dan.Mahashin
- Fix broken colors in QAGame UE-37197: depth write cannot work without depth test being enabled.
Change 3165809 on 2016/10/18 by Josh.Stoddard
Enforce UMaterialExpressionActorPositionWS dependency on primitive uniform buffer #jira UE-37425 #rb chris.bunner
Change 3165948 on 2016/10/18 by Owen.Stupka
Fix exception when creating an exception to say we don't have a 32-bit VC compiler installed.
Change 3166330 on 2016/10/18 by Dmitry.Rekman
Linux: disable XGE on Windows (UE-37446).
- XGE does not seem to handle new clang 3.9.0 toolchain well, with very reproducible crashes.
Change 3166456 on 2016/10/18 by Dmitry.Rekman
Fix build breakage with clang 3.8.1.
- always_inline was still applied to debug builds and as such was ignored.
Change 3166457 on 2016/10/18 by Chris.Babcock
Add missing MultiviewOVR functions for Android deferred
#jira UE-37401
#ue4
#android
Change 3166469 on 2016/10/18 by Dmitry.Rekman
Linux: make target platform modules independent (UE-37370).
- Module load order is different for target platform modules between UE4Editor and UE4Editor-Cmd, and dependent modules may end up being loaded first.
Change 3166755 on 2016/10/18 by Joe.Barnes
[UE-35552] Enable PLATFORM_ENABLE_VECTORINTRINSICS_NEON on Wolf.
Change 3166757 on 2016/10/18 by Joe.Barnes
[UE-35552] Optimized platform specific implementation of some common math functions.
Change 3166761 on 2016/10/18 by Joe.Barnes
Use new 64 bit Power of 2 function.
Change 3167865 on 2016/10/19 by Josh.Adams
- Wolf P2P/NAT stuff working!
- Minor Wolf net mode fixes
Change 3167869 on 2016/10/19 by Josh.Adams
- Moved a blocking net call for Wolf Http into a thread
Change 3168100 on 2016/10/19 by Joe.Barnes
#include <NVN/nvn_CppMethods.h>. Fixes a compiler problem with some inline functions not being available during compile phase.
Change 3168101 on 2016/10/19 by Joe.Barnes
Exposed a function to create a platform based filename
Change 3168141 on 2016/10/19 by Dmitry.Rekman
TestPAL: better test for allocation sizes.
Change 3168144 on 2016/10/19 by Dmitry.Rekman
Fix for FMallocBinned::GetAllocationSize() for aligned allocations.
Redoing SteveR's fix in 4.13/4.14.
Copied from CL# 3165739.
#jira UE-37249
#jira UE-37243
Change 3168213 on 2016/10/19 by Josh.Adams
- Wolf OSS function rename
Change 3168313 on 2016/10/19 by Josh.Adams
Rename/move file(s)
Change 3168691 on 2016/10/20 by Dan.Mahashin
- Fixed application teardown and memory leak:
- NVNCommandContext was failing to free the last frame resources on shutdown (resources were thought to be in use because never actually processed by GPU)
- NVNCommandContext was leaking a FSyncedFrameDestruction at each frame
- NVNTempBlockManager was not freeing all of its temp blocks upon shutdown
Change 3168986 on 2016/10/20 by Josh.Adams
- Removed some log spam
Change 3168990 on 2016/10/20 by Josh.Adams
- Removed dead code
Change 3169091 on 2016/10/20 by Josh.Adams
Moved UT's OnlineGameplayFramework plugin into NotForLicensees so licensees don't need Mcp
Change 3169262 on 2016/10/20 by Josh.Adams
- Updated the OnScreenMessages to use a TMap of severity to message, so we can have multiple colors, etc
- Also has some fixes needed from a merge down (oops)
Change 3169363 on 2016/10/20 by Dmitry.Rekman
TestPAL: final synth test for stomp.
Change 3169436 on 2016/10/20 by Michael.Trepka
Change the minimum supported macOS version setting in Info.plists to 10.11.6
Change 3169510 on 2016/10/20 by Dmitry.Rekman
TestPAL: added stomp test with poison proxy.
Change 3169972 on 2016/10/20 by Dmitry.Rekman
Re-enable PoisonProxy.
Change 3170000 on 2016/10/20 by Dmitry.Rekman
Linux: minor code cleanup.
Change 3170400 on 2016/10/21 by Josh.Adams
- Added a comment with current supported SDK in UEBuildWolf.cs
Change 3170929 on 2016/10/21 by Josh.Adams
- Added generic Elf symbol parser to MemoryProfiler2 app. It uses nm.exe, and any platform that uses it would need to subclass it (which Wolf now does)
Change 3171266 on 2016/10/21 by Dmitry.Rekman
Linux: fix Setup.sh on Ubuntu 16.10 (UE-37621)
Change 3172847 on 2016/10/24 by Josh.Adams
- Added a null Material check to the recent change to UMaterialExpressionActorPositionWS
#jira UE-37730
Change 3173535 on 2016/10/25 by Josh.Adams
- Helping clean up some misplaced files, since obliterate caused problems with BulletProofSync
[CL 3174242 by Josh Adams in Main branch]
2016-10-25 18:15:13 -04:00
|
|
|
bool FAndroidESDeferredOpenGL::bSupportsMobileMultiView = false;
|
2014-09-18 17:49:40 -04:00
|
|
|
|
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
|
|
|
void FAndroidESDeferredOpenGL::ProcessExtensions(const FString& ExtensionsString)
|
2014-09-18 17:49:40 -04:00
|
|
|
{
|
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
|
|
|
FOpenGLESDeferred::ProcessExtensions(ExtensionsString);
|
2014-09-18 17:49:40 -04:00
|
|
|
|
|
|
|
|
bSupportsBindlessTexture = ExtensionsString.Contains(TEXT("GL_NV_bindless_texture"));
|
2016-03-17 11:10:14 -04:00
|
|
|
|
|
|
|
|
// Nexus 9 running Android < 6.0 runs slow with NvTimerQuery so disable it
|
|
|
|
|
if (FAndroidMisc::GetDeviceModel() == FString(TEXT("Nexus 9")))
|
|
|
|
|
{
|
|
|
|
|
TArray<FString> VersionParts;
|
|
|
|
|
FAndroidMisc::GetAndroidVersion().ParseIntoArray(VersionParts, TEXT("."), true);
|
|
|
|
|
if (VersionParts.Num() > 0 && FCString::Atoi(*VersionParts[0]) < 6)
|
|
|
|
|
{
|
|
|
|
|
UE_LOG(LogRHI, Log, TEXT("Disabling support for NvTimerQuery on Nexus 9 before Android 6.0"));
|
|
|
|
|
bSupportsNvTimerQuery = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
Copying //UE4/Dev-Platform to //UE4/Dev-Main (Source: //UE4/Dev-Platform @ 3173994)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3118934 on 2016/09/08 by Jeff.Campeau
Shader compression setting based on target platform instead of cooking host platform.
#jira UE-35753
Change 3150366 on 2016/10/04 by Nick.Shin
emscripten SDK 1.36.11
windows and mac binaries will be checked in separately
#jira UE-36562 - //UE4/Main: Compile UE4Game HTML5 completed with errors: 2 errors
Change 3150367 on 2016/10/04 by Daniel.Lamb
Removed caching of cooked platform data from postload.
#test cook paragon
Change 3150368 on 2016/10/04 by Daniel.Lamb
Added new setting to reserve the maximum amount of memory to leave free for the cooker..
Change 3151091 on 2016/10/04 by Nick.Shin
upgrade emsdk toolchain to "tag-1.36.11"
(along with updates to make scripts)
#jira UEPLAT-890 - HTML5 Multithreading
#jira UE-36562 - //UE4/Main: Compile UE4Game HTML5 completed with errors: 2 errors
Change 3151205 on 2016/10/04 by Daniel.Lamb
HasShaderJobs now includes the PendingFinalizedShadermaps in it's check
#test cook paragon.
Change 3151501 on 2016/10/05 by Luke.Thatcher
[PLATFORM] [PS4] [!] Fix memory usage in PS4 crash handler server.
- The ORTMAPI com object implements a Dispose method which we we're calling, so the object was leaked until it eventually gets GC'd.
- Whilst that object is alive, the orbis-debugserver-x64.exe process stays alive, using up to 2GB memory per instance.
- Also limited the server to processing a single crash dump at once, via a task queue.
Change 3151608 on 2016/10/05 by Nick.Shin
fix CIS build warnings and errors
this is for HTML5 platform
Change 3151851 on 2016/10/05 by Michael.Trepka
Added DesktopRect and WorkArea to FMonitorInfo for desktop platforms and used that to fix an issue in SceneViewport where windowed fullscreen mode would be forced to primary monitor and incorrectly positioned on desktops where a taskbar/dock/etc. was on the left
#jira FORT-30638
Change 3152085 on 2016/10/05 by Josh.Adams
- Fixing some Wolf Launcher things (icon, string)
Change 3152451 on 2016/10/05 by Daniel.Lamb
Enabled logging to help debug shader compiler issue.
#test Cook Paragon.
Change 3152880 on 2016/10/05 by Dmitry.Rekman
Linux: add support for new multiarch toolchain.
- Redoing the change as submitted to Dev-Mobile.
Change 3152957 on 2016/10/05 by Dmitry.Rekman
Linux: fix crosstoolchain for non-AutoSDKs case.
- Redoing the fix for UE-36899 from Dev-Mobile.
Change 3153109 on 2016/10/06 by Keith.Judge
Remove D3D11_RESOURCE_MISC_SHARED from XB1 D3D11.x RHI as it is invalid.
Change 3153176 on 2016/10/06 by Keith.Judge
Xbox One - Disable engine analytics on XB1 shipping games, as per XRs. Verified http requests from devkit with Fiddler.
Change 3153213 on 2016/10/06 by Keith.Judge
Xbox One - Plug small memory leak in the movie player.
Change 3153258 on 2016/10/06 by Josh.Adams
- Moved Wolf OSS to proper location for Online plugins
Change 3153450 on 2016/10/06 by Josh.Adams
wolf net driver class stub
Change 3153451 on 2016/10/06 by Josh.Adams
- Fixed more Wolf OSS errors without special sdk
Change 3153471 on 2016/10/06 by Dmitry.Rekman
Linux: fix always rebuilding FixDeps.
Change 3153472 on 2016/10/06 by Josh.Adams
- Deleting some old test files
Change 3153535 on 2016/10/06 by Josh.Adams
- And... fixed some build errors again with the special sdk
Change 3153819 on 2016/10/06 by Daniel.Lamb
Remove some dead code in the cook on the fly server.
#test Cook QAGame
Change 3154050 on 2016/10/06 by Dmitry.Rekman
Linux: remove some of the clang 3.9.0 warnings.
- Add missing destructors.
- Deal with defined() being undefined in a #define.
- Prevent casting nullptr to reference (or suppress that warning for third party code).
- Case sensitivity fixes.
- Make deoptimization work properly.
- Code still crashes when compiling some of the editor targets.
Change 3154071 on 2016/10/06 by Josh.Adams
- Fixed an issue with Wolf shader compiler optimizing out global array
- Fixed Windows display internal thing
Change 3154567 on 2016/10/07 by Luke.Thatcher
[PLATFORM] [PS4] [!] Hack fix for PS4 crash handler site leaking sony debug server processes.
- Find and kill the process after each task
Change 3154570 on 2016/10/07 by Keith.Judge
Fix crash when run with -nolive. Unititialized member fix.
Change 3154572 on 2016/10/07 by Keith.Judge
Xbox One - Small optimization I did a while ago for Paragon and forgot to submit. Removed the SRV dynamic/static distinction in the state cache and calling code, as it makes no difference since fast semantics.
Change 3154656 on 2016/10/07 by Dmitry.Rekman
Linux: make Test configuration drop core by default.
Change 3154789 on 2016/10/07 by Dmitry.Rekman
Linux: remove multiple instances of target platform device.
Change 3154957 on 2016/10/07 by Joe.Graf
Changed additional plugin directories for project descriptors to be absolute in memory and path relative on disk
Change 3155298 on 2016/10/07 by Dmitry.Rekman
Fix CIS (LinuxTargetDevice not linking).
Change 3155684 on 2016/10/07 by Josh.Adams
- Added -PulseC option for Quickmatch
Change 3155691 on 2016/10/07 by Josh.Adams
- New Wolf NetDriver for P2P sockets. Not working yet
- OSS is _not_ currently usable, for reference
Change 3155750 on 2016/10/07 by Dmitry.Rekman
Linux: fix UT server build (UE-37042).
Change 3156816 on 2016/10/10 by Josh.Adams
- Fixed compile errors wihtout extra SDK bits
Change 3156872 on 2016/10/10 by Keith.Judge
Xbox One - Fix corrupted screenshots. Needed a GPU/CPU sync point, which legacy D3D11.x used to do for us, but now we have to do manually.
#jira UE-37038
Change 3156936 on 2016/10/10 by Josh.Adams
- Backed out changes from files that got pulled into a changelist by mistake
Change 3157602 on 2016/10/10 by Josh.Adams
- FIxed Wolf crash on level quit (at least in ShooterGame)
Change 3157676 on 2016/10/10 by Josh.Adams
- Fixed Wolf audio playback in latest SDK
Change 3158544 on 2016/10/11 by Josh.Adams
- Disabled one of the Wolf file mount points in Debug builds due to SDK bug
Change 3158603 on 2016/10/11 by Josh.Adams
- FIxed type in non-Debug
Change 3159257 on 2016/10/11 by Dmitry.Rekman
Linux: case-sensitive fixes.
Change 3159537 on 2016/10/12 by Luke.Thatcher
[PLATFORM] [PS4] [!] Fix leaking orbis-dbgserver-x64 processes in PS4 crash handler.
- We needed to call Marshal.ReleaseComObject on the CoreFileAPI object to shut down the child processes.
- Disabled the kill process hack.
[!] Also fixed "Unknown" usernames in PS4 crash dumps.
- Sony had changed the format of the PS4 settings file in system software 4.008.071.
[!] Fixed exception getting modules from crash dump when symbols have not been loaded.
- Just skipping this step now, as it was only used for logging.
Change 3159581 on 2016/10/12 by Joe.Conley
Wolf support for TPri_Lowest was missing, so I added that and the corresponding WolfThreadPriority_Lowest
Change 3159749 on 2016/10/12 by Luke.Thatcher
[PLATFORM] [PS4] [~] Re-enable kill process hack in PS4 crash server. The ReleaseComObject fix hasn't solved the leaking processes on the server.
Change 3160336 on 2016/10/12 by Daniel.Lamb
Fix for skip editor content flag being passed throught o UAT.
#jira UE-37223
Change 3160341 on 2016/10/12 by Dmitry.Rekman
Linux: fixes for Fortnite and Orion editors.
- Also, again disable XGE because clang 3.9.0-based toolchain crashes when compiling those with XGE.
Change 3160473 on 2016/10/12 by Nick.Shin
remove old emsdk
Change 3160528 on 2016/10/12 by Michael.Trepka
Copy of CL 3160314 from //Fortnite/Main
Fixed incorrect rect initialization in Mac GetDisplayMetrics
Change 3160591 on 2016/10/12 by Josh.Adams
- Fixed wolf coimpiling without stats
#jira UE-37230
Change 3160866 on 2016/10/12 by Dmitry.Rekman
OpenGL: fix swapped arguments.
- Cengiz noticed this while working on one of bugs.
Change 3160978 on 2016/10/12 by Josh.Adams
- Fixed issue with running out of Wolf audio pools on large games
Change 3160979 on 2016/10/12 by Josh.Adams
- Enabled Curl HTTP on Wolf, along with basic SSL (no local cert importing yet)
Change 3161025 on 2016/10/12 by Dmitry.Rekman
Disable poison proxy.
- Malloc::GetAllocationSize() may not account for alignment for mallocs like Binned and Binned2, resulting in a memory stomp.
Change 3161034 on 2016/10/12 by Josh.Adams
-Wolf Http changes - load .pem files if they exist (although they aren't being staged automatically yet)
- Added network pause to make sure its ready before we Http
Change 3161046 on 2016/10/12 by Dmitry.Rekman
TestPAL: adding a test for Malloc::GetAllocationSize().
Change 3161212 on 2016/10/13 by Dan.Mahashin
- Upgraded to new NXCP API. Confirmed to run ok with SunTemple on 0.11.2 SDK.
Change 3161624 on 2016/10/13 by Josh.Adams
- Fixed MAX_PATH usage, should be PLATFORM_MAX_FILEPATH_LENGTH
Change 3161639 on 2016/10/13 by Josh.Adams
- Added curl to main Wolf build since now it's used not just with OSS
Change 3161737 on 2016/10/13 by Josh.Adams
- Added support for staging .pem files for SSL peer verification
Change 3161923 on 2016/10/13 by Dmitry.Rekman
Linux: provide choice between RTLD_GLOBAL/LOCAL when opening DSOs (UE-36716).
- By default, Unreal modules will be opened with RTLD_LOCAL (so the hot reload has a chance to work).
- However, if "ue4_module_options" symbol is exported (a string with comma-separated options), and "linux_global_symbols" is present in that string, RTLD_LAZY will be used.
- DSOs that don't have either ue4_module_options nor are recognized as UE4 modules will be loaded RTLD_GLOBAL.
- PR #2823 by 20tab.
Change 3163532 on 2016/10/14 by Michael.Trepka
Copy of CL 3162466
By default, do not compile Mac OpenGL and Metal SM4 shaders while cooking
#jira UE-37088
Change 3163550 on 2016/10/14 by Josh.Stoddard
Fix key event processing during movies using FDefaultGameMoviePlayer
#jira UE-37294
Change 3163687 on 2016/10/14 by Josh.Adams
- Added a workaround for Wolf crashing inside vswprintf with %p
Change 3163693 on 2016/10/14 by Josh.Adams
- Added a delegate for getting extra on-screen messages (like the Shaders to compile, etc).
Change 3163725 on 2016/10/14 by Josh.Adams
- Added high level Wolf network transition functions for Wolf
Change 3163745 on 2016/10/14 by Josh.Adams
- Wolf OSS changes for new high level networking logic, cleaned up includes, added on screen messages with status
Change 3164455 on 2016/10/17 by Josh.Adams
- SOmehow a file wasn't checked out, but writable. Checking in now
Change 3164630 on 2016/10/17 by Michael.Trepka
Copy of CL 3162062
Replaced FWindowsCursor hack for warping the mouse cursor to the center of the viewport with a better fix for the original problem (users being able to resize the window while the cursor is hidden and the mouse controls the camera). This change removes round window corners in borderless window mode and disables window resizing when the cursor is hidden.
Change 3164975 on 2016/10/17 by Joe.Graf
Changed the New Plugin Wizard to only show plugin types available for that project type (content only or code)
Change 3165213 on 2016/10/17 by Josh.Adams
- Fixed some perf testing by disabling the startup benchmark for UT on non-desktop platforms
Change 3165576 on 2016/10/18 by Dan.Mahashin
- Fix broken colors in QAGame UE-37197: depth write cannot work without depth test being enabled.
Change 3165809 on 2016/10/18 by Josh.Stoddard
Enforce UMaterialExpressionActorPositionWS dependency on primitive uniform buffer #jira UE-37425 #rb chris.bunner
Change 3165948 on 2016/10/18 by Owen.Stupka
Fix exception when creating an exception to say we don't have a 32-bit VC compiler installed.
Change 3166330 on 2016/10/18 by Dmitry.Rekman
Linux: disable XGE on Windows (UE-37446).
- XGE does not seem to handle new clang 3.9.0 toolchain well, with very reproducible crashes.
Change 3166456 on 2016/10/18 by Dmitry.Rekman
Fix build breakage with clang 3.8.1.
- always_inline was still applied to debug builds and as such was ignored.
Change 3166457 on 2016/10/18 by Chris.Babcock
Add missing MultiviewOVR functions for Android deferred
#jira UE-37401
#ue4
#android
Change 3166469 on 2016/10/18 by Dmitry.Rekman
Linux: make target platform modules independent (UE-37370).
- Module load order is different for target platform modules between UE4Editor and UE4Editor-Cmd, and dependent modules may end up being loaded first.
Change 3166755 on 2016/10/18 by Joe.Barnes
[UE-35552] Enable PLATFORM_ENABLE_VECTORINTRINSICS_NEON on Wolf.
Change 3166757 on 2016/10/18 by Joe.Barnes
[UE-35552] Optimized platform specific implementation of some common math functions.
Change 3166761 on 2016/10/18 by Joe.Barnes
Use new 64 bit Power of 2 function.
Change 3167865 on 2016/10/19 by Josh.Adams
- Wolf P2P/NAT stuff working!
- Minor Wolf net mode fixes
Change 3167869 on 2016/10/19 by Josh.Adams
- Moved a blocking net call for Wolf Http into a thread
Change 3168100 on 2016/10/19 by Joe.Barnes
#include <NVN/nvn_CppMethods.h>. Fixes a compiler problem with some inline functions not being available during compile phase.
Change 3168101 on 2016/10/19 by Joe.Barnes
Exposed a function to create a platform based filename
Change 3168141 on 2016/10/19 by Dmitry.Rekman
TestPAL: better test for allocation sizes.
Change 3168144 on 2016/10/19 by Dmitry.Rekman
Fix for FMallocBinned::GetAllocationSize() for aligned allocations.
Redoing SteveR's fix in 4.13/4.14.
Copied from CL# 3165739.
#jira UE-37249
#jira UE-37243
Change 3168213 on 2016/10/19 by Josh.Adams
- Wolf OSS function rename
Change 3168313 on 2016/10/19 by Josh.Adams
Rename/move file(s)
Change 3168691 on 2016/10/20 by Dan.Mahashin
- Fixed application teardown and memory leak:
- NVNCommandContext was failing to free the last frame resources on shutdown (resources were thought to be in use because never actually processed by GPU)
- NVNCommandContext was leaking a FSyncedFrameDestruction at each frame
- NVNTempBlockManager was not freeing all of its temp blocks upon shutdown
Change 3168986 on 2016/10/20 by Josh.Adams
- Removed some log spam
Change 3168990 on 2016/10/20 by Josh.Adams
- Removed dead code
Change 3169091 on 2016/10/20 by Josh.Adams
Moved UT's OnlineGameplayFramework plugin into NotForLicensees so licensees don't need Mcp
Change 3169262 on 2016/10/20 by Josh.Adams
- Updated the OnScreenMessages to use a TMap of severity to message, so we can have multiple colors, etc
- Also has some fixes needed from a merge down (oops)
Change 3169363 on 2016/10/20 by Dmitry.Rekman
TestPAL: final synth test for stomp.
Change 3169436 on 2016/10/20 by Michael.Trepka
Change the minimum supported macOS version setting in Info.plists to 10.11.6
Change 3169510 on 2016/10/20 by Dmitry.Rekman
TestPAL: added stomp test with poison proxy.
Change 3169972 on 2016/10/20 by Dmitry.Rekman
Re-enable PoisonProxy.
Change 3170000 on 2016/10/20 by Dmitry.Rekman
Linux: minor code cleanup.
Change 3170400 on 2016/10/21 by Josh.Adams
- Added a comment with current supported SDK in UEBuildWolf.cs
Change 3170929 on 2016/10/21 by Josh.Adams
- Added generic Elf symbol parser to MemoryProfiler2 app. It uses nm.exe, and any platform that uses it would need to subclass it (which Wolf now does)
Change 3171266 on 2016/10/21 by Dmitry.Rekman
Linux: fix Setup.sh on Ubuntu 16.10 (UE-37621)
Change 3172847 on 2016/10/24 by Josh.Adams
- Added a null Material check to the recent change to UMaterialExpressionActorPositionWS
#jira UE-37730
Change 3173535 on 2016/10/25 by Josh.Adams
- Helping clean up some misplaced files, since obliterate caused problems with BulletProofSync
[CL 3174242 by Josh Adams in Main branch]
2016-10-25 18:15:13 -04:00
|
|
|
|
|
|
|
|
// Mobile multi-view setup
|
|
|
|
|
const bool bMultiViewSupport = ExtensionsString.Contains(TEXT("GL_OVR_multiview"));
|
|
|
|
|
const bool bMultiView2Support = ExtensionsString.Contains(TEXT("GL_OVR_multiview2"));
|
|
|
|
|
const bool bMultiViewMultiSampleSupport = ExtensionsString.Contains(TEXT("GL_OVR_multiview_multisampled_render_to_texture"));
|
|
|
|
|
if (bMultiViewSupport && bMultiView2Support && bMultiViewMultiSampleSupport)
|
|
|
|
|
{
|
|
|
|
|
// function pointers are set in Init as part of ENUM_GL_ENTRYPOINTS_OPTIONAL
|
|
|
|
|
bSupportsMobileMultiView = (glFramebufferTextureMultiviewOVR != NULL) && (glFramebufferTextureMultisampleMultiviewOVR != NULL);
|
|
|
|
|
|
|
|
|
|
// Just because the driver declares multi-view support and hands us valid function pointers doesn't actually guarantee the feature works...
|
|
|
|
|
if (bSupportsMobileMultiView)
|
|
|
|
|
{
|
|
|
|
|
// Disable for now, not supported with deferred path yet
|
|
|
|
|
bSupportsMobileMultiView = false;
|
|
|
|
|
//UE_LOG(LogRHI, Log, TEXT("Device supports mobile multi-view."));
|
|
|
|
|
}
|
|
|
|
|
}
|
2014-09-18 17:49:40 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
// OpenGL platform functions
|
|
|
|
|
|
|
|
|
|
class FScopeContext
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
FScopeContext(FPlatformOpenGLContext* PlatformContext)
|
|
|
|
|
{
|
|
|
|
|
check(PlatformContext);
|
|
|
|
|
LastContext = eglGetCurrentContext();
|
|
|
|
|
LastSurface = eglGetCurrentSurface(EGL_DRAW);
|
|
|
|
|
bSameContextAndSurface = (LastContext == PlatformContext->eglContext) && (LastSurface == PlatformContext->eglSurface);
|
|
|
|
|
if (!bSameContextAndSurface)
|
|
|
|
|
{
|
|
|
|
|
eglMakeCurrent(AndroidEGL::GetInstance()->GetDisplay(), PlatformContext->eglSurface, PlatformContext->eglSurface, PlatformContext->eglContext);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
~FScopeContext( void )
|
|
|
|
|
{
|
|
|
|
|
if (!bSameContextAndSurface)
|
|
|
|
|
{
|
|
|
|
|
if (LastContext)
|
|
|
|
|
{
|
|
|
|
|
eglMakeCurrent(AndroidEGL::GetInstance()->GetDisplay(), LastSurface, LastSurface, LastContext);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
eglMakeCurrent(AndroidEGL::GetInstance()->GetDisplay(), EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
EGLContext LastContext;
|
|
|
|
|
EGLSurface LastSurface;
|
|
|
|
|
bool bSameContextAndSurface;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Enable/Disable debug context from the commandline
|
|
|
|
|
*/
|
|
|
|
|
static bool PlatformOpenGLDebugCtx()
|
|
|
|
|
{
|
|
|
|
|
#if UE_BUILD_DEBUG
|
|
|
|
|
return ! FParse::Param(FCommandLine::Get(),TEXT("openglNoDebug"));
|
|
|
|
|
#else
|
|
|
|
|
return FParse::Param(FCommandLine::Get(),TEXT("openglDebug"));;
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
struct FPlatformOpenGLDevice
|
|
|
|
|
{
|
|
|
|
|
void SetCurrentSharedContext();
|
|
|
|
|
void SetCurrentRenderingContext();
|
|
|
|
|
void SetCurrentNULLContext();
|
|
|
|
|
|
|
|
|
|
FPlatformOpenGLDevice();
|
|
|
|
|
~FPlatformOpenGLDevice();
|
|
|
|
|
void Init();
|
|
|
|
|
void LoadEXT();
|
|
|
|
|
void Terminate();
|
|
|
|
|
void ReInit();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
FPlatformOpenGLDevice::FPlatformOpenGLDevice()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FPlatformOpenGLDevice::~FPlatformOpenGLDevice()
|
|
|
|
|
{
|
|
|
|
|
AndroidEGL::GetInstance()->DestroyBackBuffer();
|
|
|
|
|
AndroidEGL::GetInstance()->Terminate();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void FPlatformOpenGLDevice::Init()
|
|
|
|
|
{
|
|
|
|
|
UE_LOG( LogRHI, Warning, TEXT("Entering FPlatformOpenGLDevice::Init"));
|
|
|
|
|
extern void InitDebugContext();
|
|
|
|
|
|
2016-03-11 09:55:03 -05:00
|
|
|
AndroidEGL::GetInstance()->InitSurface(false, true);
|
2014-09-18 17:49:40 -04:00
|
|
|
AndroidEGL::GetInstance()->SetSingleThreadRenderingContext();
|
|
|
|
|
|
|
|
|
|
// Initialize all of the entry points we have to query manually
|
|
|
|
|
#define GET_GL_ENTRYPOINTS(Type,Func) Func = (Type)eglGetProcAddress(#Func);
|
|
|
|
|
ENUM_GL_ENTRYPOINTS_CORE(GET_GL_ENTRYPOINTS);
|
|
|
|
|
ENUM_GL_ENTRYPOINTS_MANUAL(GET_GL_ENTRYPOINTS);
|
|
|
|
|
ENUM_GL_ENTRYPOINTS_OPTIONAL(GET_GL_ENTRYPOINTS);
|
|
|
|
|
|
|
|
|
|
// Check that all of the required entry points have been initialized
|
|
|
|
|
bool bFoundAllEntryPoints = true;
|
|
|
|
|
#define CHECK_GL_ENTRYPOINTS(Type,Func) if (Func == NULL) { bFoundAllEntryPoints = false; UE_LOG(LogRHI, Warning, TEXT("Failed to find entry point for %s"), TEXT(#Func)); }
|
|
|
|
|
ENUM_GL_ENTRYPOINTS_CORE(CHECK_GL_ENTRYPOINTS);
|
|
|
|
|
|
|
|
|
|
checkf(bFoundAllEntryPoints, TEXT("Failed to find all required OpenGL entry points."));
|
|
|
|
|
|
|
|
|
|
ENUM_GL_ENTRYPOINTS_MANUAL(CHECK_GL_ENTRYPOINTS);
|
|
|
|
|
ENUM_GL_ENTRYPOINTS_OPTIONAL(CHECK_GL_ENTRYPOINTS);
|
|
|
|
|
|
|
|
|
|
const FString ExtensionsString = ANSI_TO_TCHAR((const ANSICHAR*)glGetString(GL_EXTENSIONS));
|
|
|
|
|
|
|
|
|
|
// If EXT_disjoint_timer_query wasn't found, NV_timer_query might be available
|
|
|
|
|
{
|
|
|
|
|
// These functions get exported under different names by different extensions
|
|
|
|
|
// Can't just check for NULL, because Android returns and unimplemented function catch
|
|
|
|
|
|
|
|
|
|
if ( !ExtensionsString.Contains(TEXT("GL_EXT_disjoint_timer_query")) && ExtensionsString.Contains(TEXT("GL_NV_timer_query")))
|
|
|
|
|
{
|
|
|
|
|
glQueryCounterEXT = (PFNGLQUERYCOUNTEREXTPROC)eglGetProcAddress("glQueryCounterNV");
|
|
|
|
|
glGetQueryObjectui64vEXT = (PFNGLGETQUERYOBJECTUI64VEXTPROC)eglGetProcAddress("glGetQueryObjectui64vNV");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const bool bAdvancedFeatures = FOpenGL::SupportsAdvancedFeatures();
|
|
|
|
|
|
|
|
|
|
// devices that have ES2.0 only might support some ES3.x core functionality with extensions
|
|
|
|
|
if(!bAdvancedFeatures)
|
|
|
|
|
{
|
|
|
|
|
if(ExtensionsString.Contains(TEXT("GL_EXT_occlusion_query_boolean")))
|
|
|
|
|
{
|
|
|
|
|
glGenQueries = (PFNGLGENQUERIESPROC(eglGetProcAddress("glGenQueriesEXT")));
|
|
|
|
|
glDeleteQueries = (PFNGLDELETEQUERIESPROC(eglGetProcAddress("glDeleteQueriesEXT")));
|
|
|
|
|
glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC)((void*)eglGetProcAddress("glGetQueryObjectuivEXT"));
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Android doesn't setup formats completely compatible with glTexStorage in ES2 mode
|
|
|
|
|
glTexStorage2D = nullptr;
|
|
|
|
|
glTexStorage3D = nullptr;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2015-08-25 19:41:01 -04:00
|
|
|
// For MSAA
|
|
|
|
|
glFramebufferTexture2DMultisampleEXT = (PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC)((void*)eglGetProcAddress("glFramebufferTexture2DMultisampleEXT"));
|
|
|
|
|
glRenderbufferStorageMultisampleEXT = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)((void*)eglGetProcAddress("glRenderbufferStorageMultisampleEXT"));
|
|
|
|
|
|
2014-09-18 17:49:40 -04:00
|
|
|
if (!bFoundAllEntryPoints)
|
|
|
|
|
{
|
|
|
|
|
UE_LOG(LogRHI, Warning, TEXT("Failed to acquire all optional OpenGL entrypoints, may fall back to OpenGL ES 2.0"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (bAdvancedFeatures)
|
|
|
|
|
{
|
|
|
|
|
GLuint DefaultVertexArrayObject = 0;
|
|
|
|
|
glGenVertexArrays(1, &DefaultVertexArrayObject);
|
|
|
|
|
glBindVertexArray(DefaultVertexArrayObject);
|
|
|
|
|
}
|
|
|
|
|
InitDefaultGLContextState();
|
|
|
|
|
InitDebugContext();
|
|
|
|
|
|
|
|
|
|
AndroidEGL::GetInstance()->SetMultithreadRenderingContext();
|
|
|
|
|
if (bAdvancedFeatures)
|
|
|
|
|
{
|
|
|
|
|
GLuint DefaultVertexArrayObject = 0;
|
|
|
|
|
glGenVertexArrays(1, &DefaultVertexArrayObject);
|
|
|
|
|
glBindVertexArray(DefaultVertexArrayObject);
|
|
|
|
|
}
|
|
|
|
|
InitDefaultGLContextState();
|
|
|
|
|
InitDebugContext();
|
|
|
|
|
|
|
|
|
|
AndroidEGL::GetInstance()->SetSharedContext();
|
|
|
|
|
if (bAdvancedFeatures)
|
|
|
|
|
{
|
|
|
|
|
GLuint DefaultVertexArrayObject = 0;
|
|
|
|
|
glGenVertexArrays(1, &DefaultVertexArrayObject);
|
|
|
|
|
glBindVertexArray(DefaultVertexArrayObject);
|
|
|
|
|
}
|
|
|
|
|
InitDefaultGLContextState();
|
|
|
|
|
InitDebugContext();
|
|
|
|
|
|
|
|
|
|
PlatformSharedContextSetup(this);
|
|
|
|
|
|
|
|
|
|
AndroidEGL::GetInstance()->InitBackBuffer(); //can be done only after context is made current.
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void FPlatformOpenGLDevice::SetCurrentSharedContext()
|
|
|
|
|
{
|
|
|
|
|
AndroidEGL::GetInstance()->SetCurrentSharedContext();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void FPlatformOpenGLDevice::SetCurrentRenderingContext()
|
|
|
|
|
{
|
|
|
|
|
AndroidEGL::GetInstance()->SetCurrentRenderingContext();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FPlatformOpenGLDevice* PlatformCreateOpenGLDevice()
|
|
|
|
|
{
|
|
|
|
|
FPlatformOpenGLDevice* Device = new FPlatformOpenGLDevice();
|
|
|
|
|
Device->Init();
|
|
|
|
|
return Device;
|
|
|
|
|
}
|
|
|
|
|
|
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3154632)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3122543 on 2016/09/13 by Ben.Woodhouse
Override HasOcclusion for Widget3DComponentProxy to detect if the material is has depth testing enabled.
#jira UE-35878
Change 3122544 on 2016/09/13 by Ben.Woodhouse
Shadow stencil optimisation with cvar (enabled by default)
Avoids redundant clearing the stencil buffer for per-object and pre shadows by zeroing the stencil during testing, following discussion on UDN.
This means we don't benefit from Hi Stencil on GCN for the shadow projection draw calls, but it's still faster in all the cases I could find, including for the player character where the bounding box is quite large. (Note: early stencil still works fine, according to PIX)
Shadow projection GPU time profiling :
Test map with 35 characters, stationary directional light
- 4ms-2ms on XB1
- 2.5ms to 0.9ms on PC (r9-390X)
- 3ms-2ms on PS4
Paragon PS4 (roughly 20% reduced - from ~0.39ms)
Change 3122687 on 2016/09/13 by Rolando.Caloca
DR - vk - Fix ES31 crash
Change 3122691 on 2016/09/13 by Rolando.Caloca
DR - vk - Fixes for SDK 1.0.26.0
Change 3122778 on 2016/09/13 by Rolando.Caloca
DR - vk - Fix number of layers on barrier
Change 3122921 on 2016/09/13 by Rolando.Caloca
DR - vk - Fix ES3.1
Change 3122925 on 2016/09/13 by Ben.Woodhouse
Fix sky lighting issue with skin and re-enable non-checkerboard lighting by default (fallout from lightaccumulator refactor)
#jira UE-35904
Change 3123016 on 2016/09/13 by Chris.Bunner
Fixed adaptive tessellation, broken by CL 3089208 refactor.
#jira UE-35341
Change 3123079 on 2016/09/13 by Rolando.Caloca
DR - vk - Force StoreOp store instead of DontCare everywhere (temporarily)
Change 3123503 on 2016/09/13 by David.Hill
#jira UE-25623
converted a check() to checkf() to include better diagnostic information.
Change 3123617 on 2016/09/13 by Guillaume.Abadie
Fixes artifact when the camera direction is almost parallel to a wide plane with SSR.
#jira UE-35128
Change 3123743 on 2016/09/13 by Brian.Karis
Separate mesh reduction interfaces for static and skeletal.
Zero bad tangents from input mesh.
Change 3125378 on 2016/09/14 by Arne.Schober
DR - [UE-34481] - Extract all the State which is necessary to execute the DebugTextDrawingDelegate from the SceneProxy into its own Helpers to be drawn to the canvas later on. The issue was that the SceneProxys are only owned by the RT after their creation and the GT should avoid reading from or writing state to them.
Change 3125527 on 2016/09/14 by Arne.Schober
DR - [UE-34481] - Fix UT build and mac
Change 3125741 on 2016/09/14 by Rolando.Caloca
DR - Extra debug mode for tracking down SCW crashes (r.DumpSCWQueuedJobs=1)
Change 3125763 on 2016/09/14 by Rolando.Caloca
DR - vk - Added new Renderpass cache
- Fix buffer barrier warning
Change 3125769 on 2016/09/14 by Rolando.Caloca
DR - Renamed cvar to r.DumpSCWQueuedJobs
Change 3125771 on 2016/09/14 by Rolando.Caloca
DR - Added support for SV_ClipDistance on GL3 & 4
Change 3125792 on 2016/09/14 by Arne.Schober
DR - [UE-34481] - Fix Odin and PS4
Change 3125880 on 2016/09/14 by Arne.Schober
DR - [UE-34481] - Fix Fortnite
Change 3125968 on 2016/09/14 by Brian.Karis
Removed comment
Change 3126315 on 2016/09/15 by Ben.Woodhouse
GPU profiler robustness
- Change stat gathering update to handle multiple views and non-scenerenderer stats (such Slate) properly
- Simplify gathering logic
- Fix race condition where we could read back queries before they're submitted on the RHI thread.
- Fix for movie player stat gathering - disable gathering outside of the main engine tick
#jira UE-35975
Change 3126792 on 2016/09/15 by Rolando.Caloca
DR - vk - Release render pass cache
Change 3126804 on 2016/09/15 by Rolando.Caloca
DR - vk - Fix UpdateTexture2D()
#jira UE-34151
Change 3126884 on 2016/09/15 by Rolando.Caloca
DR - vk - Compile fix
Change 3126953 on 2016/09/15 by Rolando.Caloca
DR - Enable GPU capture when running OpenGL under RenderDoc
- Will also set the memory mode to non coherent so not to kill performance on RenderDoc
Change 3126966 on 2016/09/15 by Rolando.Caloca
DR - Allow cooking for Vulkan SM4 to help with packaging
Change 3127082 on 2016/09/15 by Guillaume.Abadie
Wraps up contact shadows for release fixing different artifacts and handling correctly their screen space length.
#jira UE-35367, UE-33602, UE-33603, UE-33604
#review-3125887 @brian.karis
Change 3127130 on 2016/09/15 by Mark.Satterthwaite
Add overloads to as* functions in hlslcc - HLSL allows you to call these on variables of the same type, in which case it simply returns the existing value but we had only defined the float<->u/int conversions, so hlslcc added implicit casts that broke such cases (i.e. asuint(uint) -> floatBitsToUint(float(uint))). This change defines the missing overloads as returns with regular casts.
#jira FORT-25869
#jira UE-34263
Change 3127475 on 2016/09/15 by Rolando.Caloca
DR - vk - Debug dump
Change 3128131 on 2016/09/16 by Ben.Woodhouse
(Integrated from //UE4/Private-Partner-NREAL/...)
Alpha output support for postprocess materials (optional via a parameter)
Needed for end of frame compositing. Could be used to pass intermediate data from one blendable postprocess to another (e.g edge detection)
Change 3128135 on 2016/09/16 by Ben.Woodhouse
GPU profiler (PS4) - remove bubbles between commandlist submissions from query times
Use r.ps4.AdjustRenderQueryTimestamps cvar to enable/disable (defaults to on)
Also fixes some potential precision issues with unit GPU timing
Change 3128247 on 2016/09/16 by Rolando.Caloca
DR - vk - Cache framebuffers
Change 3128593 on 2016/09/16 by Rolando.Caloca
DR - vk - Fix for crash loading map
#jira UE-36072
Change 3128759 on 2016/09/16 by Mark.Satterthwaite
Back out changelist 3127130 - its causing a build failure in FPostProcessVelocityScatterVS because hlslcc is picking the wrong as_* overload.
Change 3130236 on 2016/09/19 by Chris.Bunner
Exposed full SceneCaptureComponent classes instead of select methods.
#jira UE-35996
Change 3130388 on 2016/09/19 by Rolando.Caloca
DR - Avoid crash when adding dynamic primitives
#jira UE-35327
Change 3130393 on 2016/09/19 by Marc.Olano
Improve vector noise tooltips & documentation
Change 3130547 on 2016/09/19 by Ben.Woodhouse
Fix for ensure fail when initializing point light shadowmaps.
This came about because cubemap rendertargets always have Extents of (Resolution, 0). The Y component was implicitly used to determine if it was a cubemap, which is odd... The fix was to make the definition explicit via a flag and initialize both the X and Y parameters.
I suspect the ensure started happening recently due to a more recent change, but fixing the underlying logic seems like the correct fix.
#jira UE-35837
Change 3130578 on 2016/09/19 by Daniel.Wright
Workaround OpenGL/NVidia bug with non-power-of-2 textures by disabling CSM atlassing if we're using OpenGL
Change 3130682 on 2016/09/19 by Rolando.Caloca
DR - Better fix for UE-35327
#jira UE-35327
Change 3130767 on 2016/09/19 by Uriel.Doyon
Better handling of color array in VisualizeComplexity code to prevent assert.
#jira UE-29332
Change 3130965 on 2016/09/19 by Arne.Schober
DR - [UE-35679] - the crash was caused by the Resource of the UTexture being Null. And one of the Kismet Nodes calling a function on that resource. The solution was to disable that call from Kismet when only cooking.
Change 3130967 on 2016/09/19 by Chris.Bunner
Hid redundant texture sampler properties from texture object parameter.
Hid redundant texture property input on texture parameter nodes.
Fixed copy-paste error in expression texture parameter docs.
#jira UE-32724
Change 3131118 on 2016/09/19 by Mark.Satterthwaite
Second attempt - this time with the correct input types. Add overloads to as* functions in hlslcc - HLSL allows you to call these on variables of the same type, in which case it simply returns the existing value but we had only defined the float<->u/int conversions, so hlslcc added implicit casts that broke such cases (i.e. asuint(uint) -> floatBitsToUint(float(uint))). This change defines the missing overloads as returns with regular casts.
#jira FORT-25869
#jira UE-34263
Change 3131153 on 2016/09/19 by Rolando.Caloca
DR - Fix recompute normals when triangles have a LHS tangent basis
Integrate from 3028634
- Also make meshes that don't have morphs be able to run through the recompute normals path
#jira UE-35472
Change 3131228 on 2016/09/19 by Mark.Satterthwaite
Duplicate CL #3114668: Always disable asynchronous shader compilation for the global shader map on Metal as some of them are needed very early.
#jira UE-35240
Change 3131246 on 2016/09/19 by Rolando.Caloca
DR - Shrink gpu skinning permutations
Change 3131261 on 2016/09/19 by Mark.Satterthwaite
Fix Metal validation failures due to particle rendering not binding buffers to all buffer inputs declared in the shader.
ContentExamples Effects no longer aborts complaining that the particle system didn't bind a required buffer.
Change 3131265 on 2016/09/19 by Mark.Satterthwaite
Fix FMetalDynamicRHI::RHIReadSurfaceData for shared textures on iOS.
Change 3131271 on 2016/09/19 by Mark.Satterthwaite
Use private memory for the Metal stencil SRV workaround needed on El Capitan.
Change 3131273 on 2016/09/19 by Mark.Satterthwaite
Disable the lazy-encoder construction in Metal for AMD - there is a situation that causes the lazy construction to perform a clear that isn't wanted and so far this hasn't been tracked down and fixed. Until then, this will render correctly.
Change 3131280 on 2016/09/19 by Mark.Satterthwaite
For GLSL interpolation mode flags must come before storage mode flags and you can't redeclare the system variable gl_Layer to use a differing interpolation mode.
Change 3131283 on 2016/09/19 by Mark.Satterthwaite
Change the ShaderCache to not cache resource bindings in the draw states for shader platforms that don't care - reduces the number of draw states considered significantly without reducing effectiveness. We can support ShaderCache with Metal SM5 but not the RHI thread enabled so change when we enable it and make sure we load the binary shader cache.
Change 3131402 on 2016/09/19 by Rolando.Caloca
DR - Disambiguate callstack
#jira UE-34415
Change 3131469 on 2016/09/19 by Rolando.Caloca
DR - vk - Check if we can allocate descriptors off a pool
Change 3131482 on 2016/09/19 by Rolando.Caloca
DR - vk - Remove unused var
Change 3131506 on 2016/09/19 by Mark.Satterthwaite
With permission from Josh.A & Michael.T, deprecate Mac OpenGL support. For now this just means visibly warning users with message boxes - but in a future release OpenGL support will be removed from macOS.
Change 3131536 on 2016/09/19 by Rolando.Caloca
DR - vk - Compile fix
Change 3131564 on 2016/09/19 by Rolando.Caloca
DR - vk - Submit Hint
- Disable framebuffer recycling as its causing a hang
Change 3131625 on 2016/09/19 by Mark.Satterthwaite
Inside MetalRHI add an optional cache for disposed texture objects so we may reuse them - controlled by CVAR rhi.Metal.TextureCacheMode which must be set prior to running as it can't be changed at runtime. Settings: 0 = off, 1 (default) = will attempt to reuse private memory texture objects within the frame they are released otherwise they are disposed of as before. Setting 2 extends the caching to all textures - though Managed/Shared textures cannot be reused until after the frame in which they were released has been processed on the GPU. In this mode id<MTLTexture> objects are never returned to the OS so in order to conserve VRAM calls to setPurgeableState are made to allow the driver to reclaim unusued memory if required.
Change 3131630 on 2016/09/19 by Mark.Satterthwaite
More statistics in Metal added to track down where performance was going in a particular project but which may be more generally useful.
Change 3131955 on 2016/09/20 by Gil.Gribb
Merging //UE4/Dev-Main@3129758 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3131978 on 2016/09/20 by Gil.Gribb
CIS fix
Change 3132584 on 2016/09/20 by Ben.Woodhouse
Add some additional checks to help track down a rare crash with terrain rendering and shader recompiling
#jira UE-35937
Change 3132696 on 2016/09/20 by Mark.Satterthwaite
Use set*Bytes to handle uploading buffers < 4Kb when available - this is faster than lots of small Metal buffers and reduces the amount of GPU heap fragmentation. Where the API feature isn't available or hasn't been tested yet we'll use another ring-buffer inside the MetalCommandEncoder to emulate it.
Change 3132772 on 2016/09/20 by Mark.Satterthwaite
Rework Metal's handling of RHISetStreamSource calls that override the stride of vertex declarations to be much more efficient.
Change 3132870 on 2016/09/20 by Ben.Woodhouse
Fix mac compile error
Change 3133049 on 2016/09/20 by Brian.Karis
Changed light source shapes in reflection captures to use alpha
Change 3133057 on 2016/09/20 by Brian.Karis
Alphaed out on spot light cone as well.
Change 3133263 on 2016/09/20 by Rolando.Caloca
DR - vk - Debug names for objects
Change 3133292 on 2016/09/20 by Rolando.Caloca
DR - vk - Fix SRGB upload/formats
Change 3133395 on 2016/09/20 by Rolando.Caloca
DR - vk - SM5 fixes
Change 3134026 on 2016/09/21 by Gil.Gribb
Merging //UE4/Dev-Main@3133983 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3134663 on 2016/09/21 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3134208. Initial material attribute extensibility changes.
#jira UE-34347
Change 3134730 on 2016/09/21 by Arne.Schober
DR - [UE-34481] - Fix minor brokenness found by Gil
Change 3134792 on 2016/09/21 by Chris.Bunner
Fixed compile errors for non-editor builds.
Change 3135214 on 2016/09/21 by Rolando.Caloca
DR - vk - Fix visualize texture
- Dump memory when OOM (to track leaks)
Change 3135225 on 2016/09/21 by Rolando.Caloca
DR - vk - Ensure on exit if mem leak
- Update fences if running wait for idle
Change 3135672 on 2016/09/22 by Gil.Gribb
Merging //UE4/Dev-Main@3135568 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3135793 on 2016/09/22 by Rolando.Caloca
DR - vk - Set dynamic state after binding pipeline or on a fresh cmd buffer
Change 3135816 on 2016/09/22 by Rolando.Caloca
DR - Add names for d3d on renderdoc
Change 3135894 on 2016/09/22 by Chris.Bunner
Fixed initialization order warning.
Change 3136024 on 2016/09/22 by Rolando.Caloca
DR - vk - Fix stencil faces
Change 3136042 on 2016/09/22 by Marcus.Wassmer
Fix compile error
Change 3136046 on 2016/09/22 by Chris.Bunner
Renamed material for PostTonemapHDRColor visualization to reflect actual usage.
Change 3136308 on 2016/09/22 by Uriel.Doyon
Changed how the component relative rotation is computed, in order to have more consistency after blueprint rescript.
#jira UE-36094
Change 3136798 on 2016/09/22 by Chris.Bunner
Gather object references from stereo view state in USceneCaptureComponent. This matches behavior of other classes such as ULocalPlayer.
Change 3137092 on 2016/09/22 by Rolando.Caloca
DR - vk - Rename pipeline to gfx pipeline
Change 3137263 on 2016/09/22 by Mark.Satterthwaite
Duplicate CL #3135157:
Fix one cause of Metal crashes loading into a zone - the PlanarReflection shader code needs to always set the IsStereoParameter so that the shader can perform the if-test without causing an invalid GPU access.
#jira FORT-30061
Change 3137265 on 2016/09/22 by Mark.Satterthwaite
Duplicate CL #3135169:
Correct Metal texture creation for AVF media framework - we can't provide a render-targetable version of the texture without blitting. The native texture we get is a GPU copy that can be made CPU accessible (i.e. it is not tiled).
Change 3137266 on 2016/09/22 by Mark.Satterthwaite
Duplicate CL #3135237:
Metal validation layer fix: under Metal if there are no reads from the vertex stage-in buffers we should use the Empty vertex declaration, not the filter declaration, otherwise we have to bind a redundant vertex stream buffer to silence the validation layer.
Change 3137268 on 2016/09/22 by Mark.Satterthwaite
Duplicate CL #3136033:
To fix the Fortnite login screen force Nvidia Macs to use the set*Bytes API for small buffer updates even on El Capitan. We can't do this globally as Intel didn't implement these functions until macOS Sierra.
Fix GPU selection code in MetalRHI to confirm everything is working.
#jira FORT-30385
Change 3137269 on 2016/09/22 by Mark.Satterthwaite
Duplicate CL #3137164:
Add stats to track exactly how many command buffers are allocated and committed each frame to work out why Fortnite on AMD is hanging, which turns out to be because each texture update/reallocation ends up in its own command-buffer. This needs to be rethought to pack these into fewer command buffers with the same synchronisation requirements to minimise command-buffer splits but for now we'll just make the default sufficiently large that we shouldn't see the hang until the work is done. Also ensure that command-buffer failure is always fatal - there is no way to recover or continue if a command-buffer fails.
#jira FORT-30377
Change 3137606 on 2016/09/23 by Gil.Gribb
Merging //UE4/Dev-Main@3137560 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3137936 on 2016/09/23 by Rolando.Caloca
DR - Split RHICmdList clear into color & ds in prep for changes
Change 3138346 on 2016/09/23 by Rolando.Caloca
DR - vk - Some renaming and splitting classes in prep for compute
Change 3138628 on 2016/09/23 by Rolando.Caloca
DR - vk - Fix mem leak on framebuffers
Change 3138721 on 2016/09/23 by Daniel.Wright
Better comment for r.DefaultFeature.AntiAliasing
Change 3138722 on 2016/09/23 by Daniel.Wright
Fixed assert from decals with MSAA due to binding the Scene Depth Texture instead of surface
Change 3138723 on 2016/09/23 by Daniel.Wright
Corrected GC doc
Change 3138892 on 2016/09/23 by Daniel.Wright
Fixed instanced static meshes being unbuilt after a lighting build if you ever cancelled a previous lighting build
Change 3138905 on 2016/09/23 by Daniel.Wright
"Optimizations" -> "Optimization Viewmodes"
Change 3138939 on 2016/09/23 by Daniel.Wright
Disabled the stationary light overlap viewmode with forward shading
Change 3139710 on 2016/09/26 by Rolando.Caloca
DR - Rename and added texture RHIClearDepthStencil -> RHIClearDepthStencilTexture
Change 3139820 on 2016/09/26 by Rolando.Caloca
DR - Remove prefix from shader frequency strings
Change 3139828 on 2016/09/26 by Marcus.Wassmer
Add SetShaderValue() specialization for bools on AsyncCompute commandlists to match the Gfx specialization.
Change 3139840 on 2016/09/26 by Benjamin.Hyder
Adding VectorNoise Examples to TM-Noise map
Change 3139862 on 2016/09/26 by Rolando.Caloca
DR - Better log to track down crash
#jira UE-36271
Change 3140142 on 2016/09/26 by Rolando.Caloca
DR - Fix clang warning
Change 3140145 on 2016/09/26 by Rolando.Caloca
DR - Rename RHIClearColor(MRT) to RHIClearColorTextures and pass textures as parameters
Change 3140360 on 2016/09/26 by Daniel.Wright
Lighting Scenarios and lightmaps moved to separate package
* Levels can be marked as lighting scenarios (eg Day, Night). Lighting is built separately for each lighting scenario with actors / lights in all other scenario levels hidden. Only one lighting scenario level should be visible at a time in game, and its lightmaps will be applied to the world.
* Most outputs of the lighting build now go into a separate _BuiltData package. This improves level Save and AutoSave times as the separate package will only be dirtied after lighting rebuilds.
* If a lighting scenario is present, all lightmaps are placed inside it's _BuiltData package. This means that only the currently loaded lighting scenario's lightmaps will be loaded (Day or Night, but not both). This also means that lightmaps for a streaming level will not be streamed with it.
* For backwards compatibility, existing lightmaps are moved to a new _BuiltData package on load.
* Reflection captures and precomputed visibility were not moved to the separate package. Reflection captures are force updated on load of a lighting scenario level, which can increase load times.
Change 3140361 on 2016/09/26 by Daniel.Wright
Lighting Scenarios UI
Change 3140582 on 2016/09/26 by Mark.Satterthwaite
Duplicate CL #3140166
Fix the video playback in Fortnite - bind our shader resource texture as the render-target texture as for some reason the playback code expects it there, even though we could never provide one.
#jira FORT-30551
Change 3140584 on 2016/09/26 by Mark.Satterthwaite
Duplicate CL #3140131:
Fix crash under the validation layer & Nvidia's El Capitan (10.11) drivers when distance field particle collisions are used without any scene distance fields available - bind the black volume texture when that is the case to avoid bad access on the GPU.
#jira FORT-30622
Change 3140586 on 2016/09/26 by Mark.Satterthwaite
Duplicate CL #3140450:
Fix launching the game on Intel GPUs by disabling Tiled Reflections on Intel for macOS Sierra like we did for El Capitan as there's currently a driver bug to means it doesn't work properly.
#jira FORT-30649
Change 3140594 on 2016/09/26 by Zabir.Hoque
Fix benchmark shaders register bindings. TEXCOORD0 was bound to register 1 in VS and then register 0 in PS. DX12 treats this a PSO creation failuer unlike DX11 this was an error.
Change 3140601 on 2016/09/26 by Marcus.Wassmer
New 'Cinematic' Scalability level. Remove unused 'new' motionblur CVAR
Change 3140602 on 2016/09/26 by Zabir.Hoque
CreateTexture3D on XB1 DX11 was leaking ESRAM by reserving it but not allocating to it.
#Tests: Fix was tested by licensee (GearBox).
Change 3140622 on 2016/09/26 by Rolando.Caloca
DR - vk - More prep for sm5
Change 3140765 on 2016/09/26 by Rolando.Caloca
DR - Fix ensure from bad clear depth surface
Change 3141251 on 2016/09/27 by Rolando.Caloca
DR - vk - Rename & cleanup
Change 3141394 on 2016/09/27 by Rolando.Caloca
DR - vk - Compute pipeline state
Change 3141463 on 2016/09/27 by Mark.Satterthwaite
Fix the include order to avoid compile errors on Mac.
Change 3141529 on 2016/09/27 by Gil.Gribb
Merging //UE4/Dev-Main@3139632 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3141830 on 2016/09/27 by zachary.wilson
Adding testing content for lighting scenarios to collaborate with Ben
Change 3141941 on 2016/09/27 by Olaf.Piesche
Speculative fix for UE-34815; have yet to repro this but there's really only so many things it could be. I currently don't see how the sim resources could go away after queueing, so I'm replacing the check with an ensure and null checking the resource pointer.
Change 3142035 on 2016/09/27 by Olaf.Piesche
Fix compiler error from silly leftover bit of code.
Change 3142065 on 2016/09/27 by Benjamin.Hyder
Updating Lighting Scenario map
Change 3142262 on 2016/09/27 by Mark.Satterthwaite
Change Apple RHI initialisation to select the first compatible shader platform to decide which RHI to initialise. Internally in MetalRHI we must gracefully fallback to a lower feature-level when this initial selection is not available on the current device/OS, in which case we need to validate that the selected shader platform was actually packaged. The order of initialisation is different per-platform:
On Mac: Order of initialisation is the order listed in TargetedRHIs .ini specifications.
On iOS/tvOS: Order is explicit: Metal MRT > Metal ES 3.1 > OpenGL ES 2
#jira UE-35749
Change 3142292 on 2016/09/27 by Rolando.Caloca
DR - hlslcc - Fix for warning X3206: implicit truncation of vector type causing error
#jira UE-31438
Change 3142397 on 2016/09/27 by Mark.Satterthwaite
Update hlslcc for Mac including RCO's changes in CL #3142292.
#jira UE-31438
Change 3142438 on 2016/09/27 by Daniel.Wright
UMapBuildDataRegistry's created for legacy lightmap data are placed in the map package, which avoids problems with cooking
Change 3142452 on 2016/09/27 by Rolando.Caloca
DR - Proper support for int defines
Change 3142519 on 2016/09/27 by Arne.Schober
DR - [UE-33438] - Added a Project Setting to enable Skincache Shader Permuations. The Default value for the Skincache mode was changed to enabled. The reasoning behind this was that it will be auto disabled when Skincache Shaders are disabled, and runtime toggle is a debuging feature that mainly programmers are dealing with. The Recompute Tangents option in the Skinned Mesh is now automatically grayed out when no Skincache Shader Permuations are available.
Change 3142537 on 2016/09/27 by Daniel.Wright
Fixed r.ScreenPercentage with MSAA - a scissor rect was being setup during the resolve and not reset
Change 3142691 on 2016/09/27 by Daniel.Wright
Disabled renaming of legacy ULightmap2D's to the separate package since UMapBuildDataRegistry is no longer put in a separate package for legacy content
Change 3142711 on 2016/09/27 by Daniel.Wright
GComponentsWithLegacyLightmaps entries get handled by USceneComponent::AddReferencedObjects, fixes a crash when you open a map directly from the content browser
Change 3142712 on 2016/09/27 by Daniel.Wright
Separate category for ParticleCutout properties
Change 3142762 on 2016/09/27 by Uriel.Doyon
Added per static mesh and per skeletal mesh UV density data. The data is now saved and available in cooked builds.
The density are computed by the engine but can be overridden by the user in the material tabs.
Texture streaming intermediate component data is now per material instead of per lod-section.
New ViewModeParam in FSceneViewFamily allowing context specific param per viewmode.
This is currently used to show which UV channel and which texture index is being
shown in the texture streaming accuracy viewmodes.
This replaces r.Streaming.AnalysisIndex
Renamed texture streaming viewmodes:
MeshTexCoordSizeAccuracy -> MeshUVDensityAccuracy
MaterialTexCoordScalesAccuracy -> MaterialTextureScaleAccuracy
MaterialTexCoordScalesAnalysis -> OutputMaterialTextureScales
Improved UV density computation and viewmode.
LightmapUVDensity is now computed separately from UVChannel Density.
Fixed texture streaming for instanced static mesh component and derived types.
Change 3143464 on 2016/09/28 by Daniel.Wright
Removed 'experimental' from forward shading setting
Change 3143508 on 2016/09/28 by Chris.Bunner
Added component type handling to FoldedMath and Length material expressions.
#jira UE-36304
Change 3143557 on 2016/09/28 by Rolando.Caloca
DR - Back out changelist 3142292
Change 3143563 on 2016/09/28 by Rolando.Caloca
DR - vk - Force hlslcc re-link
Change 3143648 on 2016/09/28 by Daniel.Wright
Moved GetMeshMapBuildData to UStaticMeshComponent since FStaticMeshComponentLODInfo::OwningComponent can't be initialized reliably in the case of SpawnActor off of a blueprint default that has LODData entries already.
Change 3143661 on 2016/09/28 by Chris.Bunner
Warning fix.
Change 3143723 on 2016/09/28 by Daniel.Wright
DumpUnbuiltLightIteractions after lighting build for debugging
Change 3143822 on 2016/09/28 by Arne.Schober
DR - Refactoring of the ViewMatrices. Moved the Derived Matrices into the FViewMatrix struct. Made all members private do emphasize the static constness of that struct after creation. Renamed the heavy weight members on this struct to Compute*. Methods that modify The ViewMatrices have been renamed to Hack* to discurage their use in the future until a better solution for those problems is found. The ViewMatrix modification is especially misleading because it only changes the State of the ViewMatrices to read their Position from the Material Editior as if coming from the Lightsource (mainly for manual bilboards) as well as doing someting similar to generate CPU bilboards for shadows.
Change 3143860 on 2016/09/28 by Benjamin.Hyder
Updating TM-Noise map to include 3d noise examples
Change 3143939 on 2016/09/28 by Rolando.Caloca
DR - vk - Better debugging of submissions
- Added r.Vulkan.IgnoreCPUReads to help track down hangs on some ihvs
Change 3144006 on 2016/09/28 by Brian.Karis
Fixed PixelError not being set correctly with LOD groups.
Removed unneeded Simplygon references.
Mesh reduction module can now be chosen by name with r.MeshReductionModule
Change 3144026 on 2016/09/28 by Benjamin.Hyder
Updating QA-Effects map to correct numbering issue
Change 3144098 on 2016/09/28 by Arne.Schober
DR - ViewMatrices Refactoring - Fix UT
Change 3144158 on 2016/09/28 by Rolando.Caloca
DR - Undo splitting RHI command context
Change 3144952 on 2016/09/29 by Rolando.Caloca
DR - vk - Missing swapchain flag
Change 3145064 on 2016/09/29 by Olaf.Piesche
#jira UE-36091
Pulling range update for vector distributions even when UDist is not dirty; some content has a lookup table and a clean dist, but the range values have not been baked; always pulling them should be safe and not significantly costly.
Change 3145354 on 2016/09/29 by Benjamin.Hyder
Updating Tm-ContactShadows
Change 3145485 on 2016/09/29 by Daniel.Wright
Made SeamlessTravelLoadCallback handle legacy lightmaps
Change 3145527 on 2016/09/29 by Daniel.Wright
Don't clear legacy lightmap annotations on each map - fixes lighting unbuilt when doing seamless travel
Change 3145530 on 2016/09/29 by Simon.Tovey
UE-36188 - Editor crash when updating hierarchical instance static mesh component
Dirtied render state rather than unsafe update of bounds.
Change 3145608 on 2016/09/29 by Gil.Gribb
Attempt to fix a random compiler error under win32
Change 3145749 on 2016/09/29 by Uriel.Doyon
Fix for static analysis warning
Change 3146091 on 2016/09/29 by Zabir.Hoque
RHI Interface changes to support PSO based APIs
Change 3146092 on 2016/09/29 by Zabir.Hoque
D3D12 RHI support for PSO based APIs.
Change 3146590 on 2016/09/30 by Gil.Gribb
Merging //UE4/Dev-Main@3146520 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3146731 on 2016/09/30 by Rolando.Caloca
DR - Fix merge conflicts
Change 3146778 on 2016/09/30 by Rolando.Caloca
DR - More integration compile fixes
Change 3146790 on 2016/09/30 by Rolando.Caloca
DR - Integration fix
Change 3146849 on 2016/09/30 by Rolando.Caloca
DR - Final integration fix
Change 3146899 on 2016/09/30 by Daniel.Wright
Static analysis fix for dereferencing World
Change 3147020 on 2016/09/30 by Rolando.Caloca
DR - vk - Fix depth issue on AMD cards
- Added VULKAN_KEEP_CREATE_INFO to help debugging creation
- Added num color attachments to pipeline key
Change 3147034 on 2016/09/30 by Rolando.Caloca
DR - Fix Kite crash where shader pipelines were optimizing non-tessellation pipelines
#jira UE-36277
#jira UE-36500
Change 3147080 on 2016/09/30 by Rolando.Caloca
DR - vk - Disable debug info by default
Change 3147082 on 2016/09/30 by Chris.Bunner
Allow tessellation to be used with DrawTile calls by swapping fixed mesh to triangle list.
#jira UE-36491
Change 3147388 on 2016/09/30 by Chris.Bunner
Blacklisted Nvidia driver 372.70 as it has known stability issues skewing our top crashes list. Also updated recommended version numbers.
#jira UE-35288
Change 3147394 on 2016/09/30 by Chris.Bunner
Additional logging for rare error.
#jira UE-35812
Change 3147459 on 2016/09/30 by Rolando.Caloca
DR - vk - Some more srgb formats
Change 3147537 on 2016/09/30 by Rolando.Caloca
DR - vk - Standarize srgb flag like D3D11
- Minor FVulkanShader cleanup
Change 3147620 on 2016/09/30 by Olaf.Piesche
#jira UE=34486
particle component tick function task can be invalid during pause; add check
Change 3148028 on 2016/10/01 by Daniel.Wright
Renamed RenderingSettings.cpp to match header
Change 3148059 on 2016/10/01 by Daniel.Wright
Disabled reparenting in the profiler which is disorienting
Change 3148067 on 2016/10/01 by Daniel.Wright
Support for ReflectionEnvironment and light type show flags with ForwardShading
Change 3148069 on 2016/10/01 by Daniel.Wright
Added CapsuleIndirectShadowMinVisibility to SkinnedMeshComponent, so artists have control over indirect capsule shadow darkness without changing cvars
Change 3148072 on 2016/10/01 by Daniel.Wright
Added a rendering setting to disable the new lightmap mixing behavior, where smooth surfaces don't have any mixing. r.ReflectionEnvironmentLightmapMixBasedOnRoughness
Change 3148073 on 2016/10/01 by Daniel.Wright
r.VertexFoggingForOpaque only affects forward shading - manual copy of Ben's fix from Orion stream
Change 3148074 on 2016/10/01 by Daniel.Wright
Enabled planar reflection receiving on the material used for the preview of a APlanarReflection
Change 3148084 on 2016/10/01 by Daniel.Wright
Fixed reflections on Surface TranslucencyVolume in deferred
Change 3148085 on 2016/10/01 by Daniel.Wright
Fixed planar reflection composite being done too many times in stereo deferred
Change 3148086 on 2016/10/01 by Daniel.Wright
Clamp IndirectLightingQuality to 1 in preview builds - keeps preview useful even with IndirectLightingQuality jacked up to 10.
Change 3148107 on 2016/10/01 by Daniel.Wright
CIS fix
Change 3148113 on 2016/10/01 by Daniel.Wright
Translucency lighting modes for forward shading
* Per-vertex modes use GetSimpleDynamicLighting since they can't support specular anyway
Change 3148306 on 2016/10/02 by Rolando.Caloca
DR - vk - Fix for some NV drivers on Win10
Change 3148307 on 2016/10/02 by Rolando.Caloca
DR - vk - Compute pipeline
Change 3148358 on 2016/10/02 by Rolando.Caloca
DR - vk - Consolidate and renumber enum for binding types
Change 3148396 on 2016/10/03 by Rolando.Caloca
DR - vk - Warning fix
Change 3148697 on 2016/10/03 by Benjamin.Hyder
Submitting M_Chromebal after enabling planar reflectionsl
Change 3148799 on 2016/10/03 by Rolando.Caloca
DR - vk - static analysis fix
Change 3148934 on 2016/10/03 by Chris.Bunner
Added pre-skinned local position material graph node, vertex shader only.
Change 3148994 on 2016/10/03 by Chris.Bunner
Added missing header file.
Change 3149085 on 2016/10/03 by Daniel.Wright
Support for ReflectionEnvironment show flag in base pass reflections without any shader overhead
Change 3149095 on 2016/10/03 by Rolando.Caloca
DR - vk - Disable new render passes
Change 3149125 on 2016/10/03 by Rolando.Caloca
DR - vk - Fix for multiple memory types
Change 3149181 on 2016/10/03 by Rolando.Caloca
DR - Better message when missing pipelines
Change 3149215 on 2016/10/03 by Rolando.Caloca
DR - RHIClearColor -> RHIClearColorTexture
#tests Orion Editor run match on Agora_P
Change 3149288 on 2016/10/03 by Chris.Bunner
Added PreTonemapHDRColor for buffer visualization and target output.
#jira UE-36333
Change 3149402 on 2016/10/03 by Daniel.Wright
Light attenuation buffer is now multisampled, fixes preshadows with MSAA (depth testing failed during stencil pass) but adds a resolve (.12ms at VR res)
Change 3149403 on 2016/10/03 by Daniel.Wright
Forward lighting supports lighting channels
Change 3149574 on 2016/10/03 by Marcus.Wassmer
PR #2817: Ansel/Photography system (Contributed by adamnv)
Modified to become a plugin
Change 3149615 on 2016/10/03 by Rolando.Caloca
DR - vk - Fix PF_G16R16 which fixes reflections
Change 3149639 on 2016/10/03 by Olaf.Piesche
Adding more ensures to catch NaNs occasionally appearing in particle locations early
Change 3149745 on 2016/10/03 by Uriel.Doyon
Moved UVDensity computation in the staticmesh DDC.
Change 3149749 on 2016/10/03 by Daniel.Wright
Fixed lightmaps on BSP, which was fallout from Lighting Scenarios backwards compatibility
Change 3149755 on 2016/10/03 by Benjamin.Hyder
Checking in built lighting for QA-postprocessing
Change 3149758 on 2016/10/03 by Benjamin.Hyder
re-submitting built lighting for QA-PostProcessing
Change 3149940 on 2016/10/04 by Gil.Gribb
Merging //UE4/Dev-Main@3149754 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3150098 on 2016/10/04 by Marcus.Wassmer
Fix some clang and win32 errors
Change 3150323 on 2016/10/04 by Rolando.Caloca
DR - vk - Static analysis fix
Change 3150456 on 2016/10/04 by Daniel.Wright
Revert temp logs
Change 3150731 on 2016/10/04 by Daniel.Wright
Static lights now add a dummy map build data entry for their ULightComponent::IsPrecomputedLightingValid
Change 3150795 on 2016/10/04 by Marcus.Wassmer
Fix RHIClearUAV and Drawindirect bugs on PS4.
Also fix PS4 compile error from bad merge.
Change 3151065 on 2016/10/04 by Ben.Marsh
Merging //UE4/Dev-Main to Dev-Rendering (//UE4/Dev-Rendering)
Change 3151134 on 2016/10/04 by Brian.Karis
Fixed corrupt mesh generation from quadric simplifier due to uninitialized color array.
Change 3151201 on 2016/10/04 by Marcus.Wassmer
Nvidia approved icon for ansel plugin.
Change 3151240 on 2016/10/04 by Marcus.Wassmer
Fix string concat build error.
Change 3151258 on 2016/10/04 by Ben.Marsh
Fix compile error.
Change 3151290 on 2016/10/04 by Marcus.Wassmer
Bumping static mesh DDC key to hopefully fix distancefield crashes after brian's quadric simplifier fix.
Change 3152104 on 2016/10/05 by Chris.Bunner
Workaround for legacy BreakMA material node invalid component masks.
#jira UE-36832
Change 3152130 on 2016/10/05 by Ben.Woodhouse
Fix issue with skylight SH and fast semantics on DX11. We need to clear the cube scratch textures before writing to them to avoid issues when reading them back for mip downsampling
#jira UE-35890
Change 3152240 on 2016/10/05 by Rolando.Caloca
DR - Fix for missing gizmo colors
#jira UE-36515
Change 3152338 on 2016/10/05 by Daniel.Wright
Hopeful fix for FDistanceFieldVolumeTexture assert in the cooker
Change 3152833 on 2016/10/05 by Brian.Karis
Improved precision of quadrics. Fixes bad triangles on large meshes
Change 3153376 on 2016/10/06 by Rolando.Caloca
DR - Fix for SM4 missing pipelines fallout
Change 3153650 on 2016/10/06 by Gil.Gribb
Merging //UE4/Dev-Main@3153068 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3153656 on 2016/10/06 by Uriel.Doyon
Fixed main integration compilation issues.
Some of the Mesh UVDensity UI is temporary disabled.
Change 3153725 on 2016/10/06 by Uriel.Doyon
Fixed crash when source data is missing for lightmaps
#jira UE-36157
Change 3153998 on 2016/10/06 by Gil.Gribb
Merging //UE4/Dev-Main to Dev-Rendering@3153705 (//UE4/Dev-Rendering)
Change 3154056 on 2016/10/06 by Marcus.Wassmer
Fix compile errors from merge. Also restore some light scencario code
Change 3154176 on 2016/10/06 by Marcus.Wassmer
Fix deprecation warning
Change 3154252 on 2016/10/06 by Marcus.Wassmer
Fix more deprecation warnings
Change 3154632 on 2016/10/07 by Chris.Bunner
Fix for incorrect re-entrant detection with a function called twice in a row. The function input Preview expression is overridden when the function is called to link it into the caller graph, but it was restored too late for chained calls to the same function.
#jira UE-37002
[CL 3154728 by Gil Gribb in Main branch]
2016-10-07 10:20:36 -04:00
|
|
|
bool PlatformCanEnableGPUCapture()
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
2014-09-18 17:49:40 -04:00
|
|
|
void PlatformDestroyOpenGLDevice(FPlatformOpenGLDevice* Device)
|
|
|
|
|
{
|
|
|
|
|
delete Device;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FPlatformOpenGLContext* PlatformCreateOpenGLContext(FPlatformOpenGLDevice* Device, void* InWindowHandle)
|
|
|
|
|
{
|
|
|
|
|
//Assumes Device is already initialized and context already created.
|
|
|
|
|
return AndroidEGL::GetInstance()->GetRenderingContext();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PlatformReleaseOpenGLContext(FPlatformOpenGLDevice* Device, FPlatformOpenGLContext* PlatformContext)
|
|
|
|
|
{
|
|
|
|
|
// nothing to do for now
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void* PlatformGetWindow(FPlatformOpenGLContext* Context, void** AddParam)
|
|
|
|
|
{
|
|
|
|
|
check(Context);
|
|
|
|
|
|
|
|
|
|
return (void*)&Context->eglContext;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PlatformDestroyOpenGLContext(FPlatformOpenGLDevice* Device, FPlatformOpenGLContext* PlatformContext)
|
|
|
|
|
{
|
|
|
|
|
delete Device; //created here, destroyed here, but held by RHI.
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool PlatformBlitToViewport( FPlatformOpenGLDevice* Device, const FOpenGLViewport& Viewport, uint32 BackbufferSizeX, uint32 BackbufferSizeY, bool bPresent,bool bLockToVsync, int32 SyncInterval )
|
|
|
|
|
{
|
|
|
|
|
if (FOpenGL::IsES2())
|
|
|
|
|
{
|
|
|
|
|
AndroidEGL::GetInstance()->SwapBuffers();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
FPlatformOpenGLContext* const Context = Viewport.GetGLContext();
|
|
|
|
|
|
|
|
|
|
check(Context && Context->eglContext );
|
|
|
|
|
|
|
|
|
|
FScopeContext ScopeContext(Context);
|
|
|
|
|
|
|
|
|
|
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);
|
|
|
|
|
//Disabling for now to work around a GL_INVALID_OPERATION which might or might not be legit in the context of EGL.
|
|
|
|
|
//Note that the drawbuffer state is part of the FBO state, so we don't need to touch it per frame.
|
|
|
|
|
//glDrawBuffer(GL_BACK);
|
|
|
|
|
glBindFramebuffer(GL_READ_FRAMEBUFFER, Context->ViewportFramebuffer);
|
|
|
|
|
glReadBuffer(GL_COLOR_ATTACHMENT0);
|
|
|
|
|
|
|
|
|
|
//LOGD("PlatformBlitToViewport: backbuffer (%d, %d) to screen (%d, %d)", BackbufferSizeX, BackbufferSizeY, GRealScreenWidth, GRealScreenHeight);
|
|
|
|
|
|
|
|
|
|
uint32 GRealScreenHeight, GRealScreenWidth;
|
|
|
|
|
AndroidEGL::GetInstance()->GetDimensions( GRealScreenWidth, GRealScreenHeight);
|
|
|
|
|
|
|
|
|
|
glBlitFramebuffer(
|
|
|
|
|
0, 0, BackbufferSizeX, BackbufferSizeY,
|
|
|
|
|
0, GRealScreenHeight, GRealScreenWidth, 0,
|
|
|
|
|
GL_COLOR_BUFFER_BIT,
|
|
|
|
|
GL_LINEAR
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
if (bPresent)
|
|
|
|
|
{
|
|
|
|
|
uint32 IdleStart = FPlatformTime::Cycles();
|
|
|
|
|
|
|
|
|
|
AndroidEGL::GetInstance()->SwapBuffers();
|
|
|
|
|
REPORT_GL_END_BUFFER_EVENT_FOR_FRAME_DUMP();
|
|
|
|
|
// INITIATE_GL_FRAME_DUMP_EVERY_X_CALLS( 1000 );
|
|
|
|
|
|
|
|
|
|
GRenderThreadIdle[ERenderThreadIdleTypes::WaitingForGPUPresent] += FPlatformTime::Cycles() - IdleStart;
|
|
|
|
|
GRenderThreadNumIdle[ERenderThreadIdleTypes::WaitingForGPUPresent]++;
|
|
|
|
|
}
|
|
|
|
|
}
|
2015-04-29 11:53:00 -04:00
|
|
|
// return true;
|
|
|
|
|
//Do not want WaitForFrameEventCompletion
|
|
|
|
|
return false;
|
2014-09-18 17:49:40 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PlatformRenderingContextSetup(FPlatformOpenGLDevice* Device)
|
|
|
|
|
{
|
|
|
|
|
Device->SetCurrentRenderingContext();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PlatformFlushIfNeeded()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PlatformRebindResources(FPlatformOpenGLDevice* Device)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PlatformSharedContextSetup(FPlatformOpenGLDevice* Device)
|
|
|
|
|
{
|
|
|
|
|
Device->SetCurrentSharedContext();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PlatformNULLContextSetup()
|
|
|
|
|
{
|
|
|
|
|
AndroidEGL::GetInstance()->SetCurrentContext(EGL_NO_CONTEXT, EGL_NO_SURFACE);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
EOpenGLCurrentContext PlatformOpenGLCurrentContext(FPlatformOpenGLDevice* Device)
|
|
|
|
|
{
|
|
|
|
|
return (EOpenGLCurrentContext)AndroidEGL::GetInstance()->GetCurrentContextType();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PlatformRestoreDesktopDisplayMode()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FRHITexture* PlatformCreateBuiltinBackBuffer(FOpenGLDynamicRHI* OpenGLRHI, uint32 SizeX, uint32 SizeY)
|
|
|
|
|
{
|
|
|
|
|
FOpenGLTexture2D* Texture2D = NULL;
|
|
|
|
|
|
|
|
|
|
if ( FOpenGL::IsES2())
|
|
|
|
|
{
|
|
|
|
|
uint32 Flags = TexCreate_RenderTargetable;
|
2015-07-23 15:10:46 -04:00
|
|
|
Texture2D = new FOpenGLTexture2D(OpenGLRHI, AndroidEGL::GetInstance()->GetOnScreenColorRenderBuffer(), GL_RENDERBUFFER, GL_COLOR_ATTACHMENT0, SizeX, SizeY, 0, 1, 1, 1, PF_B8G8R8A8, false, false, Flags, nullptr, FClearValueBinding::Transparent);
|
2014-09-18 17:49:40 -04:00
|
|
|
OpenGLTextureAllocated(Texture2D, Flags);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return Texture2D;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PlatformResizeGLContext( FPlatformOpenGLDevice* Device, FPlatformOpenGLContext* Context, uint32 SizeX, uint32 SizeY, bool bFullscreen, bool bWasFullscreen, GLenum BackBufferTarget, GLuint BackBufferResource)
|
|
|
|
|
{
|
|
|
|
|
check(Context);
|
|
|
|
|
FScopeContext ScopeContext(Context);
|
|
|
|
|
|
|
|
|
|
if (FOpenGL::IsES2())
|
|
|
|
|
{
|
|
|
|
|
glViewport(0, 0, SizeX, SizeY);
|
|
|
|
|
VERIFY_GL(glViewport);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (Context->ViewportFramebuffer == 0)
|
|
|
|
|
{
|
|
|
|
|
glGenFramebuffers(1, &Context->ViewportFramebuffer);
|
|
|
|
|
}
|
|
|
|
|
glBindFramebuffer(GL_FRAMEBUFFER, Context->ViewportFramebuffer);
|
|
|
|
|
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, BackBufferTarget, BackBufferResource, 0);
|
|
|
|
|
|
|
|
|
|
#if UE_BUILD_DEBUG
|
|
|
|
|
glReadBuffer(GL_COLOR_ATTACHMENT0);
|
|
|
|
|
FOpenGL::DrawBuffer(GL_COLOR_ATTACHMENT0);
|
|
|
|
|
GLenum CompleteResult = glCheckFramebufferStatus(GL_FRAMEBUFFER);
|
|
|
|
|
if (CompleteResult != GL_FRAMEBUFFER_COMPLETE)
|
|
|
|
|
{
|
|
|
|
|
UE_LOG(LogRHI, Fatal, TEXT("PlatformResizeGLContext: Framebuffer not complete. Status = 0x%x"), CompleteResult);
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
glViewport(0, 0, SizeX, SizeY);
|
|
|
|
|
static GLfloat ZeroColor[4] = { 0.0f, 0.0f, 0.0f, 0.0f };
|
|
|
|
|
glClearBufferfv(GL_COLOR, 0, ZeroColor);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PlatformGetSupportedResolution(uint32 &Width, uint32 &Height)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool PlatformGetAvailableResolutions(FScreenResolutionArray& Resolutions, bool bIgnoreRefreshRate)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool PlatformInitOpenGL()
|
|
|
|
|
{
|
|
|
|
|
// Original location for querying function entrypoints
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool PlatformOpenGLContextValid()
|
|
|
|
|
{
|
|
|
|
|
return (eglGetCurrentContext() != EGL_NO_CONTEXT);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int32 PlatformGlGetError()
|
|
|
|
|
{
|
|
|
|
|
return glGetError();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PlatformGetBackbufferDimensions( uint32& OutWidth, uint32& OutHeight )
|
|
|
|
|
{
|
|
|
|
|
AndroidEGL::GetInstance()->GetDimensions(OutWidth, OutHeight);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// =============================================================
|
|
|
|
|
|
|
|
|
|
/* Query management
|
|
|
|
|
* Queries can be per context, depending on the extension / version used
|
|
|
|
|
* This code attempts to be safe about it. The ES2 version of Android
|
|
|
|
|
* is #if 0 below
|
|
|
|
|
*/
|
|
|
|
|
// ES2 FALLBACK HACK
|
|
|
|
|
#if 0
|
|
|
|
|
void PlatformGetNewRenderQuery( GLuint* OutQuery, uint64* OutQueryContext )
|
|
|
|
|
{
|
|
|
|
|
GLuint NewQuery = 0;
|
|
|
|
|
FOpenGL::GenQueries(1, &NewQuery);
|
|
|
|
|
*OutQuery = NewQuery;
|
|
|
|
|
*OutQueryContext = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PlatformReleaseRenderQuery( GLuint Query, uint64 QueryContext )
|
|
|
|
|
{
|
|
|
|
|
FOpenGL::DeleteQueries(1, &Query);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool PlatformContextIsCurrent( uint64 QueryContext )
|
|
|
|
|
{
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#else
|
|
|
|
|
|
|
|
|
|
struct FOpenGLReleasedQuery
|
|
|
|
|
{
|
|
|
|
|
EGLContext Context;
|
|
|
|
|
GLuint Query;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static TArray<FOpenGLReleasedQuery> ReleasedQueries;
|
|
|
|
|
static FCriticalSection* ReleasedQueriesGuard;
|
|
|
|
|
|
|
|
|
|
void PlatformGetNewRenderQuery(GLuint* OutQuery, uint64* OutQueryContext)
|
|
|
|
|
{
|
|
|
|
|
if (!ReleasedQueriesGuard)
|
|
|
|
|
{
|
|
|
|
|
ReleasedQueriesGuard = new FCriticalSection;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
FScopeLock Lock(ReleasedQueriesGuard);
|
|
|
|
|
|
|
|
|
|
#ifdef UE_BUILD_DEBUG
|
|
|
|
|
check(OutQuery && OutQueryContext);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
EGLContext Context = eglGetCurrentContext();
|
|
|
|
|
check(Context);
|
|
|
|
|
|
|
|
|
|
GLuint NewQuery = 0;
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Note, not reusing queries, because timestamp and occlusion are different
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
if (!NewQuery)
|
|
|
|
|
{
|
|
|
|
|
FOpenGL::GenQueries(1, &NewQuery);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
*OutQuery = NewQuery;
|
|
|
|
|
*OutQueryContext = (uint64)Context;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PlatformReleaseRenderQuery(GLuint Query, uint64 QueryContext)
|
|
|
|
|
{
|
|
|
|
|
EGLContext Context = eglGetCurrentContext();
|
|
|
|
|
if ((uint64)Context == QueryContext)
|
|
|
|
|
{
|
2015-06-18 23:49:47 -04:00
|
|
|
FOpenGL::DeleteQueries(1, &Query);
|
2014-09-18 17:49:40 -04:00
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
FScopeLock Lock(ReleasedQueriesGuard);
|
|
|
|
|
#ifdef UE_BUILD_DEBUG
|
|
|
|
|
check(Query && QueryContext && ReleasedQueriesGuard);
|
|
|
|
|
#endif
|
|
|
|
|
FOpenGLReleasedQuery ReleasedQuery;
|
|
|
|
|
ReleasedQuery.Context = (EGLContext)QueryContext;
|
|
|
|
|
ReleasedQuery.Query = Query;
|
|
|
|
|
ReleasedQueries.Add(ReleasedQuery);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void DeleteOcclusionQueriesForCurrentContext(EGLContext Context)
|
|
|
|
|
{
|
|
|
|
|
if (!ReleasedQueriesGuard)
|
|
|
|
|
{
|
|
|
|
|
ReleasedQueriesGuard = new FCriticalSection;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
FScopeLock Lock(ReleasedQueriesGuard);
|
|
|
|
|
for (int32 Index = 0; Index < ReleasedQueries.Num(); ++Index)
|
|
|
|
|
{
|
|
|
|
|
if (ReleasedQueries[Index].Context == Context)
|
|
|
|
|
{
|
|
|
|
|
FOpenGL::DeleteQueries(1, &ReleasedQueries[Index].Query);
|
|
|
|
|
ReleasedQueries.RemoveAtSwap(Index);
|
|
|
|
|
--Index;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool PlatformContextIsCurrent( uint64 QueryContext )
|
|
|
|
|
{
|
|
|
|
|
return (uint64)eglGetCurrentContext() == QueryContext;
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FString FAndroidMisc::GetGPUFamily()
|
|
|
|
|
{
|
|
|
|
|
return FAndroidGPUInfo::Get().GPUFamily;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FString FAndroidMisc::GetGLVersion()
|
|
|
|
|
{
|
|
|
|
|
return FAndroidGPUInfo::Get().GLVersion;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool FAndroidMisc::SupportsFloatingPointRenderTargets()
|
|
|
|
|
{
|
2015-07-15 06:39:44 -04:00
|
|
|
return FAndroidGPUInfo::Get().bSupportsFloatingPointRenderTargets;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool FAndroidMisc::SupportsShaderFramebufferFetch()
|
|
|
|
|
{
|
|
|
|
|
return FAndroidGPUInfo::Get().bSupportsFrameBufferFetch;
|
|
|
|
|
}
|
2014-09-18 17:49:40 -04:00
|
|
|
|
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3155909)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3118534 on 2016/09/08 by Steve.Cano
Certain non-looping SFX would not properly fire "Stop" events when the effect was finished, and therefore Sound Mixes that should end at the end of a SFX (such as ducking the BGM volume) were not properly finishing. Fixing the IsSourceFinished call to check the Position of the player to determine if we are actually done playing, which was not working properly before for PCM sounds.
#jira UE-35016
#ue4
#android
Change 3119125 on 2016/09/09 by Dmitriy.Dyomin
Mobile launcher profile wizard:
Fixed case where DLC will not be built if user selects non Development build configuration
Fixed case where project maps will be empty if UE4 and project located on different drives
Change 3122584 on 2016/09/13 by Allan.Bentham
Add simple clip plane for planar reflections.
#jira UE-32449
Change 3129390 on 2016/09/16 by Chris.Babcock
Fixed ES 3.1 detection to also support devices returning ES 3.2 support (eg Note 7)
#jira UE-35598
Change 3129867 on 2016/09/18 by Jack.Porter
Fixed ES 3.1 detection to also support devices returning ES 3.2 support (eg Note 7)
#jira UE-35598
Change 3131961 on 2016/09/20 by Allan.Bentham
Fix missing editor widgets and gamma incorrectness when mobileHDR == false.
Fix editor widget rendering when hdr encoding is active.
#jira UE-34281
Change 3132717 on 2016/09/20 by Chris.Babcock
Add $S(ProjectDir) to UPL
#jira UE-35483
#ue4
Change 3132940 on 2016/09/20 by Chris.Babcock
Corrected case for some include files (contributed by Yukariin)
#jira UE-33816
#PR #2636
#ue4
#android
Change 3134098 on 2016/09/21 by Allan.Bentham
Mobile CSM shadow quality controllable via quality levels.
#jira UEMOB-74
Change 3134931 on 2016/09/21 by Chris.Babcock
Allow Windows types in vulkan.h
#jira UE-36270
#ue4
#vulkan
Change 3135380 on 2016/09/21 by Dmitriy.Dyomin
Plugin which exposes some of BuildPatchServices functionality to BP. Inteded to be used on mobile platforms for donwloading game content.
Right now misses: IOS download directory and iOS WiFi detection
#jira UEMOB-157
Change 3136004 on 2016/09/22 by Allan.Bentham
Add project option to disable vertex fog on mobile.
Vertex fog is now enabled even when mobile HDR is not.
#jira UEMOB-148
Change 3137377 on 2016/09/22 by Dmitriy.Dyomin
Fix compile error from CL# 3135380
Change 3139571 on 2016/09/26 by Jack.Porter
Applied deferred change CL 3101462 to mobile to make planar reflections no longer update GPU particles
Change 3139663 on 2016/09/26 by Jack.Porter
Include Android shader cache files when packaging
Change 3142839 on 2016/09/28 by Dmitriy.Dyomin
Added WiFi connection detection on iOS
Change 3142845 on 2016/09/28 by Jack.Porter
Fixed various issues with TcpMessageTransport discovered when transferring automation testing screenshots from mobile devices
- socket not readable or writable is not an error condition if output buffer is full
- messages were previously limited to 64kb but screenshots overflowed this
- messages over 8kb were not reliably received as the inbound buffer was full so the available bytes was always less than the message length
- sending large messages was not reliable due to the output buffer being full
Change 3143280 on 2016/09/28 by Jack.Porter
Clear out UnbuiltInstanceBoundsList when async building a tree with no instances
Change 3143282 on 2016/09/28 by Jack.Porter
Fix issue where client functional tests in the current map do not appear on clients running with cooked content.
Problem is that the AssetRegistry uses in-memory metadata created on load for currently-loaded assets, but cooked content only has the serialized AssetRegistry and individual assets do not contain any metadata.
Change 3143808 on 2016/09/28 by Steve.Cano
Assume that the app starts in focus at startup and don't wait for an "APP_EVENT_STATE_WINDOW_GAINED_FOCUS" event to fire, as this event will not come down from SplashActivity since it is not a NativeActivity. If the user then rotates the device in Sensor or FullSensor orientation during SplashActivity and forces an eglSurface recreation, the initial Create will properly execute if we're "in focus". Previously, the create-destroy-create cycle would not properly execute due to the EventManager thinking the app was not yet in focus, and would cause the second create to get a 0x3003 error (EGL_BAD_ALLOC)
#jira UE-35004
#ue4
#android
Change 3144880 on 2016/09/29 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3146220 on 2016/09/30 by Dmitriy.Dyomin
Adjusted device button style to make it more readable.
#jira UE-21881
Change 3146280 on 2016/09/30 by Dmitriy.Dyomin
Replaced IBuildManifest::ComputeDownloadSize with a new function
Change 3146302 on 2016/09/30 by Allan.Bentham
Added more stringent checks for ES3.1 compatibility
#jira UE-36241
Change 3146435 on 2016/09/30 by Jack.Porter
Prevent landscape grass being duplicated for PIE, causing ensure
#jira UE-36531
Change 3147532 on 2016/09/30 by Chris.Babcock
Use .sh extension for Android install scripts on Linux
#jira UE-36669
#ue4
#android
#linux
Change 3149851 on 2016/10/04 by Dmitriy.Dyomin
Mobile: Added custom depth rendering
Mobile: Added support for CustomDepth and SceneDepth in post-process materails
Change 3149852 on 2016/10/04 by Dmitriy.Dyomin
Fixed comments for SortBasePass console variable
Change 3149857 on 2016/10/04 by Jack.Porter
Remove dead code in ProceduralFoliageComponentDetails.cpp
Change 3149863 on 2016/10/04 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3149896 on 2016/10/04 by Dmitriy.Dyomin
Fixed: SkyLight makes level entire green on Android devices
#jira UE-34469
Change 3150102 on 2016/10/04 by Jack.Porter
Bring Protostar 4.13 fixes back to Dev-Mobile
Engine
- MaxDescriptorSets = 16384 to prevent crash on Mali
- Include texture formats in FRenderTargetLayoutHashableStruct to solve RT aliasing issue
- Use ERenderTargetLoadAction::EClear for planar reflection target to work around Adreno issue
- Default Adreno to SPIR-V
Contents
- Disable fog, reduce CSM shadow quality, fix device profiles
- Add PSO cache
Change 3150113 on 2016/10/04 by Jack.Porter
Ensure automation testing screenshots have Alpha=255 (fixes automation screenshots on Mobile)
Change 3150231 on 2016/10/04 by Jack.Porter
Use a new SessionID GUID each time you use the launcher to launch a session.
Change 3150608 on 2016/10/04 by Jack.Porter
Changes for automated testing screenshots on Android.
- Prevent automation screenshots from changing resolution on platforms with fixed resolution
- Set GRHIAdapterInternalDriverVersion for OpenGL and Vulkan
- Parse ImgTec/ARM/Qualcomm GRHIVendorId on OpenGL
- Added helper to convert GRHIVendorId to string
Change 3151318 on 2016/10/04 by Jack.Porter
Fixed compile error with AdapterVendor
Change 3151366 on 2016/10/04 by Jack.Porter
Prevent FTcpMessageTransportConnection deadlock on device disconnect
Change 3151397 on 2016/10/05 by Dmitriy.Dyomin
More consistent BP categories for Mobile Patching utils
Change 3151576 on 2016/10/05 by Dmitriy.Dyomin
Added on screen warning for invalid reflection captures, can be seen only in game running with FeatureLevel < SM4 and no valid capture data
Change 3151795 on 2016/10/05 by Dmitry.Rekman
Linux: update UBT to use a v8 multiarch toolchain.
- Also added toolchain build scripts and ct-ng configs.
Change 3151966 on 2016/10/05 by Allan.Bentham
Add mobile support for inverse opacity to mobile scene captures as well as SCS_SceneColorSceneDepth and SCS_SceneDepth.
#jira UEMOB-106
Change 3152664 on 2016/10/05 by Chris.Babcock
Merging //UE4/Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3152675 on 2016/10/05 by Will.Fissler
Fixed patching so that it searches for pak files as well as pkg files.
#test Patch for QAGame
Change 3152728 on 2016/10/05 by Chris.Babcock
Update ReflectionCaptureDDCVer (need to resave maps)
Change 3152910 on 2016/10/05 by Dmitry.Rekman
Linux: Fix toolchain for non-AutoSDKs (github) case (UE-36899).
Change 3152966 on 2016/10/05 by Dmitry.Rekman
Linux: Fix test for the installed SDK (UE-36899).
Change 3153004 on 2016/10/05 by Dmitry.Rekman
Linux: fix CIS (UT server case-sens errors).
Change 3153694 on 2016/10/06 by Jack.Porter
Rollback ReflectionCaptureDDCVer change as bug intended to fix UE-36919 does not repro
Change 3154766 on 2016/10/07 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3154833 on 2016/10/07 by Jack.Porter
Fix merge error of MobileShadingRenderer.cpp
Change 3154848 on 2016/10/07 by Allan.Bentham
Fix mobile scene capture's clear code
Change 3154875 on 2016/10/07 by Allan.Bentham
fix vk build issues
Change 3154941 on 2016/10/07 by Allan.Bentham
Fix gearvr build fail
Change 3154950 on 2016/10/07 by Allan.Bentham
Fix shadowed local variable vk build warning on android.
Change 3155909 on 2016/10/07 by Ben.Marsh
UBT: Attempt to work around C1076 error ("internal heap limit reached: use /Zm to specify a higher limit"), encountered when building with XGE. Specify the AutoReserveMemory attribute on XGE tool tasks that manipulate precompiled headers.
[CL 3155988 by Chris Babcock in Main branch]
2016-10-07 23:11:00 -04:00
|
|
|
bool FAndroidMisc::SupportsShaderIOBlocks()
|
|
|
|
|
{
|
|
|
|
|
return FAndroidGPUInfo::Get().bSupportsShaderIOBlocks;
|
|
|
|
|
}
|
|
|
|
|
|
2014-09-18 17:49:40 -04:00
|
|
|
void FAndroidMisc::GetValidTargetPlatforms(TArray<FString>& TargetPlatformNames)
|
|
|
|
|
{
|
|
|
|
|
TargetPlatformNames = FAndroidGPUInfo::Get().TargetPlatformNames;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void FAndroidAppEntry::PlatformInit()
|
|
|
|
|
{
|
|
|
|
|
const bool Debug = PlatformOpenGLDebugCtx();
|
|
|
|
|
|
2016-03-16 21:16:51 -04:00
|
|
|
// @todo vulkan: Yet another bit of FAndroidApp stuff that's in GL - and should be cleaned up if possible
|
|
|
|
|
if (!FAndroidMisc::ShouldUseVulkan())
|
|
|
|
|
{
|
|
|
|
|
//AndroidEGL::GetInstance()->Init(AndroidEGL::AV_OpenGLES, 3, 1, Debug);
|
|
|
|
|
AndroidEGL::GetInstance()->Init(AndroidEGL::AV_OpenGLES, 2, 0, Debug);
|
|
|
|
|
}
|
2014-09-18 17:49:40 -04:00
|
|
|
}
|
|
|
|
|
|
2016-09-07 17:04:11 -04:00
|
|
|
void FAndroidAppEntry::ReleaseEGL()
|
|
|
|
|
{
|
|
|
|
|
AndroidEGL* EGL = AndroidEGL::GetInstance();
|
|
|
|
|
if (EGL->IsInitialized())
|
|
|
|
|
{
|
|
|
|
|
EGL->DestroyBackBuffer();
|
|
|
|
|
EGL->Terminate();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2014-09-18 17:49:40 -04:00
|
|
|
#endif
|