From: michal <michal@vmware.com>
To: Brian Paul <brianp@vmware.com>
Cc: "sedat.dilek@gmail.com" <sedat.dilek@gmail.com>,
DRI <dri-devel@lists.sourceforge.net>,
"mesa3d-dev@lists.sourceforge.net"
<mesa3d-dev@lists.sourceforge.net>
Subject: Re: [Mesa3d-dev] [mesa] svga: Fix error: cannot take address of bit-field 'texture_target' in svga_tgsi.h
Date: Wed, 06 Jan 2010 18:39:55 +0100 [thread overview]
Message-ID: <4B44CAEB.60701@vmware.com> (raw)
In-Reply-To: <4B44C358.2020005@vmware.com>
[-- Attachment #1: Type: text/plain, Size: 858 bytes --]
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?
[-- Attachment #2: 0001-svga-Fix-fs-key-size-computation-and-key-comparison.patch --]
[-- Type: text/plain, Size: 2038 bytes --]
>From 7321aef0dfc5bb160ec8a33d1d4e686419f2ed3d Mon Sep 17 00:00:00 2001
From: Michal Krol <michal@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
[-- Attachment #3: Type: text/plain, Size: 390 bytes --]
------------------------------------------------------------------------------
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
[-- Attachment #4: Type: text/plain, Size: 161 bytes --]
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel
next prev parent reply other threads:[~2010-01-06 17:39 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-06 16:34 [mesa] svga: Fix error: cannot take address of bit-field 'texture_target' in svga_tgsi.h Sedat Dilek
2010-01-06 17:07 ` [Mesa3d-dev] " Brian Paul
2010-01-06 17:09 ` Sedat Dilek
2010-01-06 17:38 ` Keith Whitwell
2010-01-06 17:38 ` Brian Paul
2010-01-06 17:55 ` [Mesa3d-dev] " Sedat Dilek
2010-01-06 17:39 ` michal [this message]
2010-01-06 17:54 ` Sedat Dilek
2010-01-08 14:34 ` michal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4B44CAEB.60701@vmware.com \
--to=michal@vmware.com \
--cc=brianp@vmware.com \
--cc=dri-devel@lists.sourceforge.net \
--cc=mesa3d-dev@lists.sourceforge.net \
--cc=sedat.dilek@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.