Vulkan fixes

This commit is contained in:
luboslenco
2025-06-07 17:53:36 +02:00
parent fd3b7dcd9c
commit badbadb800
6 changed files with 34 additions and 16 deletions
+5 -5
View File
@@ -1,4 +1,9 @@
#[set(everything)]
const constants: {
empty: float;
};
struct vert_in {
pos: float4;
nor: float2;
@@ -9,11 +14,6 @@ struct vert_out {
pos: float4;
}
#[set(everything)]
const constants: {
empty: float;
};
fun dilate_map_vert(input: vert_in): vert_out {
var output: vert_out;
var tex_coord: float2 = float2(input.tex.x * 2.0 - 1.0, (1.0 - input.tex.y) * 2.0 - 1.0);
+18 -2
View File
@@ -65,13 +65,23 @@ fun dilate_pass_frag(input: vert_out): float4 {
// Based on https://shaderbits.com/blog/uv-dilation by Ryan Brucks
var texel_size: float2 = float2(1.0, 1.0) / constants.tex_size;
var min_dist: float = 10000000.0;
var coord: uint2 = uint2(input.tex * constants.tex_size);
var mask: float = texdilate[coord].r;
//var coord: uint2 = uint2(input.tex * constants.tex_size);
var coordf: float2 = float2(input.tex.x * constants.tex_size.x, input.tex.y * constants.tex_size.y);
var coord: uint2 = uint2(uint(coordf.x), uint(coordf.y));
//var mask: float = texdilate[coord].r;
var mask4: float4 = texdilate[coord];
var mask: float = mask4.r;
if (mask > 0.0) {
discard;
}
var color: float4 = tex[coord];
////
/*
var i: int = 0;
while (i < int(constants.dilate_radius)) {
i += 1;
@@ -100,6 +110,12 @@ fun dilate_pass_frag(input: vert_out): float4 {
j += 1;
}
}
*/
////
return color;
}
+7 -5
View File
@@ -132,6 +132,11 @@ fun layer_merge_frag(input: vert_out): float4 {
lerp3(cola.rgb, cola.rgb + col0.rgb, str),
max(col0.a, cola.a));
}
////
/* TODO: SPIRV
if (constants.blending == 8) { // Overlay
var rr: float;
if (cola.r < 0.5) {
@@ -170,11 +175,6 @@ fun layer_merge_frag(input: vert_out): float4 {
(cola.rgb + str * (float3(2.0, 2.0, 2.0) * (col0.rgb - float3(0.5, 0.5, 0.5)))),
max(col0.a, cola.a));
}
/* TODO: SPIRV
if (constants.blending == 11) {
return float4(
lerp3(cola.rgb, abs3(cola.rgb - col0.rgb), str),
@@ -237,6 +237,8 @@ fun layer_merge_frag(input: vert_out): float4 {
*/
////
return float4(1.0, 1.0, 1.0, 1.0);
}
Binary file not shown.
+1 -1
View File
@@ -109,7 +109,7 @@ fun ssao_blur_pass_frag(input: vert_out): float {
blur_weight_i = 0.008934;
}
var posadd: float = i;
var posadd: float = float(i);
var nor2: float3 = get_nor(sample_lod(gbuffer0, sampler_linear, input.tex + posadd * constants.dir_inv, 0.0).rg);
var influence_factor: float = step(discard_threshold, dot(nor2, nor));
+3 -3
View File
@@ -71,7 +71,7 @@ fun ray_cast(view_ray: float3, dir: float3, vpos: float3): float {
// for (var i: int = 0; i < max_steps; i = i + 1) {
var i: int = 0;
while (i < max_steps) {
while (i < int(max_steps)) {
hit_coord += dir;
var delta: float = get_delta_depth(view_ray, hit_coord);
if (delta > 0.0 && delta < 0.2) {
@@ -88,8 +88,8 @@ fun ray_cast(view_ray: float3, dir: float3, vpos: float3): float {
}
fun tangent(n: float3): float3 {
var t1: float3 = cross(n, float3(0, 0, 1));
var t2: float3 = cross(n, float3(0, 1, 0));
var t1: float3 = cross(n, float3(0.0, 0.0, 1.0));
var t2: float3 = cross(n, float3(0.0, 1.0, 0.0));
if (length(t1) > length(t2)) {
return normalize(t1);
}