intel/clc: add option to printout kernel prog_data

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15486>
This commit is contained in:
Lionel Landwerlin
2022-02-02 18:12:17 +02:00
committed by Marge Bot
parent 451f907d16
commit a7f264f33a

View File

@@ -279,6 +279,7 @@ int main(int argc, char **argv)
{"in", required_argument, 0, 'i'}, {"in", required_argument, 0, 'i'},
{"out", required_argument, 0, 'o'}, {"out", required_argument, 0, 'o'},
{"spv", required_argument, 0, 's'}, {"spv", required_argument, 0, 's'},
{"info", no_argument, 0, 'i'},
{0, 0, 0, 0} {0, 0, 0, 0}
}; };
@@ -287,6 +288,7 @@ int main(int argc, char **argv)
struct util_dynarray input_files; struct util_dynarray input_files;
struct util_dynarray spirv_objs; struct util_dynarray spirv_objs;
struct util_dynarray spirv_ptr_objs; struct util_dynarray spirv_ptr_objs;
bool print_info = false;
void *mem_ctx = ralloc_context(NULL); void *mem_ctx = ralloc_context(NULL);
@@ -296,7 +298,7 @@ int main(int argc, char **argv)
util_dynarray_init(&spirv_ptr_objs, mem_ctx); util_dynarray_init(&spirv_ptr_objs, mem_ctx);
int ch; int ch;
while ((ch = getopt_long(argc, argv, "he:p:s:o:", long_options, NULL)) != -1) while ((ch = getopt_long(argc, argv, "he:p:s:o:i", long_options, NULL)) != -1)
{ {
switch (ch) switch (ch)
{ {
@@ -315,6 +317,9 @@ int main(int argc, char **argv)
case 's': case 's':
spv_outfile = optarg; spv_outfile = optarg;
break; break;
case 'i':
print_info = true;
break;
case OPT_PREFIX: case OPT_PREFIX:
prefix = optarg; prefix = optarg;
break; break;
@@ -474,6 +479,24 @@ int main(int argc, char **argv)
return 1; return 1;
} }
if (print_info) {
fprintf(stdout, "kernel info:\n");
fprintf(stdout, " uses_barrier : %u\n", kernel.prog_data.uses_barrier);
fprintf(stdout, " uses_num_work_groups : %u\n", kernel.prog_data.uses_num_work_groups);
fprintf(stdout, " uses_inline_data : %u\n", kernel.prog_data.uses_inline_data);
fprintf(stdout, " local_size : %ux%ux%u\n",
kernel.prog_data.local_size[0],
kernel.prog_data.local_size[1],
kernel.prog_data.local_size[2]);
fprintf(stdout, " curb_read_length : %u\n", kernel.prog_data.base.curb_read_length);
fprintf(stdout, " total_scratch : %u\n", kernel.prog_data.base.total_scratch);
fprintf(stdout, " total_shared : %u\n", kernel.prog_data.base.total_shared);
fprintf(stdout, " program_size : %u\n", kernel.prog_data.base.program_size);
fprintf(stdout, " const_data_size : %u\n", kernel.prog_data.base.const_data_size);
fprintf(stdout, " uses_atomic_load_store : %u\n", kernel.prog_data.base.uses_atomic_load_store);
fprintf(stdout, " dispatch_grf_start_reg : %u\n", kernel.prog_data.base.dispatch_grf_start_reg);
}
glsl_type_singleton_decref(); glsl_type_singleton_decref();
char prefix_tmp[256]; char prefix_tmp[256];