[PATCH mach64] mach64: add a "DRI" option

Matt Turner mattst88 at gmail.com
Fri Jul 15 11:07:40 PDT 2011


On Fri, Jul 15, 2011 at 7:52 AM, Mika Blanc <mika.blanc at gmail.com> wrote:
> This patch adds a boolean "DRI" option to the mach64 driver. Direct
> rendering can be either enabled (default) or disabled with this option.
>
> Signed-off-by: Mika Blanc <mika.blanc at gmail.com>
> ---
>  src/aticonfig.c |   10 ++++++++++
>  src/atidri.c    |    7 +++++++
>  src/atioption.h |    1 +
>  src/atistruct.h |    1 +
>  4 files changed, 19 insertions(+), 0 deletions(-)
>
> diff --git a/src/aticonfig.c b/src/aticonfig.c
> index 621e79e..23837e2 100644
> --- a/src/aticonfig.c
> +++ b/src/aticonfig.c
> @@ -103,6 +103,13 @@ static const OptionInfoRec ATIPublicOptions[] =
>  #ifdef XF86DRI_DEVEL
>
>     {
> +        ATI_OPTION_DRI,
> +        "DRI",
> +        OPTV_BOOLEAN,
> +        {0, },
> +        FALSE,
> +    },
> +    {
>         ATI_OPTION_IS_PCI,
>         "force_pci_mode",
>         OPTV_BOOLEAN,
> @@ -323,6 +330,7 @@ ATIProcessOptions
>
>  #ifdef XF86DRI_DEVEL
>
> +#   define DRI         PublicOption[ATI_OPTION_DRI].value.bool
>  #   define IsPCI       PublicOption[ATI_OPTION_IS_PCI].value.bool
>  #   define DMAMode     PublicOption[ATI_OPTION_DMA_MODE].value.str
>  #   define AGPMode     PublicOption[ATI_OPTION_AGP_MODE].value.num
> @@ -368,6 +376,7 @@ ATIProcessOptions
>  #endif
>
>  #ifdef XF86DRI_DEVEL
> +    DRI = TRUE;
>     DMAMode = "async";
>  #endif
>
> @@ -428,6 +437,7 @@ ATIProcessOptions
>
>  #ifdef XF86DRI_DEVEL
>
> +    pATI->OptionDRI = DRI;
>     pATI->OptionIsPCI = IsPCI;
>     pATI->OptionAGPMode = AGPMode;
>     pATI->OptionAGPSize = AGPSize;
> diff --git a/src/atidri.c b/src/atidri.c
> index 9c6719b..8274d67 100644
> --- a/src/atidri.c
> +++ b/src/atidri.c
> @@ -1181,6 +1181,13 @@ Bool ATIDRIScreenInit( ScreenPtr pScreen )
>    drmVersionPtr version;
>    int major, minor, patch;
>
> +   /* Disable DRI if explicitly requested by configuration */
> +   if ( !pATI->OptionDRI ) {
> +      xf86DrvMsg( pScreen->myNum, X_INFO,
> +                 "[dri] Direct rendering forced off\n" );
> +      return FALSE;
> +   }
> +
>    /* Check that the GLX, DRI, and DRM modules have been loaded by testing
>     * for known symbols in each module.
>     */
> diff --git a/src/atioption.h b/src/atioption.h
> index 37303ef..0e83782 100644
> --- a/src/atioption.h
> +++ b/src/atioption.h
> @@ -41,6 +41,7 @@ typedef enum
>
>  #ifdef XF86DRI_DEVEL
>
> +    ATI_OPTION_DRI,
>     ATI_OPTION_IS_PCI,
>     ATI_OPTION_DMA_MODE,
>     ATI_OPTION_AGP_MODE,
> diff --git a/src/atistruct.h b/src/atistruct.h
> index 5225256..a0b8054 100644
> --- a/src/atistruct.h
> +++ b/src/atistruct.h
> @@ -508,6 +508,7 @@ typedef struct _ATIRec
>     int               depthTexLines;
>     FBAreaPtr         depthTexArea;
>  #endif
> +    CARD8 OptionDRI;             /* Direct rendering */
>     CARD8 OptionIsPCI;           /* Force PCI mode */
>     CARD8 OptionDMAMode;         /* async, sync, mmio */
>     CARD8 OptionAGPMode;         /* AGP mode */
> --
> 1.7.6

Is DRI enabled by default really the right thing to do for a driver
whose DRM components never made it upstream into the Linux kernel?

Or maybe you're concerned with BSD or something?

Matt


More information about the xorg-devel mailing list