1 #include "tu_private.h"
6 tu_CmdFillBuffer(VkCommandBuffer commandBuffer
,
8 VkDeviceSize dstOffset
,
12 TU_FROM_HANDLE(tu_cmd_buffer
, cmd
, commandBuffer
);
13 TU_FROM_HANDLE(tu_buffer
, buffer
, dstBuffer
);
15 if (fillSize
== VK_WHOLE_SIZE
)
16 fillSize
= buffer
->size
- dstOffset
;
18 tu_bo_list_add(&cmd
->bo_list
, buffer
->bo
, MSM_SUBMIT_BO_WRITE
);
20 tu_blit(cmd
, &(struct tu_blit
) {
22 .fmt
= VK_FORMAT_R32_UINT
,
23 .va
= tu_buffer_iova(buffer
) + dstOffset
,
24 .width
= fillSize
/ 4,
29 .clear_value
[0] = data
,
30 .type
= TU_BLIT_CLEAR
,
36 tu_CmdUpdateBuffer(VkCommandBuffer commandBuffer
,
38 VkDeviceSize dstOffset
,
39 VkDeviceSize dataSize
,
42 TU_FROM_HANDLE(tu_cmd_buffer
, cmd
, commandBuffer
);
43 TU_FROM_HANDLE(tu_buffer
, buffer
, dstBuffer
);
45 tu_bo_list_add(&cmd
->bo_list
, buffer
->bo
, MSM_SUBMIT_BO_WRITE
);
47 struct ts_cs_memory tmp
;
48 VkResult result
= tu_cs_alloc(cmd
->device
, &cmd
->sub_cs
, DIV_ROUND_UP(dataSize
, 64), 64, &tmp
);
49 if (result
!= VK_SUCCESS
) {
50 cmd
->record_result
= result
;
54 memcpy(tmp
.map
, pData
, dataSize
);
56 tu_blit(cmd
, &(struct tu_blit
) {
58 .fmt
= VK_FORMAT_R32_UINT
,
59 .va
= tu_buffer_iova(buffer
) + dstOffset
,
60 .width
= dataSize
/ 4,
65 .fmt
= VK_FORMAT_R32_UINT
,
67 .width
= dataSize
/ 4,