Skip to content

Commit

Permalink
Merge pull request #61850 from JFonS/fixx_taa_macos
Browse files Browse the repository at this point in the history
  • Loading branch information
akien-mga authored Jun 9, 2022
2 parents a2c016e + 36382ab commit b36447f
Showing 1 changed file with 14 additions and 13 deletions.
27 changes: 14 additions & 13 deletions servers/rendering/renderer_rd/shaders/scene_forward_clustered.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -384,14 +384,13 @@ void main() {

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
}

Expand Down Expand Up @@ -630,15 +629,7 @@ uint cluster_get_range_clip_mask(uint i, uint z_min, uint z_max) {

#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;
void fragment_shader(in SceneData scene_data) {
uint instance_index = instance_index_interp;

//lay out everything, whatever is unused is optimized away anyway
Expand Down Expand Up @@ -2048,11 +2039,21 @@ void main() {
#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) - prev_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);

motion_vector = position_uv - prev_position_uv;
#endif
}

void main() {
#ifdef MODE_DUAL_PARABOLOID

if (dp_clip > 0.0)
discard;
#endif

fragment_shader(scene_data_block.data);
}

0 comments on commit b36447f

Please sign in to comment.