7class RelaxationGridBuffer;
113 void on_descriptors_created()
override;
122 void on_attach(
const std::shared_ptr<Buffer>& buffer)
override;
134 void processing_function(
const std::shared_ptr<Buffer>& buffer)
override;
142 void write_state_descriptors(
const std::shared_ptr<RelaxationGridBuffer>& grid);
155 void write_grid_extent_constants();
165 std::shared_ptr<RelaxationGridBuffer>
m_grid;
Specialized ShaderProcessor for Compute Pipelines.
std::function< bool()> StepPredicate
Callable deciding whether the current cycle advances a generation.
StepPredicate m_step_predicate
Optional gate deciding whether a given cycle advances a generation.
std::shared_ptr< RelaxationGridBuffer > m_grid
The attached RelaxationGridBuffer, cached for descriptor writes and snapshot staging.
void set_step_predicate(StepPredicate predicate)
Set the predicate deciding whether this cycle advances a generation.
std::shared_ptr< VKBuffer > m_snapshot_staging
Lazily-created, reused host-visible staging buffer for snapshot downloads.
ComputeProcessor specialization driving one generation step of a RelaxationGridBuffer per dispatch.
Leading push constant fields every relaxation rule shader receives: grid width then height,...
Complete declarative description of a generated compute shader.