fn decompose_repeated_gradient(
    prim_vis: &PrimitiveVisibility,
    prim_local_rect: &LayoutRect,
    prim_spatial_node_index: SpatialNodeIndex,
    stretch_size: &LayoutSize,
    tile_spacing: &LayoutSize,
    frame_state: &mut FrameBuildingState<'_>,
    gradient_tiles: &mut Storage<VisibleGradientTile>,
    spatial_tree: &SpatialTree,
    callback: Option<&mut dyn FnMut(&LayoutRect, GpuDataRequest<'_>)>
) -> Range<VisibleGradientTile>