2023-11-05 10:36:01 +01:00
|
|
|
#include "Resources.h"
|
2023-10-26 18:37:29 +02:00
|
|
|
#include "Graphics.h"
|
|
|
|
|
#include "RenderPass/DepthPrepass.h"
|
|
|
|
|
#include "RenderPass/BasePass.h"
|
|
|
|
|
#include "Material/Material.h"
|
|
|
|
|
|
2023-11-05 10:36:01 +01:00
|
|
|
using namespace Seele;
|
|
|
|
|
using namespace Seele::Gfx;
|
|
|
|
|
|
2023-10-26 18:37:29 +02:00
|
|
|
QueueOwnedResource::QueueOwnedResource(QueueFamilyMapping mapping, QueueType startQueueType)
|
|
|
|
|
: currentOwner(startQueueType)
|
|
|
|
|
, mapping(mapping)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QueueOwnedResource::~QueueOwnedResource()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void QueueOwnedResource::transferOwnership(QueueType newOwner)
|
|
|
|
|
{
|
|
|
|
|
if(mapping.needsTransfer(currentOwner, newOwner))
|
|
|
|
|
{
|
|
|
|
|
executeOwnershipBarrier(newOwner);
|
|
|
|
|
}
|
|
|
|
|
currentOwner = newOwner;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void QueueOwnedResource::pipelineBarrier(SeAccessFlags srcAccess, SePipelineStageFlags srcStage, SeAccessFlags dstAccess, SePipelineStageFlags dstStage)
|
|
|
|
|
{
|
|
|
|
|
// maybe add some checks
|
|
|
|
|
executePipelineBarrier(srcAccess, srcStage, dstAccess, dstStage);
|
2023-11-15 00:06:00 +01:00
|
|
|
}
|