Mesa (master): radv: rely on shader's wavesize when computing NGG info

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Nov 6 08:34:13 UTC 2019


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

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Thu Oct 31 11:16:24 2019 +0100

radv: rely on shader's wavesize when computing NGG info

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>

---

 src/amd/vulkan/radv_pipeline.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c
index b239f024cbe..533e8c4b0fe 100644
--- a/src/amd/vulkan/radv_pipeline.c
+++ b/src/amd/vulkan/radv_pipeline.c
@@ -1779,9 +1779,18 @@ gfx10_get_ngg_info(const struct radv_pipeline_key *key,
 
 	/* Round up towards full wave sizes for better ALU utilization. */
 	if (!max_vert_out_per_gs_instance) {
-		const unsigned wavesize = pipeline->device->physical_device->ge_wave_size;
 		unsigned orig_max_esverts;
 		unsigned orig_max_gsprims;
+		unsigned wavesize;
+
+		if (gs_type == MESA_SHADER_GEOMETRY) {
+			wavesize = gs_info->wave_size;
+		} else {
+			wavesize = nir[MESA_SHADER_TESS_CTRL]
+				? infos[MESA_SHADER_TESS_EVAL].wave_size
+				: infos[MESA_SHADER_VERTEX].wave_size;
+		}
+
 		do {
 			orig_max_esverts = max_esverts;
 			orig_max_gsprims = max_gsprims;




More information about the mesa-commit mailing list