### Godot version

4.0 beta 17

### System information

Windows 10

### Issue description

Setting the color attribute in ParticleProcessMaterial for GPUParticles2D does not work with compatibility renderer
(works with forward+)

### Steps to reproduce

Set renderer to compatibility
Create a GPUParticles2D
Add ParticleProcessMaterial and set Color attribute (creating a particle shader and setting the `COLOR` is the same)


### Minimal reproduction project

[Particle2DColor.zip](https://github.com/godotengine/godot/files/10678236/Particle2DColor.zip)

Color col = primitive->colors[j + offset] * base_color;
						state.instance_data_array[r_index].colors[j * 2 + 0] = (uint32_t(Math::make_half_float(col.g)) << 16) | Math::make_half_float(col.r);
						state.instance_data_array[r_index].colors[j * 2 + 1] = (uint32_t(Math::make_half_float(col.a)) << 16) | Math::make_half_float(col.b);
					}
					_add_to_batch(r_index, r_batch_broken);
				}
			} break;
			case Item::Command::TYPE_MESH:
			case Item::Command::TYPE_MULTIMESH:
			case Item::Command::TYPE_PARTICLES: {
				
				_new_batch(r_batch_broken);
				Color modulate(1, 1, 1, 1);
				state.canvas_instance_batches[state.current_batch_index].shader_variant = CanvasShaderGLES3::MODE_ATTRIBUTES;
				if (c->type == Item::Command::TYPE_MESH) {
					const Item::CommandMesh *m = static_cast<const Item::CommandMesh *>(c);
					state.canvas_instance_batches[state.current_batch_index].tex = m->texture;
					_update_transform_2d_to_mat2x3(base_transform * draw_transform * m->transform, state.instance_data_array[r_index].world);
					modulate = m->modulate;
				} else if (c->type == Item::Command::TYPE_MULTIMESH) {
					const Item::CommandMultiMesh *mm = static_cast<const Item::CommandMultiMesh *>(c);
					state.canvas_instance_batches[state.current_batch_index].tex = mm->texture;
					state.canvas_instance_batches[state.current_batch_index].shader_variant = CanvasShaderGLES3::MODE_INSTANCED;
					if (GLES3::MeshStorage::get_singleton()->multimesh_uses_colors(mm->multimesh)) {
						state.instance_data_array[r_index].flags |= FLAGS_INSTANCING_HAS_COLORS;
					}
					if (GLES3::MeshStorage::get_singleton()->multimesh_uses_custom_data(mm->multimesh)) {
						state.instance_data_array[r_index].flags |= FLAGS_INSTANCING_HAS_CUSTOM_DATA;
					}
				} else if (c->type == Item::Command::TYPE_PARTICLES) {