7class RelaxationGridBuffer;
111 void on_dispatch_complete(
const std::shared_ptr<VKBuffer>&
buffer)
override;
120 void on_descriptors_created()
override;
131 void on_attach(
const std::shared_ptr<Buffer>&
buffer)
override;
143 void processing_function(
const std::shared_ptr<Buffer>&
buffer)
override;
151 void write_state_descriptors(
const std::shared_ptr<RelaxationGridBuffer>& grid);
164 void write_grid_extent_constants();
176 void serve_snapshot();
178 bool m_dispatched {
false };
193 std::shared_ptr<RelaxationGridBuffer>
m_grid;
std::shared_ptr< NetworkGeometryBuffer > buffer
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 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.