Browse Source

Cause buffer_update to emit error if called during compute/draw list

Add error message to buffer update if a compute or draw list is active.
John Zulauf 5 years ago
parent
commit
98d677ef26
1 changed files with 4 additions and 0 deletions
  1. 4 0
      drivers/vulkan/rendering_device_vulkan.cpp

+ 4 - 0
drivers/vulkan/rendering_device_vulkan.cpp

@@ -1491,6 +1491,10 @@ Error RenderingDeviceVulkan::_staging_buffer_allocate(uint32_t p_amount, uint32_
 }
 }
 
 
 Error RenderingDeviceVulkan::_buffer_update(Buffer *p_buffer, size_t p_offset, const uint8_t *p_data, size_t p_data_size, bool p_use_draw_command_buffer, uint32_t p_required_align) {
 Error RenderingDeviceVulkan::_buffer_update(Buffer *p_buffer, size_t p_offset, const uint8_t *p_data, size_t p_data_size, bool p_use_draw_command_buffer, uint32_t p_required_align) {
+	// Buffer update not valid during draw or compute lists
+	ERR_FAIL_COND_V_MSG(draw_list != nullptr, ERR_BUG, "Buffer update not valid when draw list is active.");
+	ERR_FAIL_COND_V_MSG(compute_list != nullptr, ERR_BUG, "Buffer update not valid when compute list is active.");
+
 	//submitting may get chunked for various reasons, so convert this to a task
 	//submitting may get chunked for various reasons, so convert this to a task
 	size_t to_submit = p_data_size;
 	size_t to_submit = p_data_size;
 	size_t submit_from = 0;
 	size_t submit_from = 0;