[Mesa-stable] [Mesa-dev] [PATCH] gallium/targets: fix bool setting on BE architectures
Edward O'Callaghan
funfunctor at folklore1984.net
Tue Apr 18 04:48:43 UTC 2017
On 04/18/2017 02:02 PM, Ilia Mirkin wrote:
> On Tue, Apr 18, 2017 at 12:00 AM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
>> val_bool and val_int are in a union. val_bool gets the first byte, which
>> happens to work on LE when setting via the int, but breaks on BE. By
>> setting the value properly, we are able to use DRI3 on BE architectures.
>> Tested by running glxgears with a NV34 in a G5 PPC.
>>
>> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
>> Cc: mesa-stable at lists.freedesktop.org
>> ---
>> src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c | 8 ++++----
>> src/gallium/targets/pipe-loader/pipe_i915.c | 2 +-
>> src/gallium/targets/pipe-loader/pipe_msm.c | 2 +-
>> src/gallium/targets/pipe-loader/pipe_nouveau.c | 2 +-
>> src/gallium/targets/pipe-loader/pipe_r300.c | 2 +-
>> src/gallium/targets/pipe-loader/pipe_r600.c | 2 +-
>> src/gallium/targets/pipe-loader/pipe_radeonsi.c | 2 +-
>> 7 files changed, 10 insertions(+), 10 deletions(-)
>>
>> diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c
>> index aba814b..a4f5cfc 100644
>> --- a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c
>> +++ b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c
>> @@ -64,13 +64,13 @@ static const struct pipe_loader_ops pipe_loader_drm_ops;
>>
>> #ifdef GALLIUM_STATIC_TARGETS
>> static const struct drm_conf_ret throttle_ret = {
>> - DRM_CONF_INT,
>> - {2},
>> + .type = DRM_CONF_INT,
>> + .val.val_int = 2,
>> };
>>
>> static const struct drm_conf_ret share_fd_ret = {
>> - DRM_CONF_BOOL,
>> - {true},
>> + .type = DRM_CONF_BOOL,
>> + .val.val_bool = true,
>> };
>>
>> static inline const struct drm_conf_ret *
>> diff --git a/src/gallium/targets/pipe-loader/pipe_i915.c b/src/gallium/targets/pipe-loader/pipe_i915.c
>> index 3af8fe3..2183dc3 100644
>> --- a/src/gallium/targets/pipe-loader/pipe_i915.c
>> +++ b/src/gallium/targets/pipe-loader/pipe_i915.c
>> @@ -30,7 +30,7 @@ static const struct drm_conf_ret throttle_ret = {
>>
>> static const struct drm_conf_ret share_fd_ret = {
>> .type = DRM_CONF_BOOL,
>> - .val.val_int = true,
>> + .val.val_bool = true,
>> };
>>
>> static const struct drm_conf_ret *drm_configuration(enum drm_conf conf)
>> diff --git a/src/gallium/targets/pipe-loader/pipe_msm.c b/src/gallium/targets/pipe-loader/pipe_msm.c
>> index fa098e9..858b248 100644
>> --- a/src/gallium/targets/pipe-loader/pipe_msm.c
>> +++ b/src/gallium/targets/pipe-loader/pipe_msm.c
>> @@ -24,7 +24,7 @@ static const struct drm_conf_ret throttle_ret = {
>>
>> static const struct drm_conf_ret share_fd_ret = {
>> .type = DRM_CONF_BOOL,
>> - .val.val_int = true,
>> + .val.val_bool = true,
>> };
>>
>> static const struct drm_conf_ret *drm_configuration(enum drm_conf conf)
>> diff --git a/src/gallium/targets/pipe-loader/pipe_nouveau.c b/src/gallium/targets/pipe-loader/pipe_nouveau.c
>> index d882493..d9c0c5d 100644
>> --- a/src/gallium/targets/pipe-loader/pipe_nouveau.c
>> +++ b/src/gallium/targets/pipe-loader/pipe_nouveau.c
>> @@ -24,7 +24,7 @@ static const struct drm_conf_ret throttle_ret = {
>>
>> static const struct drm_conf_ret share_fd_ret = {
>> .type = DRM_CONF_BOOL,
>> - .val.val_int = true,
>> + .val.val_bool = true,
>> };
>>
>> static const struct drm_conf_ret *drm_configuration(enum drm_conf conf)
>> diff --git a/src/gallium/targets/pipe-loader/pipe_r300.c b/src/gallium/targets/pipe-loader/pipe_r300.c
>> index 0c17085..dd5c0bd 100644
>> --- a/src/gallium/targets/pipe-loader/pipe_r300.c
>> +++ b/src/gallium/targets/pipe-loader/pipe_r300.c
>> @@ -20,7 +20,7 @@ static const struct drm_conf_ret throttle_ret = {
>>
>> static const struct drm_conf_ret share_fd_ret = {
>> .type = DRM_CONF_BOOL,
>> - .val.val_int = true,
>> + .val.val_bool = true,
>> };
>>
>> static const struct drm_conf_ret *drm_configuration(enum drm_conf conf)
>> diff --git a/src/gallium/targets/pipe-loader/pipe_r600.c b/src/gallium/targets/pipe-loader/pipe_r600.c
>> index dd2652d..70760d0 100644
>> --- a/src/gallium/targets/pipe-loader/pipe_r600.c
>> +++ b/src/gallium/targets/pipe-loader/pipe_r600.c
>> @@ -20,7 +20,7 @@ static const struct drm_conf_ret throttle_ret = {
>>
>> static const struct drm_conf_ret share_fd_ret = {
>> .type = DRM_CONF_BOOL,
>> - .val.val_int = true,
>> + .val.val_bool = true,
>> };
>>
>> static const struct drm_conf_ret *drm_configuration(enum drm_conf conf)
>> diff --git a/src/gallium/targets/pipe-loader/pipe_radeonsi.c b/src/gallium/targets/pipe-loader/pipe_radeonsi.c
>> index 59ea82d..01b1d8a 100644
>> --- a/src/gallium/targets/pipe-loader/pipe_radeonsi.c
>> +++ b/src/gallium/targets/pipe-loader/pipe_radeonsi.c
>> @@ -26,7 +26,7 @@ static const struct drm_conf_ret throttle_ret = {
>>
>> static const struct drm_conf_ret share_fd_ret = {
>> .type = DRM_CONF_BOOL,
>> - .val.val_int = true,
>> + .val.val_bool = true,
>> };
>>
>> static const struct drm_conf_ret *drm_configuration(enum drm_conf conf)
>> --
>> 2.10.2
>>
>
> Oops, left out this hunk... will squash it into my local patch:
>
> diff --git a/src/gallium/targets/pipe-loader/pipe_vmwgfx.c
> b/src/gallium/targets/pipe-loader/pipe_vmwgfx.c
> index 4572327..7aa4421 100644
> --- a/src/gallium/targets/pipe-loader/pipe_vmwgfx.c
> +++ b/src/gallium/targets/pipe-loader/pipe_vmwgfx.c
> @@ -30,7 +30,7 @@ static const struct drm_conf_ret throttle_ret = {
>
> static const struct drm_conf_ret share_fd_ret = {
> .type = DRM_CONF_BOOL,
> - .val.val_int = true,
> + .val.val_bool = true,
> };
>
with that LGTM,
Reviewed-by: Edward O'Callaghan <funfunctor at folklore1984.net>
> static const struct drm_conf_ret *drm_configuration(enum drm_conf conf)
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/mesa-stable/attachments/20170418/99dfdf36/attachment.sig>
More information about the mesa-stable
mailing list