GTNewHorizons / Angelica

OptiFine replacement for 1.7.10
Other
254 stars 46 forks source link

Support for nested display lists in GLSM #523

Open brandyyn opened 4 months ago

brandyyn commented 4 months ago

Your GTNH Discord Username

brandyyn

Mod Version

angelica-1.0.0-alpha52

Java Version

Java 8

Graphics Card Vendor

NVidia

Bug Report

This is the setup and room where the crash happens, no logistics pipes in site, armourers workshop is here tho image

crash-2024-06-07_23.03.47-client.txt

Mod List or GTNH Pack Version

1.7.10-ASJCore-1.3.0.1.jar AAAAAMysteriumLib-1.4.1.jar ABO-MC1.7.10-BC7.1release4.0.13.jar AM2.5-LTS-1.7\ BE\ FX.jar AcademyCraft-1.0.7.jar ActuallyAdditions-1.7.10-r21.jar Advent\ of\ Ascension.jar AetherBeGone.jar Aether_Legacy_Departure_V1.1_1.7.10.jar Alfheim-54.jar AnimationAPI-1.7.10-1.2.4.jar AppleCore-3.2.12.jar AppleMilkTea2-1.7.10_2.9n.jar ArchitectureCraft-1.8.6.jar Arkif\ -\ Your\ Records\ Mod\ [1.7.10]\ [v0.9.0].jar ArmorOverlay2.0.jar ArmorStatusHUD-client-1.28.jar Armourers-Workshop-1.7.10-0.48.5.jar Artifice-1.7.10-1.1.5R-399.jar AsieLib-1.7.10-0.4.9.jar Astraeus_mercy-1.1.jar Automagy-1.7.10-0.28.2.jar BOIHMXX.jar Back+In+Slime-1.7.10-3.1.6.jar BadMobs-1.0.1-1.7.10.jar BambooMod\ SakuraFix.jar BeamingDrops-1.0.4-clientside.jar BetterBuildersWands-0.11.1-GTNH.jar BetterBurning-1.7.10-0.4.2.jar BetterFoliage-MC1.7.10-2.0.17.jar BetterHorseHud-1.7.10-1.0.jar BetterInvalidSession-1.7.10-1.0.3.jar BetterPing-1.7.10-1.0.jar BetterQuestingX-3.6.7.jar BetterStorage-1.7.10-0.13.1.128.jar BiblioCraft[v1.11.7][MC1.7.10].jar BiblioWoods[BiomesOPlenty][v1.9].jar BiblioWoods[Natura][v1.5].jar BiomesOPlenty-1.7.10-2.1.0.1861.jar Born+in+a+Barn+1.7.x.jar Botania-1.11.3-GTNH.jar BuffedTools-1.1.1710.7.jar BuildCraftOilTweak-1.7.10-1.0.3.jar CanIJoinNow-1.7.10-1.0-3.jar Careful\ Cast\ Corrector-2.0.jar CarpentersBlocks-3.6.1-GTNH.jar CartLivery-1.7.10-0.11.1.jar ChesterMod-1.3.jar ChocoCraftPlus-1.7.10-4.5.9.jar ChromatiCraft+1.7.10+V33a.jar Chronos-1.0.1.2.jar ClaySoldiersMod-1.7.10-2.0.0-beta.2.jar CoFHCore-[1.7.10]3.1.4-329.jar CodeChickenCore-1.2.1.jar ComputerCraft1.75.jar Computronics-1.8.1-GTNH.jar CookingForBlockheads-1.3.4-GTNH.jar CoreTweaks-1.7.10-0.3.3.2-14-g8fcebde+nomixin.jar CosmeticArmorReworked-1.7.10-v7.jar CraftHeraldry1.1.3.jar CraftPresence-2.4.01.7.10XX.jar CraftTweaker-3.3.1.jar CraftingEX_1.7.2-v1.0.5.1.jar CritterPet+1.7.10+V33a.jar Culture\ Craft-1.7.10-PR0.2.jar CustomCursorMod1.2.2-1.7.10.jar CustomNPC-Plus-1.9.2-bruh.jar DMod-1.7.10-1.0.3.5-2-ga19975c.jar DPU-1.7.10-1.2.40.jar DSS_a57.jar DWA_a2.jar DamageIndicatorsX.jar DeadlyWorld-1.7.10-1.0.2.jar DeathCounter-4.0.0.jar DefaultWorldGenerator-1.7.10-0.1-b13-universal.jar DimensionGuard-1.7.10-1.2.2.jar Dimensional\ Doors\ X.jar DivineRPG.jar DoggyStyle-1.1.3.99.jar Doors-4.0.1.jar Dragon's\ Radio\ Mod-MC1.7.10-1.7.1.jar DragonAPI+1.7.10+V33b.jar DragonMounts-r42-1.7.10.jar DummyCore1.12.jar DynamicSurroundings-1.7.10-1.0.6.4.jar DynamicSwordSkills-1.7.10-final.jar ElecCore-1.7.10-1.4.294.jar ElectriCraft+1.7.10+V33a.jar Enchiridion.jar EvilCraft-1.7.10-0.9.13.jar ExRollerCoaster-Mod-1.7.10.jar Exotic\ Birds\ 1.7.10\ -\ 1.0.3b.jar ExpandedRedstone+1.7.10+V33a.jar ExtraTiC-1.7.10-1.4.6.jar FamiliarsAPI-1.7.10.jar FamiliarsDefaultMobPack-1.7.10.jar FamiliarsExtendedFamPack-1.7.10.jar FancyGrass-MC1.7.10-1.0.0.jar Flamingo-1.7.10-1.3.jar Flans_Mod_Ultimate_Stability_Edition-1.57rc_2.jar FlatSigns-1.7.10-universal-2.1.0.19.jar FloodLights-1.7.10-1.2.8-137.jar FoamFix-1.7.10-universal-1.0.4.jar Forbidden_Magic-1.7.10-0.575-gtnh-2.jar Forestry-4.9.3.jar ForgottenRelics-1.7.10-1.7.4.jar FoxLib-1.7.10-0.7.0.jar FriendlyFire-1.7.10-1.0.0.jar FullscreenWindowed-1.7.10-1.3.0b.jar GardenStuff-1.7.10-1.7.0.jar Generatormods-0.1.9(1.7.10).jar GlibysVC-1.7.10-0.6.2a.jar Goki-Stats-Mod-1.7.2-noplayerapicheck.jar Golem+Tweaks-1.0.jar GraveStone.jar Grimoire-Of-Alice-1.7.10-4.0.0.jar GrimoireOfGaia3-1.7.10-1.2.7.jar HBM-NTM-.1.0.27_X4977.jar HEXCraft-1.7.10-0.13.2.jar HalogenLight-1.7.10_1.1.jar HardcoreDarkness-MC1.7.10-1.7.jar HardcoreEnderExpansion-NO-GIT-TAG-SET.jar HatStand-4.0.0.jar Hats-4.0.1.jar HealingAltar-1.2.1.jar Heart\ Crystal\ by\ NukeDuck\ [1.7.10][1.1.1].jar HelpFixer-1.2.0.jar Heraldy\ Companion[1.7.10].jar HexxitGear-1.7.10-4.0a.jar HookShotMOD_1710_2.jar Hostile\ Mobs\ and\ Girls-mc1.7.10-1.0.2.jar HungerOverhaul-1.7.10-1.0.4-GTNH.jar IC2Classic-1.7.10-1.2.5.jar IC2NuclearControl-2.6.2.jar INpureCore-1.1.5-GTNH.jar IamacatHUDV0.4.jar IguanaTweaks-1.7.10-2B.jar IguanaTweaksTConstruct-1.7.10-2.2.2.jar ImmersiveEngineering-0.7.7.jar ImprovingMinecraft-1.12.3forMinecraft1.7.10.jar InputFix-1.7.10-v6.jar Invasion-1.7.10-1.2.0.jar IronChest-6.0.75.jar IronChestMinecarts-1.0.4.jar ItemBlacklist-1.7.10-1.2.0.8.jar IvToolkit-1.2.1.jar JABBA-1.12.1-GTNH-master+c5d7770253-dirty.jar JAFFA-1.91.56.jar Jewelrycraft2.jar Ladders-0.5.0-MC1.7.10.jar LambdaLib-1.2.3.jar LampsAndTrafficlights-1.2-Minecraft_1.7.10.jar LevelUp!-0.10(1.7.10).jar Light\ Bridges\ and\ Doors\ V\ 2.0.zip Login_Shield-1.7.10-2-gf6e21a7.jar LootGames-1.7.10-2.0.1.jar LootPlusPlus-0.24_for_1.7.jar LumySkinPatch-1.0.12.jar MCA-1.7.10-5.2.2-universal.jar MFR_API.jar MagTools-1.7.10-1.0.8.jar MagicCookies-1.0.7.1.1.jar MagicalDecorations-0.3.5.jar Mantle-0.4.1.jar Mariculture-Deluxe-1.7.10-1.2.4.2a-5.jar MatterOverdrive-1.7.10-0.4.5.jar Mekanism-Community-Edition-1.7.10-9.10.35-Core.jar Mekanism-Community-Edition-1.7.10-9.10.35-Tools.jar MillenaireX1.jar MineChess-1.3.10.jar MineTweakerRecipeMaker-1.7.10-1.1.1.jar MiscTweaks-1.7.10-1.0.3.jar MmmMmmMmmMmm-1.7.10-1.9.jar MoCreatures-Legacy-Final-1.1.jar ModTweaker2-0.11.0.jar ModelCitizens-mc1.7.10-1.0.1.jar MoreBows-1.0.2.jar MoreEnchantments-1.7.10-1.3.2.1.jar MorePistons-1.7.10-1.5.2.0.jar Morpheus-1.7.10-1.6.21.jar MouseTweaks-2.4.8-GTNH.jar MrCrayfishFurnitureModv3.4.7(1.7.10).jar MusicCraftXX.jar MutantCreatures-1.7.10-1.4.9.jar NEIAddons-1.15.0.jar NEIIntegration-1.3.2.jar NMA-1.7.10-1.1.jar NVFix-1.7.10-0.1.1b6.jar Natura-2.6.3.jar NaturalAbsorption-1.2.1.1.jar NetheritePlus_1.7.10_Beta0.9.jar Netherless-0.9.0.jar NoMobSpawningOnTrees-1.2.0-mc1.7.10.jar NoMoreRecipeConflict-1.7.10-0.3.2.jar NotEnoughEnergistics-1.7.10-1.4.2.jar NotEnoughItems-2.6.1-GTNH.jar NotEnoughPets-1.7.10-2.3.6.jar Notes-1.7.10-1.1.1.jar NovaCraft\ V1.3.4\ (1.7.10).jar OffhandLights-1.3.jar OnlinePicFrame+v1.0+mc1.7.10.jar OpenBlocks-1.9.1-GTNH.jar OpenComputers-1.10.11-GTNH.jar OpenGlasses-1.3.1-GTNH.jar OpenModsLibs-1.7.10-0.10.6.jar OpenPeripheral-1.7.10-AIO-8.jar OpenSecurity OpenSecurity-1.7.10-1.0-117.jar PPP Pam's\ Temperate\ Plants\ 1.7.2b.zip Pam's\ WeeeFlowers\ 1.7.2b.zip PassthroughSigns-1.7.10-1.0.1.B3-universal.jar PetBat-1.7.10.jar PhaseBlocks-4.1.0.jar Pistronics2-v0.6.4.jar PlaceableGunpowder-1.1.jar Plant-Mega-Pack-Mod-1.7.10.jar PlayerAPI-1.7.10-1.4-3-g82389a8.jar PneumaticCraft-1.7.10-1.12.7-152-universal.jar Practical-Logistics-1.7.10-0.2.4.jar ProjRed-4.10.0-GTNH.jar ProjectBlue-1.7.10-1.1.7-GTNH.jar Psychedelicraft-1.5.2.jar QuiverBow_1.7.10_b101d.zip QuiverMob_1.7.10_b14.zip RPGAdvMod-1.0.0_1.7.10.jar RPGInventoryXX.jar RadixCore-1.7.10-2.1.3-universal.jar Railcraft_1.7.10-9.12.2.1.jar RandomThings-2.5.3.jar ReAuth-1.7.10-Forge-4.0.7.jar RealBench-1.2.0.jar RecurrentComplex-0.9.7.1.2_Unoffical.jar RedstonePasteMod-1.7.10-1.6.2.jar Reika Reliquary-1.2.jar ResistanceX-1.0.jar ResourceLoader-MC1.7.10-1.3.jar ResourcePackOrganizer\ \ MC-1.7.10\ \ v1.0.2.jar RopeBridge-v1.3-mc1.7.10.jar RotaryCraft+1.7.10+V33a.jar SAPManPack.jar SGCraft-1.4.4-GTNH.jar SalandaarsOrb-1.7.2-1.0.jar Satchels-1.7.10-1.0.7.jar Satisforestry+1.7.10+V33a.jar SecurityCraft.v1.8.15.jar SereneSeasons-1.7.10-1.3.1.jar ServerUtilities-2.0.42.jar SignPicture-1.7.10-2.8.0-universal.jar SkinPort-1.7.10-v10d.jar SlugsDamageTweaks-0.9.jar SmartMoving-1.7.10-15.7-maka-18-g7a9291a.jar SmartRender-1.7.10-2.1.jar SoManyEnchantmentsFinal(1.7.10)+V0.3.0.jar SonarCore-1.7.10-1.1.3.jar SpecialArmor-1.7.10.jar SpiceOfLife-mc1.7.10-1.3.11.jar Starminer1710-0.9.9.jar StartingInventory-universal-1.7.10.r03.jar StatusEffectHUD-client-1.27.jar SuperEnchants-0.5.jar TCBotaniaExoflame-1.7.10-1.4.jar TConstruct-1.12.1-GTNH-master+c5d7770253-dirty.jar TMechworks-1.7.10-0.2.16.3.jar Tails-1.7.10-1.4.1a.jar Tainted-Magic-1.7.10-8.1.1.jar TallDoors-1.7.10-0.5.2.jar TeaAndBiscuits-1.7.10-1.3.jar TeamUp-1.1.3-1.7.10.jar Techguns-1.2.2.jar TerraArts-1.1.1710.27.jar Thaumcraft-1.7.10-4.2.3.5.jar Thaumcraft4Tweaks-1.5.23.jar ThaumcraftMobAspects-1.7.10-1.0.0-GTNH.jar Thaumic-Based-1.6.7.jar Thaumic-Dyes-.1.7.10.1.10.6-0.jar Thaumic-Exploration-1.2.4-GTNH.jar Thaumic-Utilities-.1.7.10.0.3.12-0.jar ThaumicHorizons-1.6.1.jar ThaumicTinkerer-2.9.4.jar TheKitchenMod-1.3.23-1.7.2-10.jar ThermalFoundation-[1.7.10]1.2.6-118.jar TiCTooltips-1.7.10-1.2.9.jar TipTheScales-1.7.10-3.0.0.2.jar ToggleBlocks-1.2.2-1.7.10.jar TorchLevers-V1.4.2-MC1.7.10.jar Totemic-1.7.10-0.6.2.jar TragicMC-V2.57.jar Trashslot.jar TravellersGear-1.7.10-1.16.6.jar TreeClimbing+1.7.10+V33a.jar TrueInvisibility-0.3.0-1.7.10.jar TwilightForest-2.6.9.jar UtilityMobs-1.7.10-3.1.1.jar VillageNames-1.7.10-4.4.10a.jar Vocation.jar WAILAPlugins-1.7.10-0.2.5.jar Waila-1.7.3.jar WailaAddonBC-1.0.5.1.jar WailaHarvestability-1.7.10-1.1.10-GTNH.jar WarpDrive-1.7.10-1.4.2.-.jar WarpTheory-1.3.7-GTNH.jar Waterproof\ 1.0-1.jar Wawla-1.3.0-GTNH.jar Waystones_Jawsawn_Fork-mc1.7.10-1.0.0.jar WildCaves3-0.4.3.7(1.7.10).jar WildMobsModX.jar WitcheryExtras-1.2.2.jar WitchingGadgets-1.7.10-1.1.10.jar WorldDrop_1.7.10_b10.zip WorldTooltips.jar XaerosWorldMap_1.14.1.31_Forge_1.7.10.jar Xaeros_Minimap_21.10.41_Forge_1.7.10.jar YAMCore-0.5.86.jar YeGamolChattels-1.1.2.jar ZeldaXX.jar Zoocraft\ Discoveries\ 1.7.10-1.1.0.jar Ztones-2.3.1-GTNH.jar ae2fc-1.3.2-gtnh.jar aether-1.7.10-1.6.jar angelicaX.jar appliedenergistics2-rv3-beta-404-GTNH.jar arcane_engineering-0.2.7.jar archaicfix-0.7.1.jar archimedesshipsplus-1.7.10-1.8.1.jar atomicscience-master-packages-master.12588a081ea.jar basiccomponents-2.0.1.jar battlegear2-1.3.7.jar baubletweaks-master-packages-master.9b740127e21.jar beebetteratbees-0.4.0-GTNH.jar betterbeginnings-MC1.7.10-b0.9.6-R2a.jar betterloadingscreen-1.6.1-GTNH.jar biggerpacketsplz-upto1.7.10-1.2.jar binnie-mods-2.4.0.jar blahaj-1.0.jar bugtorch-1.2.13.jar buildcraft-7.1.39.jar buildcraft-compat-7.1.17.jar campfirebackport-1.7.10-1.10.1.jar carpentersblocks catwalks-1.7.10-2.1.3-GTNH.jar chisel-2.15.0-GTNH.jar chocolateQuest-1.7.10-1.1d.jar chunkapi-mc1.7.10-0.5.1.jar companions-1.2.jar config-backuper-forge-1.7.10-1.0.1.jar controlling-2.0.2.jar creativecore-1.3.31-GTNH.jar customitems-1.0.10_alpha_1.7.10.jar custommainmenu-1.11.2-fix-j17.1b5a59858c2-dirty.jar deepresonance-1.1.4.jar denseores-1.6.2.jar doorsoplenty-1.0.jar dropoff-1.7.10-2.8.14.jar editmobdrops-1.7.10-1.4.4.jar egg-particle-fix-1.0.jar enchvil-1.7.2-V1.1.jar endercore-0.3.1.jar endlessids-mc1.7.10-1.5.0.jar entityculling-1.6.3-mc1.7.10.jar extendedsupport-1.1.0.jar extrautilities-1.2.13a.jar fairylights-0.6-1.7.10.jar falsepatternlib-mc1.7.10-1.2.4.jar fastlang-1.0.jar findit-1.1.0.jar forgelin-1.10.0-GTNH.jar fossilsarcheology-7.3.2.jar gadomancy-1.3.2.jar generatormods gilded-games-util-1.7.10-2.0.jar growthcraft-1.7.10-2.7.3-complete.jar gtnhlib-0.2.11.jar harvestcraft-1.1.1-GTNH.jar hodgepodge-2.5.10.jar holoinventory-2.4.9-GTNH.jar horizontalglasspanes-1.7.10-1.1.0.4-universal.jar iChunUtil-4.2.3.jar ic2 icbm-master-packages-master.536907dd5a2.jar inventorytweaks-1.6.2.jar itlt-1.7.x-1.0.3.jar kingdomregions-5.6.jar legacyfixes-1.2.0.jar legendgear-1.7.10-2.b.2.1.jar littletiles-1.2.9-GTNH.jar llibrary-1.5.1-1.7.10.jar logisticspipes-1.2.10-GTNH.jar malisisdoors-1.16.4-GTNH.jar mcjtylib-1.8.1.jar megaping-mc1.7.10-1.2.4-mega.jar mffs-1.0.8.jar millenaire millenaire-custom movingworld-1.7.10-1.8.1.jar namepain-1.5.1\ forge-1.7.10.jar naturescompass-1.4.0-GTNH-master.421bc62e882.jar nechar-1.7.10-1.5.3-GTNH.jar netherlicious-3.2.8.jar paniclecraft-1.7.10-2.7.2.0.jar playertweaks-1.0.jar qCraft-1.7.10-1.2.2.jar railcraft secretroomsmod-1.7.10-4.7.1.413.jar serializationisbad-1.5.2.jar signpost-1.7.10-1.08.4.jar smallboats-1.7.10-10.13.0-16.1.jar spark-1.10.19-forge1710.jar sprinklesforvanilla-1.7.10-1.6.0.jar ssmlegacy-mc1.7.10-1.2.3.jar statues-1.7.10-2.1.4.jar statuesmodfix-1.0b.jar stepassistcontrol-mc1.7.10-1.0.1.jar symcalc-0.14.jar tcinventoryscan-1.1.4-GTNH.jar tcneiadditions-1.3.4.jar tcnodetracker-1.7.10-1.1.5.jar terracart-1.7.10-2.jar thaumcraftneiplugin-1.7.10-1.7a.jar thaumicSanity-1.0-1.7.10-9.jar thaumicboots-1.3.4.jar thaumicmixins-1.2.0.jar torchkey-mc1.7.10-1.0.1.jar tpv-1.7.10-0.0.2.00.jar travellersgearneo-1.0.jar underphangables-1.7.10-1.0.1.jar universalelectricity-master-packages-master.22bce8ab119.jar vineclimber-3.0.0.jar wallpaper-0.9-1.7.10.jar weaponmaster_ydm-forge-1.7.10-4.2.4.jar weaponmod-1.14.3.jar witchery-1.7.10-0.24.1.jar wolfarmor-1.3.0.1.jar worldprimer-1.7.10-0.4.0.jar

Final Checklist

Cleptomania commented 4 days ago

I actually got to the bottom of this.

So the problem specifically is rendering the item in a buildcraft pipe. Buildcraft does the item rendering within an OpenGL display list, and then armourer's workshop happens to render that item using other display lists, so you get nested display lists going on.

It would seem that Angelica's GLSM implementation does not allow nesting display lists, however this is actually valid OpenGL behavior, so technically this is a bug with GLSM in Angelica, as to be compliant with OpenGL spec it would need to support nested display lists. That is going to be pretty complicated to implement, the display list tracking in GLSM was already complicated enough, but we probably should fix that.

brandyyn commented 3 days ago

I actually got to the bottom of this.

So the problem specifically is rendering the item in a buildcraft pipe. Buildcraft does the item rendering within an OpenGL display list, and then armourer's workshop happens to render that item using other display lists, so you get nested display lists going on.

It would seem that Angelica's GLSM implementation does not allow nesting display lists, however this is actually valid OpenGL behavior, so technically this is a bug with GLSM in Angelica, as to be compliant with OpenGL spec it would need to support nested display lists. That is going to be pretty complicated to implement, the display list tracking in GLSM was already complicated enough, but we probably should fix that.

I mean personally I’m happy if it just displayed a coloured box or a white box or something like that for the armourer’s workshop items inside of the pipe