From 1a3cccbf9389cd92f365eb42c6b54053bb69dd4e Mon Sep 17 00:00:00 2001 From: 404Setup <153366651+404Setup@users.noreply.github.com> Date: Tue, 6 Aug 2024 17:31:11 +0800 Subject: [PATCH] Updated Upstream (Luminol) Upstream has released updates that appear to apply and compile correctly Luminol Changes: LuminolMC/Luminol@58d45e3 Fix java CP LuminolMC/Luminol@2e52016 Correct wrong name "SMID" to SIMD LuminolMC/Luminol@d0d9ce0 Correct java version checks in SIMD optimization LuminolMC/Luminol@14de6bf Correct wrong name "SMID" to SIMD --- gradle.properties | 2 +- .../0001-Pufferfish-Add-SIMD-utilities.patch | 115 ------------------ ...1-Purpur-Lobotomize-stuck-villagers.patch} | 0 ...ch => 0002-Graphite-Player-Skin-API.patch} | 0 ...{0004-Rebrand.patch => 0003-Rebrand.patch} | 0 patches/server/0001-Fix-build.patch | 6 +- patches/server/0003-LevelBukkit-Config.patch | 24 +--- ...0013-Carpet-Fixes-getBiome-Optimize.patch} | 0 .../0013-Pufferfish-Add-SIMD-utilities.patch | 24 ---- ...-dirty-stats-copy-when-requesting-p.patch} | 0 ...concurrency-issues-when-using-image.patch} | 0 ...6-Purpur-Lobotomize-stuck-villagers.patch} | 0 ...ed-server-showing-in-ping-before-se.patch} | 0 ...-to-moisten-from-water-directly-und.patch} | 0 ...ves-Cache-world-generator-sea-level.patch} | 0 ...dom-flatten-triangular-distribution.patch} | 0 ...cked-hopper-no-longer-send-NC-updat.patch} | 0 ...patch => 0022-Leaves-Vanilla-hopper.patch} | 0 ...3-Plazma-Optimise-state-lookup-more.patch} | 0 ...h => 0024-Plazma-Lithium-HashedList.patch} | 0 ...xperimental-Disable-respawn-ceiling.patch} | 0 ...-which-zone-has-which-players-in-tp.patch} | 0 ...ch => 0027-Graphite-Player-Skin-API.patch} | 0 ...0028-The-anvil-becomes-a-drop-at-Y0.patch} | 2 +- ...lice-Improve-map-saving-performance.patch} | 0 25 files changed, 7 insertions(+), 166 deletions(-) delete mode 100644 patches/api/0001-Pufferfish-Add-SIMD-utilities.patch rename patches/api/{0002-Purpur-Lobotomize-stuck-villagers.patch => 0001-Purpur-Lobotomize-stuck-villagers.patch} (100%) rename patches/api/{0003-Graphite-Player-Skin-API.patch => 0002-Graphite-Player-Skin-API.patch} (100%) rename patches/api/{0004-Rebrand.patch => 0003-Rebrand.patch} (100%) rename patches/server/{0014-Carpet-Fixes-getBiome-Optimize.patch => 0013-Carpet-Fixes-getBiome-Optimize.patch} (100%) delete mode 100644 patches/server/0013-Pufferfish-Add-SIMD-utilities.patch rename patches/server/{0015-SparklyPaper-Skip-dirty-stats-copy-when-requesting-p.patch => 0014-SparklyPaper-Skip-dirty-stats-copy-when-requesting-p.patch} (100%) rename patches/server/{0016-SparklyPaper-Fix-concurrency-issues-when-using-image.patch => 0015-SparklyPaper-Fix-concurrency-issues-when-using-image.patch} (100%) rename patches/server/{0017-Purpur-Lobotomize-stuck-villagers.patch => 0016-Purpur-Lobotomize-stuck-villagers.patch} (100%) rename patches/server/{0018-Purpur-Fix-outdated-server-showing-in-ping-before-se.patch => 0017-Purpur-Fix-outdated-server-showing-in-ping-before-se.patch} (100%) rename patches/server/{0019-Purpur-Allow-soil-to-moisten-from-water-directly-und.patch => 0018-Purpur-Allow-soil-to-moisten-from-water-directly-und.patch} (100%) rename patches/server/{0020-Leaves-Cache-world-generator-sea-level.patch => 0019-Leaves-Cache-world-generator-sea-level.patch} (100%) rename patches/server/{0021-Leaves-Random-flatten-triangular-distribution.patch => 0020-Leaves-Random-flatten-triangular-distribution.patch} (100%) rename patches/server/{0022-Leaves-Placing-locked-hopper-no-longer-send-NC-updat.patch => 0021-Leaves-Placing-locked-hopper-no-longer-send-NC-updat.patch} (100%) rename patches/server/{0023-Leaves-Vanilla-hopper.patch => 0022-Leaves-Vanilla-hopper.patch} (100%) rename patches/server/{0024-Plazma-Optimise-state-lookup-more.patch => 0023-Plazma-Optimise-state-lookup-more.patch} (100%) rename patches/server/{0025-Plazma-Lithium-HashedList.patch => 0024-Plazma-Lithium-HashedList.patch} (100%) rename patches/server/{0026-Experimental-Disable-respawn-ceiling.patch => 0025-Experimental-Disable-respawn-ceiling.patch} (100%) rename patches/server/{0027-Experimental-Show-which-zone-has-which-players-in-tp.patch => 0026-Experimental-Show-which-zone-has-which-players-in-tp.patch} (100%) rename patches/server/{0028-Graphite-Player-Skin-API.patch => 0027-Graphite-Player-Skin-API.patch} (100%) rename patches/server/{0029-The-anvil-becomes-a-drop-at-Y0.patch => 0028-The-anvil-becomes-a-drop-at-Y0.patch} (98%) rename patches/server/{0030-Slice-Improve-map-saving-performance.patch => 0029-Slice-Improve-map-saving-performance.patch} (100%) diff --git a/gradle.properties b/gradle.properties index 2dd4902..46b9d06 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ group = one.tranic.bukkit version = 1.21-R0.1-SNAPSHOT -luminolCommit = 892dfcd2a00a9034bb0f9cc4f7017afe8edf9c2a +luminolCommit = 14de6bf8c791512d426905ea5ea42a9abb924724 org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/api/0001-Pufferfish-Add-SIMD-utilities.patch b/patches/api/0001-Pufferfish-Add-SIMD-utilities.patch deleted file mode 100644 index 4617b10..0000000 --- a/patches/api/0001-Pufferfish-Add-SIMD-utilities.patch +++ /dev/null @@ -1,115 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: 404Setup <153366651+404Setup@users.noreply.github.com> -Date: Fri, 31 May 2024 11:16:22 +0800 -Subject: [PATCH] Pufferfish: Add SIMD utilities - -The utilities added in this patch are not intended to be used by plugins -and API spec stability is NOT guaranteed. If you use this in plugins, -they WILL break eventually. - -diff --git a/build.gradle.kts b/build.gradle.kts -index fd39ed209b20c927054b8482c400beeeeab460a3..82616696e5b6a5eddd8411d3375968bdae15d750 100644 ---- a/build.gradle.kts -+++ b/build.gradle.kts -@@ -130,6 +130,13 @@ val generateApiVersioningFile by tasks.registering { - } - } - -+// Pufferfish Start -+tasks.withType { -+ val compilerArgs = options.compilerArgs -+ compilerArgs.add("--add-modules=jdk.incubator.vector") -+} -+// Pufferfish End -+ - tasks.jar { - from(generateApiVersioningFile.map { it.outputs.files.singleFile }) { - into("META-INF/maven/${project.group}/${project.name}") -diff --git a/src/main/java/gg/pufferfish/pufferfish/simd/SIMDChecker.java b/src/main/java/gg/pufferfish/pufferfish/simd/SIMDChecker.java -new file mode 100644 -index 0000000000000000000000000000000000000000..993b009e1966a1422142e8506dfa00543c542cfa ---- /dev/null -+++ b/src/main/java/gg/pufferfish/pufferfish/simd/SIMDChecker.java -@@ -0,0 +1,39 @@ -+package gg.pufferfish.pufferfish.simd; -+ -+import org.slf4j.Logger; -+import jdk.incubator.vector.FloatVector; -+import jdk.incubator.vector.IntVector; -+import jdk.incubator.vector.VectorSpecies; -+ -+/** -+ * Basically, java is annoying and we have to push this out to its own class. -+ */ -+@Deprecated -+public class SIMDChecker { -+ -+ @Deprecated -+ public static boolean canEnable(Logger logger) { -+ try { -+ if (SIMDDetection.getJavaVersion() < 17) { -+ return false; -+ } else { -+ SIMDDetection.testRun = true; -+ -+ VectorSpecies ISPEC = IntVector.SPECIES_PREFERRED; -+ VectorSpecies FSPEC = FloatVector.SPECIES_PREFERRED; -+ -+ logger.info("Max SIMD vector size on this system is {} bits (int)", ISPEC.vectorBitSize()); -+ logger.info("Max SIMD vector size on this system is {} bits (float)", FSPEC.vectorBitSize()); -+ -+ if (ISPEC.elementSize() < 2 || FSPEC.elementSize() < 2) { -+ logger.warn("SIMD is not properly supported on this system!"); -+ return false; -+ } -+ -+ return true; -+ } -+ } catch (NoClassDefFoundError | Exception ignored) {} // Basically, we don't do anything. This lets us detect if it's not functional and disable it. -+ return false; -+ } -+ -+} -\ No newline at end of file -diff --git a/src/main/java/gg/pufferfish/pufferfish/simd/SIMDDetection.java b/src/main/java/gg/pufferfish/pufferfish/simd/SIMDDetection.java -new file mode 100644 -index 0000000000000000000000000000000000000000..817929d14867eddbda65f9af4c62ce7b77549fbc ---- /dev/null -+++ b/src/main/java/gg/pufferfish/pufferfish/simd/SIMDDetection.java -@@ -0,0 +1,35 @@ -+package gg.pufferfish.pufferfish.simd; -+ -+import org.slf4j.Logger; -+ -+@Deprecated -+public class SIMDDetection { -+ -+ public static boolean isEnabled = false; -+ public static boolean versionLimited = false; -+ public static boolean testRun = false; -+ -+ @Deprecated -+ public static boolean canEnable(Logger logger) { -+ try { -+ return SIMDChecker.canEnable(logger); -+ } catch (NoClassDefFoundError | Exception ignored) { -+ return false; -+ } -+ } -+ -+ @Deprecated -+ public static int getJavaVersion() { -+ // https://stackoverflow.com/a/2591122 -+ String version = System.getProperty("java.version"); -+ if(version.startsWith("1.")) { -+ version = version.substring(2, 3); -+ } else { -+ int dot = version.indexOf("."); -+ if(dot != -1) { version = version.substring(0, dot); } -+ } -+ version = version.split("-")[0]; // Azul is stupid -+ return Integer.parseInt(version); -+ } -+ -+} -\ No newline at end of file diff --git a/patches/api/0002-Purpur-Lobotomize-stuck-villagers.patch b/patches/api/0001-Purpur-Lobotomize-stuck-villagers.patch similarity index 100% rename from patches/api/0002-Purpur-Lobotomize-stuck-villagers.patch rename to patches/api/0001-Purpur-Lobotomize-stuck-villagers.patch diff --git a/patches/api/0003-Graphite-Player-Skin-API.patch b/patches/api/0002-Graphite-Player-Skin-API.patch similarity index 100% rename from patches/api/0003-Graphite-Player-Skin-API.patch rename to patches/api/0002-Graphite-Player-Skin-API.patch diff --git a/patches/api/0004-Rebrand.patch b/patches/api/0003-Rebrand.patch similarity index 100% rename from patches/api/0004-Rebrand.patch rename to patches/api/0003-Rebrand.patch diff --git a/patches/server/0001-Fix-build.patch b/patches/server/0001-Fix-build.patch index 32544a0..b8a4dbc 100644 --- a/patches/server/0001-Fix-build.patch +++ b/patches/server/0001-Fix-build.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix-build and add kotlin support diff --git a/build.gradle.kts b/build.gradle.kts -index c2d3d699edfd60d773af96116c5663c812c691e9..524404ce77a6f48f35bd618b020db6bb9ad0587d 100644 +index 1049681dfa7e48b4b6c29f4b1a09c689ac918500..fdaac794f89cb18fc63105082aa53047f777a14d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,6 +4,9 @@ import java.time.Instant @@ -43,7 +43,7 @@ index c2d3d699edfd60d773af96116c5663c812c691e9..524404ce77a6f48f35bd618b020db6bb } paperweight { -@@ -89,14 +100,14 @@ tasks.jar { +@@ -97,14 +108,14 @@ tasks.jar { val gitBranch = git("rev-parse", "--abbrev-ref", "HEAD").getText().trim() // Paper attributes( "Main-Class" to "org.bukkit.craftbukkit.Main", @@ -63,7 +63,7 @@ index c2d3d699edfd60d773af96116c5663c812c691e9..524404ce77a6f48f35bd618b020db6bb "Build-Number" to (build ?: ""), "Build-Time" to Instant.now().toString(), "Git-Branch" to gitBranch, // Paper -@@ -109,6 +120,17 @@ tasks.jar { +@@ -117,6 +128,17 @@ tasks.jar { } } diff --git a/patches/server/0003-LevelBukkit-Config.patch b/patches/server/0003-LevelBukkit-Config.patch index f7a8f3c..94f5632 100644 --- a/patches/server/0003-LevelBukkit-Config.patch +++ b/patches/server/0003-LevelBukkit-Config.patch @@ -88,13 +88,12 @@ index 0000000000000000000000000000000000000000..5ca0b7470839835e526e9681b2396a70 \ No newline at end of file diff --git a/src/main/kotlin/one/tranic/bukkit/config/LevelBukkitConfig.kt b/src/main/kotlin/one/tranic/bukkit/config/LevelBukkitConfig.kt new file mode 100644 -index 0000000000000000000000000000000000000000..40568ec05743462686878e63abe039ee864b7a85 +index 0000000000000000000000000000000000000000..9aa435caf682705e79c6dbe17aa26e187e01e2a2 --- /dev/null +++ b/src/main/kotlin/one/tranic/bukkit/config/LevelBukkitConfig.kt -@@ -0,0 +1,265 @@ +@@ -0,0 +1,245 @@ +package one.tranic.bukkit.config + -+import gg.pufferfish.pufferfish.simd.SIMDDetection +import net.minecraft.server.MinecraftServer +import one.tranic.bukkit.commands.ConfigCommand +import org.bukkit.Bukkit @@ -115,25 +114,6 @@ index 0000000000000000000000000000000000000000..40568ec05743462686878e63abe039ee + fun load() { + reload() + reload() -+ // Pufferfish start -+ // Attempt to detect vectorization -+ runCatching { -+ SIMDDetection.isEnabled = SIMDDetection.canEnable(logger) -+ SIMDDetection.versionLimited = SIMDDetection.getJavaVersion() < 17 -+ }.getOrElse { -+ it.printStackTrace() -+ } -+ -+ if (SIMDDetection.isEnabled) { -+ logger.info("SIMD operations detected as functional. Will replace some operations with faster versions.") -+ } else if (SIMDDetection.versionLimited) { -+ logger.warn("Will not enable SIMD! These optimizations are only safely supported on Java 17+.") -+ } else { -+ logger.warn("SIMD operations are available for your server, but are not configured!") -+ logger.warn("To enable additional optimizations, add \"--add-modules=jdk.incubator.vector\" to your startup flags, BEFORE the \"-jar\".") -+ logger.warn("If you have already added this flag, then SIMD operations are not supported on your JVM or CPU.") -+ logger.warn("Debug: Java: " + System.getProperty("java.version") + ", test run: " + SIMDDetection.testRun) -+ } + } + + private fun addDefault(configFile: File) { diff --git a/patches/server/0014-Carpet-Fixes-getBiome-Optimize.patch b/patches/server/0013-Carpet-Fixes-getBiome-Optimize.patch similarity index 100% rename from patches/server/0014-Carpet-Fixes-getBiome-Optimize.patch rename to patches/server/0013-Carpet-Fixes-getBiome-Optimize.patch diff --git a/patches/server/0013-Pufferfish-Add-SIMD-utilities.patch b/patches/server/0013-Pufferfish-Add-SIMD-utilities.patch deleted file mode 100644 index 07e665b..0000000 --- a/patches/server/0013-Pufferfish-Add-SIMD-utilities.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: 404Setup <153366651+404Setup@users.noreply.github.com> -Date: Fri, 31 May 2024 11:24:45 +0800 -Subject: [PATCH] Pufferfish: Add SIMD utilities - - -diff --git a/build.gradle.kts b/build.gradle.kts -index 524404ce77a6f48f35bd618b020db6bb9ad0587d..400df8ed4038cfc663efd711d403daafb17021a6 100644 ---- a/build.gradle.kts -+++ b/build.gradle.kts -@@ -87,6 +87,13 @@ paperweight { - craftBukkitPackageVersion.set("v1_21_R1") // also needs to be updated in MappingEnvironment - } - -+// Pufferfish Start -+tasks.withType { -+ val compilerArgs = options.compilerArgs -+ compilerArgs.add("--add-modules=jdk.incubator.vector") -+} -+// Pufferfish End -+ - tasks.jar { - archiveClassifier.set("dev") - diff --git a/patches/server/0015-SparklyPaper-Skip-dirty-stats-copy-when-requesting-p.patch b/patches/server/0014-SparklyPaper-Skip-dirty-stats-copy-when-requesting-p.patch similarity index 100% rename from patches/server/0015-SparklyPaper-Skip-dirty-stats-copy-when-requesting-p.patch rename to patches/server/0014-SparklyPaper-Skip-dirty-stats-copy-when-requesting-p.patch diff --git a/patches/server/0016-SparklyPaper-Fix-concurrency-issues-when-using-image.patch b/patches/server/0015-SparklyPaper-Fix-concurrency-issues-when-using-image.patch similarity index 100% rename from patches/server/0016-SparklyPaper-Fix-concurrency-issues-when-using-image.patch rename to patches/server/0015-SparklyPaper-Fix-concurrency-issues-when-using-image.patch diff --git a/patches/server/0017-Purpur-Lobotomize-stuck-villagers.patch b/patches/server/0016-Purpur-Lobotomize-stuck-villagers.patch similarity index 100% rename from patches/server/0017-Purpur-Lobotomize-stuck-villagers.patch rename to patches/server/0016-Purpur-Lobotomize-stuck-villagers.patch diff --git a/patches/server/0018-Purpur-Fix-outdated-server-showing-in-ping-before-se.patch b/patches/server/0017-Purpur-Fix-outdated-server-showing-in-ping-before-se.patch similarity index 100% rename from patches/server/0018-Purpur-Fix-outdated-server-showing-in-ping-before-se.patch rename to patches/server/0017-Purpur-Fix-outdated-server-showing-in-ping-before-se.patch diff --git a/patches/server/0019-Purpur-Allow-soil-to-moisten-from-water-directly-und.patch b/patches/server/0018-Purpur-Allow-soil-to-moisten-from-water-directly-und.patch similarity index 100% rename from patches/server/0019-Purpur-Allow-soil-to-moisten-from-water-directly-und.patch rename to patches/server/0018-Purpur-Allow-soil-to-moisten-from-water-directly-und.patch diff --git a/patches/server/0020-Leaves-Cache-world-generator-sea-level.patch b/patches/server/0019-Leaves-Cache-world-generator-sea-level.patch similarity index 100% rename from patches/server/0020-Leaves-Cache-world-generator-sea-level.patch rename to patches/server/0019-Leaves-Cache-world-generator-sea-level.patch diff --git a/patches/server/0021-Leaves-Random-flatten-triangular-distribution.patch b/patches/server/0020-Leaves-Random-flatten-triangular-distribution.patch similarity index 100% rename from patches/server/0021-Leaves-Random-flatten-triangular-distribution.patch rename to patches/server/0020-Leaves-Random-flatten-triangular-distribution.patch diff --git a/patches/server/0022-Leaves-Placing-locked-hopper-no-longer-send-NC-updat.patch b/patches/server/0021-Leaves-Placing-locked-hopper-no-longer-send-NC-updat.patch similarity index 100% rename from patches/server/0022-Leaves-Placing-locked-hopper-no-longer-send-NC-updat.patch rename to patches/server/0021-Leaves-Placing-locked-hopper-no-longer-send-NC-updat.patch diff --git a/patches/server/0023-Leaves-Vanilla-hopper.patch b/patches/server/0022-Leaves-Vanilla-hopper.patch similarity index 100% rename from patches/server/0023-Leaves-Vanilla-hopper.patch rename to patches/server/0022-Leaves-Vanilla-hopper.patch diff --git a/patches/server/0024-Plazma-Optimise-state-lookup-more.patch b/patches/server/0023-Plazma-Optimise-state-lookup-more.patch similarity index 100% rename from patches/server/0024-Plazma-Optimise-state-lookup-more.patch rename to patches/server/0023-Plazma-Optimise-state-lookup-more.patch diff --git a/patches/server/0025-Plazma-Lithium-HashedList.patch b/patches/server/0024-Plazma-Lithium-HashedList.patch similarity index 100% rename from patches/server/0025-Plazma-Lithium-HashedList.patch rename to patches/server/0024-Plazma-Lithium-HashedList.patch diff --git a/patches/server/0026-Experimental-Disable-respawn-ceiling.patch b/patches/server/0025-Experimental-Disable-respawn-ceiling.patch similarity index 100% rename from patches/server/0026-Experimental-Disable-respawn-ceiling.patch rename to patches/server/0025-Experimental-Disable-respawn-ceiling.patch diff --git a/patches/server/0027-Experimental-Show-which-zone-has-which-players-in-tp.patch b/patches/server/0026-Experimental-Show-which-zone-has-which-players-in-tp.patch similarity index 100% rename from patches/server/0027-Experimental-Show-which-zone-has-which-players-in-tp.patch rename to patches/server/0026-Experimental-Show-which-zone-has-which-players-in-tp.patch diff --git a/patches/server/0028-Graphite-Player-Skin-API.patch b/patches/server/0027-Graphite-Player-Skin-API.patch similarity index 100% rename from patches/server/0028-Graphite-Player-Skin-API.patch rename to patches/server/0027-Graphite-Player-Skin-API.patch diff --git a/patches/server/0029-The-anvil-becomes-a-drop-at-Y0.patch b/patches/server/0028-The-anvil-becomes-a-drop-at-Y0.patch similarity index 98% rename from patches/server/0029-The-anvil-becomes-a-drop-at-Y0.patch rename to patches/server/0028-The-anvil-becomes-a-drop-at-Y0.patch index c0eb3ba..187b7fc 100644 --- a/patches/server/0029-The-anvil-becomes-a-drop-at-Y0.patch +++ b/patches/server/0028-The-anvil-becomes-a-drop-at-Y0.patch @@ -8,7 +8,7 @@ try fix: https://github.com/PaperMC/Folia/issues/217 This fix may work, but its implementation is not elegant, so it will not be submitted upstream diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index 65582bd070b1a5a963abca1e91ff05bf177942c0..fd7535d602eec49ba3234e87e25ca4dbaf409537 100644 +index 77ff2a526a1d2b9307dfc696f9862bfda7407475..4b05325efbb5473543e078ad9bca85dc7379c95a 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -1,7 +1,6 @@ diff --git a/patches/server/0030-Slice-Improve-map-saving-performance.patch b/patches/server/0029-Slice-Improve-map-saving-performance.patch similarity index 100% rename from patches/server/0030-Slice-Improve-map-saving-performance.patch rename to patches/server/0029-Slice-Improve-map-saving-performance.patch