| 227 | } |
| 228 | |
| 229 | void VKCommandBuffer::FillBuffer( |
| 230 | Buffer& dstBuffer, |
| 231 | std::uint64_t dstOffset, |
| 232 | std::uint32_t value, |
| 233 | std::uint64_t fillSize) |
| 234 | { |
| 235 | auto& dstBufferVK = LLGL_CAST(VKBuffer&, dstBuffer); |
| 236 | |
| 237 | /* Determine destination buffer range and ignore <dstOffset> if the whole buffer is meant to be filled */ |
| 238 | VkDeviceSize offset, size; |
| 239 | if (fillSize == Constants::wholeSize) |
| 240 | { |
| 241 | offset = 0; |
| 242 | size = VK_WHOLE_SIZE; |
| 243 | } |
| 244 | else |
| 245 | { |
| 246 | offset = static_cast<VkDeviceSize>(dstOffset); |
| 247 | size = static_cast<VkDeviceSize>(fillSize); |
| 248 | } |
| 249 | |
| 250 | /* Encode fill buffer command */ |
| 251 | if (IsInsideRenderPass()) |
| 252 | { |
| 253 | PauseRenderPass(); |
| 254 | vkCmdFillBuffer(commandBuffer_, dstBufferVK.GetVkBuffer(), offset, size, value); |
| 255 | ResumeRenderPass(); |
| 256 | } |
| 257 | else |
| 258 | vkCmdFillBuffer(commandBuffer_, dstBufferVK.GetVkBuffer(), offset, size, value); |
| 259 | } |
| 260 | |
| 261 | void VKCommandBuffer::CopyTexture( |
| 262 | Texture& dstTexture, |
no test coverage detected