You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/Gems
Nicholas Van Sickle db63dcbcd9
Refresh rate driven rendering tick logic (#3375)
* Implement sync interval and refresh rate API for RenderViewportWidget

Signed-off-by: nvsickle <nvsickle@amazon.com>

* Measure actual frame timings in the viewport info overlay.

Takes the median of the sum of (frame end - frame begin) to provide more a more representative view of when frames begin and end.

Note: Until VSync is internally supported by the event loop, this will produce nearly identical frame timings as the frame will spend as much time as needed synchronously waiting on a vblank.

Signed-off-by: nvsickle <nvsickle@amazon.com>

* Make frame timing per-pipeline, wire up refresh rate info to ViewportContext

Signed-off-by: nvsickle <nvsickle@amazon.com>

* POC: Frame limit pipeline rendering

Signed-off-by: nvsickle <nvsickle@amazon.com>

* Switch Editor tick to every 0ms to allow better tick accumulation behavior

Signed-off-by: nvsickle <nvsickle@amazon.com>

* Move RPISystemComponent to the tick bus, remove tick accumulation logic

Signed-off-by: nvsickle <nvsickle@amazon.com>

* Add `AddToRenderTickAtInterval` to RenderPipeline API

This allows a pipeline to update at a set cadence, instead of rendering every frame or being directly told when to tick.

Signed-off-by: nvsickle <nvsickle@amazon.com>

* Make ViewportContext enforce a target framerate

-Adds GetFpsLimit/SetFpsLimit for actively limiting FPS
-Calculates a render tick interval based on vsync and the vps limit and updates the current pipeline

Signed-off-by: nvsickle <nvsickle@amazon.com>

* Add r_fps_limit and ed_inactive_viewport_fps_limit cvars

Signed-off-by: nvsickle <nvsickle@amazon.com>

* Quick null check from a crash I bumped into

Signed-off-by: nvsickle <nvsickle@amazon.com>

* Fix off-by-one on FPS calculation (shouldn't include the not-yet-rendered frame)

Signed-off-by: nvsickle <nvsickle@amazon.com>

* Clarify frame time begin initialization

Signed-off-by: nvsickle <nvsickle@amazon.com>

* Fix TrackView export.

Signed-off-by: nvsickle <nvsickle@amazon.com>

* Address some reviewer feedback, revert RPISystem API change, fix CPU profiler.

Signed-off-by: nvsickle <nvsickle@amazon.com>

* Add g_simulation_tick_rate

Signed-off-by: nvsickle <nvsickle@amazon.com>

* Address review feedback, make frame limit updates event driven

Signed-off-by: nvsickle <nvsickle@amazon.com>

* Remove timestamp update from ComponentApplication::Tick

Signed-off-by: nvsickle <nvsickle@amazon.com>
5 years ago
..
AWSClientAuth Build time reduction: AzStdOnDemandReflection (#3111) 5 years ago
AWSCore [SPEC-7868] Update AWS Gems cmake target with correct runtime dependencies (#3991) 5 years ago
AWSGameLift [SPEC-7868] Update AWS Gems cmake target with correct runtime dependencies (#3991) 5 years ago
AWSMetrics [SPEC-7868] Update AWS Gems cmake target with correct runtime dependencies (#3991) 5 years ago
Achievements Adds Links to Gem Directory and Documentation for Gems (#2922) 5 years ago
AssetMemoryAnalyzer fixes windows warnings 5 years ago
AssetValidation Adds Links to Gem Directory and Documentation for Gems (#2922) 5 years ago
Atom Refresh rate driven rendering tick logic (#3375) 5 years ago
AtomContent Removed all preview.png and references of preview.png in all Atom related gems. (#3664) 5 years ago
AtomLyIntegration Refresh rate driven rendering tick logic (#3375) 5 years ago
AtomTressFX Removed all preview.png and references of preview.png in all Atom related gems. (#3664) 5 years ago
AudioEngineWwise Fix compile errors in the Wwise Gem (#3989) 5 years ago
AudioSystem Avoid redefining `PRI` macros on Linux (#4055) 5 years ago
BarrierInput Another warning fixes 5 years ago
Blast Build time reduction: AzStdOnDemandReflection (#3111) 5 years ago
Camera Set enable gem variants feature (#3631) 5 years ago
CameraFramework Adds Links to Gem Directory and Documentation for Gems (#2922) 5 years ago
CertificateManager Adds Links to Gem Directory and Documentation for Gems (#2922) 5 years ago
CrashReporting fixes monolithic release 5 years ago
CustomAssetExample Adds Links to Gem Directory and Documentation for Gems (#2922) 5 years ago
DebugDraw Adds Links to Gem Directory and Documentation for Gems (#2922) 5 years ago
DevTextures Adds Links to Gem Directory and Documentation for Gems (#2922) 5 years ago
EMotionFX EMotion FX: Resetting the anim graph while in the middle of selecting transitions for interruption crashes the Editor (#4026) 5 years ago
EditorPythonBindings Build time reduction: AzStdOnDemandReflection (#3111) 5 years ago
ExpressionEvaluation Merge pull request #3618 from aws-lumberyard-dev/carlitosan/development 5 years ago
FastNoise fix Linux unit test hang 5 years ago
GameState Fix the GameStateSamples Gem and remove an unused variable from DebugConsole.h (#3347) 5 years ago
GameStateSamples Fix the GameStateSamples Gem and remove an unused variable from DebugConsole.h (#3347) 5 years ago
Gestures Fixing gestures gem warnings when gEnv/pTimer is null 5 years ago
GradientSignal Gems/GradientSignal 5 years ago
GraphCanvas more gems changes 5 years ago
GraphModel Fix unused warnings release (#3677) 5 years ago
HttpRequestor Adds Links to Gem Directory and Documentation for Gems (#2922) 5 years ago
ImGui Enabling warnings around format security 5 years ago
InAppPurchases Android release fixes (#3788) 5 years ago
LandscapeCanvas other gems 5 years ago
LmbrCentral Avoid redefining `PRI` macros on Linux (#4055) 5 years ago
LocalUser Adds Links to Gem Directory and Documentation for Gems (#2922) 5 years ago
LyShine Fixes for release builds for unused variable warnings (#4000) 5 years ago
LyShineExamples Legacy code cleanup - part 3 (#3903) 5 years ago
Maestro Legacy code cleanup - part 3 (#3903) 5 years ago
MessagePopup MessagePopup 5 years ago
Metastream Gems/Metastream 5 years ago
Microphone Android release fixes (#3788) 5 years ago
Multiplayer Merge branch 'upstream/development' into GitIssue3155_MultiplayerComponentsUsingNetInputRequirePlayerInputComponent 5 years ago
MultiplayerCompression update revision of lz4 package used by o3de (#3911) 5 years ago
NvCloth Fixed NvCloth assets, NvCloth automated test scripts, ModelAsset cloning and UI reverse overrides menu crash (#3851) 5 years ago
PBSreferenceMaterials Adds Links to Gem Directory and Documentation for Gems (#2922) 5 years ago
PhysX Remove redundant API calls from EditorViewportWidget and use new WorldToScreen call (#4022) 5 years ago
PhysXDebug Merge branch 'development' into cmake/SPEC-2513_w4244 5 years ago
PhysXSamples Adds Links to Gem Directory and Documentation for Gems (#2922) 5 years ago
Prefab Set enable gem variants feature (#3631) 5 years ago
Presence Adds Links to Gem Directory and Documentation for Gems (#2922) 5 years ago
PrimitiveAssets Adds Links to Gem Directory and Documentation for Gems (#2922) 5 years ago
PythonAssetBuilder removing unnecessary bigobj flags from files (its applied globally) 5 years ago
QtForPython Replaced some Lumberyard references with O3DE. 5 years ago
SaveData Merge branch 'development' into cmake/SPEC-7484 5 years ago
SceneLoggingExample Merge pull request #3685 from aws-lumberyard-dev/cgalvan/UpdateProjectConfiguratorReferences 5 years ago
SceneProcessing Set enable gem variants feature (#3631) 5 years ago
ScriptCanvas remove false error from deserializing BC nodes 5 years ago
ScriptCanvasDeveloper unnecessary comparison to itself 5 years ago
ScriptCanvasPhysics Gems/ScriptCanvas 5 years ago
ScriptCanvasTesting remove reference to old test 5 years ago
ScriptEvents Fixes for release builds for unused variable warnings (#4000) 5 years ago
ScriptedEntityTweener more warnings triggered by nightly builds 5 years ago
SliceFavorites other gems 5 years ago
StartingPointCamera Adds Links to Gem Directory and Documentation for Gems (#2922) 5 years ago
StartingPointInput Adds Links to Gem Directory and Documentation for Gems (#2922) 5 years ago
StartingPointMovement Adds Links to Gem Directory and Documentation for Gems (#2922) 5 years ago
SurfaceData Remove extra/bad profile markers (#4031) 5 years ago
Terrain Change shape type in test mock plus bugfix. (#4073) 5 years ago
TestAssetBuilder Adds Links to Gem Directory and Documentation for Gems (#2922) 5 years ago
TextureAtlas more gems changes 5 years ago
TickBusOrderViewer Adds Links to Gem Directory and Documentation for Gems (#2922) 5 years ago
Twitch more fixes for Gems 5 years ago
UiBasics Adds Links to Gem Directory and Documentation for Gems (#2922) 5 years ago
Vegetation Avoid redefining `PRI` macros on Linux (#4055) 5 years ago
VideoPlaybackFramework Adds Links to Gem Directory and Documentation for Gems (#2922) 5 years ago
VirtualGamepad Adds Links to Gem Directory and Documentation for Gems (#2922) 5 years ago
WhiteBox Add remaining integration tests for viewport selection (box select) (#4075) 5 years ago