radv: add radv_handle_color_image_transition() helper
To handle CMASK, FMASK and DCC transitions in the same place. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Niuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
parent
c6b1f1c97a
commit
6967d32beb
|
@ -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(
|
||||
|
|
Loading…
Reference in New Issue