Skip to content

Commit 5dce6a2

Browse files
committed
updating readme, improving buffer transfer to GPU
1 parent 52929e2 commit 5dce6a2

File tree

2 files changed

+14
-28
lines changed

2 files changed

+14
-28
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,11 @@ cd MacroLibX
4747
make
4848
```
4949

50+
If you want to build using GCC you can add `TOOLCHAIN=gcc` to your `make` command
51+
```bash
52+
make TOOLCHAIN=gcc
53+
```
54+
5055
## 🔨 Compile your project
5156

5257
To compile your project with MacroLibX, you just provide the shared library path in your compilation/linking command:

src/renderer/buffers/vk_buffer.cpp

Lines changed: 9 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,13 @@
66
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
77
/* +#+#+#+#+#+ +#+ */
88
/* Created: 2022/10/08 18:55:57 by maldavid #+# #+# */
9-
/* Updated: 2023/11/14 07:17:06 by maldavid ### ########.fr */
9+
/* Updated: 2023/11/14 07:35:22 by maldavid ### ########.fr */
1010
/* */
1111
/* ************************************************************************** */
1212

1313
#include "vk_buffer.h"
1414
#include <renderer/command/vk_cmd_pool.h>
15+
#include <renderer/command/vk_cmd_buffer.h>
1516
#include <renderer/core/render_core.h>
1617
#include <vma.h>
1718
#include <cstring>
@@ -89,39 +90,19 @@ namespace mlx
8990

9091
CmdPool cmdpool;
9192
cmdpool.init();
92-
auto device = Render_Core::get().getDevice().get();
93+
CmdBuffer cmdBuffer;
94+
cmdBuffer.init(&cmdpool);
9395

94-
VkCommandBufferAllocateInfo allocInfo{};
95-
allocInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
96-
allocInfo.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY;
97-
allocInfo.commandPool = cmdpool.get();
98-
allocInfo.commandBufferCount = 1;
99-
100-
VkCommandBuffer commandBuffer;
101-
vkAllocateCommandBuffers(device, &allocInfo, &commandBuffer);
102-
103-
VkCommandBufferBeginInfo beginInfo{};
104-
beginInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
105-
beginInfo.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
106-
107-
vkBeginCommandBuffer(commandBuffer, &beginInfo);
96+
cmdBuffer.beginRecord(VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT);
10897

10998
VkBufferCopy copyRegion{};
11099
copyRegion.size = _size;
111-
vkCmdCopyBuffer(commandBuffer, _buffer, newBuffer._buffer, 1, &copyRegion);
112-
113-
vkEndCommandBuffer(commandBuffer);
114-
115-
VkSubmitInfo submitInfo{};
116-
submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
117-
submitInfo.commandBufferCount = 1;
118-
submitInfo.pCommandBuffers = &commandBuffer;
119-
120-
auto graphicsQueue = Render_Core::get().getQueue().getGraphic();
100+
vkCmdCopyBuffer(cmdBuffer.get(), _buffer, newBuffer._buffer, 1, &copyRegion);
121101

122-
vkQueueSubmit(graphicsQueue, 1, &submitInfo, VK_NULL_HANDLE);
123-
vkQueueWaitIdle(graphicsQueue);
102+
cmdBuffer.endRecord();
103+
cmdBuffer.submitIdle();
124104

105+
cmdBuffer.destroy();
125106
cmdpool.destroy();
126107

127108
this->swap(newBuffer);

0 commit comments

Comments
 (0)