From fb18c07722d1aa0b10e7944bf5f25958ebddde4e Mon Sep 17 00:00:00 2001 From: RainWarrior Date: Mon, 4 May 2015 21:53:39 +0300 Subject: [PATCH] Eliminated texture name allocation race condition --- .../client/renderer/texture/TextureUtil.java.patch | 14 ++++++++++++++ .../java/cpw/mods/fml/client/SplashProgress.java | 7 +++++-- 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 fml/patches/minecraft/net/minecraft/client/renderer/texture/TextureUtil.java.patch diff --git a/fml/patches/minecraft/net/minecraft/client/renderer/texture/TextureUtil.java.patch b/fml/patches/minecraft/net/minecraft/client/renderer/texture/TextureUtil.java.patch new file mode 100644 index 0000000000..8f7a190884 --- /dev/null +++ b/fml/patches/minecraft/net/minecraft/client/renderer/texture/TextureUtil.java.patch @@ -0,0 +1,14 @@ +--- ../src-base/minecraft/net/minecraft/client/renderer/texture/TextureUtil.java ++++ ../src-work/minecraft/net/minecraft/client/renderer/texture/TextureUtil.java +@@ -201,8 +201,11 @@ + + public static void func_147946_a(int p_147946_0_, int p_147946_1_, int p_147946_2_, int p_147946_3_, float p_147946_4_) + { ++ synchronized(cpw.mods.fml.client.SplashProgress.class) ++ { + func_147942_a(p_147946_0_); + func_94277_a(p_147946_0_); ++ } + + if (OpenGlHelper.field_148825_d) + { diff --git a/fml/src/main/java/cpw/mods/fml/client/SplashProgress.java b/fml/src/main/java/cpw/mods/fml/client/SplashProgress.java index 72e6fc41d6..3a9eb86688 100644 --- a/fml/src/main/java/cpw/mods/fml/client/SplashProgress.java +++ b/fml/src/main/java/cpw/mods/fml/client/SplashProgress.java @@ -534,9 +534,12 @@ public class SplashProgress height = images[0].getHeight(); while((size / width) * (size / height) < frames) size *= 2; this.size = size; - name = glGenTextures(); glEnable(GL_TEXTURE_2D); - glBindTexture(GL_TEXTURE_2D, name); + synchronized(SplashProgress.class) + { + name = glGenTextures(); + glBindTexture(GL_TEXTURE_2D, name); + } glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, size, size, 0, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, (IntBuffer)null);