From: Jason Ekstrand Date: Fri, 3 Apr 2020 18:09:41 +0000 (-0500) Subject: anv: Advertise SEND count through VK_EXT_pipeline_executable_properties X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b2e4157143439a211d2f8e761dc8afd750fa791d;p=mesa.git anv: Advertise SEND count through VK_EXT_pipeline_executable_properties Reviewed-by: Caio Marcelo de Oliveira Filho Part-of: --- diff --git a/src/intel/compiler/brw_compiler.h b/src/intel/compiler/brw_compiler.h index 03512471d80..25fc3eaa915 100644 --- a/src/intel/compiler/brw_compiler.h +++ b/src/intel/compiler/brw_compiler.h @@ -1275,6 +1275,7 @@ DEFINE_PROG_DATA_DOWNCAST(sf) struct brw_compile_stats { uint32_t dispatch_width; /**< 0 for vec4 */ uint32_t instructions; + uint32_t sends; uint32_t loops; uint32_t cycles; uint32_t spills; diff --git a/src/intel/compiler/brw_fs_generator.cpp b/src/intel/compiler/brw_fs_generator.cpp index 3a2f2a9b7ce..8afc075f187 100644 --- a/src/intel/compiler/brw_fs_generator.cpp +++ b/src/intel/compiler/brw_fs_generator.cpp @@ -2492,6 +2492,7 @@ fs_generator::generate_code(const cfg_t *cfg, int dispatch_width, if (stats) { stats->dispatch_width = dispatch_width; stats->instructions = before_size / 16 - nop_count; + stats->sends = send_count; stats->loops = loop_count; stats->cycles = cfg->cycle_count; stats->spills = spill_count; diff --git a/src/intel/compiler/brw_vec4_generator.cpp b/src/intel/compiler/brw_vec4_generator.cpp index 5176ba99034..c247c988181 100644 --- a/src/intel/compiler/brw_vec4_generator.cpp +++ b/src/intel/compiler/brw_vec4_generator.cpp @@ -2242,6 +2242,7 @@ generate_code(struct brw_codegen *p, if (stats) { stats->dispatch_width = 0; stats->instructions = before_size / 16; + stats->sends = send_count; stats->loops = loop_count; stats->cycles = cfg->cycle_count; stats->spills = spill_count; diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c index b4f6077f0b9..b85a37e7873 100644 --- a/src/intel/vulkan/anv_pipeline.c +++ b/src/intel/vulkan/anv_pipeline.c @@ -2188,6 +2188,16 @@ VkResult anv_GetPipelineExecutableStatisticsKHR( stat->value.u64 = exe->stats.instructions; } + vk_outarray_append(&out, stat) { + WRITE_STR(stat->name, "SEND Count"); + WRITE_STR(stat->description, + "Number of instructions in the final generated shader " + "executable which access external units such as the " + "constant cache or the sampler."); + stat->format = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR; + stat->value.u64 = exe->stats.sends; + } + vk_outarray_append(&out, stat) { WRITE_STR(stat->name, "Loop Count"); WRITE_STR(stat->description,