@@ -276,7 +276,7 @@ private static void finishBloomBuffer(SectionPos sectionPos, MeshData mesh, Buff
276276 VertexSorting vertexSorting ) {
277277 BLOOM_RENDER_LOCK .writeLock ().lock ();
278278 try {
279- BLOOM_BUFFER_BUILDERS .remove (sectionPos , builder );
279+ BLOOM_BUFFER_BUILDERS .remove (sectionPos );
280280
281281 ByteBufferBuilder byteBuffer = BLOOM_BYTE_BUFFERS .remove (sectionPos );
282282 if (byteBuffer != null ) {
@@ -309,12 +309,17 @@ private static void uploadBloomBuffer(MeshData mesh, VertexBuffer buffer) {
309309 }
310310
311311 public static BufferBuilder getOrStartBloomBuffer (SectionPos sectionPos ) {
312- return BLOOM_BUFFER_BUILDERS .computeIfAbsent (sectionPos , $ -> {
313- ByteBufferBuilder byteBuffer = BLOOM_BYTE_BUFFERS .computeIfAbsent (sectionPos ,
314- unused -> new ByteBufferBuilder (GTRenderTypes .bloom ().bufferSize ()));
312+ BLOOM_RENDER_LOCK .writeLock ().lock ();
313+ try {
314+ return BLOOM_BUFFER_BUILDERS .computeIfAbsent (sectionPos , $ -> {
315+ ByteBufferBuilder byteBuffer = BLOOM_BYTE_BUFFERS .computeIfAbsent (sectionPos ,
316+ unused -> new ByteBufferBuilder (GTRenderTypes .bloom ().bufferSize ()));
315317
316- return new BufferBuilder (byteBuffer , GTRenderTypes .bloom ().mode (), GTRenderTypes .bloom ().format ());
317- });
318+ return new BufferBuilder (byteBuffer , GTRenderTypes .bloom ().mode (), GTRenderTypes .bloom ().format ());
319+ });
320+ } finally {
321+ BLOOM_RENDER_LOCK .writeLock ().unlock ();
322+ }
318323 }
319324
320325 public static void bakeBloomChunkBuffers (SectionPos sectionPos , VertexSorting vertexSorting ) {
0 commit comments