r600: Dump a few more variables when requested
authorGert Wollny <gert.wollny@collabora.com>
Wed, 15 Apr 2020 15:04:41 +0000 (17:04 +0200)
committerMarge Bot <eric+marge@anholt.net>
Tue, 21 Apr 2020 15:10:43 +0000 (15:10 +0000)
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4609>

src/gallium/drivers/r600/r600_dump.c

index 29a89605e227c3e891c6bf5b83b88583d9e7df49..76b56bc7d53f9572216992d806f1925e17ff07ab 100644 (file)
@@ -26,6 +26,7 @@
 
 #include "r600_dump.h"
 #include "r600_shader.h"
+#include "tgsi/tgsi_strings.h"
 
 void print_shader_info(FILE *f , int id, struct r600_shader *shader)
 {
@@ -165,4 +166,35 @@ void print_pipe_info(FILE *f, struct tgsi_shader_info *shader)
    PRINT_UINT_MEMBER(writes_memory);
    PRINT_UINT_MEMBER(file_mask[TGSI_FILE_HW_ATOMIC]);
    PRINT_UINT_MEMBER(file_count[TGSI_FILE_HW_ATOMIC]);
+
+   for(unsigned int i = 0; i < TGSI_PROPERTY_COUNT; ++i) {
+      if (shader->properties[i] != 0)
+        fprintf(stderr, "PROP: %s = %d\n", tgsi_property_names[i], shader->properties[i]);
+   }
+
+#define PRINT_UINT_ARRAY_MEMBER(M, IDX) \
+   if (shader-> M [ IDX ])  fprintf(f, #M "[%d] = %d\n",  IDX, (unsigned) shader-> M [ IDX ]);
+
+   for (int i = 0; i < shader->num_inputs; ++i) {
+      PRINT_UINT_ARRAY_MEMBER(input_semantic_name, i); /**< TGSI_SEMANTIC_x */
+      PRINT_UINT_ARRAY_MEMBER(input_semantic_index, i);
+      PRINT_UINT_ARRAY_MEMBER(input_interpolate, i);
+      PRINT_UINT_ARRAY_MEMBER(input_interpolate_loc, i);
+      PRINT_UINT_ARRAY_MEMBER(input_usage_mask, i);
+      PRINT_UINT_ARRAY_MEMBER(input_cylindrical_wrap, i);
+   }
+
+   for (int i = 0; i < shader->num_inputs; ++i) {
+      PRINT_UINT_ARRAY_MEMBER(output_semantic_name, i);
+      PRINT_UINT_ARRAY_MEMBER(output_semantic_index, i);
+      PRINT_UINT_ARRAY_MEMBER(output_usagemask, i);
+      PRINT_UINT_ARRAY_MEMBER(output_streams, i);
+   }
+
+   for (int i = 0; i < shader->num_system_values; ++i)
+      PRINT_UINT_ARRAY_MEMBER(system_value_semantic_name, i);
+
+   PRINT_UINT_MEMBER(reads_pervertex_outputs);
+   PRINT_UINT_MEMBER(reads_perpatch_outputs);
+   PRINT_UINT_MEMBER(reads_tessfactor_outputs);
 }