Added labels for resources of Mesh and Texture libraries
This commit is contained in:
parent
fb37742ee0
commit
0bda3d5151
|
@ -208,8 +208,8 @@ namespace SHADE
|
||||||
/*-----------------------------------------------------------------------*/
|
/*-----------------------------------------------------------------------*/
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Sets a Vulkan object's name for debugging purposes. This function will not be
|
/// Sets a Vulkan HPP object's name for debugging purposes. This function will not be
|
||||||
/// compiled outsied of Debug configurations. Hence, it is advised to use provided
|
/// compiled outside of Debug configurations. Hence, it is advised to use provided
|
||||||
/// macro function SET_VK_OBJ_NAME() instead of using this function directly.
|
/// macro function SET_VK_OBJ_NAME() instead of using this function directly.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="objType">Type of the object.</param>
|
/// <param name="objType">Type of the object.</param>
|
||||||
|
@ -217,6 +217,16 @@ namespace SHADE
|
||||||
/// <param name="objName">Object's name.</param>
|
/// <param name="objName">Object's name.</param>
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline void SetVulkanObjectName(vk::ObjectType objType, T objHandle, const std::string& objName);
|
inline void SetVulkanObjectName(vk::ObjectType objType, T objHandle, const std::string& objName);
|
||||||
|
/// <summary>
|
||||||
|
/// Sets a Vulkan object's name for debugging purposes. This function will not be
|
||||||
|
/// compiled outside of Debug configurations. Hence, it is advised to use provided
|
||||||
|
/// macro function SET_VK_OBJ_NAME_VK() instead of using this function directly.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="objType">Type of the object.</param>
|
||||||
|
/// <param name="objHandle">Handle to the Vulkan Object to name.</param>
|
||||||
|
/// <param name="objName">Object's name.</param>
|
||||||
|
template<typename T>
|
||||||
|
inline void SetVulkanObjectNameVk(vk::ObjectType objType, T objVkHandle, const std::string& objName);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*-----------------------------------------------------------------------*/
|
/*-----------------------------------------------------------------------*/
|
||||||
|
|
|
@ -32,6 +32,18 @@ namespace SHADE
|
||||||
info.pObjectName = objName.data();
|
info.pObjectName = objName.data();
|
||||||
vkLogicalDevice.setDebugUtilsObjectNameEXT(info);
|
vkLogicalDevice.setDebugUtilsObjectNameEXT(info);
|
||||||
}
|
}
|
||||||
|
template<typename T>
|
||||||
|
void SHVkLogicalDevice::SetVulkanObjectNameVk(vk::ObjectType objType, T objVkHandle, const std::string& objName)
|
||||||
|
{
|
||||||
|
if (objName.empty())
|
||||||
|
return;
|
||||||
|
|
||||||
|
vk::DebugUtilsObjectNameInfoEXT info;
|
||||||
|
info.objectType = objType;
|
||||||
|
info.objectHandle = (uint64_t) objVkHandle;
|
||||||
|
info.pObjectName = objName.data();
|
||||||
|
vkLogicalDevice.setDebugUtilsObjectNameEXT(info);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,6 +53,9 @@ namespace SHADE
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
#define SET_VK_OBJ_NAME(DEVICE, OBJ_TYPE, OBJ_HDL, OBJ_NAME) \
|
#define SET_VK_OBJ_NAME(DEVICE, OBJ_TYPE, OBJ_HDL, OBJ_NAME) \
|
||||||
DEVICE->SetVulkanObjectName(OBJ_TYPE, OBJ_HDL, OBJ_NAME);
|
DEVICE->SetVulkanObjectName(OBJ_TYPE, OBJ_HDL, OBJ_NAME);
|
||||||
|
#define SET_VK_OBJ_NAME_VK(DEVICE, OBJ_TYPE, OBJ_HDL, OBJ_NAME) \
|
||||||
|
DEVICE->SetVulkanObjectNameVk(OBJ_TYPE, OBJ_HDL, OBJ_NAME);
|
||||||
#else
|
#else
|
||||||
#define SET_VK_OBJ_NAME(DEVICE, OBJ_TYPE, OBJ_HDL, OBJ_NAME)
|
#define SET_VK_OBJ_NAME(DEVICE, OBJ_TYPE, OBJ_HDL, OBJ_NAME)
|
||||||
|
#define SET_VK_OBJ_NAME_VK(DEVICE, OBJ_TYPE, OBJ_HDL, OBJ_NAME)
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -165,35 +165,40 @@ namespace SHADE
|
||||||
device, cmdBuffer, vertPosBuffer,
|
device, cmdBuffer, vertPosBuffer,
|
||||||
vertPosStorage.data(),
|
vertPosStorage.data(),
|
||||||
static_cast<uint32_t>(vertPosStorage.size()) * sizeof(SHMesh::VertexPosition),
|
static_cast<uint32_t>(vertPosStorage.size()) * sizeof(SHMesh::VertexPosition),
|
||||||
BuffUsage::eVertexBuffer
|
BuffUsage::eVertexBuffer,
|
||||||
|
"Mesh Library Vertex Positions"
|
||||||
);
|
);
|
||||||
SHVkUtil::EnsureBufferAndCopyData
|
SHVkUtil::EnsureBufferAndCopyData
|
||||||
(
|
(
|
||||||
device, cmdBuffer, vertTexCoordBuffer,
|
device, cmdBuffer, vertTexCoordBuffer,
|
||||||
vertTexCoordStorage.data(),
|
vertTexCoordStorage.data(),
|
||||||
static_cast<uint32_t>(vertTexCoordStorage.size()) * sizeof(SHMesh::VertexTexCoord),
|
static_cast<uint32_t>(vertTexCoordStorage.size()) * sizeof(SHMesh::VertexTexCoord),
|
||||||
BuffUsage::eVertexBuffer
|
BuffUsage::eVertexBuffer,
|
||||||
|
"Mesh Library Vertex TexCoords"
|
||||||
);
|
);
|
||||||
SHVkUtil::EnsureBufferAndCopyData
|
SHVkUtil::EnsureBufferAndCopyData
|
||||||
(
|
(
|
||||||
device, cmdBuffer, vertTangentBuffer,
|
device, cmdBuffer, vertTangentBuffer,
|
||||||
vertTangentStorage.data(),
|
vertTangentStorage.data(),
|
||||||
static_cast<uint32_t>(vertTangentStorage.size()) * sizeof(SHMesh::VertexTangent),
|
static_cast<uint32_t>(vertTangentStorage.size()) * sizeof(SHMesh::VertexTangent),
|
||||||
BuffUsage::eVertexBuffer
|
BuffUsage::eVertexBuffer,
|
||||||
|
"Mesh Library Vertex Tangents"
|
||||||
);
|
);
|
||||||
SHVkUtil::EnsureBufferAndCopyData
|
SHVkUtil::EnsureBufferAndCopyData
|
||||||
(
|
(
|
||||||
device, cmdBuffer, vertNormalBuffer,
|
device, cmdBuffer, vertNormalBuffer,
|
||||||
vertNormalStorage.data(),
|
vertNormalStorage.data(),
|
||||||
static_cast<uint32_t>(vertNormalStorage.size()) * sizeof(SHMesh::VertexNormal),
|
static_cast<uint32_t>(vertNormalStorage.size()) * sizeof(SHMesh::VertexNormal),
|
||||||
BuffUsage::eVertexBuffer
|
BuffUsage::eVertexBuffer,
|
||||||
|
"Mesh Library Vertex Normals"
|
||||||
);
|
);
|
||||||
SHVkUtil::EnsureBufferAndCopyData
|
SHVkUtil::EnsureBufferAndCopyData
|
||||||
(
|
(
|
||||||
device, cmdBuffer, indexBuffer,
|
device, cmdBuffer, indexBuffer,
|
||||||
indexStorage.data(),
|
indexStorage.data(),
|
||||||
static_cast<uint32_t>(indexStorage.size()) * sizeof(SHMesh::Index),
|
static_cast<uint32_t>(indexStorage.size()) * sizeof(SHMesh::Index),
|
||||||
BuffUsage::eIndexBuffer
|
BuffUsage::eIndexBuffer,
|
||||||
|
"Mesh Library Indices"
|
||||||
);
|
);
|
||||||
|
|
||||||
isDirty = false;
|
isDirty = false;
|
||||||
|
|
|
@ -23,6 +23,7 @@ of DigiPen Institute of Technology is prohibited.
|
||||||
#include "Graphics/MiddleEnd/Interface/SHGraphicsConstants.h"
|
#include "Graphics/MiddleEnd/Interface/SHGraphicsConstants.h"
|
||||||
#include "Graphics/Descriptors/SHVkDescriptorSetGroup.h"
|
#include "Graphics/Descriptors/SHVkDescriptorSetGroup.h"
|
||||||
#include "Graphics/Images/SHVkImage.h"
|
#include "Graphics/Images/SHVkImage.h"
|
||||||
|
#include "Graphics/Images/SHVkImageView.h"
|
||||||
#include "Graphics/MiddleEnd/GlobalData/SHGraphicsGlobalData.h"
|
#include "Graphics/MiddleEnd/GlobalData/SHGraphicsGlobalData.h"
|
||||||
#include "Assets/Asset Types/SHTextureAsset.h"
|
#include "Assets/Asset Types/SHTextureAsset.h"
|
||||||
|
|
||||||
|
@ -150,6 +151,9 @@ namespace SHADE
|
||||||
texOrder.emplace_back(job.TextureHandle);
|
texOrder.emplace_back(job.TextureHandle);
|
||||||
combinedImageSamplers.emplace_back(std::make_tuple(job.TextureHandle->ImageView, job.Sampler, vk::ImageLayout::eShaderReadOnlyOptimal));
|
combinedImageSamplers.emplace_back(std::make_tuple(job.TextureHandle->ImageView, job.Sampler, vk::ImageLayout::eShaderReadOnlyOptimal));
|
||||||
job.TextureHandle->TextureArrayIndex = static_cast<uint32_t>(texOrder.size()) - 1U;
|
job.TextureHandle->TextureArrayIndex = static_cast<uint32_t>(texOrder.size()) - 1U;
|
||||||
|
|
||||||
|
SET_VK_OBJ_NAME(device, vk::ObjectType::eImage, job.Image->GetVkImage(), "[Image] Texture Library Texture #" + std::to_string(job.TextureHandle->TextureArrayIndex));
|
||||||
|
SET_VK_OBJ_NAME(device, vk::ObjectType::eImageView, job.TextureHandle->ImageView->GetImageView(), "[ImageView] Texture Library Texture #" + std::to_string(job.TextureHandle->TextureArrayIndex));
|
||||||
}
|
}
|
||||||
addJobs.clear();
|
addJobs.clear();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue