diff options
author | Bas Nieuwenhuizen <[email protected]> | 2019-08-04 23:48:43 +0200 |
---|---|---|
committer | Bas Nieuwenhuizen <[email protected]> | 2019-08-07 02:13:07 +0200 |
commit | 66131ceb8bc9f3a3e17a73d90ef520694e3b50b6 (patch) | |
tree | c0a3bf988e166fb8884a6686bc341bcf11d73d42 /src/amd/vulkan/radv_meta_resolve.c | |
parent | a171a6663d779da4e685e028336f817d855dd4d8 (diff) |
radv: Pass through render loop detection to internal layout decisions.
And do nothing with it yet.
Everything outside a renderpass has no render loop.
Reviewed-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/amd/vulkan/radv_meta_resolve.c')
-rw-r--r-- | src/amd/vulkan/radv_meta_resolve.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/amd/vulkan/radv_meta_resolve.c b/src/amd/vulkan/radv_meta_resolve.c index e795720fd0b..063c48c8f1b 100644 --- a/src/amd/vulkan/radv_meta_resolve.c +++ b/src/amd/vulkan/radv_meta_resolve.c @@ -334,6 +334,7 @@ static void radv_pick_resolve_method_images(struct radv_image *src_image, VkFormat src_format, struct radv_image *dest_image, VkImageLayout dest_image_layout, + bool dest_render_loop, struct radv_cmd_buffer *cmd_buffer, enum radv_resolve_method *method) @@ -352,7 +353,8 @@ static void radv_pick_resolve_method_images(struct radv_image *src_image, dest_image->info.array_size > 1) *method = RESOLVE_COMPUTE; - if (radv_layout_dcc_compressed(dest_image, dest_image_layout, queue_mask)) { + if (radv_layout_dcc_compressed(dest_image, dest_image_layout, + dest_render_loop, queue_mask)) { *method = RESOLVE_FRAGMENT; } else if (dest_image->planes[0].surface.micro_tile_mode != src_image->planes[0].surface.micro_tile_mode) { @@ -433,7 +435,7 @@ void radv_CmdResolveImage( radv_pick_resolve_method_images(src_image, src_image->vk_format, dest_image, dest_image_layout, - cmd_buffer, &resolve_method); + false, cmd_buffer, &resolve_method); if (resolve_method == RESOLVE_FRAGMENT) { radv_meta_resolve_fragment_image(cmd_buffer, @@ -649,6 +651,7 @@ radv_cmd_buffer_resolve_subpass(struct radv_cmd_buffer *cmd_buffer) src_iview->vk_format, dst_iview->image, dst_att.layout, + dst_att.in_render_loop, cmd_buffer, &resolve_method); @@ -700,6 +703,7 @@ radv_cmd_buffer_resolve_subpass(struct radv_cmd_buffer *cmd_buffer) radv_pick_resolve_method_images(src_img, src_iview->vk_format, dst_img, dest_att.layout, + dest_att.in_render_loop, cmd_buffer, &resolve_method); if (resolve_method == RESOLVE_FRAGMENT) { |