From b2d62ec807634a07084018ffb61e8f782dc59f2a Mon Sep 17 00:00:00 2001 From: mcrcortex <18544518+MCRcortex@users.noreply.github.com> Date: Sun, 5 Oct 2025 22:54:39 +1000 Subject: [PATCH] Fix crash on macos --- build.gradle | 2 +- .../java/me/cortex/voxy/client/config/VoxyConfig.java | 2 +- .../me/cortex/voxy/common/thread/ServiceThreadPool.java | 4 ++-- .../java/me/cortex/voxy/common/util/cpu/CpuLayout.java | 8 ++++++++ 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index e406412d..d6215021 100644 --- a/build.gradle +++ b/build.gradle @@ -133,7 +133,7 @@ dependencies { //modImplementation('io.github.douira:glsl-transformer:2.0.1') - modCompileOnly("maven.modrinth:vivecraft:1.21.1-1.1.14-b2-fabric") + modCompileOnly("maven.modrinth:vivecraft:1.21.8-1.2.5-b6-fabric") modCompileOnly("maven.modrinth:flashback:rNCr1Rbs") } diff --git a/src/main/java/me/cortex/voxy/client/config/VoxyConfig.java b/src/main/java/me/cortex/voxy/client/config/VoxyConfig.java index 37e1179b..8adf8f61 100644 --- a/src/main/java/me/cortex/voxy/client/config/VoxyConfig.java +++ b/src/main/java/me/cortex/voxy/client/config/VoxyConfig.java @@ -28,7 +28,7 @@ public class VoxyConfig implements OptionStorage { public boolean enableRendering = true; public boolean ingestEnabled = true; public int sectionRenderDistance = 16; - public int serviceThreads = (int) Math.max(CpuLayout.CORES.length/1.5, 1); + public int serviceThreads = (int) Math.max(CpuLayout.getCoreCount()/1.5, 1); public float subDivisionSize = 64; public boolean renderVanillaFog = false; public boolean useEnvironmentalFog = false; diff --git a/src/main/java/me/cortex/voxy/common/thread/ServiceThreadPool.java b/src/main/java/me/cortex/voxy/common/thread/ServiceThreadPool.java index 9f80b34b..0dc734d3 100644 --- a/src/main/java/me/cortex/voxy/common/thread/ServiceThreadPool.java +++ b/src/main/java/me/cortex/voxy/common/thread/ServiceThreadPool.java @@ -29,7 +29,7 @@ public class ServiceThreadPool { } public ServiceThreadPool(int threadCount, int priority) { - if (CpuLayout.CORES.length-2 < threadCount) { + if (CpuLayout.getCoreCount()-2 < threadCount) { Logger.warn("The thread count over core count -2, performance degradation possible"); } @@ -38,7 +38,7 @@ public class ServiceThreadPool { for (int i = 0; i < threadCount; i++) { int threadId = i; var worker = new Thread(this.threadGroup, ()->{ - if (CpuLayout.CORES.length>3) { + if (CpuLayout.CORES!=null && CpuLayout.CORES.length>3) { //Set worker affinity if possible CpuLayout.setThreadAffinity(CpuLayout.CORES[2 + (threadId % (CpuLayout.CORES.length - 2))]); } diff --git a/src/main/java/me/cortex/voxy/common/util/cpu/CpuLayout.java b/src/main/java/me/cortex/voxy/common/util/cpu/CpuLayout.java index bf1a431a..7690f382 100644 --- a/src/main/java/me/cortex/voxy/common/util/cpu/CpuLayout.java +++ b/src/main/java/me/cortex/voxy/common/util/cpu/CpuLayout.java @@ -156,4 +156,12 @@ public class CpuLayout { Thread.sleep(100); } } + + public static int getCoreCount() { + if (CORES==null) { + return Runtime.getRuntime().availableProcessors(); + } else { + return CORES.length; + } + } }