FailedChanges

Summary

  1. Replace poor lock system with ReadWriteLock system (details)
  2. Created ChunkRenderDispatcherCT to make queueChunkUpdates field volatile (details)
  3. Removing some CT debug output (details)
  4. 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)
  5. The Shaders Mod seemed to like keeping us in an eternal do/while loop (details)
  6. 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)
  7. Removed now obsolete MixinChunkRenderDispatcher (details)
  8. Made ChunkLoadingRenderGlobal's ReadWriteLock non-static (details)
  9. 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)
  10. Compare our framebuffer's size to the Display's size BEFORE rendering to properly update the gui size (details)
  11. We don't need that weird chunk loading difference check anymore (details)
  12. Gracefully offer the queueChunkUpdates the LockingChunkCompileTasks, but be persistent until they accept our gift. (details)
  13. Take the "up to one second" in Johni's comment a bit more literally (details)
  14. Johni says I may not ignore this exception. (details)
  15. The ChunkRenderDispatcher#queueChunkUpdates does not need to be non-final and therefore does not have to be volatile -> removed ChunkRenderDispatcherCT (details)
  16. Move Shaders Mod detection from postInit() to a static block (details)
  17. Re-enabled rendering with PBOs enabled (details)
  18. Have a maximum of 10 timeouts when offering LockingChunkCompileTasks to queueChunkUpdates (details)
Commit af61f60681dee38c06f7f45e88efc605b3bb53e7 by CrushedPixel
Replace poor lock system with ReadWriteLock system
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/renderer/ChunkLoadingRenderGlobal.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/mixin/MixinChunkRenderWorker.java
Commit d7dcefe836d9b251dc5f2cd1a566c3aabc2e3497 by CrushedPixel
Created ChunkRenderDispatcherCT to make queueChunkUpdates field volatile
The file was addedsrc/main/java/eu/crushedpixel/replaymod/coremod/ChunkRenderDispatcherCT.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/coremod/LoadingPlugin.java
Commit 4bb5923d2a84b4cad7af96a199a5fa263a3c9d26 by CrushedPixel
Removing some CT debug output
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/coremod/ChunkRenderDispatcherCT.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/coremod/ClippingHelperCT.java
Commit 0bfd5f424449ea30a44ba33243e532d798e6e4c4 by CrushedPixel
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
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/mixin/MixinChunkRenderWorker.java
Commit 8421136295d06112ec86c21b7d7690c8e597eecb by CrushedPixel
The Shaders Mod seemed to like keeping us in an eternal do/while loop
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/renderer/ChunkLoadingRenderGlobal.java
Commit 648f75b60811d710a20a71650b45ff76fcf5c082 by CrushedPixel
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.
The file was modifiedsrc/main/resources/mixins.replaymod.json
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/renderer/ChunkLoadingRenderGlobal.java
The file was addedsrc/main/java/eu/crushedpixel/replaymod/mixin/MixinChunkRenderDispatcher.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/mixin/MixinChunkRenderWorker.java
Commit 73a29f816a1362ef126fd3c187a506d3e7a17275 by CrushedPixel
Removed now obsolete MixinChunkRenderDispatcher
The file was modifiedsrc/main/resources/mixins.replaymod.json
The file was removedsrc/main/java/eu/crushedpixel/replaymod/mixin/MixinChunkRenderDispatcher.java
Commit 61c1eeee20c139c88e17680bf150cf7e41a454da by CrushedPixel
Made ChunkLoadingRenderGlobal's ReadWriteLock non-static
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/renderer/ChunkLoadingRenderGlobal.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/mixin/MixinChunkRenderWorker.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/video/VideoRenderer.java
Commit 7e5c83005ae4801b2f15f2b0132581f501aabcb7 by CrushedPixel
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)
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/video/capturer/ODSFrameCapturer.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/utils/MouseUtils.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/video/capturer/OpenGlFrameCapturer.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/gui/GuiVideoRenderer.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/video/VideoRenderer.java
Commit 7542d9caf994152d025281098620700cf1f8ae5b by CrushedPixel
Compare our framebuffer's size to the Display's size BEFORE rendering to properly update the gui size
Restore mc.displayWidth and Height after calling gui.handleInput in VideoRenderer so we don't have to recalculate the mouse positions in GuiVideoRenderer's onClick method
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/gui/GuiVideoRenderer.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/video/VideoRenderer.java
Commit e6a7c796d622408132eaac6a03f2d599d613b141 by CrushedPixel
We don't need that weird chunk loading difference check anymore
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/renderer/ChunkLoadingRenderGlobal.java
Commit 9fbf8a8b4b61620f6c507bab56a5e03afeafc3a7 by CrushedPixel
Gracefully offer the queueChunkUpdates the LockingChunkCompileTasks, but be persistent until they accept our gift.
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/renderer/ChunkLoadingRenderGlobal.java
Commit a7ac6328835cda0085b0e9816bd9fe9fe9da67ee by CrushedPixel
Take the "up to one second" in Johni's comment a bit more literally
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/video/VideoRenderer.java
Commit 70f4e9c570bd3244bea4c06501cdf551e8fca8fb by CrushedPixel
Johni says I may not ignore this exception.
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/renderer/ChunkLoadingRenderGlobal.java
Commit aa307706655960f6a0bee3a3c70b131c7de2508c by CrushedPixel
The ChunkRenderDispatcher#queueChunkUpdates does not need to be non-final and therefore does not have to be volatile -> removed ChunkRenderDispatcherCT
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/coremod/LoadingPlugin.java
The file was removedsrc/main/java/eu/crushedpixel/replaymod/coremod/ChunkRenderDispatcherCT.java
The file was modifiedsrc/main/resources/META-INF/replaymod_at.cfg
Commit d97b15d103d4e7e01089b163a4522cec2bae7d6d by CrushedPixel
Move Shaders Mod detection from postInit() to a static block
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/ReplayMod.java
Commit be68318813e2b83479703f72e82fc2714c0422d5 by CrushedPixel
Re-enabled rendering with PBOs enabled
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/video/rendering/Pipelines.java
Commit 8131639dba8780fef3823b7311fb9266da96efd2 by CrushedPixel
Have a maximum of 10 timeouts when offering LockingChunkCompileTasks to queueChunkUpdates
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/renderer/ChunkLoadingRenderGlobal.java