gallium/pb: remove 8 bytes from pb_buffer by packing variables

Only svga used usages beyond 16 bits. All other drivers are OK with 16 bits.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9809>
This commit is contained in:
Marek Olšák 2021-03-28 06:23:02 -04:00 committed by Marge Bot
parent 712b629abf
commit 815d98c22d
2 changed files with 9 additions and 10 deletions

View file

@ -112,24 +112,23 @@ struct pb_buffer
{
struct pipe_reference reference;
/* For internal driver use. It's here so as not to waste space due to
* type alignment. (pahole)
*/
uint8_t placement;
/* Alignments are powers of two, so store only the bit position.
* alignment_log2 = util_logbase2(alignment);
* alignment = 1 << alignment_log2;
*/
uint8_t alignment_log2;
pb_size size;
/**
* Used with pb_usage_flags or driver-specific flags, depending on drivers.
*/
unsigned usage;
uint16_t usage;
/**
* For internal driver use. It's here so as not to waste space due to
* type alignment. (pahole)
*/
unsigned placement;
pb_size size;
/**
* Pointer to the virtual function table.

View file

@ -34,8 +34,8 @@
/* These extra flags are used wherever the pb_usage_flags enum type is used */
#define VMW_BUFFER_USAGE_SHARED (1 << 20)
#define VMW_BUFFER_USAGE_SYNC (1 << 21)
#define VMW_BUFFER_USAGE_SHARED (1 << 14)
#define VMW_BUFFER_USAGE_SYNC (1 << 15)
struct SVGAGuestPtr;
struct pb_buffer;