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

Ian Romanick idr at freedesktop.org
Mon Mar 24 14:59:28 PDT 2014


On 03/22/2014 03: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)

The build fixes and the Viewport changes should be separate patches.

With the changes split, the patch with the Viewport changes is

Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

I don't know anything about scons, so someone else will have to review that.

> ---
>  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);
>  		}
>  	}
> 



More information about the mesa-dev mailing list