1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-02-08 01:54:15 +01:00

[dxvk] Add context feature flag for debug utils support

This commit is contained in:
Philip Rebohle 2024-11-08 19:31:21 +01:00 committed by Philip Rebohle
parent 8c3d7a1979
commit b62a8c78b4
3 changed files with 15 additions and 9 deletions

View File

@ -63,6 +63,10 @@ namespace dxvk {
// Maintenance5 introduced a bounded BindIndexBuffer function // Maintenance5 introduced a bounded BindIndexBuffer function
if (m_device->features().khrMaintenance5.maintenance5) if (m_device->features().khrMaintenance5.maintenance5)
m_features.set(DxvkContextFeature::IndexBufferRobustness); m_features.set(DxvkContextFeature::IndexBufferRobustness);
// Add a fast path to query debug utils support
if (m_device->isDebugEnabled())
m_features.set(DxvkContextFeature::DebugUtils);
} }
@ -101,6 +105,8 @@ namespace dxvk {
m_cmd->trackDescriptorPool(m_descriptorPool, m_descriptorManager); m_cmd->trackDescriptorPool(m_descriptorPool, m_descriptorManager);
m_descriptorPool = m_descriptorManager->getDescriptorPool(); m_descriptorPool = m_descriptorManager->getDescriptorPool();
} }
m_renderPassIndex = 0u;
} }
@ -2482,27 +2488,25 @@ namespace dxvk {
void DxvkContext::beginDebugLabel(VkDebugUtilsLabelEXT *label) { void DxvkContext::beginDebugLabel(VkDebugUtilsLabelEXT *label) {
if (m_device->isDebugEnabled()) if (m_features.test(DxvkContextFeature::DebugUtils))
m_cmd->cmdBeginDebugUtilsLabel(DxvkCmdBuffer::ExecBuffer, *label); m_cmd->cmdBeginDebugUtilsLabel(DxvkCmdBuffer::ExecBuffer, *label);
} }
void DxvkContext::endDebugLabel() { void DxvkContext::endDebugLabel() {
if (m_device->isDebugEnabled()) if (m_features.test(DxvkContextFeature::DebugUtils))
m_cmd->cmdEndDebugUtilsLabel(DxvkCmdBuffer::ExecBuffer); m_cmd->cmdEndDebugUtilsLabel(DxvkCmdBuffer::ExecBuffer);
} }
void DxvkContext::insertDebugLabel(VkDebugUtilsLabelEXT *label) { void DxvkContext::insertDebugLabel(VkDebugUtilsLabelEXT *label) {
if (m_device->isDebugEnabled()) if (m_features.test(DxvkContextFeature::DebugUtils))
m_cmd->cmdInsertDebugUtilsLabel(DxvkCmdBuffer::ExecBuffer, *label); m_cmd->cmdInsertDebugUtilsLabel(DxvkCmdBuffer::ExecBuffer, *label);
} }
void DxvkContext::setDebugName(const Rc<DxvkPagedResource>& resource, const char* name) { void DxvkContext::setDebugName(const Rc<DxvkPagedResource>& resource, const char* name) {
if (!m_device->isDebugEnabled()) if (m_features.test(DxvkContextFeature::DebugUtils))
return;
resource->setDebugName(name); resource->setDebugName(name);
} }

View File

@ -1379,6 +1379,7 @@ namespace dxvk {
DxvkObjects* m_common; DxvkObjects* m_common;
uint64_t m_trackingId = 0u; uint64_t m_trackingId = 0u;
uint32_t m_renderPassIndex = 0u;
Rc<DxvkCommandList> m_cmd; Rc<DxvkCommandList> m_cmd;
Rc<DxvkBuffer> m_zeroBuffer; Rc<DxvkBuffer> m_zeroBuffer;

View File

@ -66,6 +66,7 @@ namespace dxvk {
TrackGraphicsPipeline, TrackGraphicsPipeline,
VariableMultisampleRate, VariableMultisampleRate,
IndexBufferRobustness, IndexBufferRobustness,
DebugUtils,
FeatureCount FeatureCount
}; };