Changes
Summary
- Replace poor lock system with ReadWriteLock system (details)
- Created ChunkRenderDispatcherCT to make queueChunkUpdates field volatile (details)
- Removing some CT debug output (details)
- Modify the ChunkRenderWorker to feed itself with an empty, finished ChunkCompileTaskGenerator while recording if no future TaskGenerator is in the queueChunkUpdates, to prevent deadlock state when the processTask method's internal lock indirectly kept the ChunkLoadingRenderGlobal.lock locked (details)
- The Shaders Mod seemed to like keeping us in an eternal do/while loop (details)
- Use a custom LockingChunkCompileTaskGenerator to lock the ChunkRenderWorkers while rendering videos. These Generators are inserted into the renderDispatcher's queueChunkUpdates, therefore assuring that the ChunkRenderWorkers release the ChunkLoadingRenderGlobal's ReadLocks after finishing Minecraft's final chunk compilation/upload process. (details)
- Removed now obsolete MixinChunkRenderDispatcher (details)
- Made ChunkLoadingRenderGlobal's ReadWriteLock non-static (details)
- Draw the Rendering GUI on our own Framebuffer instead of the Minecraft framebuffer. This way we don't have to recreate (because of resizing) Minecraft's framebuffer every frame (once to render the video with custom resolution, once to render the GUI with window resolution) (details)
- Compare our framebuffer's size to the Display's size BEFORE rendering to properly update the gui size (details)
- We don't need that weird chunk loading difference check anymore (details)
- Gracefully offer the queueChunkUpdates the LockingChunkCompileTasks, but be persistent until they accept our gift. (details)
- Take the "up to one second" in Johni's comment a bit more literally (details)
- Johni says I may not ignore this exception. (details)
- The ChunkRenderDispatcher#queueChunkUpdates does not need to be non-final and therefore does not have to be volatile -> removed ChunkRenderDispatcherCT (details)
- Move Shaders Mod detection from postInit() to a static block (details)
- Re-enabled rendering with PBOs enabled (details)
- Have a maximum of 10 timeouts when offering LockingChunkCompileTasks to queueChunkUpdates (details)