Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -64,15 +64,16 @@ dependencies {
modImplementation(fabricApi.module("fabric-api-base", project.fabric_version))
modImplementation(fabricApi.module("fabric-block-view-api-v2", project.fabric_version))
modImplementation(fabricApi.module("fabric-rendering-fluids-v1", project.fabric_version))
modImplementation(fabricApi.module("fabric-renderer-api-v1", project.fabric_version))

modImplementation("net.fabricmc.fabric-api:fabric-rendering-data-attachment-v1:0.3.40+73761d2e3b")
modImplementation(fabricApi.module("fabric-resource-loader-v0", project.fabric_version))

modImplementation "maven.modrinth:sodium:mc1.21-0.5.11"
modImplementation "maven.modrinth:sodium:mc1.21-0.6.0-beta.1-fabric"

//modImplementation "maven.modrinth:c2me-fabric:0.2.0+alpha.10.49+1.19.4"
//modImplementation "maven.modrinth:chunks-fade-in:v1.0.3-1.19.4"
//modImplementation "maven.modrinth:immersiveportals:v2.7.3-mc1.19.4"
modCompileOnly "maven.modrinth:iris:1.7.0+1.20.6"
modCompileOnly "maven.modrinth:iris:1.8.0-beta.3+1.21-fabric"
}

10 changes: 5 additions & 5 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ org.gradle.jvmargs=-Xmx1G
# Fabric Properties
# check these on https://modmuss50.me/fabric.html

minecraft_version=1.21
yarn_mappings=1.21+build.2
loader_version=0.15.11
minecraft_version=1.21.1
yarn_mappings=1.21.1+build.3
loader_version=0.16.3

#Fabric api
fabric_version=0.100.1+1.21
# Fabric API
fabric_version=0.103.0+1.21.1

# Mod Properties
mod_version=0.3.0
Expand Down
1 change: 1 addition & 0 deletions src/main/java/me/cortex/nvidium/Nvidium.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import net.fabricmc.loader.api.ModContainer;
import net.minecraft.util.Util;
import org.lwjgl.opengl.GL;
import org.lwjgl.opengl.GLCapabilities;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down
14 changes: 7 additions & 7 deletions src/main/java/me/cortex/nvidium/NvidiumWorldRenderer.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@
import me.cortex.nvidium.sodiumCompat.NvidiumCompactChunkVertex;
import me.cortex.nvidium.util.DownloadTaskStream;
import me.cortex.nvidium.util.UploadingBufferStream;
import me.jellysquid.mods.sodium.client.SodiumClientMod;
import me.jellysquid.mods.sodium.client.render.chunk.ChunkRenderMatrices;
import me.jellysquid.mods.sodium.client.render.chunk.RenderSection;
import me.jellysquid.mods.sodium.client.render.chunk.compile.ChunkBuildOutput;
import me.jellysquid.mods.sodium.client.render.chunk.vertex.format.impl.CompactChunkVertex;
import me.jellysquid.mods.sodium.client.render.viewport.Viewport;
import net.caffeinemc.mods.sodium.client.SodiumClientMod;
import net.caffeinemc.mods.sodium.client.render.chunk.ChunkRenderMatrices;
import net.caffeinemc.mods.sodium.client.render.chunk.RenderSection;
import net.caffeinemc.mods.sodium.client.render.chunk.compile.ChunkBuildOutput;
import net.caffeinemc.mods.sodium.client.render.chunk.vertex.format.impl.CompactChunkVertex;
import net.caffeinemc.mods.sodium.client.render.viewport.Viewport;
import net.minecraft.client.render.Camera;
import net.minecraft.client.texture.Sprite;
import org.jetbrains.annotations.Nullable;
Expand Down Expand Up @@ -129,7 +129,7 @@ private void update_allowed_memory() {
}
}

public void update(Camera camera, Viewport viewport, int frame, boolean spectator) {
public void update(Camera camera, Viewport viewport, boolean spectator) {
if (asyncChunkTracker != null) {
asyncChunkTracker.update(viewport, camera, spectator);
}
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/me/cortex/nvidium/RenderPipeline.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
import me.cortex.nvidium.util.DownloadTaskStream;
import me.cortex.nvidium.util.TickableManager;
import me.cortex.nvidium.util.UploadingBufferStream;
import me.jellysquid.mods.sodium.client.render.chunk.ChunkRenderMatrices;
import me.jellysquid.mods.sodium.client.render.viewport.Viewport;
import net.caffeinemc.mods.sodium.client.render.chunk.ChunkRenderMatrices;
import net.caffeinemc.mods.sodium.client.render.viewport.Viewport;
import net.minecraft.client.MinecraftClient;
import net.minecraft.util.math.BlockPos;
import org.joml.*;
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/me/cortex/nvidium/api0/NvidiumAPI.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package me.cortex.nvidium.api0;

import me.cortex.nvidium.Nvidium;
import me.cortex.nvidium.NvidiumWorldRenderer;
import me.cortex.nvidium.sodiumCompat.INvidiumWorldRendererGetter;
import me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer;
import net.caffeinemc.mods.sodium.client.render.SodiumWorldRenderer;
import org.joml.Matrix4fc;
import org.joml.Matrix4x3fc;

Expand Down
26 changes: 13 additions & 13 deletions src/main/java/me/cortex/nvidium/config/ConfigGuiBuilder.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
import com.google.common.collect.ImmutableList;
import me.cortex.nvidium.Nvidium;
import me.cortex.nvidium.sodiumCompat.NvidiumOptionFlags;
import me.jellysquid.mods.sodium.client.gui.options.*;
import me.jellysquid.mods.sodium.client.gui.options.control.ControlValueFormatter;
import me.jellysquid.mods.sodium.client.gui.options.control.CyclingControl;
import me.jellysquid.mods.sodium.client.gui.options.control.SliderControl;
import me.jellysquid.mods.sodium.client.gui.options.control.TickBoxControl;
import net.caffeinemc.mods.sodium.client.gui.options.*;
import net.caffeinemc.mods.sodium.client.gui.options.control.ControlValueFormatter;
import net.caffeinemc.mods.sodium.client.gui.options.control.CyclingControl;
import net.caffeinemc.mods.sodium.client.gui.options.control.SliderControl;
import net.caffeinemc.mods.sodium.client.gui.options.control.TickBoxControl;
import net.minecraft.text.Text;

import java.util.ArrayList;
Expand Down Expand Up @@ -47,7 +47,7 @@ public static void addNvidiumGui(List<OptionPage> pages) {
.setTooltip(Text.translatable("nvidium.options.region_keep_distance.tooltip"))
.setControl(option -> new SliderControl(option, 32, 256, 1, x->Text.literal(x==32?"Vanilla":(x==256?"Keep All":x+" chunks"))))
.setImpact(OptionImpact.VARIES)
.setEnabled(Nvidium.IS_ENABLED)
.setEnabled(() -> Nvidium.IS_ENABLED)
.setBinding((opts, value) -> opts.region_keep_distance = value, opts -> opts.region_keep_distance)
.setFlags()
.build()
Expand All @@ -56,7 +56,7 @@ public static void addNvidiumGui(List<OptionPage> pages) {
.setTooltip(Text.translatable("nvidium.options.enable_temporal_coherence.tooltip"))
.setControl(TickBoxControl::new)
.setImpact(OptionImpact.MEDIUM)
.setEnabled(Nvidium.IS_ENABLED)
.setEnabled(() -> Nvidium.IS_ENABLED)
.setBinding((opts, value) -> opts.enable_temporal_coherence = value, opts -> opts.enable_temporal_coherence)
.setFlags()
.build()
Expand All @@ -65,7 +65,7 @@ public static void addNvidiumGui(List<OptionPage> pages) {
.setTooltip(Text.translatable("nvidium.options.async_bfs.tooltip"))
.setControl(TickBoxControl::new)
.setImpact(OptionImpact.HIGH)
.setEnabled(Nvidium.IS_ENABLED)
.setEnabled(() -> Nvidium.IS_ENABLED)
.setBinding((opts, value) -> opts.async_bfs = value, opts -> opts.async_bfs)
.setFlags(OptionFlag.REQUIRES_RENDERER_RELOAD)
.build()
Expand All @@ -74,7 +74,7 @@ public static void addNvidiumGui(List<OptionPage> pages) {
.setTooltip(Text.translatable("nvidium.options.automatic_memory_limit.tooltip"))
.setControl(TickBoxControl::new)
.setImpact(OptionImpact.VARIES)
.setEnabled(Nvidium.IS_ENABLED)
.setEnabled(() -> Nvidium.IS_ENABLED)
.setBinding((opts, value) -> opts.automatic_memory = value, opts -> opts.automatic_memory)
.setFlags()
.build())
Expand All @@ -83,7 +83,7 @@ public static void addNvidiumGui(List<OptionPage> pages) {
.setTooltip(Text.translatable("nvidium.options.max_gpu_memory.tooltip"))
.setControl(option -> new SliderControl(option, 2048, 32768, 512, ControlValueFormatter.translateVariable("nvidium.options.mb")))
.setImpact(OptionImpact.VARIES)
.setEnabled(Nvidium.IS_ENABLED && !Nvidium.config.automatic_memory)
.setEnabled(() -> Nvidium.IS_ENABLED && !Nvidium.config.automatic_memory)
.setBinding((opts, value) -> opts.max_geometry_memory = value, opts -> opts.max_geometry_memory)
.setFlags(Nvidium.SUPPORTS_PERSISTENT_SPARSE_ADDRESSABLE_BUFFER?new OptionFlag[0]:new OptionFlag[]{OptionFlag.REQUIRES_RENDERER_RELOAD})
.build()
Expand All @@ -92,7 +92,7 @@ public static void addNvidiumGui(List<OptionPage> pages) {
.setTooltip(Text.translatable("nvidium.options.render_fog.tooltip"))
.setControl(TickBoxControl::new)
.setBinding((opts, value) -> opts.render_fog = value, opts -> opts.render_fog)
.setEnabled(Nvidium.IS_ENABLED)
.setEnabled(() -> Nvidium.IS_ENABLED)
.setImpact(OptionImpact.MEDIUM)
.setFlags(OptionFlag.REQUIRES_RENDERER_RELOAD)
.build()
Expand All @@ -111,7 +111,7 @@ public static void addNvidiumGui(List<OptionPage> pages) {
)
)
.setBinding((opts, value) -> opts.translucency_sorting_level = value, opts -> opts.translucency_sorting_level)
.setEnabled(Nvidium.IS_ENABLED)
.setEnabled(() -> Nvidium.IS_ENABLED)
.setImpact(OptionImpact.MEDIUM)
//Technically, only need to reload when going from NONE->SECTIONS
.setFlags(OptionFlag.REQUIRES_RENDERER_RELOAD)
Expand All @@ -133,7 +133,7 @@ public static void addNvidiumGui(List<OptionPage> pages) {
)
)
.setBinding((opts, value) -> opts.statistics_level = value, opts -> opts.statistics_level)
.setEnabled(Nvidium.IS_ENABLED)
.setEnabled(() -> Nvidium.IS_ENABLED)
.setImpact(OptionImpact.LOW)
.setFlags(NvidiumOptionFlags.REQUIRES_SHADER_RELOAD)
.build()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import me.cortex.nvidium.Nvidium;
import me.cortex.nvidium.config.NvidiumConfig;
import me.jellysquid.mods.sodium.client.gui.options.storage.OptionStorage;
import net.caffeinemc.mods.sodium.client.gui.options.storage.OptionStorage;

public class NvidiumConfigStore implements OptionStorage<NvidiumConfig> {
private final NvidiumConfig config;
Expand Down
1 change: 1 addition & 0 deletions src/main/java/me/cortex/nvidium/gl/TrackedObject.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import me.cortex.nvidium.Nvidium;

import java.lang.ref.Cleaner;
import java.lang.ref.Cleaner.Cleanable;

public abstract class TrackedObject {
private final Ref ref;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
import com.mojang.blaze3d.systems.RenderSystem;
import it.unimi.dsi.fastutil.longs.Long2ReferenceMap;
import me.cortex.nvidium.sodiumCompat.IRenderSectionExtension;
import me.jellysquid.mods.sodium.client.SodiumClientMod;
import me.jellysquid.mods.sodium.client.render.chunk.ChunkUpdateType;
import me.jellysquid.mods.sodium.client.render.chunk.RenderSection;
import me.jellysquid.mods.sodium.client.render.chunk.RenderSectionFlags;
import me.jellysquid.mods.sodium.client.render.chunk.occlusion.OcclusionCuller;
import me.jellysquid.mods.sodium.client.render.viewport.Viewport;
import net.caffeinemc.mods.sodium.client.SodiumClientMod;
import net.caffeinemc.mods.sodium.client.render.chunk.ChunkUpdateType;
import net.caffeinemc.mods.sodium.client.render.chunk.RenderSection;
import net.caffeinemc.mods.sodium.client.render.chunk.RenderSectionFlags;
import net.caffeinemc.mods.sodium.client.render.chunk.occlusion.OcclusionCuller;
import net.caffeinemc.mods.sodium.client.render.viewport.Viewport;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.Camera;
import net.minecraft.client.texture.Sprite;
Expand Down Expand Up @@ -72,7 +72,7 @@ private void run() {
Set<Sprite> animatedSpriteSet = animateVisibleSpritesOnly?new HashSet<>():null;
int[] visibleGeometryCounter = new int[1];
final OcclusionCuller.Visitor visitor = (section, visible) -> {
if (section.getPendingUpdate() != null && section.getBuildCancellationToken() == null) {
if (section.getPendingUpdate() != null && section.getTaskCancellationToken() == null) {
if ((!((IRenderSectionExtension)section).isSubmittedRebuild()) && !((IRenderSectionExtension)section).isSeen()) {//If it is in submission queue or seen dont enqueue
//Set that the section has been seen
((IRenderSectionExtension)section).isSeen(true);
Expand Down Expand Up @@ -144,7 +144,7 @@ public final void update(Viewport viewport, Camera camera, boolean spectator) {
if (section.isDisposed())
continue;
var type = section.getPendingUpdate();
if (type != null && section.getBuildCancellationToken() == null) {
if (type != null && section.getTaskCancellationToken() == null) {
var queue = outputRebuildQueue.get(type);
if (queue.size() < type.getMaximumQueueSize()) {
((IRenderSectionExtension) section).isSubmittedRebuild(true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import me.cortex.nvidium.gl.buffers.IDeviceMappedBuffer;
import me.cortex.nvidium.util.IdProvider;
import me.cortex.nvidium.util.UploadingBufferStream;
import me.jellysquid.mods.sodium.client.render.viewport.Viewport;
import net.caffeinemc.mods.sodium.client.render.viewport.Viewport;
import net.minecraft.util.math.ChunkSectionPos;
import org.lwjgl.system.MemoryUtil;

Expand Down
7 changes: 4 additions & 3 deletions src/main/java/me/cortex/nvidium/managers/SectionManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,13 @@
import me.cortex.nvidium.gl.RenderDevice;
import me.cortex.nvidium.sodiumCompat.INvidiumWorldRendererGetter;
import me.cortex.nvidium.sodiumCompat.IRepackagedResult;
import me.cortex.nvidium.sodiumCompat.RepackagedSectionOutput;
import me.cortex.nvidium.util.BufferArena;
import me.cortex.nvidium.util.SegmentedManager;
import me.cortex.nvidium.util.UploadingBufferStream;
import me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer;
import me.jellysquid.mods.sodium.client.render.chunk.RenderSection;
import me.jellysquid.mods.sodium.client.render.chunk.compile.ChunkBuildOutput;
import net.caffeinemc.mods.sodium.client.render.SodiumWorldRenderer;
import net.caffeinemc.mods.sodium.client.render.chunk.RenderSection;
import net.caffeinemc.mods.sodium.client.render.chunk.compile.ChunkBuildOutput;
import net.minecraft.client.MinecraftClient;
import net.minecraft.util.math.ChunkSectionPos;
import org.joml.Vector3i;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import me.cortex.nvidium.sodiumCompat.IRepackagedResult;
import me.cortex.nvidium.sodiumCompat.RepackagedSectionOutput;
import me.jellysquid.mods.sodium.client.render.chunk.compile.ChunkBuildOutput;
import net.caffeinemc.mods.sodium.client.render.chunk.compile.ChunkBuildOutput;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
Expand All @@ -21,7 +21,7 @@ public void set(RepackagedSectionOutput output) {
repackagedSectionOutput = output;
}

@Inject(method = "delete", at = @At("HEAD"))
@Inject(method = "destroy", at = @At("HEAD"))
private void cleanup(CallbackInfo ci) {
if (repackagedSectionOutput != null) {
repackagedSectionOutput.delete();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package me.cortex.nvidium.mixin.sodium;

import me.cortex.nvidium.Nvidium;
import me.jellysquid.mods.sodium.client.render.chunk.compile.executor.ChunkBuilder;

import net.caffeinemc.mods.sodium.client.render.chunk.compile.executor.ChunkBuilder;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Redirect;
Expand All @@ -10,7 +11,7 @@

@Mixin(value = ChunkBuilder.class, remap = false)
public class MixinChunkBuilder {
@Redirect(method = "getSchedulingBudget", at = @At(value = "INVOKE", target = "Ljava/util/List;size()I"))
@Redirect(method = "getTotalRemainingBudget", at = @At(value = "INVOKE", target = "Ljava/util/List;size()I"))
private int moreSchedulingBudget(List<Thread> threads) {
int budget = threads.size();
if (Nvidium.IS_ENABLED && Nvidium.config.async_bfs) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@
import me.cortex.nvidium.Nvidium;
import me.cortex.nvidium.sodiumCompat.IRepackagedResult;
import me.cortex.nvidium.sodiumCompat.SodiumResultCompatibility;
import me.jellysquid.mods.sodium.client.render.chunk.compile.ChunkBuildContext;
import me.jellysquid.mods.sodium.client.render.chunk.compile.ChunkBuildOutput;
import me.jellysquid.mods.sodium.client.render.chunk.compile.tasks.ChunkBuilderMeshingTask;
import me.jellysquid.mods.sodium.client.util.task.CancellationToken;
import net.caffeinemc.mods.sodium.client.render.chunk.compile.ChunkBuildContext;
import net.caffeinemc.mods.sodium.client.render.chunk.compile.ChunkBuildOutput;
import net.caffeinemc.mods.sodium.client.render.chunk.compile.tasks.ChunkBuilderMeshingTask;
import net.caffeinemc.mods.sodium.client.util.task.CancellationToken;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

@Mixin(value = ChunkBuilderMeshingTask.class, remap = false)
public class MixinChunkBuilderMeshingTask {
@Inject(method = "execute(Lme/jellysquid/mods/sodium/client/render/chunk/compile/ChunkBuildContext;Lme/jellysquid/mods/sodium/client/util/task/CancellationToken;)Lme/jellysquid/mods/sodium/client/render/chunk/compile/ChunkBuildOutput;", at = @At("TAIL"))
@Inject(method = "execute(Lnet/caffeinemc/mods/sodium/client/render/chunk/compile/ChunkBuildContext;Lnet/caffeinemc/mods/sodium/client/util/task/CancellationToken;)Lnet/caffeinemc/mods/sodium/client/render/chunk/compile/ChunkBuildOutput;", at = @At("TAIL"))
private void repackageResults(ChunkBuildContext buildContext, CancellationToken cancellationToken, CallbackInfoReturnable<ChunkBuildOutput> cir) {
if (Nvidium.IS_ENABLED) {
var result = cir.getReturnValue();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.Redirect;

@Mixin(targets = {"me.jellysquid.mods.sodium.client.render.chunk.compile.executor.ChunkJobQueue"},remap = false)
@Mixin(targets = {"net.caffeinemc.mods.sodium.client.render.chunk.compile.executor.ChunkJobQueue"},remap = false)
public class MixinChunkJobQueue {
@Redirect(method = "shutdown", at = @At(value = "INVOKE", target = "Ljava/lang/Runtime;availableProcessors()I"))
private int returnAlot(Runtime instance) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package me.cortex.nvidium.mixin.sodium;

import me.cortex.nvidium.sodiumCompat.NvidiumOptionFlags;
import me.jellysquid.mods.sodium.client.gui.options.OptionFlag;
import net.caffeinemc.mods.sodium.client.gui.options.OptionFlag;
import org.apache.commons.lang3.ArrayUtils;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
Expand Down
Loading