DRM Stuff
Robert Swindells <[email protected]> Sun, 25 Sep 2022 22:10:15 +0100
| Newsgroups | gmane.os.netbsd.devel.x11 |
|---|---|
| Message-ID | <[email protected]> |
1) In the DRM code, there is NetBSD helper function bus_dmamap_load_pages that is used in two places, in ttm_bus_dma.c and linux_sgt.c. The helper function either uses an array of bus_dma_segment_t on the stack or allocates a larger array if needed. I think that the usage from linux_sgt.c needs to be able to keep the segments setup when converting between Linux and NetBSD memory pages so that they can be used in calls to bus_dmamap_sync(). To be able to use bus_dmamap_sync() I think would also need to change from using bus_dmamap_load_raw() to bus_dmamap_load(). My guess is that the lima driver needs to be able to sync memory after userland has written shaders to it before telling the GPU to run them. Does the i915 code still have problems that look like caches not getting flushed correctly? 2) There was a bit of discussion on port-arm@ about the idea of getting userland and core DRM code changes needed for ARM GPU drivers into the tree now so that they will be in NetBSD-10. I have added the lima and panfrost code to the gallium.old Makefile, some extra files to libglsl.mk, and some minor source changes to libdrm. Should the gallium.old Makefile include libglsl.mk or libglsl.old.mk? Any opinions on doing this? I can generate diffs if people want to review them. Robert Swindells