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]
- On OS X glDeleteBuffers and glDeleteTextures will implictly finish the current command stream if they need to. This causes stalls that idle the GPU, so we want to avoid that.
- OpenGL wrappers now implement DeleteTextures and DeleteBuffers.
- On OS X DeleteTextures pools the texture names into one of three buffers so that textures are deleted at least two frames after their last use.
- The texture deletion occurs after flushBuffer in BlitToViewport and the min/max number of textures to delete in a single invocation can be overidden by the r.Mac.MinTexturesToDeletePerFrame & r.Mac.MaxTexturesToDeletePerFrame.
- On OS X buffers aren't actually deleted, instead their backing store is orphaned (BufferData with size 0) as this is substantially faster.
#codereview michael.trepka
[CL 2238491 by Mark Satterthwaite in Main branch]
* For several preview components (cascade + a couple of animation previews), don't create a separate FXSystem for the preview world. Just use the one created internally by the world
* Several bug fixes and improvements to dynamic feature level switch
* Continued conversion of code that references to global feature level.
#codereview Nick.Penwarden
[CL 2229679 by Graeme Thornton in Main branch]
- Material editor preview nodes now work when the editor is in es2 mode
- Make editor primitives work in ES2 mode
- Fix slate font rendering in ES2 mode
- Remove ES2 shader de-gamma when in the editor
- Add a new linear sampler type for linear textures
- Various fixes for dynamic feature level switching
- When in an emulated feature level mode, display some text in the level editor viewport saying what feature level we're running
- Removed feature level parameter from USkeletalMesh::GetResourceForRendering. Not used for anything
- ParticleVertexFactoryPool is now creates feature level specific vertex factories.
[CL 2187558 by Graeme Thornton in Main branch]
- New target platforms (LinuxNoEditor for client+server, LinuxClient for client, Linux for editor, LinuxServer for dedicated server - mirroring other platforms).
- Preliminary support for gcc in the toolchain (and some safe fixes in code).
- No more lowercasing when accessing files on Linux, tread carefully.
- Changes needed for native compilation and other minor improvements.
#codereview Josh.Adams, Michael.Liebenow, Steve.Robbs
[CL 2067133 by Dmitry Rekman in Main branch]
#ttp 331829 - Mobile Preview in Editor
#proj Engine
#branch UE4
#summary First pass of changes to remove GRHIFeatureLevel, allowing for multiple scenes with different feature levels to exist. First step towards dynamic mobile preview in the editor.
#change Added GMaxRHIFeature level which contains the highest supported feature level on this machine
#change Added a cvar "r.FeatureLevelPreview" which, when set to 1, enables a feature level selection in the quick settings menu. Not wired up to anything at the minute
#change Added a feature level variable to FScene, which is currently initialized to whatever GRHIFeatureLevel is. Accessed with GetFeatureLevel()
#change Added a helper accessor GetFeatureLevel() to FSceneView which gets the feature level from the relevant scene. Purely to reduce the amount of typing needed to get to a feature level
#change Many changes across the renderer to try and read the current feature level from the view or scene. Not everything is done yet, but this is almost all of the "easy" stuff. As there is still just a global feature level in the engine, nothing should change.
[CL 2066905 by Graeme Thornton in Main branch]
As per discussion with Smedis (NiklasS):
- Macros to get GL parameters unified across platforms and changed so they set default values unconditionally.
- We want to ignore errors like "getting an invalid enum" for these cases, so code rearranged to initialize (some) tesselation parms in base, where they're declared.
#codereview Niklas.Smedberg
[CL 2065995 by Dmitry Rekman in Main branch]
#proj core
#branch UE4
#summary Rename Trunc, Round, Floor, Ceil to TruncToInt, RoundToInt, FloorToInt, CeilToInt. Added *ToFloat versions. Repeated for FGenericPlatformMath and all derived classes for all platforms wherever applicable. Corrected comment in Fractional and added Frac() which does HLSL-style fractional (x - floor(x)). Checked for compilation on all projects (with cooking levels wherever applicable). Didn't change Fractional to Frac, this will be done in second commit.
#codereview robert.manuszewski
[CL 2064306 by Mikolaj Sieluzycki in Main branch]