On 27 June 2017 at 16:02, Marek Olšák <mar...@gmail.com> wrote: > On Tue, Jun 27, 2017 at 10:02 AM, Nicolai Hähnle <nhaeh...@gmail.com> wrote: >> On 27.06.2017 00:15, Marek Olšák wrote: >>> >>> On Thu, Jun 22, 2017 at 9:19 AM, Nicolai Hähnle <nhaeh...@gmail.com> >>> wrote: >>>> >>>> On 20.06.2017 20:00, Marek Olšák wrote: >>>>> >>>>> >>>>> From: Marek Olšák <marek.ol...@amd.com> >>>>> >>>>> sizeof(struct si_shader_key): >>>>> Before reverting the 2 commits: 120 bytes >>>>> After reverting the 2 commits: 128 bytes >>>>> With #pragma pack: 107 bytes >>>>> >>>>> I'm not sure if memcmp with a byte-aligned size is a good idea. >>>> >>>> >>>> >>>> Does this have a measurable impact? The code is nicer to read with the >>>> structure after the patches, but I'm not sure it's worth the risk of >>>> getting >>>> misaligned data somewhere. >>> >>> >>> It decreases the time spent in si_update_shaders by 6% when going from >>> 128 bytes to 106 for the shader key. >>> >>> What do you mean by the risk? >> >> >> If we end up accidentally misaligning a member, that could cause a >> performance hit. But those 6% improvement does seem worth it. I do think >> Emil's suggestion of adding the attribute directly to the structures is a >> good idea. With that, the patch is > > I can't add the attributes inside the structures, because every > structure member would have to have the attribute, and that would be > too much noise in the code. There are MSVC and gcc attributes. gcc > supports both kinds. MSVC attributes are the global #pragmas. gcc > attributes are per-member or on structure types. If the attribute is > on a structure type, it only specifies alignment for the whole > structure, not individual members. > Doubt one has to worry about MSVC in here ;-)
FWIW freedreno et al. extensively uses PACKED - see instr-a2xx.h/instr-a3xx.h. Just throwing it out there, in case you've missed it - I'm not trying to rock the boat. -Emil _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev