multiple framebuffer drm maps

Tormod Volden lists.tormod at gmail.com
Mon Apr 25 14:54:37 PDT 2011


In commit 41c2e75e60200a860a74b7c84a6375c105e7437f "drm: Make
drm_local_map use a resource_size_t offset" [1] the support for multiple
_DRM_FRAMEBUFFER maps per device was taken away. This change made the
savage drivers upset, since these cards have several apertures (the
layout is different between card families) for which the kernel drm
driver sets up maps. And these maps are now mixed up into one broken one.

The drivers (drm, ddx, mesa) for instance expects a framebuffer map and a
tiled aperture map, and the broken maps show up as rendering corruption
[2] and allocation failures. I have tried to come up with userland
workarounds but it seems impossible since the kernel will only return
the handle to a broken map and there is no way to remap it correctly.

Would it be possible to reintroduce this support? One solution could be
a new flag _DRM_IGNORE_FB_OFFSET that can be used by those drivers that
need it, or the other way around, a _DRM_CHECK_FB_OFFSET to be added
by the savage drivers and others in the same situation. I can of course
try to write a patch if people think this is a good idea.

Best regards,
Tormod

[1] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=41c2e75e60200a860a74b7c84a6375c105e7437f
[2] https://bugs.freedesktop.org/show_bug.cgi?id=32511


More information about the dri-devel mailing list