Commit Graph

31 Commits

Author SHA1 Message Date
jeremy moore
8bf254a8ff Fix flickering of RVT during landscape edit due to not fixing up ancestor pages when unmapping pages during invalidation.
The bug was introduced by a copy/paste mistake in 18816214

#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 19470574 via CL 19475098
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v935-19464907)

[CL 19475572 by jeremy moore in ue5-main branch]
2022-03-22 23:02:09 -04:00
jeremy moore
9ba4a22386 #jira UE-121386
Fix invalidation of Adaptive Virtual Textures.
We need to gather all of the Allocated VTs in the AVT and invalidate the pagaes associated with their individual producers.
#preflight 61f9aaa64404d5fadefdd8d4

#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 18816214 in //UE5/Release-5.0/... via CL 18816220 via CL 18822814
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18824368 by jeremy moore in ue5-main branch]
2022-02-02 07:39:44 -05:00
jeremy moore
503318019e Optimization for FVirtualTextureProducer::Release
Accelerate lookup of pages per producer in EvictAll()
#rb jeanfrancois.dube
#preflight 6179b6d14c74960001ea6bca
#lockdown michal.valient

#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 17962457 via CL 18008152 via CL 18370533 via CL 18370610
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18370670 by jeremy moore in ue5-release-engine-test branch]
2021-12-03 13:52:32 -05:00
jon nabozny
6ba99692f9 When sampling VT use a fallback color held in a uniform if the root page isn't mapped.
#rb ben.ingram
#preflight 6175b24d875c1a0001aed3e4
#lockdown michal.valient

#ROBOMERGE-OWNER: jon.nabozny
#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 17904945 via CL 18006803 via CL 18370387 via CL 18370436
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18370510 by jon nabozny in ue5-release-engine-test branch]
2021-12-03 13:43:10 -05:00
jeremy moore
e3b07e972d Add r.vt.DumpPoolUsage.
This outputs the physical tile footprint of each VT producer.
Useful for finding producers that are using up most of the physical cache.
#rb none
#preflight 6108b0b72b00280001195a54

#ROBOMERGE-SOURCE: CL 17025048 via CL 17025049
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v839-17012307)

[CL 17025051 by jeremy moore in ue5-release-engine-test branch]
2021-08-02 23:44:36 -04:00
Ben Ingram
fc2da0313a Add cvar to control number of frames VT page must be unused before it's considered 'free'
With lots of VTs per material, pages may not be 'touched' by the CPU every frame they're used, this threshold will help prevent these pages from being re-used too early
Effectively this will make the 'VT oversubscription' message more likely to appear, but this should more accurately reflect the actual load on the system
#rb none
#jira none

[CL 16208261 by Ben Ingram in ue5-main branch]
2021-05-05 11:55:24 -04:00
Ben Ingram
38df1c2832 Remove some debug code that was failing non-unity compile
#jira UE-113341
#rb none

[CL 15991673 by Ben Ingram in ue5-main branch]
2021-04-13 13:11:45 -04:00
Ben Ingram
43ad5274ff Fixes for VT page unmapping...ensure that we don't get mismatched ancestor pages
#rb none
#jira none

[CL 15962520 by Ben Ingram in ue5-main branch]
2021-04-08 19:55:35 -04:00
Ben Ingram
eea1e7e74e Various VT fixes, mostly related to UDIMs
- Fix how local mip bias is applied
- Fix a few inconsistencies with how various vLevels are computed
- Rename some values to try to be more consistent between vLevel, Local_vLevel, Mapping_vLevel, vLogSize, etc
#rb none
#jira none

[CL 15947986 by Ben Ingram in ue5-main branch]
2021-04-07 19:06:31 -04:00
Ben Ingram
9964cab80e AllocatedVT no longer assumes a square power-2 allocation region when unmapping/evicting pages
#rb none
#jira none

[CL 15827936 by Ben Ingram in ue5-main branch]
2021-03-25 14:24:11 -04:00
Marc Audy
0cbbc781ca Merge UE5/Release-Engine-Staging @ 15740152 to UE5/Main
This represents UE4/Main @ 15709114

[CL 15740605 by Marc Audy in ue5-main branch]
2021-03-18 15:20:03 -04:00
Marc Audy
bf80889353 UE5/Release-Engine-Staging to UE5/Main
This represents UE4/Main up to CL# 14958402

[CL 15028197 by Marc Audy in ue5-main branch]
2021-01-08 19:56:07 -04:00
Marc Audy
4c1bb11c29 Merge UE5/Release-Engine-Staging to UE5/Main @ 14548662
This represents UE4/Main @ 14525125 + cherrypicked fixes
#skipundocheck

[CL 14551026 by Marc Audy in ue5-main branch]
2020-10-22 19:19:16 -04:00
Jeremy Moore
9106526f03 Fix for check firing on non power of two UDIM textures.
#jira none
#fyi ben.ingram

[CL 14124135 by Jeremy Moore in ue5-main branch]
2020-08-17 12:11:04 -04:00
Michal Valient
95d19f95b1 [REVERB] Merging //UE4/Private-Reverb-Development@13832732
#rb graham.wihlidal, rune.stubbe, brian.karis, andrew.lauritzen, jeff.farris

[CL 13834854 by Michal Valient in ue5-main branch]
2020-07-06 18:58:26 -04:00
ryan durand
0f0464a30e Updating copyright for Engine Runtime.
#rnx
#rb none


#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870549 by ryan durand in Main branch]
2019-12-26 14:45:42 -05:00
jeremy moore
a24eea9e6f Better CSV stat to track percentage of virtual texture physical space is being used
#rb none

#ROBOMERGE-OWNER: jeremy.moore
#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 9428260 via CL 9428262 via CL 9444157 via CL 9449047 via CL 9449237
#ROBOMERGE-BOT: (v495-9448618)

[CL 9451783 by jeremy moore in Main branch]
2019-10-07 13:25:21 -04:00
jeremy moore
fa4514c8f8 Decouple the concepts of VT texture layer and VT page table layer.
This allows us to put texture layers into physical groups that will be accessed through the same page table layer (and so must share the same UV in different physical textures).
Physical spaces can now contain multiple texture layers (one for each member of a physical group).
Changed the logic for the physical space pool descriptions so that we can support multiple texture layers. And also made the description work for Min and Max tile size values so that we don't need to specify pool sizes multiple times for each possible tile size.
Runtime virtual texture can select if it wants to use a single physical group. By default this is on so that RVT uses a single page table channel.
#rb none
[FYI] Ben.Ingram


#ROBOMERGE-OWNER: jeremy.moore
#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 8747955 via CL 8748343 via CL 8782324
#ROBOMERGE-BOT: (v422-8689730)

[CL 8790675 by jeremy moore in Main branch]
2019-09-17 20:33:19 -04:00
jeremy moore
899c1a35a7 Add support for max level to flush runtime virtual texture mips
#rb none

#ROBOMERGE-OWNER: jeremy.moore
#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 8126366 via CL 8132083
#ROBOMERGE-BOT: (v401-8057353)

[CL 8157029 by jeremy moore in Main branch]
2019-08-21 08:56:44 -04:00
jeremy moore
ea77c70fcb Condition for detecting locked pages in FTexturePagePool::EvictPages was inverted :(
Fixes crash in FTexturePagePool::EvictPages()
Fixes check triggering in FVirtualTextureSystem::SubmitRequestsFromLocalTileList()


#ROBOMERGE-SOURCE: CL 8060257 via CL 8061638
#ROBOMERGE-BOT: (v400-8057353)

[CL 8068071 by jeremy moore in Main branch]
2019-08-15 17:34:59 -04:00
Jeremy Moore
c15e42339f Fix build error introduced by merge of 7882089 and 8012534
#jira none
#rb none

[CL 8029869 by Jeremy Moore in Main branch]
2019-08-14 10:07:43 -04:00
ben ingram
0247529d3c #jira UE-78586
- FVirtualTexturePhysicalSpace* now stored using TRefCountPtr<>, since code was changed to destroy previous unused physical spaces
- Otherwise we get into bad state since AllocatedVT could reference already deleted physical space, and cause system to get out of sync and/or crash
- Also defer deletion of unreferenced physical spaces until end of each render thread update, not strictly needed, but keeps large textures from getting destroyed/recreated in some cases
#rb none
[FYI] jeremy.moore

#ROBOMERGE-SOURCE: CL 8012534 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v396-7974030)

[CL 8012536 by ben ingram in Main branch]
2019-08-13 18:12:51 -04:00
jeremy moore
0e1455505d Runtime virtual texture flush per VT and region instead of flushing everything
#ROBOMERGE-SOURCE: CL 7882089 via CL 7914929
#ROBOMERGE-BOT: (v389-7813075)

[CL 7915095 by jeremy moore in Main branch]
2019-08-08 23:35:07 -04:00
Rolando Caloca
aa0d2303d6 Copying //UE4/Dev-Rendering to Dev-Main (//UE4/Dev-Main) @ 6944469
#rb none
#rnx

[CL 6944849 by Rolando Caloca in Main branch]
2019-06-11 18:27:07 -04:00
Marcus Wassmer
cbfcbbb93b Merging //UE4/Dev-Main@4662404 to Dev-Rendering (//UE4/Dev-Rendering)
#rb none
Should be just copyright updates

[CL 4680440 by Marcus Wassmer in Dev-Rendering branch]
2019-01-03 19:16:26 -05:00