Skip to content

Commit 3955e61

Browse files
committed
[Renderer] fix
1 parent 529d815 commit 3955e61

3 files changed

Lines changed: 10 additions & 3 deletions

File tree

src/openminecraft-core/renderer/vk/om_renderer_layer_vk.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,10 @@ OMRendererVk::OMRendererVk(AppInfo info, std::function<int(std::vector<std::stri
238238
{
239239
logicalDevice.waitIdle();
240240

241+
if (bufferUpdates.empty())
242+
{
243+
continue;
244+
}
241245
bufferUpdateMutex.lock();
242246
std::unordered_map<OMRendererBufferVk *, bool> updateMap;
243247
for (auto &u : bufferUpdates)

src/openminecraft-core/renderer/vk/om_renderer_layer_vk_buffer.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,10 @@ void OMRendererBufferVk::updateDataPart(void *src, uint64_t offset, uint64_t len
130130

131131
void OMRendererBufferVk::updateDataPartAsync(void *src, uint64_t offset, uint64_t length)
132132
{
133-
try
133+
auto renderer = reinterpret_cast<OMRendererVk *>(this->renderer);
134+
renderer->logicalDevice.waitIdle();
135+
updateDataPartReal(src, offset, length);
136+
/*try
134137
{
135138
auto renderer = reinterpret_cast<OMRendererVk *>(this->renderer);
136139
renderer->bufferUpdateMutex.lock();
@@ -142,7 +145,7 @@ void OMRendererBufferVk::updateDataPartAsync(void *src, uint64_t offset, uint64_
142145
catch (SystemError &e)
143146
{
144147
throw OMRendererException(VkErrorTranslate(e, "openminecraft.renderer.vk.err.buffer.update"));
145-
}
148+
}*/
146149
}
147150

148151
void OMRendererBufferVk::updateDataPartReal(void *src, uint64_t offset, uint64_t length)

src/openminecraft/application.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ void OMApplication::mainLoop(OMBackend backend)
107107
auto camera = std::make_shared<basics::OMCamera>(win(), glm::vec3{-1.0f, 5.0f, -1.0f}, 45.0f, -45.0f);
108108

109109
auto chunkManager = std::make_shared<world::OMChunkManager<16>>();
110-
int radius = 8;
110+
int radius = 4;
111111
for (int cx = -radius; cx < radius; ++cx)
112112
{
113113
for (int cy = -radius; cy < radius; ++cy)

0 commit comments

Comments
 (0)