[PATCH] Force-enable EXA UploadToScreen() and DownloadFromScreen()

Corbin Simpson mostawesomedude at gmail.com
Sun Mar 6 11:08:27 PST 2011


On Sat, Mar 5, 2011 at 2:13 PM, Stephen Kitt <steve at sk2.org> wrote:
> The radeon drivers no longer support UploadToScreen() and
> DownloadFromScreen(). If the exa module supports it, the driver
> instructs it to prevent the user disabling them.
>
> Signed-off-by: Stephen Kitt <steve at sk2.org>
> ---
>  src/evergreen_exa.c    |    7 +++++++
>  src/r600_exa.c         |    7 +++++++
>  src/radeon_exa_funcs.c |    6 ++++++
>  3 files changed, 20 insertions(+), 0 deletions(-)
>
> diff --git a/src/evergreen_exa.c b/src/evergreen_exa.c
> index 553f05e..196c95d 100644
> --- a/src/evergreen_exa.c
> +++ b/src/evergreen_exa.c
> @@ -1778,6 +1778,13 @@ EVERGREENDrawInit(ScreenPtr pScreen)
>     info->accel_state->exa->flags |= EXA_MIXED_PIXMAPS;
>  #endif
>  #endif
> +
> +#ifdef EXA_REQUIRES_UPLOAD_DOWNLOAD
> +    /* This driver causes segfaults if UploadToScreen() or
> +       DownloadFromScreen() are disabled. */
> +    info->accel_state->exa->flags |= EXA_REQUIRES_UPLOAD_DOWNLOAD
> +#endif
> +
>     info->accel_state->exa->pixmapOffsetAlign = 256;
>     info->accel_state->exa->pixmapPitchAlign = 256;
>
> diff --git a/src/r600_exa.c b/src/r600_exa.c
> index 57e5c0f..b4eca00 100644
> --- a/src/r600_exa.c
> +++ b/src/r600_exa.c
> @@ -2235,6 +2235,13 @@ R600DrawInit(ScreenPtr pScreen)
>     }
>  #endif
>  #endif
> +
> +#ifdef EXA_REQUIRES_UPLOAD_DOWNLOAD
> +    /* This driver causes segfaults if UploadToScreen() or
> +       DownloadFromScreen() are disabled. */
> +    info->accel_state->exa->flags |= EXA_REQUIRES_UPLOAD_DOWNLOAD
> +#endif
> +
>     info->accel_state->exa->pixmapOffsetAlign = 256;
>     info->accel_state->exa->pixmapPitchAlign = 256;
>
> diff --git a/src/radeon_exa_funcs.c b/src/radeon_exa_funcs.c
> index e8c5571..d7b0700 100644
> --- a/src/radeon_exa_funcs.c
> +++ b/src/radeon_exa_funcs.c
> @@ -848,6 +848,12 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
>     }
>  #endif
>
> +#ifdef EXA_REQUIRES_UPLOAD_DOWNLOAD
> +    /* This driver causes segfaults if UploadToScreen() or
> +       DownloadFromScreen() are disabled. */
> +    info->accel_state->exa->flags |= EXA_REQUIRES_UPLOAD_DOWNLOAD
> +#endif
> +
>  #ifdef RENDER
>     if (info->RenderAccel) {
>        if (IS_R300_3D || IS_R500_3D) {

Maybe I'm still waking up, but this shouldn't even compile due to
missing semicolons. Did you test these patches?

~ C.

-- 
When the facts change, I change my mind. What do you do, sir? ~ Keynes

Corbin Simpson
<MostAwesomeDude at gmail.com>


More information about the xorg-devel mailing list