 
 	instance_index_interp = instance_index;
 
-	SceneData scene_data = scene_data_block.data;
 	mat4 model_matrix = instances.data[instance_index].transform;
 #if defined(MOTION_VECTORS)
 	vertex_shader(instance_index, is_multimesh, scene_data_block.prev_data, instances.data[instance_index].prev_transform, prev_screen_position);
-	vertex_shader(instance_index, is_multimesh, scene_data, model_matrix, screen_position);
+	vertex_shader(instance_index, is_multimesh, scene_data_block.data, model_matrix, screen_position);
 #else
 	vec4 screen_position;
-	vertex_shader(instance_index, is_multimesh, scene_data, model_matrix, screen_position);
+	vertex_shader(instance_index, is_multimesh, scene_data_block.data, model_matrix, screen_position);
 #endif
 }
 


#endif //!MODE_RENDER DEPTH

void main() {
#ifdef MODE_DUAL_PARABOLOID

	if (dp_clip > 0.0)
		discard;
#endif

	SceneData scene_data = scene_data_block.data;
	SceneData prev_scene_data = scene_data_block.prev_data;
	uint instance_index = instance_index_interp;

	//lay out everything, whatever is unused is optimized away anyway

#endif //MODE_RENDER_DEPTH
#ifdef MOTION_VECTORS
	vec2 position_clip = (screen_position.xy / screen_position.w) - scene_data.taa_jitter;
	vec2 prev_position_clip = (prev_screen_position.xy / prev_screen_position.w) - scene_data_block.prev_data.taa_jitter;

	vec2 position_uv = position_clip * vec2(0.5, 0.5);
	vec2 prev_position_uv = prev_position_clip * vec2(0.5, 0.5);
