summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineVulkan
diff options
context:
space:
mode:
authorassiduous <assiduous@diligentgraphics.com>2021-01-31 00:40:51 +0000
committerassiduous <assiduous@diligentgraphics.com>2021-01-31 00:40:51 +0000
commite5322deb2939c066c46ee2818e9ff81e44b49995 (patch)
treee4d8a7a8fc79006f6b3445a9a627ced7d64d8ce4 /Graphics/GraphicsEngineVulkan
parentPipeline Resource Signature Vk: updated SRB cache initialization (diff)
downloadDiligentCore-e5322deb2939c066c46ee2818e9ff81e44b49995.tar.gz
DiligentCore-e5322deb2939c066c46ee2818e9ff81e44b49995.zip
Pipeline resource signature Vk: removed texel buffers with dynamic offsets as it is not a thing
Diffstat (limited to 'Graphics/GraphicsEngineVulkan')
-rw-r--r--Graphics/GraphicsEngineVulkan/src/PipelineResourceSignatureVkImpl.cpp22
-rw-r--r--Graphics/GraphicsEngineVulkan/src/ShaderResourceCacheVk.cpp3
2 files changed, 5 insertions, 20 deletions
diff --git a/Graphics/GraphicsEngineVulkan/src/PipelineResourceSignatureVkImpl.cpp b/Graphics/GraphicsEngineVulkan/src/PipelineResourceSignatureVkImpl.cpp
index 56afb89f..413caa4a 100644
--- a/Graphics/GraphicsEngineVulkan/src/PipelineResourceSignatureVkImpl.cpp
+++ b/Graphics/GraphicsEngineVulkan/src/PipelineResourceSignatureVkImpl.cpp
@@ -1203,8 +1203,7 @@ private:
void CacheStorageBuffer(IDeviceObject* pBufferView,
Uint16& DynamicBuffersCounter) const;
- void CacheTexelBuffer(IDeviceObject* pBufferView,
- Uint16& DynamicBuffersCounter) const;
+ void CacheTexelBuffer(IDeviceObject* pBufferView) const;
void CacheImage(IDeviceObject* pTexView) const;
@@ -1266,7 +1265,7 @@ void BindResourceHelper::BindResource(IDeviceObject* pObj) const
case DescriptorType::UniformTexelBuffer:
case DescriptorType::StorageTexelBuffer:
case DescriptorType::StorageTexelBuffer_ReadOnly:
- CacheTexelBuffer(pObj, ResourceCache.GetDynamicBuffersCounter());
+ CacheTexelBuffer(pObj);
break;
case DescriptorType::StorageImage:
@@ -1284,7 +1283,7 @@ void BindResourceHelper::BindResource(IDeviceObject* pObj) const
{
// Immutable samplers are permanently bound into the set layout; later binding a sampler
// into an immutable sampler slot in a descriptor set is not allowed (13.2.1)
- LOG_ERROR_MESSAGE("Attempting to assign a sampler to an immutable sampler '", ResDesc.Name, '\'');
+ UNEXPECTED("Attempting to assign a sampler to an immutable sampler '", ResDesc.Name, '\'');
}
break;
@@ -1433,8 +1432,7 @@ void BindResourceHelper::CacheStorageBuffer(IDeviceObject* pBufferView,
}
}
-void BindResourceHelper::CacheTexelBuffer(IDeviceObject* pBufferView,
- Uint16& DynamicBuffersCounter) const
+void BindResourceHelper::CacheTexelBuffer(IDeviceObject* pBufferView) const
{
// clang-format off
VERIFY(DstRes.Type == DescriptorType::UniformTexelBuffer ||
@@ -1466,17 +1464,7 @@ void BindResourceHelper::CacheTexelBuffer(IDeviceObject* pBufferView,
}
#endif
- auto UpdateDynamicBuffersCounter = [&DynamicBuffersCounter](const BufferViewVkImpl* pOldBufferView, const BufferViewVkImpl* pNewBufferView) {
- if (pOldBufferView != nullptr && pOldBufferView->GetBuffer<const BufferVkImpl>()->GetDesc().Usage == USAGE_DYNAMIC)
- {
- VERIFY(DynamicBuffersCounter > 0, "Dynamic buffers counter must be greater than zero when there is at least one dynamic buffer bound in the resource cache");
- --DynamicBuffersCounter;
- }
- if (pNewBufferView != nullptr && pNewBufferView->GetBuffer<const BufferVkImpl>()->GetDesc().Usage == USAGE_DYNAMIC)
- ++DynamicBuffersCounter;
- };
-
- if (UpdateCachedResource(std::move(pBufferViewVk), UpdateDynamicBuffersCounter))
+ if (UpdateCachedResource(std::move(pBufferViewVk), [](const BufferViewVkImpl* pOldBufferView, const BufferViewVkImpl* pNewBufferView) {}))
{
// The following bits must have been set at buffer creation time:
// * VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER -> VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT
diff --git a/Graphics/GraphicsEngineVulkan/src/ShaderResourceCacheVk.cpp b/Graphics/GraphicsEngineVulkan/src/ShaderResourceCacheVk.cpp
index 9d8ca76e..177256db 100644
--- a/Graphics/GraphicsEngineVulkan/src/ShaderResourceCacheVk.cpp
+++ b/Graphics/GraphicsEngineVulkan/src/ShaderResourceCacheVk.cpp
@@ -136,9 +136,6 @@ void ShaderResourceCacheVk::DbgVerifyDynamicBuffersCounter() const
case DescriptorType::StorageBufferDynamic:
case DescriptorType::StorageBuffer_ReadOnly:
case DescriptorType::StorageBufferDynamic_ReadOnly:
- case DescriptorType::UniformTexelBuffer:
- case DescriptorType::StorageTexelBuffer:
- case DescriptorType::StorageTexelBuffer_ReadOnly:
{
if (Res.pObject && Res.pObject.RawPtr<const BufferViewVkImpl>()->GetBuffer<const BufferVkImpl>()->GetDesc().Usage == USAGE_DYNAMIC)
++NumDynamicBuffers;