Optimize DateTime include in StreamableResource
This commit is contained in:
@@ -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:
|
||||||
|
|||||||
@@ -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--;
|
||||||
|
|||||||
Reference in New Issue
Block a user