This is a fix for the 'buffer overflow' and 'Already tesselating' crash that some people are experiencing when running Daxnitro's GLSL Shader mod and Sonic Ether's Unbelieveable Shaders alongside Extra Biomes XL, Trees++, RedPower 2, or any other world gen. mod that introduces too many blocks above ground for SEUS to correctly process shadows with the default sized shader buffer.
Screenshots with SEUS V10, EBXL and RP2, on extreme view distance and with graphics set to fancy:
(Redwood forests)
(RP2 Rubber trees)
Before this fix I was unable to walk around in these areas without setting all graphics to fast and view distance to tiny. And even then I would crash from time to time.
Although my lack of experience with Java and reverse engineering made tracking the problem down a very difficult process, the change is a very small one. Simply increasing the size of the shader buffer (x8) to accommodate shadow processing through a large amount of leaf or other above-ground blocks with alpha-channel textures, prevents the crash entirely.
If you are comfortable with a Java compiler you can make the change yourself. The manual instructions are in the following spoiler tag.
In Hooks.java (found in %appdata%\Roaming\.Nitrous\mods\com.daxnitro.shaders\source), at line number 110, change the following: "shadersBuffer = " + GLAllocation + "." + GLAllocation_createDirectByteBuffer + "($1 / 8 * 4);" + to: "shadersBuffer = " + GLAllocation + "." + GLAllocation_createDirectByteBuffer + "($1 * 4);" +
Then compile and copy the resulting .class files to %appdata%\Roaming\.Nitrous\mods\com.daxnitro.shaders\contents\hooks.
If you are NOT comfortable with the above, you can download the edited .class files as a .zip with the links below, and copy them to one the following locations:
%appdata%\Roaming\.Nitrous\mods\com.daxnitro.shaders\contents\hooks in your filesystem,
or \contents\hooks in your shader distribution .zip or install location.
I personally placed the files in the first listed location but some other downloaders have had to use the second option for results.
This change is basically telling the GLSL Shader mod to allocate a buffer 8 times larger than the default. After the change has been applied, you MUST run the GLSL Shaders installer again to patch the new size into your client.
If this fix helps you please vote up(click the green arrow in the lower right corner of the post)
And if you would like to , it would be very much appreciated.
To Daxnitro: I didn't think you would mind my posting this since you have publicly given permission to use your source as long as credit was given where it was due. I searched everywhere, posted, and waited over a month for help with the crash before attempting a fix myself. I also waited over a week for a response from you regarding making this fix public. Please let me know if you want it removed.
A thousand thanks to Daxnitro, Sonic Ether, ScottKillen, MisterFiber, Eloraam, Nightshade121, Azure_Harbie, and all the other modders for their restless efforts and wonderful works that turn Minecraft into a totally different game and a joy to play!!
So for modding n00bs like me, this is basically a mod that stops/lessens crashes? Sounds good to me!
Not really. It's a fix, not a mod, and what it fixes is very specific. It's for a crash that a small group of people experience when combining SEUS with certain world generation mods.
Was your error exactly what I mentioned in the OP? If not, this fix probably won't help you.
Post logs (in spoiler tags or a pastebin please), and I'll take a look.
My .Nitrous only contains a map called backups. So I was wondering if I shouldn't put the hooks.class somewhere in my minecraft.jar?
No, the .class files are binaries that are invoked when running DaxNitro's "Nitrous" patcher. They govern what changes are made to your client. The way I have distributed this fix requires overwriting the original binaries before running the patcher.
Assuming nothing, I suggest you run the patcher once to generate the folder structure in your AppData folder, then type %appdata% in the search field of your start menu and go from there.
I am not aware of any situation that would result in the folder structure not being present afterwards.
Was your error exactly what I mentioned in the OP? If not, this fix probably won't help you.
Post logs (in spoiler tags or a pastebin please), and I'll take a look.
Every time I get near those huge trees
---- Minecraft Crash Report ----
// Quite honestly, I wouldn't worry myself about that.
java.lang.IllegalStateException: Already tesselating!
at ave.b(Tessellator.java:504)
at ave.b(Tessellator.java:494)
at avb.a(RenderGlobal.java:1140)
at auw.a(EntityRenderer.java:1268)
at Shaders.beginRender(Shaders.java:249)
at auw.a(EntityRenderer.java)
at auw.b(EntityRenderer.java:1039)
at net.minecraft.client.Minecraft.J(Minecraft.java:871)
at net.minecraft.client.Minecraft.run(Minecraft.java:764)
at java.lang.Thread.run(Unknown Source)
java.lang.IllegalStateException: Already tesselating!
at ave.b(Tessellator.java:504)
at ave.b(Tessellator.java:494)
at avb.a(RenderGlobal.java:1140)
at auw.a(EntityRenderer.java:1268)
at Shaders.beginRender(Shaders.java:249)
at auw.a(EntityRenderer.java)
at auw.b(EntityRenderer.java:1039)
at net.minecraft.client.Minecraft.J(Minecraft.java:871)
at net.minecraft.client.Minecraft.run(Minecraft.java:764)
at java.lang.Thread.run(Unknown Source)
Not sure what's going on there but it looks like it is happening during cloud rendering. Try disabling clouds and send another crash report if you still can't run.
Not sure what's going on there but it looks like it is happening during cloud rendering. Try disabling clouds and send another crash report if you still can't run.
java.lang.IllegalStateException: Already tesselating!
at ave.b(Tessellator.java:504)
at avb.a(RenderGlobal.java:1104)
at auw.a(EntityRenderer.java:1268)
at Shaders.beginRender(Shaders.java:249)
at auw.a(EntityRenderer.java)
at auw.b(EntityRenderer.java:1039)
at net.minecraft.client.Minecraft.J(Minecraft.java:871)
at net.minecraft.client.Minecraft.run(Minecraft.java:764)
at java.lang.Thread.run(Unknown Source)
java.lang.IllegalStateException: Already tesselating!
at ave.b(Tessellator.java:504)
at avb.a(RenderGlobal.java:1104)
at auw.a(EntityRenderer.java:1268)
at Shaders.beginRender(Shaders.java:249)
at auw.a(EntityRenderer.java)
at auw.b(EntityRenderer.java:1039)
at net.minecraft.client.Minecraft.J(Minecraft.java:871)
at net.minecraft.client.Minecraft.run(Minecraft.java:764)
at java.lang.Thread.run(Unknown Source)
Hmm, I don't know. Your crash is happening in a different place than I would expect. Try disabling weather, try setting different details to fast, try a single cpu version of OptiFine.
You can also try my fix with an even larger value for the buffer size but considering the location of your crash in code, I don't think that will help.
I am using Minecraft 1.3.2
TFCraft-Universal-Core-B2-Build51
Forge-universal-4.1.2.260
MC 1.3.2 - Player API client 1.2\
OptiFine 1.3.2 HD B3
i7-920 12GB RAM
GTX 560TI
WINDOWS 7 64 Home Premium
but my first issue was that I didnt have the "/com.daxnitro.shaders/contents/hooks." So I created those folders and unzipped the 1.3.2 file into the hooks folder. Ran Minecraft and started a new world. Terrafirmacraft crashed and then I installed the shaders from Daxintro and Seus then ran Minecraft again and this is the error I get:
java.lang.IllegalStateException: Already tesselating!
at ave.b(Tessellator.java:504)
at ave.b(Tessellator.java:494)
at avb.c(RenderGlobal.java:1400)
at avb.b(RenderGlobal.java:1251)
at auw.a(EntityRenderer.java:1436)
at Shaders.beginRender(Shaders.java:249)
at auw.a(EntityRenderer.java)
at auw.b(EntityRenderer.java:1043)
at net.minecraft.client.Minecraft.J(Minecraft.java:871)
at net.minecraft.client.Minecraft.run(Minecraft.java:764)
at java.lang.Thread.run(Unknown Source)
--- END ERROR REPORT 23317254 ----------
This is exactly what I need! But I can't find %appdata%\Roaming\.Nitrous\mods\com.daxnitro.shaders\contents\hooks.
My .Nitrous only contains a map called backups. So I was wondering if I shouldn't put the hooks.class somewhere in my minecraft.jar?
but my first issue was that I didnt have the "/com.daxnitro.shaders/contents/hooks." So I created those folders and unzipped the 1.3.2 file into the hooks folder. Ran Minecraft and started a new world. Terrafirmacraft crashed and then I installed the shaders from Daxintro and Seus then ran Minecraft again and this is the error I get:
I think the reason the fix is not working for some of you may be the fault of a lack of instruction in my OP. To clarify, this offering does not do anything to your client on it's own, it only modifies DaxNitro's "Nitrous" patcher/Installer so that it patches a larger buffer into your client. I have distributed this way for compatibility's sake. "Nitrous" works very well and is very compatible in that it does not overwrite anything in your client, it simply patches it's content in. If I had done this any other way I would have had to offer many different files for different combinations and versions of "drop-in-.jar" type of mods.
To experience any change, you apply my fix, and then you MUST run the patcher. I will update the OP to reflect this as well.
For those of you that still receive "Already tesselating" after following the above, please try using a single CPU version of OptiFine and if your crash persists, let me know if the log looks the same as before. I believe I made a mistake in my statement that expanding the shader buffer would eliminate the tesellator crash. It was a crash I experienced months ago when first attempting the combination of mods we are working with, I assumed expanding the buffer was what had corrected it. I will do all I can to help correct that problem as well, but I will need your help to track down it's cause since I am not personally experiencing it anymore. Thanks to Dizney23 for sending some very helpful information through a PM.
There is, as Dizney23 posted, it is simply not an official release since DaxNitro seems to have once again disappeared moments after posting the 1.3.1 shader update.
The second file I linked in the OP is, as labeled, for 1.3.2.
I want to make sure I am doing this right. By "applying your fix" you mean unzipping the 1.3.2 file into the directory /com.daxnitro.shaders/contents/hooks
Which for me would mean creating that whole directory structure in my appdata/roaming/.Nitrous/mods folder and then unzipping your file in the hooks folder.
Afterwards I run the installer for 1.3.2 Nitrous shaders. The I run minecraft and viola!! ??
So by a single processor Optifine which one do you mean? Not Ultra?? B2 or B3?
Well after following those instructions and using Optifine 1.3.2 HD B3
this is the error I get:
java.nio.BufferOverflowException
at java.nio.Buffer.nextPutIndex(Unknown Source)
at java.nio.DirectByteBuffer.putShort(Unknown Source)
at ave.a(Tessellator.java)
at ave.a(Tessellator.java:524)
at avg.e(RenderBlocks.java:6907)
at avg.a(RenderBlocks.java:4918)
at avg.q(RenderBlocks.java:4303)
at avg.b(RenderBlocks.java:396)
at aus.a(WorldRenderer.java:282)
at avb.a(RenderGlobal.java:1578)
at auw.a(EntityRenderer.java:1293)
at auw.b(EntityRenderer.java:1043)
at net.minecraft.client.Minecraft.J(Minecraft.java:871)
at net.minecraft.client.Minecraft.run(Minecraft.java:764)
at java.lang.Thread.run(Unknown Source)
--- END ERROR REPORT 6ad4a826 ----------
I want to make sure I am doing this right. By "applying your fix" you mean unzipping the 1.3.2 file into the directory /com.daxnitro.shaders/contents/hooks
Which for me would mean creating that whole directory structure in my appdata/roaming/.Nitrous/mods folder and then unzipping your file in the hooks folder.
Afterwards I run the installer for 1.3.2 Nitrous shaders. The I run minecraft and viola!! ??
So by a single processor Optifine which one do you mean? Not Ultra?? B2 or B3?
By the way thank you SO MUCH for helping us!!
Yes, although the fact that you have to create the structure yourself is probably an issue. Nitrous should have created it during it's first run, if it did not, I doubt anything you put there will be considered. I honestly don't know where to send you at this point. Backup, wipe everything, start fresh, run Nitrous as admin, check some other user folders in case it was somehow generated elsewhere, anything you can think of to get those folders generated and recognized by Nitrous.
By single processor, I mean any version that does not list multi-threading as a feature.
And it's no problem, I am happy to help. I was so frustrated when I first tried to get EBXL and SEUS working together, I tried every combination of every version and every setting. When I finally got fed up, dove into the code, and got a fix together; I just wanted to share it with everyone else who experienced the same frustration.
This is a fix for the 'buffer overflow' and 'Already tesselating' crash that some people are experiencing when running Daxnitro's GLSL Shader mod and Sonic Ether's Unbelieveable Shaders alongside Extra Biomes XL, Trees++, RedPower 2, or any other world gen. mod that introduces too many blocks above ground for SEUS to correctly process shadows with the default sized shader buffer.
Screenshots with SEUS V10, EBXL and RP2, on extreme view distance and with graphics set to fancy:
(Redwood forests)
(RP2 Rubber trees)
Before this fix I was unable to walk around in these areas without setting all graphics to fast and view distance to tiny. And even then I would crash from time to time.
Although my lack of experience with Java and reverse engineering made tracking the problem down a very difficult process, the change is a very small one. Simply increasing the size of the shader buffer (x8) to accommodate shadow processing through a large amount of leaf or other above-ground blocks with alpha-channel textures, prevents the crash entirely.
If you are comfortable with a Java compiler you can make the change yourself. The manual instructions are in the following spoiler tag.
"shadersBuffer = " + GLAllocation + "." + GLAllocation_createDirectByteBuffer + "($1 / 8 * 4);" +
to:
"shadersBuffer = " + GLAllocation + "." + GLAllocation_createDirectByteBuffer + "($1 * 4);" +
Then compile and copy the resulting .class files to %appdata%\Roaming\.Nitrous\mods\com.daxnitro.shaders\contents\hooks.
If you are NOT comfortable with the above, you can download the edited .class files as a .zip with the links below, and copy them to one the following locations:
%appdata%\Roaming\.Nitrous\mods\com.daxnitro.shaders\contents\hooks in your filesystem,
or \contents\hooks in your shader distribution .zip or install location.
I personally placed the files in the first listed location but some other downloaders have had to use the second option for results.
Pre-modified .class files download for 1.2.5 here.
Pre-modified .class files download for 1.3.2 here (for the port floating around forums).
Pre-modified .class files download for 1.4.2 here (for Karyonix's port).
This change is basically telling the GLSL Shader mod to allocate a buffer 8 times larger than the default. After the change has been applied, you MUST run the GLSL Shaders installer again to patch the new size into your client.
If this fix helps you please vote up (click the green arrow in the lower right corner of the post)
And if you would like to , it would be very much appreciated.
To Daxnitro: I didn't think you would mind my posting this since you have publicly given permission to use your source as long as credit was given where it was due. I searched everywhere, posted, and waited over a month for help with the crash before attempting a fix myself. I also waited over a week for a response from you regarding making this fix public. Please let me know if you want it removed.
A thousand thanks to Daxnitro, Sonic Ether, ScottKillen, MisterFiber, Eloraam, Nightshade121, Azure_Harbie, and all the other modders for their restless efforts and wonderful works that turn Minecraft into a totally different game and a joy to play!!
Not really. It's a fix, not a mod, and what it fixes is very specific. It's for a crash that a small group of people experience when combining SEUS with certain world generation mods.
Thank you for your support though
Manual process is the same.
Happy to hear it's working for you, I haven't gotten much feedback here, thanks.
Was your error exactly what I mentioned in the OP? If not, this fix probably won't help you.
Post logs (in spoiler tags or a pastebin please), and I'll take a look.
No, the .class files are binaries that are invoked when running DaxNitro's "Nitrous" patcher. They govern what changes are made to your client. The way I have distributed this fix requires overwriting the original binaries before running the patcher.
Assuming nothing, I suggest you run the patcher once to generate the folder structure in your AppData folder, then type %appdata% in the search field of your start menu and go from there.
I am not aware of any situation that would result in the folder structure not being present afterwards.
Good luck, let me know what happens.
I wolud upload to Meiafire, My Security Program told me it was a virus. (I downlaoded anyway)
If it doesn't, give me details. If it does, please follow your own advice and vote up the OP.
And sorry, but your "Security Program" is wrong
Every time I get near those huge trees
// Quite honestly, I wouldn't worry myself about that.
Time: 9/29/12 4:30 PM
Description: Unexpected error
java.lang.IllegalStateException: Already tesselating!
at ave.b(Tessellator.java:504)
at ave.b(Tessellator.java:494)
at avb.a(RenderGlobal.java:1140)
at auw.a(EntityRenderer.java:1268)
at Shaders.beginRender(Shaders.java:249)
at auw.a(EntityRenderer.java)
at auw.b(EntityRenderer.java:1039)
at net.minecraft.client.Minecraft.J(Minecraft.java:871)
at net.minecraft.client.Minecraft.run(Minecraft.java:764)
at java.lang.Thread.run(Unknown Source)
Not sure what's going on there but it looks like it is happening during cloud rendering. Try disabling clouds and send another crash report if you still can't run.
Clouds off, oh and i'm using HD B3 Ultra
// Daisy, daisy...
Time: 9/30/12 5:13 PM
Description: Unexpected error
java.lang.IllegalStateException: Already tesselating!
at ave.b(Tessellator.java:504)
at avb.a(RenderGlobal.java:1104)
at auw.a(EntityRenderer.java:1268)
at Shaders.beginRender(Shaders.java:249)
at auw.a(EntityRenderer.java)
at auw.b(EntityRenderer.java:1039)
at net.minecraft.client.Minecraft.J(Minecraft.java:871)
at net.minecraft.client.Minecraft.run(Minecraft.java:764)
at java.lang.Thread.run(Unknown Source)
Hmm, I don't know. Your crash is happening in a different place than I would expect. Try disabling weather, try setting different details to fast, try a single cpu version of OptiFine.
You can also try my fix with an even larger value for the buffer size but considering the location of your crash in code, I don't think that will help.
TFCraft-Universal-Core-B2-Build51
Forge-universal-4.1.2.260
MC 1.3.2 - Player API client 1.2\
OptiFine 1.3.2 HD B3
i7-920 12GB RAM
GTX 560TI
WINDOWS 7 64 Home Premium
but my first issue was that I didnt have the "/com.daxnitro.shaders/contents/hooks." So I created those folders and unzipped the 1.3.2 file into the hooks folder. Ran Minecraft and started a new world. Terrafirmacraft crashed and then I installed the shaders from Daxintro and Seus then ran Minecraft again and this is the error I get:
java.lang.IllegalStateException: Already tesselating!
at ave.b(Tessellator.java:504)
at ave.b(Tessellator.java:494)
at avb.c(RenderGlobal.java:1400)
at avb.b(RenderGlobal.java:1251)
at auw.a(EntityRenderer.java:1436)
at Shaders.beginRender(Shaders.java:249)
at auw.a(EntityRenderer.java)
at auw.b(EntityRenderer.java:1043)
at net.minecraft.client.Minecraft.J(Minecraft.java:871)
at net.minecraft.client.Minecraft.run(Minecraft.java:764)
at java.lang.Thread.run(Unknown Source)
--- END ERROR REPORT 23317254 ----------
Hatch your own dragon!new breeds added.I ADVERTISE TOO MUCH I KNOW I KNOW!!
http://www.mediafire.com/?e4jaky2d7ye5hn9
This is a working 1.3.2 shader with Seus v10 RC4
Thank you for your support! If you have not done so already, please vote the OP up.
I think the reason the fix is not working for some of you may be the fault of a lack of instruction in my OP. To clarify, this offering does not do anything to your client on it's own, it only modifies DaxNitro's "Nitrous" patcher/Installer so that it patches a larger buffer into your client. I have distributed this way for compatibility's sake. "Nitrous" works very well and is very compatible in that it does not overwrite anything in your client, it simply patches it's content in. If I had done this any other way I would have had to offer many different files for different combinations and versions of "drop-in-.jar" type of mods.
To experience any change, you apply my fix, and then you MUST run the patcher. I will update the OP to reflect this as well.
For those of you that still receive "Already tesselating" after following the above, please try using a single CPU version of OptiFine and if your crash persists, let me know if the log looks the same as before. I believe I made a mistake in my statement that expanding the shader buffer would eliminate the tesellator crash. It was a crash I experienced months ago when first attempting the combination of mods we are working with, I assumed expanding the buffer was what had corrected it. I will do all I can to help correct that problem as well, but I will need your help to track down it's cause since I am not personally experiencing it anymore. Thanks to Dizney23 for sending some very helpful information through a PM.
There is, as Dizney23 posted, it is simply not an official release since DaxNitro seems to have once again disappeared moments after posting the 1.3.1 shader update.
The second file I linked in the OP is, as labeled, for 1.3.2.
Which for me would mean creating that whole directory structure in my appdata/roaming/.Nitrous/mods folder and then unzipping your file in the hooks folder.
Afterwards I run the installer for 1.3.2 Nitrous shaders. The I run minecraft and viola!! ??
So by a single processor Optifine which one do you mean? Not Ultra?? B2 or B3?
By the way thank you SO MUCH for helping us!!
this is the error I get:
java.nio.BufferOverflowException
at java.nio.Buffer.nextPutIndex(Unknown Source)
at java.nio.DirectByteBuffer.putShort(Unknown Source)
at ave.a(Tessellator.java)
at ave.a(Tessellator.java:524)
at avg.e(RenderBlocks.java:6907)
at avg.a(RenderBlocks.java:4918)
at avg.q(RenderBlocks.java:4303)
at avg.b(RenderBlocks.java:396)
at aus.a(WorldRenderer.java:282)
at avb.a(RenderGlobal.java:1578)
at auw.a(EntityRenderer.java:1293)
at auw.b(EntityRenderer.java:1043)
at net.minecraft.client.Minecraft.J(Minecraft.java:871)
at net.minecraft.client.Minecraft.run(Minecraft.java:764)
at java.lang.Thread.run(Unknown Source)
--- END ERROR REPORT 6ad4a826 ----------
Yes, although the fact that you have to create the structure yourself is probably an issue. Nitrous should have created it during it's first run, if it did not, I doubt anything you put there will be considered. I honestly don't know where to send you at this point. Backup, wipe everything, start fresh, run Nitrous as admin, check some other user folders in case it was somehow generated elsewhere, anything you can think of to get those folders generated and recognized by Nitrous.
By single processor, I mean any version that does not list multi-threading as a feature.
And it's no problem, I am happy to help. I was so frustrated when I first tried to get EBXL and SEUS working together, I tried every combination of every version and every setting. When I finally got fed up, dove into the code, and got a fix together; I just wanted to share it with everyone else who experienced the same frustration.