Optimize DateTime include in StreamableResource

This commit is contained in:
Wojtek Figat
2021-07-02 15:39:48 +02:00
parent 891961b03b
commit b367be2b12
2 changed files with 6 additions and 10 deletions

View File

@@ -2,7 +2,6 @@
#pragma once #pragma once
#include "Engine/Core/Types/DateTime.h"
#include "Engine/Core/Collections/SamplesBuffer.h" #include "Engine/Core/Collections/SamplesBuffer.h"
class StreamingGroup; class StreamingGroup;
@@ -105,9 +104,9 @@ public:
struct StreamingCache struct StreamingCache
{ {
DateTime LastUpdate = 0; int64 LastUpdate = 0;
int32 TargetResidency = 0; int32 TargetResidency = 0;
DateTime TargetResidencyChange = 0; int64 TargetResidencyChange = 0;
SamplesBuffer<float, 5> QualitySamples; SamplesBuffer<float, 5> QualitySamples;
}; };
@@ -118,7 +117,7 @@ public:
/// </summary> /// </summary>
void RequestStreamingUpdate() void RequestStreamingUpdate()
{ {
Streaming.LastUpdate.Ticks = 0; Streaming.LastUpdate = 0;
} }
protected: protected:

View File

@@ -130,17 +130,14 @@ void UpdateResource(StreamableResource* resource, DateTime now, double currentTi
auto allocatedResidency = resource->GetAllocatedResidency(); auto allocatedResidency = resource->GetAllocatedResidency();
auto targetResidency = handler->CalculateResidency(resource, targetQuality); auto targetResidency = handler->CalculateResidency(resource, targetQuality);
ASSERT(allocatedResidency >= currentResidency && allocatedResidency >= 0); ASSERT(allocatedResidency >= currentResidency && allocatedResidency >= 0);
resource->Streaming.LastUpdate = now.Ticks;
// Assign last update time
auto updateTimeDelta = now - resource->Streaming.LastUpdate;
resource->Streaming.LastUpdate = now;
// Check if a target residency level has been changed // Check if a target residency level has been changed
if (targetResidency != resource->Streaming.TargetResidency) if (targetResidency != resource->Streaming.TargetResidency)
{ {
// Register change // Register change
resource->Streaming.TargetResidency = targetResidency; resource->Streaming.TargetResidency = targetResidency;
resource->Streaming.TargetResidencyChange = now; resource->Streaming.TargetResidencyChange = now.Ticks;
} }
// Check if need to change resource current residency // Check if need to change resource current residency
@@ -233,7 +230,7 @@ void StreamingSystem::Job(int32 index)
const auto resource = Resources[LastUpdateResourcesIndex]; const auto resource = Resources[LastUpdateResourcesIndex];
// Try to update it // Try to update it
if (now - resource->Streaming.LastUpdate >= ResourceUpdatesInterval && resource->CanBeUpdated()) if (now - DateTime(resource->Streaming.LastUpdate) >= ResourceUpdatesInterval && resource->CanBeUpdated())
{ {
UpdateResource(resource, now, currentTime); UpdateResource(resource, now, currentTime);
resourcesUpdates--; resourcesUpdates--;