aboutsummaryrefslogtreecommitdiffstats
path: root/src/amd/vulkan/radv_shader.c
diff options
context:
space:
mode:
authorConnor Abbott <[email protected]>2019-08-29 17:15:46 +0200
committerConnor Abbott <[email protected]>2019-09-05 12:21:35 +0200
commit5dadbabb47c317f58a3b939d08e8e50745d92990 (patch)
treecd2c4e4a9d70605a8518a8adaa1dead773a1bf86 /src/amd/vulkan/radv_shader.c
parent5cc7cc5f171079919dbe26f8e7a4d4eb53d119bb (diff)
radv/radeonsi: Don't count read-only data when reporting code size
We usually use these counts as a simple way to figure out if a change reduces the number of instructions or shrinks an instruction. However, since .rodata sections aren't executed, we shouldn't be counting their size for this analysis. Make the linker return the total executable size, and use it to report the more useful size in both drivers. Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/amd/vulkan/radv_shader.c')
-rw-r--r--src/amd/vulkan/radv_shader.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c
index e907c04863a..b6de97deb24 100644
--- a/src/amd/vulkan/radv_shader.c
+++ b/src/amd/vulkan/radv_shader.c
@@ -941,10 +941,12 @@ radv_shader_variant_create(struct radv_device *device,
}
variant->code_size = rtld_binary.rx_size;
+ variant->exec_size = rtld_binary.exec_size;
} else {
assert(binary->type == RADV_BINARY_TYPE_LEGACY);
config = ((struct radv_shader_binary_legacy *)binary)->config;
- variant->code_size = radv_get_shader_binary_size(((struct radv_shader_binary_legacy *)binary)->code_size);
+ variant->code_size = radv_get_shader_binary_size(((struct radv_shader_binary_legacy *)binary)->code_size);
+ variant->exec_size = variant->code_size;
}
variant->info = binary->variant_info;
@@ -1299,7 +1301,7 @@ generate_shader_stats(struct radv_device *device,
"********************\n\n\n",
conf->num_sgprs, conf->num_vgprs,
conf->spilled_sgprs, conf->spilled_vgprs,
- variant->info.private_mem_vgprs, variant->code_size,
+ variant->info.private_mem_vgprs, variant->exec_size,
conf->lds_size, conf->scratch_bytes_per_wave,
max_simd_waves);
}