Mesa (master): radv/aco: use ACO for GS copy shaders

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Jan 24 14:01:19 UTC 2020


Module: Mesa
Branch: master
Commit: 72e9a2344346f4e2eff240e475463eeb046fe9be
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=72e9a2344346f4e2eff240e475463eeb046fe9be

Author: Rhys Perry <pendingchaos02 at gmail.com>
Date:   Fri Nov 15 12:42:46 2019 +0000

radv/aco: use ACO for GS copy shaders

Signed-off-by: Rhys Perry <pendingchaos02 at gmail.com>
Reviewed-by: Daniel Schürmann <daniel at schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2421>

---

 src/amd/vulkan/radv_pipeline.c | 3 ++-
 src/amd/vulkan/radv_shader.c   | 5 +++--
 src/amd/vulkan/radv_shader.h   | 3 ++-
 3 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c
index 71ffa1b47ec..62244902a47 100644
--- a/src/amd/vulkan/radv_pipeline.c
+++ b/src/amd/vulkan/radv_pipeline.c
@@ -2881,7 +2881,8 @@ void radv_create_shaders(struct radv_pipeline *pipeline,
 			pipeline->gs_copy_shader = radv_create_gs_copy_shader(
 					device, nir[MESA_SHADER_GEOMETRY], &info,
 					&gs_copy_binary, keep_executable_info,
-					keys[MESA_SHADER_GEOMETRY].has_multiview_view_index);
+					keys[MESA_SHADER_GEOMETRY].has_multiview_view_index,
+					use_aco);
 		}
 
 		if (!keep_executable_info && pipeline->gs_copy_shader) {
diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c
index 7eea501fbd3..dc9b91ff922 100644
--- a/src/amd/vulkan/radv_shader.c
+++ b/src/amd/vulkan/radv_shader.c
@@ -1214,14 +1214,15 @@ radv_create_gs_copy_shader(struct radv_device *device,
 			   struct radv_shader_info *info,
 			   struct radv_shader_binary **binary_out,
 			   bool keep_shader_info,
-			   bool multiview)
+			   bool multiview, bool use_aco)
 {
 	struct radv_nir_compiler_options options = {0};
 
+	options.explicit_scratch_args = use_aco;
 	options.key.has_multiview_view_index = multiview;
 
 	return shader_variant_compile(device, NULL, &shader, 1, MESA_SHADER_VERTEX,
-				      info, &options, true, keep_shader_info, false, binary_out);
+				      info, &options, true, keep_shader_info, use_aco, binary_out);
 }
 
 void
diff --git a/src/amd/vulkan/radv_shader.h b/src/amd/vulkan/radv_shader.h
index 9544f17d461..3001f494cef 100644
--- a/src/amd/vulkan/radv_shader.h
+++ b/src/amd/vulkan/radv_shader.h
@@ -442,7 +442,8 @@ struct radv_shader_variant *
 radv_create_gs_copy_shader(struct radv_device *device, struct nir_shader *nir,
 			   struct radv_shader_info *info,
 			   struct radv_shader_binary **binary_out,
-			   bool multiview,  bool keep_shader_info);
+			   bool multiview,  bool keep_shader_info,
+			   bool use_aco);
 
 void
 radv_shader_variant_destroy(struct radv_device *device,



More information about the mesa-commit mailing list