To handle CMASK, FMASK and DCC transitions in the same place. Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com> --- src/amd/vulkan/radv_cmd_buffer.c | 34 +++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-)
diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index 92c00f5394..270dcd5a9e 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -3819,6 +3819,28 @@ static void radv_handle_dcc_image_transition(struct radv_cmd_buffer *cmd_buffer, } } +/** + * Handle color image transitions for DCC/FMASK/CMASK. + */ +static void radv_handle_color_image_transition(struct radv_cmd_buffer *cmd_buffer, + struct radv_image *image, + VkImageLayout src_layout, + VkImageLayout dst_layout, + unsigned src_queue_mask, + unsigned dst_queue_mask, + const VkImageSubresourceRange *range) +{ + if (radv_image_has_dcc(image)) + radv_handle_dcc_image_transition(cmd_buffer, image, src_layout, + dst_layout, src_queue_mask, + dst_queue_mask, range); + + if (radv_image_has_cmask(image) || radv_image_has_fmask(image)) + radv_handle_cmask_image_transition(cmd_buffer, image, src_layout, + dst_layout, src_queue_mask, + dst_queue_mask, range); +} + static void radv_handle_image_transition(struct radv_cmd_buffer *cmd_buffer, struct radv_image *image, VkImageLayout src_layout, @@ -3854,15 +3876,9 @@ static void radv_handle_image_transition(struct radv_cmd_buffer *cmd_buffer, dst_queue_mask, range, pending_clears); - if (radv_image_has_dcc(image)) - radv_handle_dcc_image_transition(cmd_buffer, image, src_layout, - dst_layout, src_queue_mask, - dst_queue_mask, range); - - if (radv_image_has_cmask(image) || radv_image_has_fmask(image)) - radv_handle_cmask_image_transition(cmd_buffer, image, src_layout, - dst_layout, src_queue_mask, - dst_queue_mask, range); + radv_handle_color_image_transition(cmd_buffer, image, src_layout, + dst_layout, src_queue_mask, + dst_queue_mask, range); } void radv_CmdPipelineBarrier( -- 2.17.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev