Module: Mesa
Branch: main
Commit: 59084f05fc8ba6aa3b8fb0221792da3ab050784c
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=59084f05fc8ba6aa3b8fb0221792da3ab050784c

Author: Rhys Perry <[email protected]>
Date:   Mon Sep  6 18:21:46 2021 +0100

radv: don't require a GS copy shader to use the cache with NGG VS+GS

Fixes 
dEQP-VK.pipeline.cache.no_cache_control.readwrite_cache.pipeline_from_get_data.vertex_stage_geometry_stage_fragment_stage

Signed-off-by: Rhys Perry <[email protected]>
Reviewed-by: Samuel Pitoiset <[email protected]>
Fixes: 7e664a53835 ("radv: Don't generate GS copy shader when the pipeline has 
NGG.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12741>

---

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

diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c
index 0ffccd76698..5c1a39bf732 100644
--- a/src/amd/vulkan/radv_pipeline.c
+++ b/src/amd/vulkan/radv_pipeline.c
@@ -3376,7 +3376,8 @@ radv_create_shaders(struct radv_pipeline *pipeline, 
struct radv_device *device,
        radv_create_shader_variants_from_pipeline_cache(device, cache, hash, 
pipeline->shaders,
                                                        stack_sizes, 
num_stack_sizes,
                                                        
&found_in_application_cache) &&
-       (!modules[MESA_SHADER_GEOMETRY] || pipeline->gs_copy_shader)) {
+       (!modules[MESA_SHADER_GEOMETRY] || pipeline->gs_copy_shader ||
+        pipeline->shaders[MESA_SHADER_GEOMETRY]->info.is_ngg)) {
       radv_stop_feedback(pipeline_feedback, found_in_application_cache);
       return VK_SUCCESS;
    }

Reply via email to