mirror of
https://github.com/godotengine/godot.git
synced 2025-12-08 06:09:55 +00:00
Fix buffer updates going to the wrong cmd buffer if barriers were 0
From what I could see only SSAO & SSIL were affected when they both
call:
int zero[1] = { 0 };
RD::get_singleton()->buffer_update(ssao.importance_map_load_counter, 0,
sizeof(uint32_t), &zero, 0);
int zero[1] = { 0 };
RD::get_singleton()->buffer_update(ssil.importance_map_load_counter, 0,
sizeof(uint32_t), &zero, 0);
Also documented what setup_command_buffer & draw_command_buffer are for.
This commit is contained in:
parent
f71f4b80e3
commit
c9ec1f7727
3 changed files with 10 additions and 5 deletions
|
|
@ -950,7 +950,7 @@ 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_NO_BARRIER);
|
||||
RD::get_singleton()->compute_list_end(RD::BARRIER_MASK_TRANSFER); // Zeroing importance_map_load_counter depends on us.
|
||||
|
||||
int zero[1] = { 0 };
|
||||
RD::get_singleton()->buffer_update(ssil.importance_map_load_counter, 0, sizeof(uint32_t), &zero, 0); //no barrier
|
||||
|
|
@ -1332,7 +1332,7 @@ 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_NO_BARRIER); //wait for upcoming transfer
|
||||
RD::get_singleton()->compute_list_end(RD::BARRIER_MASK_TRANSFER); // Zeroing importance_map_load_counter depends on us.
|
||||
|
||||
int zero[1] = { 0 };
|
||||
RD::get_singleton()->buffer_update(ssao.importance_map_load_counter, 0, sizeof(uint32_t), &zero, 0); //no barrier
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue