[Mesa-dev] [PATCH] haiku: Fix build through scons corrections and viewport fixes

Brian Paul brianp at vmware.com
Mon Mar 24 07:47:04 PDT 2014


On 03/22/2014 04:58 PM, Alexander von Gluck IV wrote:
> * Add HAVE_PTHREAD, we do have pthread support wrappers now for
>    non-native Haiku threaded applications.
> * Viewport changed behavior recently breaking the build.
>    We fix this by looking at the gl_context ViewportArray
>    (Thanks Brian for the idea)
> ---
>   scons/gallium.py                                   |    5 +++++
>   .../targets/haiku-softpipe/GalliumContext.cpp      |   12 +++++++++---
>   2 files changed, 14 insertions(+), 3 deletions(-)
>
> diff --git a/scons/gallium.py b/scons/gallium.py
> index f505a62..e11d4db 100755
> --- a/scons/gallium.py
> +++ b/scons/gallium.py
> @@ -269,6 +269,11 @@ def generate(env):
>               cppdefines += ['HAVE_ALIAS']
>           else:
>               cppdefines += ['GLX_ALIAS_UNSUPPORTED']
> +    if env['platform'] == 'haiku':
> +        cppdefines += [
> +            'HAVE_PTHREAD',
> +            'HAVE_POSIX_MEMALIGN'
> +        ]
>       if platform == 'windows':
>           cppdefines += [
>               'WIN32',
> diff --git a/src/gallium/targets/haiku-softpipe/GalliumContext.cpp b/src/gallium/targets/haiku-softpipe/GalliumContext.cpp
> index 1078cb7..52cd764 100644
> --- a/src/gallium/targets/haiku-softpipe/GalliumContext.cpp
> +++ b/src/gallium/targets/haiku-softpipe/GalliumContext.cpp
> @@ -44,9 +44,15 @@ extern "C" {
>
>
>   static void
> -hgl_viewport(struct gl_context* glContext, GLint x, GLint y,
> -	GLsizei width, GLsizei height)
> +hgl_viewport(struct gl_context* glContext)
>   {
> +	// TODO: We should try to eliminate this function
> +
> +	GLint x = glContext->ViewportArray[0].X;
> +	GLint y = glContext->ViewportArray[0].Y;
> +	GLint width = glContext->ViewportArray[0].Width;
> +	GLint height = glContext->ViewportArray[0].Height;
> +
>   	TRACE("%s(glContext: %p, x: %d, y: %d, w: %d, h: %d\n", __func__,
>   		glContext, x, y, width, height);
>
> @@ -525,7 +531,7 @@ GalliumContext::ResizeViewport(int32 width, int32 height)
>   	for (context_id i = 0; i < CONTEXT_MAX; i++) {
>   		if (fContext[i] && fContext[i]->st) {
>   			struct st_context *stContext = (struct st_context*)fContext[i]->st;
> -			_mesa_set_viewport(stContext->ctx, 0, 0, width, height);
> +			_mesa_set_viewport(stContext->ctx, 0, 0, 0, width, height);
>           		st_manager_validate_framebuffers(stContext);
>   		}
>   	}
>

Acked-by: Brian Paul <brianp at vmware.com>



More information about the mesa-dev mailing list