// Copyright 2023 the Vello Authors // SPDX-License-Identifier: Apache-2.0 OR MIT OR Unlicense // Set up dispatch size for path tiling stage. #import bump @group(0) @binding(0) var bump: BumpAllocators; @group(0) @binding(1) var indirect: IndirectCount; @group(0) @binding(2) var ptcl: array; // Partition size for path tiling stage let WG_SIZE = 256u; @compute @workgroup_size(1) fn main() { if atomicLoad(&bump.failed) != 0u { indirect.count_x = 0u; // signal fine rasterizer that failure happened (it doesn't bind bump) ptcl[0] = ~0u; } else { let segments = atomicLoad(&bump.seg_counts); indirect.count_x = (segments + (WG_SIZE - 1u)) / WG_SIZE; } indirect.count_y = 1u; indirect.count_z = 1u; }