From 9d6c7763334908c78027199a0cb1ca3b9841ebab Mon Sep 17 00:00:00 2001 From: ZanderMajercik Date: Tue, 4 Jan 2022 11:05:04 -0800 Subject: Buffer allocation backend. (#2045) * removed initialization of upload resource for CPU visible buffers (D3D12, Vulkan) * reverted slang-gfx.h change * declared DescBase::hasCpuAccessFlag() const to make backend changes compile under gcc * commit before checking master branch * commit before merge * commit before checking master * commit before merging upstream * revert vulkan changes * commit before testing on master * commit before merge with master * reverted bad merge changes * reverted more bad merge changes in render-d3d12.cpp * reverted buffer transition in _uploadBufferData * implemented bufferBarrier() in render-d3d12.cpp * reverted uneccesary transition in createBuffer * create staging buffer even when AccessFlag::None passed to D3D11 createBufferResource * renamed AccessFlags to MemoryType Co-authored-by: Yong He --- tools/gfx/vulkan/render-vk.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'tools/gfx/vulkan/render-vk.cpp') diff --git a/tools/gfx/vulkan/render-vk.cpp b/tools/gfx/vulkan/render-vk.cpp index 232f18f01..8260ab283 100644 --- a/tools/gfx/vulkan/render-vk.cpp +++ b/tools/gfx/vulkan/render-vk.cpp @@ -4856,13 +4856,13 @@ public: public: void init(CommandBufferImpl* commandBuffer) { m_commandBuffer = commandBuffer; } - inline VkAccessFlags translateAccelerationStructureAccessFlag(AccessFlag::Enum access) + inline VkAccessFlags translateAccelerationStructureAccessFlag(MemoryType::Enum access) { VkAccessFlags result = 0; - if (access & AccessFlag::Read) + if (access & MemoryType::CpuRead) result |= VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR | VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_TRANSFER_READ_BIT; - if (access & AccessFlag::Write) + if (access & MemoryType::CpuWrite) result |= VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR; return result; } @@ -4870,8 +4870,8 @@ public: inline void _memoryBarrier( int count, IAccelerationStructure* const* structures, - AccessFlag::Enum srcAccess, - AccessFlag::Enum destAccess) + MemoryType::Enum srcAccess, + MemoryType::Enum destAccess) { ShortList memBarriers; memBarriers.setCount(count); @@ -4998,7 +4998,7 @@ public: if (propertyQueryCount) { - _memoryBarrier(1, &desc.dest, AccessFlag::Write, AccessFlag::Read); + _memoryBarrier(1, &desc.dest, MemoryType::CpuWrite, MemoryType::CpuRead); _queryAccelerationStructureProperties( 1, &desc.dest, propertyQueryCount, queryDescs); } @@ -5071,8 +5071,8 @@ public: virtual SLANG_NO_THROW void SLANG_MCALL memoryBarrier( int count, IAccelerationStructure* const* structures, - AccessFlag::Enum srcAccess, - AccessFlag::Enum destAccess) override + MemoryType::Enum srcAccess, + MemoryType::Enum destAccess) override { _memoryBarrier(count, structures, srcAccess, destAccess); } @@ -6988,7 +6988,7 @@ static VkImageUsageFlags _calcImageUsageFlags( { VkImageUsageFlags usage = _calcImageUsageFlags(states); - if ((cpuAccessFlags & AccessFlag::Write) || initData) + if ((cpuAccessFlags & MemoryType::CpuWrite) || initData) { usage |= VK_IMAGE_USAGE_TRANSFER_DST_BIT; } @@ -7519,7 +7519,7 @@ Result VKDevice::createBufferResource(const IBufferResource::Desc& descIn, const SLANG_RETURN_ON_FAIL(buffer->m_buffer.init(m_api, desc.sizeInBytes, usage, reqMemoryProperties)); } - if ((desc.cpuAccessFlags & AccessFlag::Write) || initData) + if ((desc.cpuAccessFlags & MemoryType::CpuWrite) || initData) { SLANG_RETURN_ON_FAIL(buffer->m_uploadBuffer.init(m_api, bufferSize, VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT)); } -- cgit v1.2.3