OSDN Git Service

radv: allow to dump the GS copy shader with RADV_DEBUG="shaders"
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Fri, 11 May 2018 14:36:02 +0000 (16:36 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 14 May 2018 10:38:00 +0000 (12:38 +0200)
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
src/amd/vulkan/radv_pipeline.c
src/amd/vulkan/radv_shader.c
src/amd/vulkan/radv_shader.h

index d443f82..e6ac072 100644 (file)
@@ -1984,7 +1984,7 @@ void radv_create_shaders(struct radv_pipeline *pipeline,
                radv_link_shaders(pipeline, nir);
 
        for (int i = 0; i < MESA_SHADER_STAGES; ++i) {
-               if (modules[i] && radv_can_dump_shader(device, modules[i]))
+               if (modules[i] && radv_can_dump_shader(device, modules[i], false))
                        nir_print_shader(nir[i], stderr);
        }
 
index fde6309..dfe63d6 100644 (file)
@@ -484,7 +484,7 @@ shader_variant_create(struct radv_device *device,
 
        options->family = chip_family;
        options->chip_class = device->physical_device->rad_info.chip_class;
-       options->dump_shader = radv_can_dump_shader(device, module);
+       options->dump_shader = radv_can_dump_shader(device, module, gs_copy_shader);
        options->dump_preoptir = options->dump_shader &&
                                 device->instance->debug_flags & RADV_DEBUG_PREOPTIR;
        options->record_llvm_ir = device->keep_shader_info;
index 182b698..1287830 100644 (file)
@@ -329,11 +329,14 @@ radv_shader_dump_stats(struct radv_device *device,
 
 static inline bool
 radv_can_dump_shader(struct radv_device *device,
-                    struct radv_shader_module *module)
+                    struct radv_shader_module *module,
+                    bool is_gs_copy_shader)
 {
+       if (!(device->instance->debug_flags & RADV_DEBUG_DUMP_SHADERS))
+               return false;
+
        /* Only dump non-meta shaders, useful for debugging purposes. */
-       return device->instance->debug_flags & RADV_DEBUG_DUMP_SHADERS &&
-              module && !module->nir;
+       return (module && !module->nir) || is_gs_copy_shader;
 }
 
 static inline bool