[PATCHv2] dri2: Set vdpau driver name if ddx does not provide any driver name
Alan Coopersmith
alan.coopersmith at oracle.com
Tue Jan 6 15:44:21 PST 2015
On 01/ 3/15 12:12 PM, Adel Gadllah wrote:
> Currently when the ddx does not set any driver name we set DRI2 driver but
> not the VDPAU driver name. The result is that VDPAU drivers will not get found
> by libvdpau when the modesetting driver is being used.
>
> Just assume that the VDPAU driver matches the DRI2 driver name, this is true
> for nouveau, r300, r600 and radeonsi i.e all VDPAU drivers currently supported
> by mesa.
>
> Signed-off-by: Adel Gadllah <adel.gadllah at gmail.com>
> ---
> hw/xfree86/dri2/dri2.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c
> index c8fcd62..68518c4 100644
> --- a/hw/xfree86/dri2/dri2.c
> +++ b/hw/xfree86/dri2/dri2.c
> @@ -1573,15 +1573,15 @@ DRI2ScreenInit(ScreenPtr pScreen, DRI2InfoPtr info)
>
> if (info->version == 3 || info->numDrivers == 0) {
> /* Driver too old: use the old-style driverName field */
> - ds->numDrivers = 1;
> - ds->driverNames = malloc(sizeof(*ds->driverNames));
> + ds->numDrivers = info->driverName ? 1 : 2;
> + ds->driverNames = malloc(ds->numDrivers * sizeof(*ds->driverNames));
> if (!ds->driverNames)
> goto err_out;
>
> if (info->driverName) {
> ds->driverNames[0] = info->driverName;
> } else {
> - ds->driverNames[0] = dri2_probe_driver_name(pScreen, info);
> + ds->driverNames[0] = ds->driverNames[1] = dri2_probe_driver_name(pScreen, info);
> if (!ds->driverNames[0])
> return FALSE;
> }
>
Thanks for fixing - I assume you lucked out in previous testing that
you weren't overwriting anything important (perhaps just malloc padding),
but we can't rely on everyone always being so lucky.
Reviewed-by: Alan Coopersmith <alan.coopersmith at oracle.com>
--
-Alan Coopersmith- alan.coopersmith at oracle.com
Oracle Solaris Engineering - http://blogs.oracle.com/alanc
More information about the xorg-devel
mailing list