Files
dolphin/Source/Core/VideoCommon
Scott Mansell e5eabd08f5 Optimize vertex_shader_uid_data down to 28 bytes
This started as a fixing a misalignment issue, but I got carried away.
Was originally 41 bytes (overflowing it's expected 40 bytes by 1 bit).

Now it's 27 bytes plus 8 bits of padding (ready for future expansion).

The savings come from:
 - Removing UV usage from components, it can be reconstructed from
   texcoord_elem_count (saved 8 bits)
 - Removed the 8 unused bits from texMtxInfo_n_projection (saved 8 bits)
 - Removing unused bit from from start of components (saved 1 bit)
 - Removed extra bit from inputform, texgentype and sourcerow
 - packed texMtxInfo_n_projection and texcoord_elem_count back into
   the per texgen info space freed up above. (saved 24 bits)
 - Overlayed postMtx index and Emboss mode shifts into a union based on
   texgentype (saved 56 bits)
 - Move to a single-bit union tag, freeing up an extra bit for regular
   texgens.
 - Move PotMtx normalize into the freed up space (saved 8 bits)

Total savings: 105 bits of data

EDIT: Even worse, MSVC wasn't respecting pack(1) for bitfields at all,
      so on windows this struct was actually quite a bit larger.
      Something like 80 bytes, if not more.

      Fixed this by dropping the size of any enums used in these
      bit structs to u8. Our Common::BitField allows for the underlying
      type to be explicitly specified to something larger.

      msvc's bitfield packing appears to be completely braindead, can't
      mix sizes at all.
2026-08-07 18:42:52 +12:00
..
2026-01-25 16:12:15 +01:00
2026-01-25 16:12:15 +01:00
2026-01-25 16:12:15 +01:00
2026-01-25 16:12:15 +01:00
2026-01-25 16:12:15 +01:00
2026-01-25 16:12:15 +01:00
2026-01-25 16:12:15 +01:00
2024-08-20 14:59:54 +02:00
2026-01-25 16:12:15 +01:00
2026-01-25 16:12:15 +01:00
2026-01-25 16:12:15 +01:00
2026-01-25 16:12:15 +01:00
2026-01-25 16:12:15 +01:00
2026-01-25 16:12:15 +01:00
2026-01-25 16:12:15 +01:00
2026-01-25 16:12:15 +01:00
2026-01-25 16:12:15 +01:00