On 23/10/2024 13:56, Christian König wrote:
Am 23.10.24 um 14:24 schrieb Tvrtko Ursulin:
[SNIP]
To fold or not the special placements (GWS, GDS & co) is also
tangential. In my patch I just preserved the legacy behaviour so it
can easily be tweaked on top.
Yeah, but again the original behavior is completely broken.
GWS, GDS and OA are counted in blocks of HW units (multiplied by
PAGE_SIZE IIRC to avoid some GEM&TTM warnings).
When you accumulate that anywhere in the memory stats then that is
just completely off.
Ooops. :) Are they backed by some memory though, be it system or VRAM?
GDS is an internal 4 or 64KiB memory block which is only valid while
shaders are running. It is used to communicate stuff between different
shader stages and not even CPU accessible.
GWS and OA are not even memory, those are just HW blocks which implement
a fixed function.
IIRC most HW generation have 16 of each and when setting up the
application virtual address space you can specify how many will be used
by the application.
I see, thank you! Though I could have bothered to look in the code or
even instrument at runtime too.
I agree removing it from system is correct. If wanted and/or desirable
some or all could be exported as different memory regions even. DRM
fdinfo specs already allows that. Like:
drm-total-vram: ...
drm-total-gds: ...
drm-total-oa: ...
Etc.
Regards,
Tvrtko