Commit Graph

47 Commits

Author SHA1 Message Date
Martin Mittring
0924ac0b78 removed r.UseDiffuseSpecularMaterialInput (was only used for Fortnite which has been rchanged, prevented some GBuffer optimizations)
[CL 2323127 by Martin Mittring in Main branch]
2014-10-08 15:27:19 -04:00
Graeme Thornton
74f9da32d7 Mobile Preview - Removing GRHIShaderPlatform
#codereview Nick.Penwarden

[CL 2321148 by Graeme Thornton in Main branch]
2014-10-07 08:46:39 -04:00
Graeme Thornton
e1a1217493 Fix for TTP 348451 - Crash when selecting ES2 from the feature level preview menu when running in opengl
[CL 2318386 by Graeme Thornton in Main branch]
2014-10-03 06:02:18 -04:00
Daniel Wright
f1b17d830f Renamed new cvars, now 'r.Shaders.Optimize' and 'r.Shaders.KeepDebugInfo'
#PR 457

[CL 2316592 by Daniel Wright in Main branch]
2014-10-01 17:20:38 -04:00
Daniel Wright
154fb81c3c Added r.StripShaderDebugData and r.OptimizeShaders cvars, useful to disable when running
[CL 2314644 by Daniel Wright in Main branch]
2014-09-30 14:03:54 -04:00
Jaroslaw Palczynski
65ba5d456f TArray documentation and a coupld of methods deprecation.
Changes mostly in Array.h. The changes in other files are only renames for deprecated functions.

[CL 2312616 by Jaroslaw Palczynski in Main branch]
2014-09-29 04:23:44 -04:00
Niklas Smedberg
bb8f417304 Support for OpenGL ES 3.1 + Android Extension Pack
[CL 2303212 by Niklas Smedberg in Main branch]
2014-09-18 17:49:40 -04:00
Jamie Dale
b1076751ff Made FName case-preserving by storing case-variant strings in its string table
This is controlled by the macro "WITH_CASE_PRESERVING_NAME", which is currently just set to "WITH_EDITORONLY_DATA" so that it works in editor builds (and UHT).

Added an extra NAME_INDEX entry to FName to store a second string table index for a case-variant string. The previous Index value (now called ComparisonIndex) is still used for comparison purposes (as FNames are still case-insensitive).

The Init process for an FName now works like this:
 1) It will find or add a string table entry for the given string (not matching case) - this entry index is stored in ComparisonIndex.
 2) It will then compare the string table entry string against the given string (matching case) to see if it also needs to add a case-variant entry for the FName.
 3) If it does, it finds or adds a second string table entry (matching case) for the string - this entry index is stored in DisplayIndex.

Hard-coded FNames (those listed in UnrealNames.h) do not support case-variants (due to existing network replication rules for hard-coded FNames), so they skip steps 2 and 3.

I added FMinimalName, which is the same size as FName was previously. This shouldn't really be used (and as such, is deliberately awkward to make/use) as it loses the case-preserving behaviour of FName, however it was required for some things (like stats) that had a hard-coded upper limit on FName size.

I added FScriptName, which always contains the extra display index (even when WITH_CASE_PRESERVING_NAME is disabled). This is used by Blueprint bytecode, as the types used by Blueprint bytecode must be a consistent size between all build configurations.

Other changes:

 - Fixed up any places that were passing an Index into the FName constructor which was supposed to take an EName.
     - Some places were doing this to make the number unique when replicating an object, but this was losing the case-variant information, so I had to fix them.
     - FName will now assert if the EName constructor is used with an value outside the range of hard-coded FNames.

 - Ensured that assets, actors, and blueprint components could all be renamed in a way that only changed their case, and that these changes were correctly persisted.

 - Added FLinkerNamePairKeyFuncs and TLinkerNameMapKeyFuncs for use with TSet and TMap.
     - These allow ULinkerSave and ULinkerLoad to correctly write out case-variants for FNames, and also fixes an issue where the linker would erroneously write out duplicate string table entries for FNames which had a different number (causing package bloat).

 - Bumped VER_MIN_SCRIPTVM_UE4 so that all Blueprint bytecode is recompiled using FScriptName.

ReviewedBy Robert.Manuszewski, Gil.Gribb

[CL 2300730 by Jamie Dale in Main branch]
2014-09-17 05:24:55 -04:00
Allan Bentham
31ad80e354 Removed excess logging when shader platforms are not compatible.
[CL 2298031 by Allan Bentham in Main branch]
2014-09-15 08:35:21 -04:00
Graeme Thornton
ff5e71eb16 WIP Mobile Preview
- Store global bitfield of active feature levels
 - Generate shaders for all active feature levels
 - Add option to experimental settings to enable dynamic feature level
 - Redirect GRHIFeatureLevel to GMaxRHIFeatureLevel - Effectively const now, ready to be removed

[CL 2296373 by Graeme Thornton in Main branch]
2014-09-13 10:47:14 -04:00
Daniel Wright
567ce8a3a4 Better error message for shader / VF types loaded too late
[CL 2291213 by Daniel Wright in Main branch]
2014-09-09 14:55:09 -04:00
Dmitry Rekman
fb75f5bdb0 Disabling the code in a way that doesn't trigger compiler warnings.
#codereview Gil.Gribb

[CL 2288242 by Dmitry Rekman in Main branch]
2014-09-07 02:13:48 -04:00
Graeme Thornton
df9dbd5ae3 Continued in-editor mobile preview work
- Removed default shader platform parameter from GetGlobalShaderMap()
 - Added an inline overload of GetGlobalShaderMap() that takes a feature level instead, and translates to the correct shader platform
 - Cached feature level on FSceneView for faster access
 - Cached shader map on FViewInfo for faster access
 - Cached featurelevel/shadermap on rendering composition graph execution context, for faster access

Fixed a couple of crashes when switching feature level dynamically
 - Needed to allow certain shader permutations to be generated if feature level was ES2, but still on a PC platform. (i.e. hitproxy shaders, and basepass shaders used by editor primitives system)

#codereview Nick.Penwarden

[CL 2275937 by Graeme Thornton in Main branch]
2014-08-28 06:22:54 -04:00
Rolando Caloca
ce23bbf205 UE4 - Safe integration SM3->SM4
[CL 2271099 by Rolando Caloca in Main branch]
2014-08-25 16:47:22 -04:00
Allan Bentham
85930517d6 Fix crash with opengl UBOs when ES2 preview mode is toggled.
ES2 emulation now uses UBOs instead of packed uniform blocks.
Fixed issue with ogl shader compiler introducing '__' into padding variable names.

[CL 2264084 by Allan Bentham in Main branch]
2014-08-20 08:27:17 -04:00
Daniel Wright
ea1d38c1c3 FPrimitiveSceneProxy::PreRenderView / DrawDynamicElements refactored into GetDynamicMeshElements
* Both paths still exist in code during this transition.  The GetDynamicMeshElements path is currently disabled, enable with 'r.UseGetDynamicMeshElements 1'.
* DrawDynamicElements was called once per pass, all sorts of pass-specific cruft had leaked in along with short-term modifications of shared structures (vertex factories and material proxies).  DrawDynamicElements was not const, so a bunch of 'update' type work had leaked in.  Various PreRenderView implementations relied on the view being in the view family.
* GetDynamicMeshElements is called once in InitViews, and the resulting meshes are used in various passes.  GetDynamicMeshElements is const and must not modify the proxy, update work should be pushed to the proxy from the game thread.  GetDynamicMeshElements can be called on views that are not in the view family, which allows a proper view for shadow depth passes.
* View mode override functionality moved out of the individual proxies into a centralized place, ApplyViewModeOverrides
* GPU particles not working yet, FRecastRenderingSceneProxy not implemented

[CL 2253795 by Daniel Wright in Main branch]
2014-08-12 18:24:52 -04:00
Gil Gribb
d5dd196727 UE4 - remove stale comments
[CL 2244470 by Gil Gribb in Main branch]
2014-08-05 13:35:53 -04:00
Lee Clark
0752c1815d PS4 - Geometry shader ring buffers
* Off chip GS ring buffers are now handled by allocating the global resource table from the command buffer when required. Removes the need to use the largets output for all GS.
* Initial support for OnChip GS. Internal compiler not currently supported due to missing profile. Also seeing some random polys which looks to be an issue with the SDK.

#codereview Marcus.Wassmer

[CL 2239732 by Lee Clark in Main branch]
2014-08-01 08:47:13 -04:00
Mark Satterthwaite
95fde7bea8 Add a specific SP_OPENGL_SM4_MAC so that we can compile shaders from Windows for all Macs, even the older GL 3.3 devices that don't support volume-texture rendering.
#codereview nick.penwarden, michael.trepka

[CL 2238230 by Mark Satterthwaite in Main branch]
2014-07-31 09:03:55 -04:00
Dmitry Rekman
30a9dc0957 [Github] PR #306: safe/minor changes.
- Minor fixes, Linux-specific additions (like preferred source code accessor setting or building ForsythTriOO) and tweaks (log level, etc).

#codereview Josh.Adams

[CL 2237893 by Dmitry Rekman in Main branch]
2014-07-30 23:46:52 -04:00
Timothy Lottes
06c5196590 Start of no-gbuffer rendering option. Still have a lot of work to do before this is functional.
[CL 2236268 by Timothy Lottes in Main branch]
2014-07-29 17:32:52 -04:00
Gil Gribb
c3a1b22610 UE4 - parallel rendering - fix a few bugs with shader creation and static states, do prepass in parallel
[CL 2229807 by Gil Gribb in Main branch]
2014-07-24 08:54:31 -04:00
Gil Gribb
18d525f874 UE4 - parallel rendering, reworks command lists
[CL 2226868 by Gil Gribb in Main branch]
2014-07-22 08:29:38 -04:00
Gil Gribb
9a379a2aea UE4 - local uniformbuffers for command lists
[CL 2220640 by Gil Gribb in Main branch]
2014-07-16 09:49:21 -04:00
Rolando Caloca
5d586a4f05 UE4 - Common crosscompiler headers
[CL 2219173 by Rolando Caloca in Main branch]
2014-07-15 13:25:14 -04:00