You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-04 12:00:25 +00:00
Acyclic Command Graph for RenderingDevice.
Adds a new system to automatically reorder commands, perform layout transitions and insert synchronization barriers based on the commands issued to RenderingDevice.
This commit is contained in:
@@ -525,7 +525,7 @@ void SSEffects::downsample_depth(Ref<RenderSceneBuffersRD> p_render_buffers, uin
|
||||
RD::get_singleton()->compute_list_add_barrier(compute_list);
|
||||
RD::get_singleton()->draw_command_end_label();
|
||||
|
||||
RD::get_singleton()->compute_list_end(RD::BARRIER_MASK_COMPUTE);
|
||||
RD::get_singleton()->compute_list_end();
|
||||
|
||||
ss_effects.used_full_mips_last_frame = use_full_mips;
|
||||
ss_effects.used_half_size_last_frame = use_half_size;
|
||||
@@ -950,10 +950,10 @@ void SSEffects::screen_space_indirect_lighting(Ref<RenderSceneBuffersRD> p_rende
|
||||
|
||||
RD::get_singleton()->draw_command_end_label(); // SSIL
|
||||
|
||||
RD::get_singleton()->compute_list_end(RD::BARRIER_MASK_TRANSFER); // Zeroing importance_map_load_counter depends on us.
|
||||
RD::get_singleton()->compute_list_end();
|
||||
|
||||
int zero[1] = { 0 };
|
||||
RD::get_singleton()->buffer_update(ssil.importance_map_load_counter, 0, sizeof(uint32_t), &zero, 0); //no barrier
|
||||
RD::get_singleton()->buffer_update(ssil.importance_map_load_counter, 0, sizeof(uint32_t), &zero);
|
||||
}
|
||||
|
||||
/* SSAO */
|
||||
@@ -1332,10 +1332,10 @@ void SSEffects::generate_ssao(Ref<RenderSceneBuffersRD> p_render_buffers, SSAORe
|
||||
RD::get_singleton()->draw_command_end_label(); // Interleave
|
||||
}
|
||||
RD::get_singleton()->draw_command_end_label(); //SSAO
|
||||
RD::get_singleton()->compute_list_end(RD::BARRIER_MASK_TRANSFER); // Zeroing importance_map_load_counter depends on us.
|
||||
RD::get_singleton()->compute_list_end();
|
||||
|
||||
int zero[1] = { 0 };
|
||||
RD::get_singleton()->buffer_update(ssao.importance_map_load_counter, 0, sizeof(uint32_t), &zero, 0); //no barrier
|
||||
RD::get_singleton()->buffer_update(ssao.importance_map_load_counter, 0, sizeof(uint32_t), &zero);
|
||||
}
|
||||
|
||||
/* Screen Space Reflection */
|
||||
@@ -1394,7 +1394,7 @@ void SSEffects::screen_space_reflection(Ref<RenderSceneBuffersRD> p_render_buffe
|
||||
scene_data.eye_offset[v][3] = 0.0;
|
||||
}
|
||||
|
||||
RD::get_singleton()->buffer_update(ssr.ubo, 0, sizeof(ScreenSpaceReflectionSceneData), &scene_data, RD::BARRIER_MASK_COMPUTE);
|
||||
RD::get_singleton()->buffer_update(ssr.ubo, 0, sizeof(ScreenSpaceReflectionSceneData), &scene_data);
|
||||
}
|
||||
|
||||
uint32_t pipeline_specialization = 0;
|
||||
|
||||
Reference in New Issue
Block a user