mirror of
https://github.com/bkaradzic/bgfx.git
synced 2026-02-19 21:42:59 +01:00
Cleanup.
This commit is contained in:
@@ -2525,6 +2525,7 @@ VK_IMPORT_DEVICE
|
||||
pi.pImageIndices = &m_backBufferColorIdx;
|
||||
pi.pResults = NULL;
|
||||
VkResult result = vkQueuePresentKHR(m_queueGraphics, &pi);
|
||||
|
||||
if (VK_ERROR_OUT_OF_DATE_KHR == result
|
||||
|| VK_SUBOPTIMAL_KHR == result
|
||||
|| VK_ERROR_VALIDATION_FAILED_EXT == result)
|
||||
@@ -2835,15 +2836,18 @@ VK_IMPORT_DEVICE
|
||||
|
||||
case Handle::Texture:
|
||||
setDebugObjectName(m_device, m_textures[_handle.idx].m_textureImage, "%.*s", _len, _name);
|
||||
if (m_textures[_handle.idx].m_textureImageView != VK_NULL_HANDLE)
|
||||
|
||||
if (VK_NULL_HANDLE != m_textures[_handle.idx].m_textureImageView)
|
||||
{
|
||||
setDebugObjectName(m_device, m_textures[_handle.idx].m_textureImageView, "%.*s", _len, _name);
|
||||
}
|
||||
if (m_textures[_handle.idx].m_textureImageStorageView != VK_NULL_HANDLE)
|
||||
|
||||
if (VK_NULL_HANDLE != m_textures[_handle.idx].m_textureImageStorageView)
|
||||
{
|
||||
setDebugObjectName(m_device, m_textures[_handle.idx].m_textureImageStorageView, "%.*s", _len, _name);
|
||||
}
|
||||
if (m_textures[_handle.idx].m_textureImageDepthView != VK_NULL_HANDLE)
|
||||
|
||||
if (VK_NULL_HANDLE != m_textures[_handle.idx].m_textureImageDepthView)
|
||||
{
|
||||
setDebugObjectName(m_device, m_textures[_handle.idx].m_textureImageDepthView, "%.*s", _len, _name);
|
||||
}
|
||||
@@ -2860,12 +2864,13 @@ VK_IMPORT_DEVICE
|
||||
}
|
||||
|
||||
template<typename Ty>
|
||||
void releaseDeferred(Ty _object, VkDeviceMemory _memory = 0)
|
||||
void release(Ty _object, VkDeviceMemory _memory = VK_NULL_HANDLE)
|
||||
{
|
||||
m_cmd.release(uint64_t(_object.vk), getType<Ty>() );
|
||||
if (_memory != VK_NULL_HANDLE)
|
||||
|
||||
if (VK_NULL_HANDLE != _memory)
|
||||
{
|
||||
m_cmd.release(uint64_t(_memory), getType<VkDeviceMemory>() );
|
||||
m_cmd.release(uint64_t(_memory), VK_OBJECT_TYPE_DEVICE_MEMORY);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3551,8 +3556,11 @@ VK_IMPORT_DEVICE
|
||||
VkRenderPass renderPass = VK_NULL_HANDLE;
|
||||
uint32_t hashKey = getRenderPassHashkey(_num, _attachments);
|
||||
renderPass = (VkRenderPass)m_renderPassCache.find(hashKey);
|
||||
if (renderPass != VK_NULL_HANDLE)
|
||||
|
||||
if (VK_NULL_HANDLE != renderPass)
|
||||
{
|
||||
return renderPass;
|
||||
}
|
||||
|
||||
// cache missed
|
||||
VkAttachmentDescription ad[BGFX_CONFIG_MAX_FRAME_BUFFER_ATTACHMENTS];
|
||||
@@ -3670,7 +3678,8 @@ VK_IMPORT_DEVICE
|
||||
uint32_t hashKey = hash.end();
|
||||
|
||||
VkSampler sampler = m_samplerCache.find(hashKey);
|
||||
if (sampler != VK_NULL_HANDLE)
|
||||
|
||||
if (VK_NULL_HANDLE != sampler)
|
||||
{
|
||||
return sampler;
|
||||
}
|
||||
@@ -4379,14 +4388,14 @@ VK_IMPORT_DEVICE
|
||||
, &m_backBufferColorIdx
|
||||
);
|
||||
|
||||
if (VK_ERROR_OUT_OF_DATE_KHR == result
|
||||
|| VK_ERROR_VALIDATION_FAILED_EXT == result)
|
||||
if (VK_ERROR_OUT_OF_DATE_KHR == result
|
||||
|| VK_ERROR_VALIDATION_FAILED_EXT == result)
|
||||
{
|
||||
m_needToRefreshSwapchain = true;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (m_backBufferColorFence[m_backBufferColorIdx] != VK_NULL_HANDLE)
|
||||
if (VK_NULL_HANDLE != m_backBufferColorFence[m_backBufferColorIdx])
|
||||
{
|
||||
vkWaitForFences(m_device, 1, &m_backBufferColorFence[m_backBufferColorIdx], VK_TRUE, UINT64_MAX);
|
||||
}
|
||||
@@ -4406,7 +4415,7 @@ VK_IMPORT_DEVICE
|
||||
|
||||
void kick(bool _wait = false)
|
||||
{
|
||||
const bool acquired = m_lastImageAcquiredSemaphore != VK_NULL_HANDLE;
|
||||
const bool acquired = VK_NULL_HANDLE != m_lastImageAcquiredSemaphore;
|
||||
const VkSemaphore waitSemaphore = m_lastImageAcquiredSemaphore;
|
||||
const VkSemaphore signalSemaphore = acquired ? m_lastImageRenderedSemaphore : VK_NULL_HANDLE;
|
||||
m_lastImageAcquiredSemaphore = VK_NULL_HANDLE;
|
||||
@@ -4610,15 +4619,15 @@ VK_IMPORT_DEVICE
|
||||
s_renderVK = NULL;
|
||||
}
|
||||
|
||||
#define VK_DESTROY_FUNC(_name) \
|
||||
void vkDestroy(Vk##_name& _obj) \
|
||||
{ \
|
||||
if (VK_NULL_HANDLE != _obj) \
|
||||
{ \
|
||||
vkDestroy##_name(s_renderVK->m_device, _obj, s_renderVK->m_allocatorCb); \
|
||||
_obj = VK_NULL_HANDLE; \
|
||||
} \
|
||||
}
|
||||
#define VK_DESTROY_FUNC(_name) \
|
||||
void vkDestroy(Vk##_name& _obj) \
|
||||
{ \
|
||||
if (VK_NULL_HANDLE != _obj) \
|
||||
{ \
|
||||
vkDestroy##_name(s_renderVK->m_device, _obj, s_renderVK->m_allocatorCb); \
|
||||
_obj = VK_NULL_HANDLE; \
|
||||
} \
|
||||
}
|
||||
VK_DESTROY
|
||||
#undef VK_DESTROY_FUNC
|
||||
|
||||
@@ -4629,13 +4638,13 @@ VK_DESTROY
|
||||
|
||||
template<typename Ty> void StateCacheT<Ty>::destroy(Ty handle)
|
||||
{
|
||||
s_renderVK->releaseDeferred(handle);
|
||||
s_renderVK->release(handle);
|
||||
}
|
||||
|
||||
void ScratchBufferVK::create(uint32_t _size, uint32_t _maxDescriptors)
|
||||
{
|
||||
m_maxDescriptors = _maxDescriptors;
|
||||
m_currentDs = 0;
|
||||
m_currentDs = 0;
|
||||
m_descriptorSet = (VkDescriptorSet*)BX_ALLOC(g_allocator, m_maxDescriptors * sizeof(VkDescriptorSet) );
|
||||
bx::memSet(m_descriptorSet, 0, sizeof(VkDescriptorSet) * m_maxDescriptors);
|
||||
|
||||
@@ -4648,7 +4657,7 @@ VK_DESTROY
|
||||
bci.flags = 0;
|
||||
bci.size = _size;
|
||||
bci.usage = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT;
|
||||
bci.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
|
||||
bci.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
|
||||
bci.queueFamilyIndexCount = 0;
|
||||
bci.pQueueFamilyIndices = NULL;
|
||||
|
||||
@@ -4683,7 +4692,7 @@ VK_DESTROY
|
||||
|
||||
vkUnmapMemory(s_renderVK->m_device, m_deviceMem);
|
||||
|
||||
s_renderVK->releaseDeferred(m_buffer, m_deviceMem);
|
||||
s_renderVK->release(m_buffer, m_deviceMem);
|
||||
m_buffer = VK_NULL_HANDLE;
|
||||
m_deviceMem = VK_NULL_HANDLE;
|
||||
}
|
||||
@@ -4809,8 +4818,8 @@ VK_DESTROY
|
||||
|
||||
void ImageVK::destroy()
|
||||
{
|
||||
s_renderVK->releaseDeferred(m_imageView);
|
||||
s_renderVK->releaseDeferred(m_image, m_memory);
|
||||
s_renderVK->release(m_imageView);
|
||||
s_renderVK->release(m_image, m_memory);
|
||||
m_imageView = VK_NULL_HANDLE;
|
||||
m_image = VK_NULL_HANDLE;
|
||||
m_memory = VK_NULL_HANDLE;
|
||||
@@ -4872,7 +4881,7 @@ VK_DESTROY
|
||||
, VK_PIPELINE_STAGE_TRANSFER_BIT
|
||||
);
|
||||
|
||||
s_renderVK->releaseDeferred(stagingBuffer, stagingMem);
|
||||
s_renderVK->release(stagingBuffer, stagingMem);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4896,14 +4905,14 @@ VK_DESTROY
|
||||
, VK_PIPELINE_STAGE_TRANSFER_BIT
|
||||
);
|
||||
|
||||
s_renderVK->releaseDeferred(stagingBuffer, stagingMem);
|
||||
s_renderVK->release(stagingBuffer, stagingMem);
|
||||
}
|
||||
|
||||
void BufferVK::destroy()
|
||||
{
|
||||
if (VK_NULL_HANDLE != m_buffer)
|
||||
{
|
||||
s_renderVK->releaseDeferred(m_buffer, m_deviceMem);
|
||||
s_renderVK->release(m_buffer, m_deviceMem);
|
||||
m_buffer = VK_NULL_HANDLE;
|
||||
m_deviceMem = VK_NULL_HANDLE;
|
||||
|
||||
@@ -5331,7 +5340,7 @@ VK_DESTROY
|
||||
|
||||
void ProgramVK::destroy()
|
||||
{
|
||||
s_renderVK->releaseDeferred(m_pipelineLayout);
|
||||
s_renderVK->release(m_pipelineLayout);
|
||||
m_pipelineLayout = VK_NULL_HANDLE;
|
||||
m_numPredefined = 0;
|
||||
m_vsh = NULL;
|
||||
@@ -5761,11 +5770,11 @@ VK_DESTROY
|
||||
|
||||
vkBindImageMemory(device, m_textureImage, m_textureDeviceMem, 0);
|
||||
|
||||
if (stagingBuffer != VK_NULL_HANDLE)
|
||||
if (VK_NULL_HANDLE != stagingBuffer)
|
||||
{
|
||||
copyBufferToTexture(_commandBuffer, stagingBuffer, numSrd, bufferCopyInfo);
|
||||
|
||||
s_renderVK->releaseDeferred(stagingBuffer, stagingDeviceMem);
|
||||
s_renderVK->release(stagingBuffer, stagingDeviceMem);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -5922,10 +5931,10 @@ VK_DESTROY
|
||||
|
||||
if (VK_NULL_HANDLE != m_textureImage)
|
||||
{
|
||||
s_renderVK->releaseDeferred(m_textureImageStorageView);
|
||||
s_renderVK->releaseDeferred(m_textureImageDepthView);
|
||||
s_renderVK->releaseDeferred(m_textureImageView);
|
||||
s_renderVK->releaseDeferred(m_textureImage, m_textureDeviceMem);
|
||||
s_renderVK->release(m_textureImageStorageView);
|
||||
s_renderVK->release(m_textureImageDepthView);
|
||||
s_renderVK->release(m_textureImageView);
|
||||
s_renderVK->release(m_textureImage, m_textureDeviceMem);
|
||||
|
||||
m_textureImageStorageView = VK_NULL_HANDLE;
|
||||
m_textureImageDepthView = VK_NULL_HANDLE;
|
||||
@@ -5936,8 +5945,8 @@ VK_DESTROY
|
||||
|
||||
if (VK_NULL_HANDLE != m_singleMsaaImage)
|
||||
{
|
||||
s_renderVK->releaseDeferred(m_singleMsaaImageView);
|
||||
s_renderVK->releaseDeferred(m_singleMsaaImage, m_singleMsaaDeviceMem);
|
||||
s_renderVK->release(m_singleMsaaImageView);
|
||||
s_renderVK->release(m_singleMsaaImage, m_singleMsaaDeviceMem);
|
||||
|
||||
m_singleMsaaImageView = VK_NULL_HANDLE;
|
||||
m_singleMsaaImage = VK_NULL_HANDLE;
|
||||
@@ -5989,7 +5998,7 @@ VK_DESTROY
|
||||
|
||||
copyBufferToTexture(_commandBuffer, stagingBuffer, 1, ®ion);
|
||||
|
||||
s_renderVK->releaseDeferred(stagingBuffer, stagingDeviceMem);
|
||||
s_renderVK->release(stagingBuffer, stagingDeviceMem);
|
||||
|
||||
if (NULL != temp)
|
||||
{
|
||||
@@ -6226,7 +6235,7 @@ VK_DESTROY
|
||||
|
||||
void FrameBufferVK::destroy()
|
||||
{
|
||||
s_renderVK->releaseDeferred(m_framebuffer);
|
||||
s_renderVK->release(m_framebuffer);
|
||||
m_framebuffer = VK_NULL_HANDLE;
|
||||
}
|
||||
|
||||
@@ -6292,7 +6301,7 @@ VK_DESTROY
|
||||
{
|
||||
vkDestroy(m_commandList[ii].m_fence);
|
||||
vkDestroy(m_commandList[ii].m_semaphore);
|
||||
if (m_commandList[ii].m_commandBuffer != VK_NULL_HANDLE)
|
||||
if (VK_NULL_HANDLE != m_commandList[ii].m_commandBuffer)
|
||||
{
|
||||
vkFreeCommandBuffers(s_renderVK->m_device, m_commandList[ii].m_commandPool, 1, &m_commandList[ii].m_commandBuffer);
|
||||
m_commandList[ii].m_commandBuffer = VK_NULL_HANDLE;
|
||||
@@ -6324,7 +6333,7 @@ VK_DESTROY
|
||||
|
||||
void CommandQueueVK::kick(VkSemaphore _waitSemaphore, VkSemaphore _signalSemaphore, bool _wait)
|
||||
{
|
||||
if (m_activeCommandBuffer != VK_NULL_HANDLE)
|
||||
if (VK_NULL_HANDLE != m_activeCommandBuffer)
|
||||
{
|
||||
VK_CHECK(vkEndCommandBuffer(m_activeCommandBuffer) );
|
||||
|
||||
@@ -6332,11 +6341,13 @@ VK_DESTROY
|
||||
|
||||
VkSemaphore waitSemaphores[2];
|
||||
uint32_t waitSemaphoreCount = 0;
|
||||
if (m_kickedSemaphore != VK_NULL_HANDLE)
|
||||
|
||||
if (VK_NULL_HANDLE != m_kickedSemaphore)
|
||||
{
|
||||
waitSemaphores[waitSemaphoreCount++] = m_kickedSemaphore;
|
||||
}
|
||||
if (_waitSemaphore != VK_NULL_HANDLE)
|
||||
|
||||
if (VK_NULL_HANDLE != _waitSemaphore)
|
||||
{
|
||||
waitSemaphores[waitSemaphoreCount++] = _waitSemaphore;
|
||||
}
|
||||
@@ -6346,7 +6357,8 @@ VK_DESTROY
|
||||
|
||||
VkSemaphore signalSemaphores[2] = { m_kickedSemaphore };
|
||||
uint32_t signalSemaphoreCount = 1;
|
||||
if (_signalSemaphore != VK_NULL_HANDLE)
|
||||
|
||||
if (VK_NULL_HANDLE != _signalSemaphore)
|
||||
{
|
||||
signalSemaphores[signalSemaphoreCount++] = _signalSemaphore;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user