Whether there are other ways to do this that don’t involve a Vec::new() call might depend on how render_data is actually used. Maybe the type that’s needed for the usage isn’t actually &mut Vec<usizize> because perhaps mutating – or at least growing – the Vec doesn’t even happen.
Regarding allocations, note that Vec::new()itself does not yet actually allocate anything. Only of the usage of render_data were to fill the Vec with data, e.g. with .push(…), would allocation happen, but if that is the case, I’d need to question what the imagined solution without any allocations is supposed to look like in the first place.