Mesa (staging/21.0): radv: Flush caches for shader read operations.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Apr 5 23:28:00 UTC 2021


Module: Mesa
Branch: staging/21.0
Commit: 350406a76d426a209acea8facbcb5b0f0922e723
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=350406a76d426a209acea8facbcb5b0f0922e723

Author: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Date:   Mon Apr  5 17:48:56 2021 +0200

radv: Flush caches for shader read operations.

As part of the fmask expand we very much read from the images as
well ...

Fixes: 8f8d72af555 ("radv: Use access helpers for flushing with meta operations.")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10042>
(cherry picked from commit 57511d145878fd4725ce5186dcfe5c2ad93baedf)

---

 .pick_status.json                       | 2 +-
 src/amd/vulkan/radv_meta_fmask_expand.c | 4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/.pick_status.json b/.pick_status.json
index 36672319316..dce06606548 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -31,7 +31,7 @@
         "description": "radv: Flush caches for shader read operations.",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "master_sha": null,
         "because_sha": "8f8d72af555c2f4d7a44107bf52602571fc0c4d2"
     },
diff --git a/src/amd/vulkan/radv_meta_fmask_expand.c b/src/amd/vulkan/radv_meta_fmask_expand.c
index a60d19654d6..8c810debb59 100644
--- a/src/amd/vulkan/radv_meta_fmask_expand.c
+++ b/src/amd/vulkan/radv_meta_fmask_expand.c
@@ -114,7 +114,9 @@ radv_expand_fmask_image_inplace(struct radv_cmd_buffer *cmd_buffer,
 	radv_CmdBindPipeline(radv_cmd_buffer_to_handle(cmd_buffer),
 			     VK_PIPELINE_BIND_POINT_COMPUTE, pipeline);
 
-	cmd_buffer->state.flush_bits |= radv_dst_access_flush(cmd_buffer, VK_ACCESS_SHADER_WRITE_BIT, image);
+	cmd_buffer->state.flush_bits |=
+		radv_dst_access_flush(cmd_buffer, VK_ACCESS_SHADER_READ_BIT |
+						  VK_ACCESS_SHADER_WRITE_BIT, image);
 
 	for (unsigned l = 0; l < radv_get_layerCount(image, subresourceRange); l++) {
 		struct radv_image_view iview;



More information about the mesa-commit mailing list