tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: DRM/KMS: vmwgfx driver is now available
On 7/16/23 04:19, Taylor R Campbell wrote:
> Amazing! Cool, I'll take a look.
Yes please!
Some quick questions before I've looked much into details (so don't
take the questions too seriously; the answers might be obvious and I
might be barking up the wrong tree):
1. Did you reimplement an allocator for the dma_pool_* API? Should it
use vmem(9) instead or can that not handle the requests that it
needs?
Yes I reimplemented it but it's probably far from efficient. And I
didn't know the existence of vmem! Lol, I should have used it.
2. What's up with the restore_mode property? Does anything set it?
What's the protocol? Why isn't this needed by all the other
drivers, which can already gracefully handle exiting X?
vmwgfxfb sets it and vmwgfx uses it. It's not needed as long as X
gracefully exits, because it calls WSDISPLAYIO_SMODE ioctl to revert the
mode back to WSDISPLAYIO_MODE_EMUL. But if X crashes or is killed by
SIGKILL, the only way to perform a cleanup is to do something in the
drm_driver::lastclose callback. That's why.
3. Why all the logic in vmwgfxfb.c duplicating genfb? Why not just
use genfb via drmfb, like the other major drm drivers use (i915,
radeon, nouveau, amdgpu)?
Because vmwgfx does not, and can not use drm_fb_helper. The helper
assumes that you can just allocate a framebuffer in VRAM and map it to a
virtual address. The VMware GPU appears to support this operation mode
too, but the vmwgfx driver isn't capable of doing it. So I had to
allocate a framebuffer in the system memory and ask the driver to upload
dirty areas to the GPU every time something changes in the buffer.
Home |
Main Index |
Thread Index |
Old Index