### Godot version

4.0beta10 (4.0beta11)

### System information

Windows 11, Vulkan API 1.3.224 - Vulkan NVIDIA GeForce RTX 3080 Ti

### Issue description

GPUParticle2D seems to jitter since Godot Beta 10 (I have the same problem Godot Beta 11).

Here is what I expect (screen capture of the project in Godot Beta 9):
![Animation](https://user-images.githubusercontent.com/6784639/211841608-c7b268ab-98c6-4c2c-9e42-b7730e44ea20.gif)

Here is what I got in Godot 4.0beta10 and Godot 4.0beta11:
![Animation2](https://user-images.githubusercontent.com/6784639/211841773-bdfc7c45-c262-4be9-b5b7-18856ddcb6f3.gif)


### Steps to reproduce

1. Make 2DScene
2. Add GPUParticle2D
3. Set the Process Material of this GPUParticle2D to a new ParticleProcessMaterial
4. Move the particle around (or make a animationPlayer to move the Particle)

### Minimal reproduction project

[TestProject.zip](https://github.com/godotengine/godot/files/10393668/TestProject.zip)

int32_t zero[4] = { 0, sub_emitter->amount, 0, 0 };
		RD::get_singleton()->buffer_update(sub_emitter->emission_storage_buffer, 0, sizeof(uint32_t) * 4, zero);
		push_constant.can_emit = true;
		if (sub_emitter->emitting) {
			sub_emitter->emitting = false;
			sub_emitter->clear = true; 
		}
		
		sub_emitter->inactive = false;
		sub_emitter->inactive_time = 0;
		sub_emitter->force_sub_emit = true;
	} else {
		push_constant.can_emit = false;
	}
	if (p_particles->emission_buffer && p_particles->emission_buffer->particle_count) {
		RD::get_singleton()->buffer_update(p_particles->emission_storage_buffer, 0, sizeof(uint32_t) * 4 + sizeof(ParticleEmissionBuffer::Data) * p_particles->emission_buffer->particle_count, p_particles->emission_buffer);
		p_particles->emission_buffer->particle_count = 0;
	}
	p_particles->clear = false;
	if (p_particles->trail_params.size() > 1) {
		
		for (uint32_t i = 0; i < p_particles->trail_params.size(); i++) {
			uint32_t src_idx = i * p_particles->frame_history.size() / p_particles->trail_params.size();
			p_particles->trail_params[i] = p_particles->frame_history[src_idx];
		}
	} else {
		p_particles->trail_params[0] = p_particles->frame_history[0];
	}
	RD::get_singleton()->buffer_update(p_particles->frame_params_buffer, 0, sizeof(ParticlesFrameParams) * p_particles->trail_params.size(), p_particles->trail_params.ptr());