formatting

This commit is contained in:
jacob 2026-02-24 12:09:38 -06:00
parent e9176147f3
commit 95b182ae1e
5 changed files with 43 additions and 81 deletions

View File

@ -47,9 +47,9 @@ u32 countof(T arr[N])
//~ C -> HLSL interoperability stubs
//- Constructors
#define CompVec2(x, y) { (x), (y) }
#define CompVec3(x, y, z) { (x), (y), (z) }
#define CompVec4(x, y, z, w) { (x), (y), (z), (w) }
#define CompVec2(...) Vec2(__VA_ARGS__)
#define CompVec3(...) Vec3(__VA_ARGS__)
#define CompVec4(...) Vec4(__VA_ARGS__)
#define VEC2(...) Vec2(__VA_ARGS__)
#define VEC3(...) Vec3(__VA_ARGS__)
#define VEC4(...) Vec4(__VA_ARGS__)

View File

@ -1657,8 +1657,6 @@ u32 G_PushRef(G_ArenaHandle arena_handle, G_ResourceHandle resource_handle, G_Re
b32 is_raw = kind == G_RefKind_ByteAddressBuffer;
b32 is_writable = resource->flags & G_ResourceFlag_AllowShaderReadWrite;
b32 ok = 1;
G_D12_Descriptor *descriptor = 0;
if (is_buffer || is_texture)
{

View File

@ -195,7 +195,6 @@ ImplComputeShader2D(V_BackdropDownCS)
}
RWTexture2D<Vec4> bd_down = G_DereferenceRW<Vec4>(frame.backdrop_mips[mip_idx]);
Vec2 down_dims = countof(bd_down);
Vec2 bd_pos = SV_DispatchThreadID + 0.5;
@ -400,7 +399,7 @@ ImplComputeShader(V_SimParticlesCS)
V_SharedFrame frame = G_Dereference<V_SharedFrame>(V_GpuConst_Frame)[0];
Texture2D<P_TileKind> tiles = G_Dereference<P_TileKind>(frame.tiles);
RWStructuredBuffer<V_Particle> particles = G_DereferenceRW<V_Particle>(frame.particles);
RWTexture2D<u32> occluders = G_DereferenceRW<u32>(frame.occluders);
Texture2D<u32> occluders = G_Dereference<u32>(frame.occluders);
u32 particle_idx = SV_DispatchThreadID;
if (particle_idx < V_ParticlesCap)
@ -679,7 +678,7 @@ ImplComputeShader2D(V_ShadeCS)
Texture2D<P_TileKind> tiles = G_Dereference<P_TileKind>(frame.tiles);
Texture2D<Vec4> albedo_tex = G_Dereference<Vec4>(frame.albedo);
RWTexture2D<Vec4> shade_tex = G_DereferenceRW<Vec4>(frame.shade);
RWTexture2D<f32> drynesses = G_DereferenceRW<f32>(frame.drynesses);
Texture2D<f32> drynesses = G_Dereference<f32>(frame.drynesses);
Vec2 shade_pos = SV_DispatchThreadID + 0.5;
Vec2 world_pos = mul(frame.af.shade_to_world, Vec3(shade_pos, 1));
@ -716,12 +715,12 @@ ImplComputeShader2D(V_CompositeCS)
SamplerState bilinear_sampler = G_Dereference(frame.basic_samplers[G_BasicSamplerKind_BilinearClamp]);
Texture2D<Vec4> albedo_tex = G_Dereference<Vec4>(frame.albedo);
RWTexture2D<Vec4> screen_tex = G_DereferenceRW<Vec4>(frame.screen);
RWTexture2D<Vec4> stains = G_DereferenceRW<Vec4>(frame.stains);
RWTexture2D<Vec4> dry_stains = G_DereferenceRW<Vec4>(frame.dry_stains);
RWTexture2D<f32> drynesses = G_DereferenceRW<f32>(frame.drynesses);
Texture2D<Vec4> stains = G_Dereference<Vec4>(frame.stains);
Texture2D<Vec4> dry_stains = G_Dereference<Vec4>(frame.dry_stains);
Texture2D<f32> drynesses = G_Dereference<f32>(frame.drynesses);
Texture2D<P_TileKind> tiles = G_Dereference<P_TileKind>(frame.tiles);
Texture2D<Vec4> backdrop = G_Dereference<Vec4>(frame.backdrop_mips[0]);
RWStructuredBuffer<V_Particle> particles = G_DereferenceRW<V_Particle>(frame.particles);
StructuredBuffer<V_Particle> particles = G_Dereference<V_Particle>(frame.particles);
Vec2 screen_pos = SV_DispatchThreadID.xy + 0.5;
Vec2 world_pos = mul(frame.af.screen_to_world, Vec3(screen_pos, 1));
@ -858,8 +857,8 @@ ImplComputeShader2D(V_CompositeCS)
for (V_ParticleLayer layer = (V_ParticleLayer)0; layer < V_ParticleLayer_COUNT; layer += (V_ParticleLayer)1)
{
RWTexture2D<u32> cells = G_DereferenceRW<u32>(frame.particle_cells[layer]);
RWTexture2D<u32> densities = G_DereferenceRW<u32>(frame.particle_densities[layer]);
Texture2D<u32> cells = G_Dereference<u32>(frame.particle_cells[layer]);
Texture2D<u32> densities = G_Dereference<u32>(frame.particle_densities[layer]);
u32 packed = cells[cell_pos];
V_ParticleKind particle_kind = (V_ParticleKind)((packed >> 24) & 0x7F);
if (particle_kind != V_ParticleKind_None)

View File

@ -1,6 +1,3 @@
////////////////////////////////////////////////////////////
//~ Helpers
V_ParticleDesc V_DescFromParticleKind(V_ParticleKind kind)
{
if (kind < 0 || kind >= V_ParticleKind_COUNT)
@ -10,55 +7,23 @@ V_ParticleDesc V_DescFromParticleKind(V_ParticleKind kind)
V_ParticleDesc result;
{
PERSIST Readonly V_ParticleFlag flags[V_ParticleKind_COUNT] = {
#define X(name, flags, layer, stain_rate, pen_rate, lifetime, prune_speed_threshold, base_color, dry_factor) flags,
V_ParticleDesc descs[V_ParticleKind_COUNT] = {
#define X(name, flags, layer, stain_rate, pen_rate, lifetime, prune_speed_threshold, base_color, dry_factor) \
{ \
V_ParticleKind_##name, \
flags, \
layer, \
stain_rate, \
pen_rate, \
lifetime, \
prune_speed_threshold, \
LinearFromSrgb(base_color), \
LinearFromSrgb(dry_factor) \
},
V_ParticlesXList(X)
#undef X
};
PERSIST Readonly V_ParticleLayer layers[V_ParticleKind_COUNT] = {
#define X(name, flags, layer, stain_rate, pen_rate, lifetime, prune_speed_threshold, base_color, dry_factor) layer,
V_ParticlesXList(X)
#undef X
};
PERSIST Readonly f32 stain_rates[V_ParticleKind_COUNT] = {
#define X(name, flags, layer, stain_rate, pen_rate, lifetime, prune_speed_threshold, base_color, dry_factor) stain_rate,
V_ParticlesXList(X)
#undef X
};
PERSIST Readonly f32 pen_rates[V_ParticleKind_COUNT] = {
#define X(name, flags, layer, stain_rate, pen_rate, lifetime, prune_speed_threshold, base_color, dry_factor) pen_rate,
V_ParticlesXList(X)
#undef X
};
PERSIST Readonly f32 lifetimes[V_ParticleKind_COUNT] = {
#define X(name, flags, layer, stain_rate, pen_rate, lifetime, prune_speed_threshold, base_color, dry_factor) lifetime,
V_ParticlesXList(X)
#undef X
};
PERSIST Readonly f32 prune_speed_thresholds[V_ParticleKind_COUNT] = {
#define X(name, flags, layer, stain_rate, pen_rate, lifetime, prune_speed_threshold, base_color, dry_factor) prune_speed_threshold,
V_ParticlesXList(X)
#undef X
};
PERSIST Readonly Vec4 base_colors[V_ParticleKind_COUNT] = {
#define X(name, flags, layer, stain_rate, pen_rate, lifetime, prune_speed_threshold, base_color, dry_factor) base_color,
V_ParticlesXList(X)
#undef X
};
PERSIST Readonly Vec4 dry_factor[V_ParticleKind_COUNT] = {
#define X(name, flags, layer, stain_rate, pen_rate, lifetime, prune_speed_threshold, base_color, dry_factor) dry_factor,
V_ParticlesXList(X)
#undef X
};
result.kind = kind;
result.flags = flags[kind];
result.layer = layers[kind];
result.stain_rate = stain_rates[kind];
result.pen_rate = pen_rates[kind];
result.lifetime = lifetimes[kind];
result.prune_speed_threshold = prune_speed_thresholds[kind];
result.base_color = LinearFromSrgb(base_colors[kind]);
result.dry_factor = LinearFromSrgb(dry_factor[kind]);
result = descs[kind];
}
return result;
}

View File

@ -52,8 +52,8 @@ Enum(V_ParticleLayer)
/* Stain rate, pen chance */ 30, 0, \
/* Lifetime */ Inf, \
/* Prune speed threshold */ 0.01, \
/* Base color */ CompVec4(0, 0, 0, 0), \
/* Dry color factor */ CompVec4(1, 1, 1, 1) \
/* Base color */ VEC4(0, 0, 0, 0), \
/* Dry color factor */ VEC4(1, 1, 1, 1) \
) \
\
/* Ground particles */ \
@ -64,8 +64,8 @@ Enum(V_ParticleLayer)
/* Stain rate, pen chance */ 100, 0.25, \
/* Lifetime */ Inf, \
/* Prune speed threshold */ 0.5, \
/* Base color */ CompVec4(0.6, 0.1, 0.1, 0.05), \
/* Dry color factor */ CompVec4(0.4, 0.4, 0.4, 1) \
/* Base color */ VEC4(0.6, 0.1, 0.1, 0.05), \
/* Dry color factor */ VEC4(0.4, 0.4, 0.4, 1) \
) \
X( \
/* Name */ BloodDebris, \
@ -74,8 +74,8 @@ Enum(V_ParticleLayer)
/* Stain rate, pen chance */ 30, 0, \
/* Lifetime */ Inf, \
/* Prune speed threshold */ 0.01, \
/* Base color */ CompVec4(0.5, 0.1, 0.1, 0.8), \
/* Dry color factor */ CompVec4(1, 1, 1, 1) \
/* Base color */ VEC4(0.5, 0.1, 0.1, 0.8), \
/* Dry color factor */ VEC4(1, 1, 1, 1) \
) \
X( \
/* Name */ Debris, \
@ -84,8 +84,8 @@ Enum(V_ParticleLayer)
/* Stain rate, pen chance */ 0, 0, \
/* Lifetime */ Inf, \
/* Prune speed threshold */ 0.01, \
/* Base color */ CompVec4(0.4, 0.3, 0.2, 1), \
/* Dry color factor */ CompVec4(1, 1, 1, 1) \
/* Base color */ VEC4(0.4, 0.3, 0.2, 1), \
/* Dry color factor */ VEC4(1, 1, 1, 1) \
) \
X( \
/* Name */ Fire, \
@ -94,8 +94,8 @@ Enum(V_ParticleLayer)
/* Stain rate, pen chance */ 0, 0, \
/* Lifetime */ Inf, \
/* Prune speed threshold */ 0.1, \
/* Base color */ CompVec4(2, 0.5, 0, 1), \
/* Dry color factor */ CompVec4(0.2, 0.1, 0.0, 1) \
/* Base color */ VEC4(2, 0.5, 0, 1), \
/* Dry color factor */ VEC4(0.2, 0.1, 0.0, 1) \
) \
\
/* Air particles */ \
@ -106,8 +106,8 @@ Enum(V_ParticleLayer)
/* Stain rate, pen chance */ 0, 0, \
/* Lifetime */ 0.075, \
/* Prune speed threshold */ 0.01, \
/* Base color */ CompVec4(0.8, 0.6, 0.2, 0.25), \
/* Dry color factor */ CompVec4(1, 1, 1, 1) \
/* Base color */ VEC4(0.8, 0.6, 0.2, 0.25), \
/* Dry color factor */ VEC4(1, 1, 1, 1) \
) \
X( \
/* Name */ Smoke, \
@ -116,8 +116,8 @@ Enum(V_ParticleLayer)
/* Stain rate, pen chance */ 0, 0, \
/* Lifetime */ Inf, \
/* Prune speed threshold */ 0.01, \
/* Base color */ CompVec4(0.25, 0.25, 0.25, 0.75), \
/* Dry color factor */ CompVec4(1, 1, 1, 1) \
/* Base color */ VEC4(0.25, 0.25, 0.25, 0.75), \
/* Dry color factor */ VEC4(1, 1, 1, 1) \
) \
\
/* Test particles */ \
@ -128,8 +128,8 @@ Enum(V_ParticleLayer)
/* Stain rate, pen chance */ 0, 0, \
/* Lifetime */ Inf, \
/* Prune speed threshold */ 0.01, \
/* Base color */ CompVec4(1, 1, 0, 1), \
/* Dry color factor */ CompVec4(1, 1, 1, 1) \
/* Base color */ VEC4(1, 1, 0, 1), \
/* Dry color factor */ VEC4(1, 1, 1, 1) \
) \
/* ----------------------------------------------------------------------------------------------------------------------------------- */
@ -156,9 +156,9 @@ Struct(V_Emitter)
// TODO: Pack this efficiently
Struct(V_Particle)
{
i32 kind; // If >= 0, then map to V_ParticleKind. Otherwize initialize particle using emitter at index [abs(kind) - 1]
i32 kind; // If >= 0, then this maps to V_ParticleKind. Otherwise it represent a particle to be initialized using emitter at index [abs(kind) - 1]
u32 origin_occluder;
u32 prev_occluder; // TODO: Remove this
u32 prev_occluder; // TODO: Remove this
f32 life;
f32 stain_accum;
u32 cells_count;