Optimize compilation time

This commit is contained in:
Wojtek Figat
2022-12-03 10:42:58 +01:00
parent 6458d7e0db
commit 98c29c4a4e
67 changed files with 128 additions and 77 deletions

View File

@@ -3,6 +3,7 @@
#include "DefaultGPUTasksExecutor.h"
#include "GPUTasksContext.h"
#include "GPUTask.h"
#include "GPUTasksManager.h"
#include "Engine/Graphics/GPUDevice.h"
DefaultGPUTasksExecutor::DefaultGPUTasksExecutor()
@@ -30,7 +31,7 @@ void DefaultGPUTasksExecutor::FrameEnd()
// Default implementation performs async operations on end of the frame which is synchronized with a rendering thread
GPUTask* buffer[32];
const int32 count = GPUDevice::Instance->TasksManager.RequestWork(buffer, 32);
const int32 count = GPUDevice::Instance->GetTasksManager()->RequestWork(buffer, 32);
for (int32 i = 0; i < count; i++)
{
_context->Run(buffer[i]);

View File

@@ -1,6 +1,7 @@
// Copyright (c) 2012-2022 Wojciech Figat. All rights reserved.
#include "GPUTasksExecutor.h"
#include "Engine/Core/Log.h"
#include "Engine/Graphics/GPUDevice.h"
GPUTasksExecutor::~GPUTasksExecutor()

View File

@@ -37,7 +37,6 @@ public:
/// <summary>
/// Gets the context list.
/// </summary>
/// <returns>GPU contexts</returns>
FORCE_INLINE const Array<GPUTasksContext*>* GetContextList() const
{
return &_contextList;

View File

@@ -7,26 +7,13 @@
void GPUTask::Enqueue()
{
GPUDevice::Instance->TasksManager._tasks.Add(this);
GPUDevice::Instance->GetTasksManager()->_tasks.Add(this);
}
GPUTasksManager::GPUTasksManager(GPUDevice* device)
: _device(device)
, _executor(nullptr)
, _bufferIndex(0)
GPUTasksManager::GPUTasksManager()
{
_buffers[0].EnsureCapacity(64);
_buffers[1].EnsureCapacity(64);
// Setup executor
SetExecutor(device->CreateTasksExecutor());
ASSERT(_executor != nullptr);
}
GPUTasksManager::~GPUTasksManager()
{
// Ensure that Dispose has been called
ASSERT(_executor == nullptr);
}
void GPUTasksManager::SetExecutor(GPUTasksExecutor* value)
@@ -114,3 +101,8 @@ int32 GPUTasksManager::RequestWork(GPUTask** buffer, int32 maxCount)
return count;
}
String GPUTasksManager::ToString() const
{
return TEXT("GPU Tasks Manager");
}

View File

@@ -22,30 +22,17 @@ class GPUTasksManager : public Object, public NonCopyable
friend GPUTask;
private:
GPUDevice* _device;
GPUTasksExecutor* _executor;
GPUTasksExecutor* _executor = nullptr;
ConcurrentTaskQueue<GPUTask> _tasks;
Array<GPUTask*> _buffers[2];
int32 _bufferIndex;
private:
GPUTasksManager(GPUDevice* device);
~GPUTasksManager();
int32 _bufferIndex = 0;
public:
/// <summary>
/// Gets the parent Graphics Device.
/// </summary>
/// <returns>The device.</returns>
FORCE_INLINE GPUDevice* GetDevice() const
{
return _device;
}
GPUTasksManager();
/// <summary>
/// Gets the GPU tasks executor.
/// </summary>
/// <returns>The tasks executor.</returns>
FORCE_INLINE GPUTasksExecutor* GetExecutor() const
{
return _executor;
@@ -60,7 +47,6 @@ public:
/// <summary>
/// Gets the amount of enqueued tasks to perform.
/// </summary>
/// <returns>The tasks count.</returns>
FORCE_INLINE int32 GetTaskCount() const
{
return _tasks.Count();
@@ -94,8 +80,5 @@ public:
public:
// [Object]
String ToString() const override
{
return TEXT("GPU Tasks Manager");
}
String ToString() const override;
};