aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0607-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server/0607-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch')
-rw-r--r--patches/server/0607-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch16
1 files changed, 8 insertions, 8 deletions
diff --git a/patches/server/0607-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch b/patches/server/0607-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch
index 976f278b20..b950818c7b 100644
--- a/patches/server/0607-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch
+++ b/patches/server/0607-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch
@@ -10,22 +10,22 @@ chunks did get inlined, but the standard CPS.getChunkAt
method was not inlined.
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index ed1fc466151ebebf7c3ac135c6893f4ea9a55a52..481248ef82d4257ca4cc88ab28a1a7946e22aef6 100644
+index ed1fc466151ebebf7c3ac135c6893f4ea9a55a52..38bcf9f410e8a9d47c7d486c28dbc16a6225b650 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
-@@ -352,6 +352,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -352,7 +352,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@Override
public final LevelChunk getChunk(int chunkX, int chunkZ) { // Paper - final to help inline
+- return (LevelChunk) this.getChunk(chunkX, chunkZ, ChunkStatus.FULL, true); // Paper - avoid a method jump
+ // Paper start - Perf: make sure loaded chunks get the inlined variant of this function
+ net.minecraft.server.level.ServerChunkCache cps = ((ServerLevel)this).getChunkSource();
-+ if (cps.mainThread == Thread.currentThread()) {
-+ LevelChunk ifLoaded = cps.getChunkAtIfLoadedMainThread(chunkX, chunkZ);
-+ if (ifLoaded != null) {
-+ return ifLoaded;
-+ }
++ LevelChunk ifLoaded = cps.getChunkAtIfLoadedImmediately(chunkX, chunkZ);
++ if (ifLoaded != null) {
++ return ifLoaded;
+ }
++ return (LevelChunk) cps.getChunk(chunkX, chunkZ, ChunkStatus.FULL, true); // Paper - avoid a method jump
+ // Paper end - Perf: make sure loaded chunks get the inlined variant of this function
- return (LevelChunk) this.getChunk(chunkX, chunkZ, ChunkStatus.FULL, true); // Paper - avoid a method jump
}
+ // Paper start - if loaded