zero pipeline-desc memory for hashing

This commit is contained in:
jacob 2026-03-02 17:04:16 -08:00
parent 8e9f7b4945
commit 91c7ef684e
3 changed files with 16 additions and 6 deletions

View File

@ -760,7 +760,7 @@ String G_D12_NameFromObject(Arena *arena, ID3D12Object *object)
G_D12_Pipeline *G_D12_PipelineFromDesc(G_D12_PipelineDesc desc)
{
u64 hash = HashString(StringFromStruct(&desc));
u64 hash = G_D12_HashFromPipelineDesc(desc);
// Fetch pipeline from cache
G_D12_Pipeline *pipeline = 0;
@ -837,6 +837,8 @@ G_D12_Pipeline *G_D12_PipelineFromDesc(G_D12_PipelineDesc desc)
);
}
LogInfoF("Creating pipeline %F", FmtString(pipeline_name));
// Create PSO
ID3D12PipelineState *pso = 0;
if (ok)
@ -1005,6 +1007,8 @@ G_D12_Pipeline *G_D12_PipelineFromDesc(G_D12_PipelineDesc desc)
Panic(error_str);
}
LogInfoF("Created pipeline %F", FmtString(pipeline_name));
pipeline->pso = pso;
pipeline->error = error_str;
pipeline->ok = ok;
@ -1014,6 +1018,11 @@ G_D12_Pipeline *G_D12_PipelineFromDesc(G_D12_PipelineDesc desc)
return pipeline;
}
u64 G_D12_HashFromPipelineDesc(G_D12_PipelineDesc desc)
{
return HashString(StringFromStruct(&desc));
}
////////////////////////////////////////////////////////////
//~ Queue
@ -2171,7 +2180,6 @@ G_D12_StagingRegionNode *G_D12_PushStagingRegion(G_D12_CmdList *cl, u64 size)
if (old_ring)
{
// FIXME: Queue old ring for deletion with command list
DEBUGBREAKABLE;
}
}
Unlock(&lock);
@ -2582,7 +2590,8 @@ i64 G_CommitCommandList(G_CommandListHandle cl_handle)
// Fetch pipeline
G_D12_Pipeline *pipeline = 0;
{
G_D12_PipelineDesc pipeline_desc = Zi;
G_D12_PipelineDesc pipeline_desc;
ZeroStruct(&pipeline_desc);
pipeline_desc.cs = cmd->compute.cs;
pipeline = G_D12_PipelineFromDesc(pipeline_desc);
}
@ -2638,7 +2647,8 @@ i64 G_CommitCommandList(G_CommandListHandle cl_handle)
// Fetch pipeline
G_D12_Pipeline *pipeline = 0;
{
G_D12_PipelineDesc pipeline_desc = Zi;
G_D12_PipelineDesc pipeline_desc;
ZeroStruct(&pipeline_desc);
pipeline_desc.vs = cmd->rasterize.vs;
pipeline_desc.ps = cmd->rasterize.ps;
{

View File

@ -31,6 +31,7 @@
////////////////////////////////////////////////////////////
//~ Pipeline types
// NOTE: Must be zero initialized (including padding bits) for hashing
Struct(G_D12_PipelineDesc)
{
VertexShader vs;
@ -534,6 +535,7 @@ String G_D12_NameFromObject(Arena *arena, ID3D12Object *object);
//~ Pipeline
G_D12_Pipeline *G_D12_PipelineFromDesc(G_D12_PipelineDesc desc);
u64 G_D12_HashFromPipelineDesc(G_D12_PipelineDesc desc);
////////////////////////////////////////////////////////////
//~ Queue

View File

@ -436,8 +436,6 @@ void S_TickForever(WaveLaneCtx *lane)
bot->control.move.y = SinF32(move_t);
bot->control.move.y += move_bias;
bot->control.look = MulVec2(VEC2(CosF32(look_t), SinF32(look_t)), 3);
DEBUGBREAKABLE;
}
}
}