From c24d9522daefce112b7a9d03a6d1abdf60f02656 Mon Sep 17 00:00:00 2001 From: Timur Kristóf Date: Tue, 31 Mar 2020 10:41:01 +0200 Subject: radv: Enable ACO for NGG VS/TES, but disable NGG for ACO GS. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Timur Kristóf Reviewed-by: Samuel Pitoiset Reviewed-by: Daniel Schürmann Part-of: --- src/amd/vulkan/radv_pipeline.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/amd/vulkan/radv_pipeline.c') diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c index c62d2a0d977..d1c7abef106 100644 --- a/src/amd/vulkan/radv_pipeline.c +++ b/src/amd/vulkan/radv_pipeline.c @@ -2461,6 +2461,19 @@ radv_fill_shader_keys(struct radv_device *device, keys[MESA_SHADER_TESS_EVAL].vs_common_out.as_ngg = false; } + if (device->physical_device->use_aco) { + /* Disable NGG GS when ACO is used */ + if (nir[MESA_SHADER_GEOMETRY]) { + if (nir[MESA_SHADER_TESS_CTRL]) + keys[MESA_SHADER_TESS_EVAL].vs_common_out.as_ngg = false; + else + keys[MESA_SHADER_VERTEX].vs_common_out.as_ngg = false; + } + + /* NGG streamout not yet supported by ACO */ + assert(!device->physical_device->use_ngg_streamout); + } + gl_shader_stage last_xfb_stage = MESA_SHADER_VERTEX; for (int i = MESA_SHADER_VERTEX; i <= MESA_SHADER_GEOMETRY; i++) { -- cgit v1.2.3