Skip to content

Commit

Permalink
Shuffle some contexts
Browse files Browse the repository at this point in the history
  • Loading branch information
MCRcortex committed Dec 1, 2023
1 parent f0a8c02 commit 812765d
Show file tree
Hide file tree
Showing 8 changed files with 74 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,6 @@ public long updateAndGetSet(VCmdBuff cmd) {
}

public void destroy() {

this.pool.free();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@

public class Layout {
private final List<LayoutBinding> bindings = new ArrayList<>();

private final int hash;

public Layout(LayoutBinding... bindings) {
this(List.of(bindings));
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
package me.cortex.vulkanite.client.rendering.srp.lua;


import net.minecraft.client.MinecraftClient;
import net.minecraft.registry.RegistryKeys;
import org.luaj.vm2.LuaValue;

import static me.cortex.vulkanite.client.rendering.srp.api.layout.LayoutBinding.ACCESS_READ;
import static me.cortex.vulkanite.client.rendering.srp.api.layout.LayoutBinding.ACCESS_WRITE;
import static org.lwjgl.vulkan.KHRAccelerationStructure.VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR;
import static org.lwjgl.vulkan.KHRRayTracingPipeline.*;
import static org.lwjgl.vulkan.VK10.*;

//Environment about the game such as block lists, biomes etc
public class LuaConstants {
public static void addVkConstants(LuaValue env) {
env.set("SHADER_RAY_GEN", VK_SHADER_STAGE_RAYGEN_BIT_KHR);
env.set("SHADER_RAY_MISS", VK_SHADER_STAGE_MISS_BIT_KHR);
env.set("SHADER_RAY_CHIT", VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR);
env.set("SHADER_RAY_AHIT", VK_SHADER_STAGE_ANY_HIT_BIT_KHR);
env.set("SHADER_RAY_INTER", VK_SHADER_STAGE_INTERSECTION_BIT_KHR);
env.set("SHADER_COMPUTE", VK_SHADER_STAGE_COMPUTE_BIT);

env.set("ACCESS_READ", ACCESS_READ);
env.set("ACCESS_WRITE", ACCESS_WRITE);
env.set("ACCESS_RW", ACCESS_READ|ACCESS_WRITE);

env.set("LAYOUT_ACCELERATION", VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR);
env.set("LAYOUT_UNIFORM_BUFFER", VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER);
env.set("LAYOUT_STORAGE_BUFFER", VK_DESCRIPTOR_TYPE_STORAGE_BUFFER);
env.set("LAYOUT_STORAGE_IMAGE", VK_DESCRIPTOR_TYPE_STORAGE_IMAGE);
env.set("LAYOUT_IMAGE_SAMPLER", VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER);
}

public static void addWorldConstants(LuaValue env) {
var world = MinecraftClient.getInstance().world;
if (world == null) {
//If there is no world, cannot add world constants
return;
}
/*
var rm = world.getRegistryManager();
{
var blockRegistry = rm.get(RegistryKeys.BLOCK);
for (var blockEntry : blockRegistry.getEntrySet()) {
blockRegistry.getEntry(blockEntry.getKey()).get().isIn(TagK)
}
}
var biomes = rm.get(RegistryKeys.BIOME).getEntrySet();
*/
}

public static void addConstants(LuaValue env) {
addVkConstants(env);
addWorldConstants(env);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -61,24 +61,6 @@ public void run() {
this.generationFunction.call();
}

private void addConstants(LuaValue env) {
env.set("SHADER_RAY_GEN", VK_SHADER_STAGE_RAYGEN_BIT_KHR);
env.set("SHADER_RAY_MISS", VK_SHADER_STAGE_MISS_BIT_KHR);
env.set("SHADER_RAY_CHIT", VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR);
env.set("SHADER_RAY_AHIT", VK_SHADER_STAGE_ANY_HIT_BIT_KHR);
env.set("SHADER_RAY_INTER", VK_SHADER_STAGE_INTERSECTION_BIT_KHR);
env.set("SHADER_COMPUTE", VK_SHADER_STAGE_COMPUTE_BIT);

env.set("ACCESS_READ", ACCESS_READ);
env.set("ACCESS_WRITE", ACCESS_WRITE);
env.set("ACCESS_RW", ACCESS_READ|ACCESS_WRITE);

env.set("LAYOUT_ACCELERATION", VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR);
env.set("LAYOUT_UNIFORM_BUFFER", VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER);
env.set("LAYOUT_STORAGE_BUFFER", VK_DESCRIPTOR_TYPE_STORAGE_BUFFER);
env.set("LAYOUT_STORAGE_IMAGE", VK_DESCRIPTOR_TYPE_STORAGE_IMAGE);
env.set("LAYOUT_IMAGE_SAMPLER", VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER);
}

private void addLuaStdLib(LuaTable table) {
new Bit32Lib().call(LuaValue.valueOf("bit32"), table);
Expand All @@ -90,7 +72,7 @@ private void addLuaStdLib(LuaTable table) {
private LuaValue createStandardLibrary() {
var env = new LuaTable();
addLuaStdLib(env);
addConstants(env);
LuaConstants.addConstants(env);
env.set("ctx", createContextTable());
env.set("Buffer", new LuaJFunction(this.functions::Buffer));
env.set("Image", new LuaJFunction(this.functions::Image));
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package me.cortex.vulkanite.client.rendering.srp.lua;

public class LuaShaderPropertiesBuilder {

}
2 changes: 1 addition & 1 deletion src/main/java/me/cortex/vulkanite/lib/shader/VShader.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public class VShader extends TrackedResourceObject {
private final VContext ctx;
public final long module;
public final int stage;
public final ShaderReflection reflection;
private final ShaderReflection reflection;

public ShaderReflection getReflection() {
return reflection;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,10 @@ private VGImage[] getCustomTextures() {
@Inject(method = "<init>", at = @At("TAIL"))
private void injectRTShader(ProgramSet set, CallbackInfo ci) {
ctx = Vulkanite.INSTANCE.getCtx();
if (this.pipeline != null) {
this.pipeline.destory();
}

pipeline = new VkPipeline2(ctx, new LuaContextHost(path -> {
try {
return Files.readAllBytes(new File("shaderpacks/testpack/shaders/" + path).toPath());
Expand Down
3 changes: 2 additions & 1 deletion src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,6 @@
"fabricloader": ">=0.14.21",
"iris": "=1.6.10",
"sodium": "=0.5.3"
}
},
"accessWidener": "vulkanite.accesswidener"
}

0 comments on commit 812765d

Please sign in to comment.