diff options
| author | assiduous <assiduous@diligentgraphics.com> | 2020-08-23 04:09:19 +0000 |
|---|---|---|
| committer | assiduous <assiduous@diligentgraphics.com> | 2020-08-23 04:09:19 +0000 |
| commit | ecd121c0335f62b921a66c570b10410120801227 (patch) | |
| tree | 87430b25cbcd83e5e63d6265ba6e41362c7e2573 /Graphics/GraphicsEngine | |
| parent | Added USAGE_UNIFIED usage type (API 240066) (diff) | |
| download | DiligentCore-ecd121c0335f62b921a66c570b10410120801227.tar.gz DiligentCore-ecd121c0335f62b921a66c570b10410120801227.zip | |
Implemented mapping of unified buffers in Vulkan backend
Diffstat (limited to 'Graphics/GraphicsEngine')
| -rw-r--r-- | Graphics/GraphicsEngine/include/DeviceContextBase.hpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/Graphics/GraphicsEngine/include/DeviceContextBase.hpp b/Graphics/GraphicsEngine/include/DeviceContextBase.hpp index e5d9b90e..113a8abd 100644 --- a/Graphics/GraphicsEngine/include/DeviceContextBase.hpp +++ b/Graphics/GraphicsEngine/include/DeviceContextBase.hpp @@ -1251,18 +1251,21 @@ inline void DeviceContextBase<BaseInterface, ImplementationTraits>:: switch (MapType) { case MAP_READ: - DEV_CHECK_ERR(BuffDesc.Usage == USAGE_STAGING, "Only buffers with usage USAGE_STAGING can be read from"); + DEV_CHECK_ERR(BuffDesc.Usage == USAGE_STAGING || BuffDesc.Usage == USAGE_UNIFIED, + "Only buffers with usage USAGE_STAGING or USAGE_UNIFIED can be mapped for reading"); DEV_CHECK_ERR((BuffDesc.CPUAccessFlags & CPU_ACCESS_READ), "Buffer being mapped for reading was not created with CPU_ACCESS_READ flag"); DEV_CHECK_ERR((MapFlags & MAP_FLAG_DISCARD) == 0, "MAP_FLAG_DISCARD is not valid when mapping buffer for reading"); break; case MAP_WRITE: - DEV_CHECK_ERR(BuffDesc.Usage == USAGE_DYNAMIC || BuffDesc.Usage == USAGE_STAGING, "Only buffers with usage USAGE_STAGING or USAGE_DYNAMIC can be mapped for writing"); + DEV_CHECK_ERR(BuffDesc.Usage == USAGE_DYNAMIC || BuffDesc.Usage == USAGE_STAGING || BuffDesc.Usage == USAGE_UNIFIED, + "Only buffers with usage USAGE_STAGING, USAGE_DYNAMIC or USAGE_UNIFIED can be mapped for writing"); DEV_CHECK_ERR((BuffDesc.CPUAccessFlags & CPU_ACCESS_WRITE), "Buffer being mapped for writing was not created with CPU_ACCESS_WRITE flag"); break; case MAP_READ_WRITE: - DEV_CHECK_ERR(BuffDesc.Usage == USAGE_STAGING, "Only buffers with usage USAGE_STAGING can be mapped for reading and writing"); + DEV_CHECK_ERR(BuffDesc.Usage == USAGE_STAGING || BuffDesc.Usage == USAGE_UNIFIED, + "Only buffers with usage USAGE_STAGING or USAGE_UNIFIED can be mapped for reading and writing"); DEV_CHECK_ERR((BuffDesc.CPUAccessFlags & CPU_ACCESS_WRITE), "Buffer being mapped for reading & writing was not created with CPU_ACCESS_WRITE flag"); DEV_CHECK_ERR((BuffDesc.CPUAccessFlags & CPU_ACCESS_READ), "Buffer being mapped for reading & writing was not created with CPU_ACCESS_READ flag"); DEV_CHECK_ERR((MapFlags & MAP_FLAG_DISCARD) == 0, "MAP_FLAG_DISCARD is not valid when mapping buffer for reading and writing"); |
