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();
170 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 reads.
void set_step_predicate(StepPredicate predicate)
Set the predicate deciding whether this cycle advances a generation.
std::shared_ptr< VKBuffer > m_snapshot_staging
Fallback staging buffer for download_back_buffer, unused while back_buffers stays HostVisible | HostC...
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.