mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 02:58:05 +02:00
radv: synchronize after performing a separate depth/stencil fast clears
For depth+stencil images, the driver might use an optimized path if only one aspect is cleared. It either clears the depth or the stencil part of HTILE. Because the two separate aspects might use the same HTILE memory we have to synchronize. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
parent
dadd609664
commit
b603cc8c84
1 changed files with 10 additions and 0 deletions
|
|
@ -1108,6 +1108,16 @@ radv_fast_clear_depth(struct radv_cmd_buffer *cmd_buffer,
|
|||
htile_mask);
|
||||
}
|
||||
|
||||
if (iview->image->planes[0].surface.has_stencil &&
|
||||
!(aspects == (VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT))) {
|
||||
/* Synchronize after performing a depth-only or a stencil-only
|
||||
* fast clear because the driver uses an optimized path which
|
||||
* performs a read-modify-write operation, and the two separate
|
||||
* aspects might use the same HTILE memory.
|
||||
*/
|
||||
cmd_buffer->state.flush_bits |= flush_bits;
|
||||
}
|
||||
|
||||
radv_update_ds_clear_metadata(cmd_buffer, iview, clear_value, aspects);
|
||||
if (post_flush) {
|
||||
*post_flush |= flush_bits;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue