From 8f3fa2e7f27f55c9a30a495e4baa2e48ba816e33 Mon Sep 17 00:00:00 2001 From: mcrcortex <18544518+MCRcortex@users.noreply.github.com> Date: Sun, 6 Jul 2025 20:01:44 +1000 Subject: [PATCH] start on no subgroup impl --- src/main/java/me/cortex/voxy/client/VoxyClient.java | 5 +++++ .../java/me/cortex/voxy/client/core/gl/Capabilities.java | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/main/java/me/cortex/voxy/client/VoxyClient.java b/src/main/java/me/cortex/voxy/client/VoxyClient.java index c2ad1803..aa070675 100644 --- a/src/main/java/me/cortex/voxy/client/VoxyClient.java +++ b/src/main/java/me/cortex/voxy/client/VoxyClient.java @@ -29,6 +29,11 @@ public class VoxyClient implements ClientModInitializer { BudgetBufferRenderer.init(); VoxyCommon.setInstanceFactory(VoxyClientInstance::new); + + if (!Capabilities.INSTANCE.subgroup) { + Logger.warn("GPU does not support subgroup operations, expect some performance degradation"); + } + } else { Logger.error("Voxy is unsupported on your system."); } diff --git a/src/main/java/me/cortex/voxy/client/core/gl/Capabilities.java b/src/main/java/me/cortex/voxy/client/core/gl/Capabilities.java index 95e3b8a0..9b6e9584 100644 --- a/src/main/java/me/cortex/voxy/client/core/gl/Capabilities.java +++ b/src/main/java/me/cortex/voxy/client/core/gl/Capabilities.java @@ -24,10 +24,12 @@ public class Capabilities { public final boolean compute; public final boolean indirectParameters; public final boolean isIntel; + public final boolean subgroup; public Capabilities() { var cap = GL.getCapabilities(); this.compute = cap.glDispatchComputeIndirect != 0; + this.subgroup = cap.GL_KHR_shader_subgroup; this.indirectParameters = cap.glMultiDrawElementsIndirectCountARB != 0; this.repFragTest = cap.GL_NV_representative_fragment_test; this.meshShaders = cap.GL_NV_mesh_shader;