summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Olšák <marek.olsak@amd.com>2017-06-20 01:21:19 +0200
committerMarek Olšák <marek.olsak@amd.com>2017-06-27 18:45:07 +0200
commitf9a7e7fe144767219d6722d79cc75330dc888106 (patch)
treedb8c4500a4362471f67db897fcc18831fef2c325
parent77d2a98353462241306452cc36229f891c4b5af6 (diff)
radeonsi: use #pragma pack to pack si_shader_key
sizeof(struct si_shader_key): Before reverting the 2 commits: 120 bytes After reverting the 2 commits: 128 bytes With #pragma pack: 107 bytes Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
-rw-r--r--src/gallium/drivers/radeonsi/si_shader.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeonsi/si_shader.h b/src/gallium/drivers/radeonsi/si_shader.h
index 185bb8d6251..64321265cf9 100644
--- a/src/gallium/drivers/radeonsi/si_shader.h
+++ b/src/gallium/drivers/radeonsi/si_shader.h
@@ -378,6 +378,11 @@ struct si_shader_selector {
* -> = merged with the next stage
*/
+/* Use the byte alignment for all following structure members for optimal
+ * shader key memory footprint.
+ */
+#pragma pack(push, 1)
+
/* Common VS bits between the shader key and the prolog key. */
struct si_vs_prolog_bits {
unsigned instance_divisors[SI_MAX_ATTRIBS];
@@ -514,6 +519,9 @@ struct si_shader_key {
} opt;
};
+/* Restore the pack alignment to default. */
+#pragma pack(pop)
+
struct si_shader_config {
unsigned num_sgprs;
unsigned num_vgprs;