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

View File

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

View File

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