Add names to SDF gpu resources
This commit is contained in:
@@ -120,6 +120,10 @@ public:
|
|||||||
, _xyzToLocalMul(xyzToLocalMul)
|
, _xyzToLocalMul(xyzToLocalMul)
|
||||||
, _xyzToLocalAdd(xyzToLocalAdd)
|
, _xyzToLocalAdd(xyzToLocalAdd)
|
||||||
{
|
{
|
||||||
|
#if GPU_ENABLE_RESOURCE_NAMING
|
||||||
|
_sdfSrc->SetName(TEXT("SDFSrc"));
|
||||||
|
_sdfDst->SetName(TEXT("SDFDst"));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
~GPUModelSDFTask()
|
~GPUModelSDFTask()
|
||||||
@@ -202,7 +206,12 @@ public:
|
|||||||
desc = GPUBufferDescription::Raw(vb->GetSize(), GPUBufferFlags::ShaderResource);
|
desc = GPUBufferDescription::Raw(vb->GetSize(), GPUBufferFlags::ShaderResource);
|
||||||
// TODO: use transient buffer (single frame)
|
// TODO: use transient buffer (single frame)
|
||||||
if (!vbTemp)
|
if (!vbTemp)
|
||||||
|
{
|
||||||
vbTemp = GPUBuffer::New();
|
vbTemp = GPUBuffer::New();
|
||||||
|
#if GPU_ENABLE_RESOURCE_NAMING
|
||||||
|
vbTemp->SetName(TEXT("SDFvb"));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
vbTemp->Init(desc);
|
vbTemp->Init(desc);
|
||||||
context->CopyBuffer(vbTemp, vb, desc.Size);
|
context->CopyBuffer(vbTemp, vb, desc.Size);
|
||||||
vb = vbTemp;
|
vb = vbTemp;
|
||||||
@@ -212,7 +221,12 @@ public:
|
|||||||
desc = GPUBufferDescription::Raw(ib->GetSize(), GPUBufferFlags::ShaderResource);
|
desc = GPUBufferDescription::Raw(ib->GetSize(), GPUBufferFlags::ShaderResource);
|
||||||
// TODO: use transient buffer (single frame)
|
// TODO: use transient buffer (single frame)
|
||||||
if (!ibTemp)
|
if (!ibTemp)
|
||||||
|
{
|
||||||
ibTemp = GPUBuffer::New();
|
ibTemp = GPUBuffer::New();
|
||||||
|
#if GPU_ENABLE_RESOURCE_NAMING
|
||||||
|
ibTemp->SetName(TEXT("SDFib"));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
ibTemp->Init(desc);
|
ibTemp->Init(desc);
|
||||||
context->CopyBuffer(ibTemp, ib, desc.Size);
|
context->CopyBuffer(ibTemp, ib, desc.Size);
|
||||||
ib = ibTemp;
|
ib = ibTemp;
|
||||||
@@ -230,6 +244,10 @@ public:
|
|||||||
const ModelLodData& lod = _modelData->LODs[Math::Clamp(_lodIndex, 0, _modelData->LODs.Count() - 1)];
|
const ModelLodData& lod = _modelData->LODs[Math::Clamp(_lodIndex, 0, _modelData->LODs.Count() - 1)];
|
||||||
auto vb = GPUBuffer::New();
|
auto vb = GPUBuffer::New();
|
||||||
auto ib = GPUBuffer::New();
|
auto ib = GPUBuffer::New();
|
||||||
|
#if GPU_ENABLE_RESOURCE_NAMING
|
||||||
|
vb->SetName(TEXT("SDFvb"));
|
||||||
|
ib->SetName(TEXT("SDFib"));
|
||||||
|
#endif
|
||||||
for (int32 i = 0; i < lod.Meshes.Count(); i++)
|
for (int32 i = 0; i < lod.Meshes.Count(); i++)
|
||||||
{
|
{
|
||||||
const MeshData* mesh = lod.Meshes[i];
|
const MeshData* mesh = lod.Meshes[i];
|
||||||
@@ -294,6 +312,9 @@ public:
|
|||||||
auto sdfTextureDesc = GPUTextureDescription::New3D(_resolution.X, _resolution.Y, _resolution.Z, PixelFormat::R16_UNorm, GPUTextureFlags::UnorderedAccess | GPUTextureFlags::RenderTarget);
|
auto sdfTextureDesc = GPUTextureDescription::New3D(_resolution.X, _resolution.Y, _resolution.Z, PixelFormat::R16_UNorm, GPUTextureFlags::UnorderedAccess | GPUTextureFlags::RenderTarget);
|
||||||
// TODO: use transient texture (single frame)
|
// TODO: use transient texture (single frame)
|
||||||
auto sdfTexture = GPUTexture::New();
|
auto sdfTexture = GPUTexture::New();
|
||||||
|
#if GPU_ENABLE_RESOURCE_NAMING
|
||||||
|
sdfTexture->SetName(TEXT("SDFTexture"));
|
||||||
|
#endif
|
||||||
sdfTexture->Init(sdfTextureDesc);
|
sdfTexture->Init(sdfTextureDesc);
|
||||||
context->BindUA(1, sdfTexture->ViewVolume());
|
context->BindUA(1, sdfTexture->ViewVolume());
|
||||||
context->Dispatch(shader->GetCS("CS_Encode"), threadGroups.X, threadGroups.Y, threadGroups.Z);
|
context->Dispatch(shader->GetCS("CS_Encode"), threadGroups.X, threadGroups.Y, threadGroups.Z);
|
||||||
@@ -397,7 +418,7 @@ bool ModelTool::GenerateModelSDF(Model* inputModel, ModelData* modelData, float
|
|||||||
SAFE_DELETE_GPU_RESOURCE(outputSDF->Texture);
|
SAFE_DELETE_GPU_RESOURCE(outputSDF->Texture);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
#if !BUILD_RELEASE
|
#if GPU_ENABLE_RESOURCE_NAMING
|
||||||
outputSDF->Texture->SetName(TEXT("ModelSDF"));
|
outputSDF->Texture->SetName(TEXT("ModelSDF"));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -432,6 +453,9 @@ bool ModelTool::GenerateModelSDF(Model* inputModel, ModelData* modelData, float
|
|||||||
|
|
||||||
// TODO: skip using sdfResult and downloading SDF from GPU when updating virtual model
|
// TODO: skip using sdfResult and downloading SDF from GPU when updating virtual model
|
||||||
auto sdfResult = GPUTexture::New();
|
auto sdfResult = GPUTexture::New();
|
||||||
|
#if GPU_ENABLE_RESOURCE_NAMING
|
||||||
|
sdfResult->SetName(TEXT("SDFResult"));
|
||||||
|
#endif
|
||||||
|
|
||||||
// Run SDF generation via GPU async task
|
// Run SDF generation via GPU async task
|
||||||
ConditionVariable signal;
|
ConditionVariable signal;
|
||||||
|
|||||||
Reference in New Issue
Block a user