On Tue, Apr 18, 2017 at 12:00 AM, Ilia Mirkin <imir...@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 <imir...@alum.mit.edu> > Cc: mesa-sta...@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, }; static const struct drm_conf_ret *drm_configuration(enum drm_conf conf) _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev