Fixing source_offset in Vulkan update_buffer. (#8339)

diff --git a/iree/hal/vulkan/direct_command_buffer.cc b/iree/hal/vulkan/direct_command_buffer.cc
index 015250c..de6bb0f 100644
--- a/iree/hal/vulkan/direct_command_buffer.cc
+++ b/iree/hal/vulkan/direct_command_buffer.cc
@@ -615,7 +615,8 @@
   // may be slower than just using write-through mapped memory). The
   // recommendation in the spec for larger updates is to split the single update
   // into multiple updates over the entire desired range.
-  const auto* source_buffer_ptr = static_cast<const uint8_t*>(source_buffer);
+  const auto* source_buffer_ptr =
+      static_cast<const uint8_t*>(source_buffer) + source_offset;
   target_offset += iree_hal_buffer_byte_offset(target_buffer);
   while (length > 0) {
     iree_device_size_t chunk_length =