Commit Graph

36 Commits

Author SHA1 Message Date
Gil Gribb
e631ac5ea3 UE4 - support for dithered LOD transitions on static meshes (that don't move) -- also fixed parallel render thread updates for spline meshes
[CL 2524405 by Gil Gribb in Main branch]
2015-04-24 11:20:23 -04:00
Martin Mittring
a576df51f9 now SetRenderTarget requires to specify what DepthAndStencil access you want to do e.g. FExclusiveDepthStencil::DepthRead_StencilWrite
options:   Nop / Read / Write

added ensure() and check() to find bad usage patterns

this fixes DBuffer decal rendering, allows optimizations in the RHI (near hardware APIs like DX12 or consoles)

[CL 2505694 by Martin Mittring in Main branch]
2015-04-08 15:33:28 -04:00
Rolando Caloca
ce168f2846 UE4 - Renamed depth compare enums, changed some checks to static_asserts
[CL 2498658 by Rolando Caloca in Main branch]
2015-04-01 10:53:07 -04:00
Mike Fricker
114458bf0f Clang warning fixes: Fixed missing 'override' specifiers
- Also removed some unreferenced functions that adding 'override' revealed

PR #1002 -- Thank you, Omar007!

[CL 2498415 by Mike Fricker in Main branch]
2015-04-01 07:20:55 -04:00
Rolando Caloca
cb32891b3c UE4 - Added sanity checks for Inverted/Normal Depth Buffers; use ERHIZBuffer::NearPlane & FarPlane to switch from 0-1 to 1-0 on Depth
- Added shader define HAS_INVERTED_Z_BUFFER
- Added RHIHasInvertedZBuffer()
#codereview Martin.Mittring, Brian.Karis, Nick.Penwarden

[CL 2497481 by Rolando Caloca in Main branch]
2015-03-31 14:02:45 -04:00
Marcus Wassmer
2cd3355b99 Add MRT clear value binding to the RHI. This allows parallel rendering platforms to propagate clear color values across parallel execution boundaries for platforms which require low level control over hardware clears.
Also add many explicit calls to CopyToResolveTarget to indicate the transition of a render target to be able to be used as an SRV.  Soon to be replaced by a more specific RHI function.
Added r.CheckSRVTransitions for D3D11 on windows to check if any of these transition are missing.
Fixes a bug with RHIThreadFence when using PLATFORM_SUPPORTS_PARALLEL_RHI_EXECUTE
PLATFORM_SUPPORTS_PARALLEL_RHI_EXECUTE on PS4 now supports CMASK and HTILE enabled buffers.
#codereview lee.clark,gil.gribb,rolando.caloca,daniel.wright

[CL 2420986 by Marcus Wassmer in Main branch]
2015-01-27 16:14:50 -05:00
Olaf Piesche
55aa43537b Fix for bug UE-6754. Distortion pass was never rendered if only dynamic distortion relevant primitives were on screen.
[CL 2391550 by Olaf Piesche in Main branch]
2014-12-17 14:57:39 -05:00
Ben Marsh
149375b14b Update copyright notices to 2015.
[CL 2379638 by Ben Marsh in Main branch]
2014-12-07 19:09:38 -05:00
Daniel Wright
b4c700abeb Removed DrawDynamicElements, PreRenderView and dependencies. These have been disabled since 11/04, and the GetDynamicMeshElements path is now the only path for dynamic mesh rendering.
[CL 2370254 by Daniel Wright in Main branch]
2014-11-25 17:56:43 -05:00
Rolando Caloca
d8a576970e UE4 - Remove Color parameter on draw events (DEC_*)
[CL 2334566 by Rolando Caloca in Main branch]
2014-10-20 10:43:43 -04:00
Graeme Thornton
3ccbe19544 Mobile Preview - Removal of almost all GRHIFeatureLevel usages.
#codereview Nick.Pendwarden

[CL 2315798 by Graeme Thornton in Main branch]
2014-10-01 09:08:51 -04:00
Gil Gribb
d3b0d2b864 UE4 - parallized the relevance part of init views, reducing that time to about 1/3 of its previous value. This isn't on the critical path for rhi thread platforms, and is currently disabled.
[CL 2298401 by Gil Gribb in Main branch]
2014-09-15 13:41:48 -04:00
Gil Gribb
598cbb659c UE4 - allow draw events to work in parallel rendering, some flush tweaks
[CL 2293700 by Gil Gribb in Main branch]
2014-09-11 09:38:38 -04:00
Nick Penwarden
decb55cdd6 Add PolicyContext to avoid global variables during shadow rendering
[CL 2277869 by Nick Penwarden in Main branch]
2014-08-29 13:40:49 -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
Brian Karis
1bb20db69d Fixed responsive AA.
[CL 2268292 by Brian Karis in Main branch]
2014-08-22 20:51:28 -04:00
Mikolaj Sieluzycki
cfaf45ac58 Header cleanup: Engine module, public headers.
[CL 2265766 by Mikolaj Sieluzycki in Main branch]
2014-08-21 06:03:00 -04:00
Graeme Thornton
bcde0d05c2 Mobile Preview
* More removal of GRHIFeatureLevel and GRHIShaderPlatform

[CL 2262530 by Graeme Thornton in Main branch]
2014-08-19 10:41:34 -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
30f1fe2722 UE4 - further command list work. BoundShaderState, RHISetComputeShader, RHIDispatchComputeShader, RHIDispatchIndirectComputeShader, RHIAutomaticCacheFlushAfterComputeShader, RHIDrawPrimitiveIndirect, RHIDrawIndexedIndirect, RHIDrawIndexedPrimitiveIndirect, RHIEnableDepthBoundsTest
[CL 2175853 by Gil Gribb in Main branch]
2014-07-08 10:43:52 -04:00
Martin Mittring
2e7acc2479 * refactor, better SceneColor naming convention
[CL 2125512 by Martin Mittring in Main branch]
2014-07-02 16:54:50 -04:00
Gil Gribb
fa40806ce3 UE4 - More RHI command list work. Remove more cases of GetImmediateCommandList
[CL 2124713 by Gil Gribb in Main branch]
2014-07-02 12:18:30 -04:00
Gil Gribb
7d8fa617b6 UE4 - fix distortion + shader complexity crash
[CL 2123399 by Gil Gribb in Main branch]
2014-07-01 11:43:42 -04:00
Gil Gribb
1d50eae0de UE4 - rework RHI user-facing APIs to be safer and incorporate the desired sematics
[CL 2119499 by Gil Gribb in Main branch]
2014-06-27 11:07:13 -04:00
Gil Gribb
bc7c8cbca8 UE4 - more work preparing for parallel rendering. Merged the cmd list into the post process context, among other things.
[CL 2103040 by Gil Gribb in Main branch]
2014-06-12 07:13:34 -04:00