@@ -4454,15 +4454,14 @@ VK_IMPORT_DEVICE
4454
4454
return createHostBuffer (_size, flags, _buffer, _memory, _data);
4455
4455
}
4456
4456
4457
- StagingBufferVK allocFromScratchStagingBuffer (uint32_t _size, uint32_t _align, const void * _data = NULL , bool _tryScratch = true )
4457
+ StagingBufferVK allocFromScratchStagingBuffer (uint32_t _size, uint32_t _align, const void * _data = NULL )
4458
4458
{
4459
4459
BGFX_PROFILER_SCOPE (" allocFromScratchStagingBuffer" , kColorResource );
4460
4460
4461
4461
StagingBufferVK result;
4462
4462
ScratchBufferVK &scratch = m_scratchStagingBuffer[m_cmd.m_currentFrameInFlight ];
4463
4463
4464
- if (_tryScratch
4465
- && _size <= BGFX_CONFIG_MAX_STAGING_SIZE_FOR_SCRATCH_BUFFER)
4464
+ if (_size <= BGFX_CONFIG_MAX_STAGING_SIZE_FOR_SCRATCH_BUFFER)
4466
4465
{
4467
4466
const uint32_t scratchOffset = scratch.alloc (_size, _align);
4468
4467
@@ -4734,18 +4733,12 @@ VK_DESTROY
4734
4733
4735
4734
void ScratchBufferVK::destroy ()
4736
4735
{
4737
- reset ();
4738
-
4739
4736
vkUnmapMemory (s_renderVK->m_device , m_deviceMem);
4740
4737
4741
4738
s_renderVK->release (m_buffer);
4742
4739
s_renderVK->release (m_deviceMem);
4743
4740
}
4744
4741
4745
- void ScratchBufferVK::reset ()
4746
- {
4747
- m_pos = 0 ;
4748
- }
4749
4742
4750
4743
uint32_t ScratchBufferVK::alloc (uint32_t _size, uint32_t _minAlign)
4751
4744
{
@@ -4775,7 +4768,7 @@ VK_DESTROY
4775
4768
}
4776
4769
4777
4770
4778
- void ScratchBufferVK::flush ()
4771
+ void ScratchBufferVK::flush (bool _reset )
4779
4772
{
4780
4773
const VkPhysicalDeviceLimits& deviceLimits = s_renderVK->m_deviceProperties .limits ;
4781
4774
VkDevice device = s_renderVK->m_device ;
@@ -4790,6 +4783,10 @@ VK_DESTROY
4790
4783
range.offset = 0 ;
4791
4784
range.size = size;
4792
4785
VK_CHECK (vkFlushMappedMemoryRanges (device, 1 , &range) );
4786
+
4787
+ if (_reset) {
4788
+ m_pos = 0 ;
4789
+ }
4793
4790
}
4794
4791
4795
4792
void BufferVK::create (VkCommandBuffer _commandBuffer, uint32_t _size, void * _data, uint16_t _flags, bool _vertex, uint32_t _stride)
@@ -4840,7 +4837,7 @@ VK_DESTROY
4840
4837
BGFX_PROFILER_SCOPE (" BufferVK::update" , kColorFrame );
4841
4838
BX_UNUSED (_discard);
4842
4839
4843
- StagingBufferVK stagingBuffer = s_renderVK->allocFromScratchStagingBuffer (_size, 8 , _data, !_discard );
4840
+ StagingBufferVK stagingBuffer = s_renderVK->allocFromScratchStagingBuffer (_size, 8 , _data);
4844
4841
4845
4842
VkBufferCopy region;
4846
4843
region.srcOffset = stagingBuffer.m_offset ;
@@ -8502,10 +8499,7 @@ VK_DESTROY
8502
8499
const uint64_t f3 = BGFX_STATE_BLEND_INV_FACTOR<<4 ;
8503
8500
8504
8501
ScratchBufferVK& scratchBuffer = m_scratchBuffer[m_cmd.m_currentFrameInFlight ];
8505
- scratchBuffer.reset ();
8506
-
8507
8502
ScratchBufferVK& scratchStagingBuffer = m_scratchStagingBuffer[m_cmd.m_currentFrameInFlight ];
8508
- scratchStagingBuffer.reset ();
8509
8503
8510
8504
setMemoryBarrier (
8511
8505
m_commandBuffer
0 commit comments