Compile-tested OK.

- Sedat -

On Wed, Jan 6, 2010 at 6:39 PM, michal <mic...@vmware.com> wrote:
> Brian Paul wrote on 2010-01-06 18:07:
>>
>> Sedat Dilek wrote:
>>
>>>
>>> Hi,
>>>
>>> this patch fixes a build-error in mesa GIT master after...
>>>
>>> commit  251363e8f1287b54dc7734e690daf2ae96728faf (patch)
>>> "configs: set INTEL_LIBS, INTEL_CFLAGS, etcmaster"
>>>
>>> >From my build-log:
>>> ...
>>> In file included from svga_pipe_fs.c:37:
>>> svga_tgsi.h: In function 'svga_fs_key_size':
>>> svga_tgsi.h:122: error: cannot take address of bit-field 'texture_target'
>>> make[4]: *** [svga_pipe_fs.o] Error 1
>>>
>>> Might be introduced in...
>>>
>>> commit  955f51270bb60ad77dba049799587dc7c0fb4dda
>>> "Make sure we use only signed/unsigned ints with bitfields."
>>>
>>> Kind Regars,
>>> - Sedat -
>>>
>>>
>>
>> I just fixed that.
>>
>>
>
> Actually, we could go back to bitfields and fix broken svga_fs_key_size().
>
> Attached a patch.
>
> Can somebody review, test-build and commit?
>
>
> From 7321aef0dfc5bb160ec8a33d1d4e686419f2ed3d Mon Sep 17 00:00:00 2001
> From: Michal Krol <mic...@vmware.com>
> Date: Wed, 6 Jan 2010 18:36:45 +0100
> Subject: [PATCH] svga: Fix fs key size computation and key comparison.
>
> This also allows us to have texture_target
> back as a bitfield and save us a few bytes.
> ---
>  src/gallium/drivers/svga/svga_state_fs.c |    9 +++++++--
>  src/gallium/drivers/svga/svga_tgsi.h     |    5 ++---
>  2 files changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/src/gallium/drivers/svga/svga_state_fs.c
> b/src/gallium/drivers/svga/svga_state_fs.c
> index 272d1dd..bba80a9 100644
> --- a/src/gallium/drivers/svga/svga_state_fs.c
> +++ b/src/gallium/drivers/svga/svga_state_fs.c
> @@ -40,8 +40,13 @@
>  static INLINE int compare_fs_keys( const struct svga_fs_compile_key *a,
>                                    const struct svga_fs_compile_key *b )
>  {
> -   unsigned keysize = svga_fs_key_size( a );
> -   return memcmp( a, b, keysize );
> +   unsigned keysize_a = svga_fs_key_size( a );
> +   unsigned keysize_b = svga_fs_key_size( b );
> +
> +   if (keysize_a != keysize_b) {
> +      return (int)(keysize_a - keysize_b);
> +   }
> +   return memcmp( a, b, keysize_a );
>  }
>
>
> diff --git a/src/gallium/drivers/svga/svga_tgsi.h
> b/src/gallium/drivers/svga/svga_tgsi.h
> index 043b991..737a221 100644
> --- a/src/gallium/drivers/svga/svga_tgsi.h
> +++ b/src/gallium/drivers/svga/svga_tgsi.h
> @@ -56,7 +56,7 @@ struct svga_fs_compile_key
>       unsigned compare_func:3;
>       unsigned unnormalized:1;
>       unsigned width_height_idx:7;
> -      ubyte texture_target;
> +      unsigned texture_target:8;
>    } tex[PIPE_MAX_SAMPLERS];
>  };
>
> @@ -119,8 +119,7 @@ static INLINE unsigned svga_vs_key_size( const struct
> svga_vs_compile_key *key )
>
>  static INLINE unsigned svga_fs_key_size( const struct svga_fs_compile_key
> *key )
>  {
> -   return (const char *)&key->tex[key->num_textures].texture_target -
> -      (const char *)key;
> +   return (const char *)&key->tex[key->num_textures] - (const char *)key;
>  }
>
>  struct svga_shader_result *
> --
> 1.6.4.msysgit.0
>
>
>

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to