[Mesa-dev] Mesa 10.4 has been branched

2014-11-15 Thread Emil Velikov
Hello list,

As you'll notice shortly I have just branched the next release branch
10.4 of the master branch. Additionally I've created and pushed a
10.4-branchpoint tag that should ease people searching through mesa's
history.

The first release candidate tag be that 10.4.0-rc1 or 10.3.99.901 will
follow on Monday based on the yay and nays on the topic. Obviously the
tag will go with piglit testing followed by a summary with the results
shortly after.

As a reminder: Please include both 10.4 and 10.3 if you like your stable
patch to be picked up for the two branches. Patches without explicit
version will be considered for the 10.3 only.

Thanks
Emil
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH] mesa: Bump version to 10.5.0-devel.

2014-11-15 Thread Vinson Lee
Signed-off-by: Vinson Lee v...@freedesktop.org
---
 VERSION | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/VERSION b/VERSION
index d43f97a..093d8ba 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-10.4.0-devel
+10.5.0-devel
-- 
1.9.2

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH] mesa: Fix _mesa_uint_array_min_max linker error.

2014-11-15 Thread Siavash Eliasi


On 11/15/2014 01:20 AM, Timothy Arceri wrote:

On Fri, 2014-11-14 at 22:14 +0330, Siavash Eliasi wrote:

You are right. Any suggestions on how to fix this build failure?


Using this would fix it but the optimisation would be disabled on clang.
Not sure how many people are concerned about this, I don't use clang
myself.

[1]
http://lists.freedesktop.org/archives/mesa-dev/2014-November/070387.html



Unfortunately I'm not familiar with autoconf, but I think the magic 
should happen at configure.ac. I think USE_SSE41 macro should only 
defined when: 1. SSE4.1 is not permanently disabled (-mno-sse4.1) and 2. 
target compiler supports generating SSE4.1 code.

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH] mesa: Bump version to 10.5.0-devel.

2014-11-15 Thread Emil Velikov
Hi Vinson,

I've deliberately omitted the version update, pending the conclusion of
the Move mesa version scheme to a more common style ? thread

-Emil

On 15/11/14 08:50, Vinson Lee wrote:
 Signed-off-by: Vinson Lee v...@freedesktop.org
 ---
  VERSION | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/VERSION b/VERSION
 index d43f97a..093d8ba 100644
 --- a/VERSION
 +++ b/VERSION
 @@ -1 +1 @@
 -10.4.0-devel
 +10.5.0-devel
 

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] Move mesa version scheme to a more common style ?

2014-11-15 Thread Emil Velikov
On 14 November 2014 16:48, Ilia Mirkin imir...@alum.mit.edu wrote:
 On Fri, Nov 14, 2014 at 11:17 AM, Emil Velikov emil.l.veli...@gmail.com 
 wrote:
 On 14/11/14 15:24, Ilia Mirkin wrote:
 On Fri, Nov 14, 2014 at 9:39 AM, Emil Velikov emil.l.veli...@gmail.com 
 wrote:
 Hello all,

 This is an old question that I had laying around - why doesn't mesa use
 a more conventional numbering for the development/rc releases ?

 Eg.
 mesa 10.4.0-rc1 - 10.3.99.901
 mesa 10.4.0-rc2 - 10.3.99.902
 ...
 mesa 10.4.0 - 10.4.0
 mesa 10.4.1-rc1 - 10.4.0.901
 ... you get the idea.

 Afaics most freedesktop project use it plus a big hunk of gnome.

 Are there any objections if I move to the above format starting with
 mesa 10.4-rc1 ? I would appreciate any feedback over the next 2-3 days,
 and based on it I'll tag the first RC.

 Huh? What's wrong with the current thing? Can I put in an alternate
 suggestion of getting the other projects to switch to the mesa (and
 linux kernel and wine and many many many other projects) rc version
 naming scheme?

 To be perfectly honest, I don't think I can think of any (apart from the
 kernel and wine) that have a stable branch(es) and use rc. Can you
 kindly point me to some or if you have some ideas of a search phrase
 that would be appreciated.

 Hmmm... well, most projects don't *have* rc's, so it's definitely a
 reduced set. But let's see... just thinking about various software I
 use and plugging it into my favourite search engine:

Speaking of software that I use, KDE (with all of its glory) uses
identical scheme as the proposed.

 emacs: http://lists.gnu.org/archive/html/info-gnu-emacs/2014-10/msg1.html
So it seems that their 9x are the actual rc (relates to the proposal),
while their RC is an actual wake up call - guys test this because I'm
releasing in two days. Also the RC business seems to be a recent
feature as only the last to releases have it.

 openssl: https://www.openssl.org/source/ (does -beta1 instead of -rc1,
 but same idea)
That software has a special definition of {major,minor,patch} number
:P  Yet it justifies your point.

 pidgin did beta tags for 2.0, but not for all releases:
 https://hg.pidgin.im/pidgin/main/tags

Can not see any stable branch in there. I don't think there is any
master branch either. They have default, which is presumably the same
as master.

 BTW, it's not like I'm leaving out ones that use some other scheme...
 other ones I looked up just didn't have any such thing at all.

When in Rome... + mesa is considered part of X development = ?

-Emil
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] Move mesa version scheme to a more common style ?

2014-11-15 Thread Emil Velikov
On 14 November 2014 19:50, Ilia Mirkin imir...@alum.mit.edu wrote:
 On Fri, Nov 14, 2014 at 9:39 AM, Emil Velikov emil.l.veli...@gmail.com 
 wrote:
 Hello all,

 This is an old question that I had laying around - why doesn't mesa use
 a more conventional numbering for the development/rc releases ?

 Eg.
 mesa 10.4.0-rc1 - 10.3.99.901
 mesa 10.4.0-rc2 - 10.3.99.902
 ...
 mesa 10.4.0 - 10.4.0

 Something else that occurred to me -- you want to still make a stable
 10.3 release, so 10.3.x will come out after 10.3.99.901? Seems
 confusing...

Not sure I fully understand what the confusing part it is. Can you elaborate ?

Perhaps the following examples should clear any of your confusion:

10.3 branch:
10.3.0
10.3.0.901 (10.3.1-rc1)
10.3.0.902 (10.3.1-rc2) // if needed
10.3.1
10.3.1.901 (10.3.2-rc1)
10.3.1.902 (10.3.2-rc2) // if needed
... you get the idea.

At the same time

Master branch:
10.3.99 (10.4-dev)
10.4.99 (10.5-dev)

As you can see things are straight forward, plus as Daniel pointed
out, using this approach the version string is actually linear :)

-Emil
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH 2/2] Revert mesa: Wrap SSE4.1 code in #ifdef __SSE4_1__.

2014-11-15 Thread Emil Velikov
This reverts commit 8d3f739383fbdf671752fdec707f1c2b9b2aa6a3.

In the last commit we've updated our check to determine if the actual
code is buildable, rather than if the compiler acknowledges the option.
I.e. did anyone provide -mno-sse4.1 vs is my compiler too old.

Now this code will never be attemped to be build, in both cases.

Confirmed by building mesa with
export CFLAGS='-march=native -mno-sse4.1'
configure  make

Cc: Matt Turner matts...@gmail.com
Cc: David Heidelberger da...@ixit.cz
---
 src/mesa/main/streaming-load-memcpy.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/src/mesa/main/streaming-load-memcpy.c 
b/src/mesa/main/streaming-load-memcpy.c
index 8427149..d7147af 100644
--- a/src/mesa/main/streaming-load-memcpy.c
+++ b/src/mesa/main/streaming-load-memcpy.c
@@ -26,7 +26,6 @@
  *
  */
 
-#ifdef __SSE4_1__
 #include main/macros.h
 #include main/streaming-load-memcpy.h
 #include smmintrin.h
@@ -84,5 +83,3 @@ _mesa_streaming_load_memcpy(void *restrict dst, void 
*restrict src, size_t len)
   memcpy(d, s, len);
}
 }
-
-#endif
-- 
2.1.3

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH 1/2] configure.ac: roll up a program for the sse4.1 check

2014-11-15 Thread Emil Velikov
So when checking/building sse code we have three possibilities:
 1 Old compiler, throws an error when using -msse*
 2 New compiler, user disables sse* (-mno-sse*)
 3 New compiler, user doesn't disable sse

The original code, added code for #1 but not #2. Later on we patched 
around the lack of handling #2 by wrapping the code in __SSE4_1__.
Yet it lead to a missing/undefined symbol in case of #1 or #2, which 
might cause an issue for #2 when using the i965 driver.

A bit later we fixed the undefined symbol by using #1, rather than 
updating it to handle #2. With this commit we set things straight :)

To top it all up, conventions state that in case of conflicting
(-enable-foo -disable-foo) options, the latter one takes precedence.
Thus we need to make sure to prepend -msse4.1 to CFLAGS in our test.

Cc: Siavash Eliasi siavashser...@gmail.com
Cc: Matt Turner matts...@gmail.com
Signed-off-by: Emil Velikov emil.l.veli...@gmail.com
---

Man this thing is _very_ messy.
Matt from the last hunk it seems that pixman might need fixing. Should 
be bother with that, or let people have fun when they hit it :P

-Emil

 configure.ac | 14 +-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 91e111b..9d1835e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -252,7 +252,19 @@ AC_SUBST([VISIBILITY_CXXFLAGS])
 dnl
 dnl Optional flags, check for compiler support
 dnl
-AX_CHECK_COMPILE_FLAG([-msse4.1], [SSE41_SUPPORTED=1], [SSE41_SUPPORTED=0])
+save_CFLAGS=$CFLAGS
+CFLAGS=-msse4.1 $CFLAGS
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
+#include mmintrin.h
+#include xmmintrin.h
+#include emmintrin.h
+#include smmintrin.h
+int main () {
+__m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
+c = _mm_max_epu32(a, b);
+return 0;
+}]])], SSE41_SUPPORTED=1)
+CFLAGS=$save_CFLAGS
 if test x$SSE41_SUPPORTED = x1; then
 DEFINES=$DEFINES -DUSE_SSE41
 fi
-- 
2.1.3

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] Move mesa version scheme to a more common style ?

2014-11-15 Thread Ilia Mirkin
On Sat, Nov 15, 2014 at 6:52 AM, Emil Velikov emil.l.veli...@gmail.com wrote:
 On 14 November 2014 19:50, Ilia Mirkin imir...@alum.mit.edu wrote:
 On Fri, Nov 14, 2014 at 9:39 AM, Emil Velikov emil.l.veli...@gmail.com 
 wrote:
 Hello all,

 This is an old question that I had laying around - why doesn't mesa use
 a more conventional numbering for the development/rc releases ?

 Eg.
 mesa 10.4.0-rc1 - 10.3.99.901
 mesa 10.4.0-rc2 - 10.3.99.902
 ...
 mesa 10.4.0 - 10.4.0

 Something else that occurred to me -- you want to still make a stable
 10.3 release, so 10.3.x will come out after 10.3.99.901? Seems
 confusing...

 Not sure I fully understand what the confusing part it is. Can you elaborate ?

 Perhaps the following examples should clear any of your confusion:

 10.3 branch:
 10.3.0
 10.3.0.901 (10.3.1-rc1)
 10.3.0.902 (10.3.1-rc2) // if needed
 10.3.1
 10.3.1.901 (10.3.2-rc1)
 10.3.1.902 (10.3.2-rc2) // if needed
 ... you get the idea.

 At the same time

 Master branch:
 10.3.99 (10.4-dev)

So you make this release. One might *think* that the latest 10.3.x is
10.3.99 then. But it's not. Since *after* this release, you'll put out
a 10.3.2, which will have fixes that 10.3.99 doesn't have. It makes
for a non-linear version number situation which IMO is rather
confusing. With the current version numbering scheme that ~every
project uses except X.org, it's very clear what the latest release is
in a particular line. Also, 10.3.99 has no connection to 10.3 at all,
it is in fact much closer to 10.4. This is why it makes sense to call
it 10.4-rc1 and not 10.3.x.

  -ilia
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] Move mesa version scheme to a more common style ?

2014-11-15 Thread Marek Olšák
I've always found the X.Org versioning scheme unintuitive. This is
actually for the first time after ~5 years of contributing to open
source graphics that I finally understand how the X versioning works.
Granted, I had never been interested in it anyway.

If you need to have a web page on x.org that explains it, that alone
is an indication that it's too complicated.

Marek

On Fri, Nov 14, 2014 at 3:39 PM, Emil Velikov emil.l.veli...@gmail.com wrote:
 Hello all,

 This is an old question that I had laying around - why doesn't mesa use
 a more conventional numbering for the development/rc releases ?

 Eg.
 mesa 10.4.0-rc1 - 10.3.99.901
 mesa 10.4.0-rc2 - 10.3.99.902
 ...
 mesa 10.4.0 - 10.4.0
 mesa 10.4.1-rc1 - 10.4.0.901
 ... you get the idea.

 Afaics most freedesktop project use it plus a big hunk of gnome.

 Are there any objections if I move to the above format starting with
 mesa 10.4-rc1 ? I would appreciate any feedback over the next 2-3 days,
 and based on it I'll tag the first RC.

 The plan is to still keep the branch point later on today, but to push
 the tag on Monday.

 Thanks
 Emil
 ___
 mesa-dev mailing list
 mesa-dev@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/mesa-dev
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 2/2] Revert mesa: Wrap SSE4.1 code in #ifdef __SSE4_1__.

2014-11-15 Thread David Heidelberg

Apply for both patch 1/2 and 2/2.

Host: chroot on AMD A3870K
Target: AMD TK-55 (compiled with -mno-sse41)

I tested chroot cross-compilation and it passed correctly.

Tested-by: David Heidelberg da...@ixit.cz
On 11/15/2014 06:04 PM, Emil Velikov wrote:

This reverts commit 8d3f739383fbdf671752fdec707f1c2b9b2aa6a3.

In the last commit we've updated our check to determine if the actual
code is buildable, rather than if the compiler acknowledges the option.
I.e. did anyone provide -mno-sse4.1 vs is my compiler too old.

Now this code will never be attemped to be build, in both cases.

Confirmed by building mesa with
export CFLAGS='-march=native -mno-sse4.1'
configure  make

Cc: Matt Turner matts...@gmail.com
Cc: David Heidelberger da...@ixit.cz
---
  src/mesa/main/streaming-load-memcpy.c | 3 ---
  1 file changed, 3 deletions(-)

diff --git a/src/mesa/main/streaming-load-memcpy.c 
b/src/mesa/main/streaming-load-memcpy.c
index 8427149..d7147af 100644
--- a/src/mesa/main/streaming-load-memcpy.c
+++ b/src/mesa/main/streaming-load-memcpy.c
@@ -26,7 +26,6 @@
   *
   */
  
-#ifdef __SSE4_1__

  #include main/macros.h
  #include main/streaming-load-memcpy.h
  #include smmintrin.h
@@ -84,5 +83,3 @@ _mesa_streaming_load_memcpy(void *restrict dst, void 
*restrict src, size_t len)
memcpy(d, s, len);
 }
  }
-
-#endif


___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] configure.ac: roll up a program for the sse4.1 check

2014-11-15 Thread Ilia Mirkin
On Sat, Nov 15, 2014 at 12:04 PM, Emil Velikov emil.l.veli...@gmail.com wrote:
 So when checking/building sse code we have three possibilities:
  1 Old compiler, throws an error when using -msse*
  2 New compiler, user disables sse* (-mno-sse*)
  3 New compiler, user doesn't disable sse

 The original code, added code for #1 but not #2. Later on we patched
 around the lack of handling #2 by wrapping the code in __SSE4_1__.
 Yet it lead to a missing/undefined symbol in case of #1 or #2, which
 might cause an issue for #2 when using the i965 driver.

 A bit later we fixed the undefined symbol by using #1, rather than
 updating it to handle #2. With this commit we set things straight :)

 To top it all up, conventions state that in case of conflicting
 (-enable-foo -disable-foo) options, the latter one takes precedence.
 Thus we need to make sure to prepend -msse4.1 to CFLAGS in our test.

 Cc: Siavash Eliasi siavashser...@gmail.com
 Cc: Matt Turner matts...@gmail.com
 Signed-off-by: Emil Velikov emil.l.veli...@gmail.com
 ---

 Man this thing is _very_ messy.
 Matt from the last hunk it seems that pixman might need fixing. Should
 be bother with that, or let people have fun when they hit it :P

 -Emil

  configure.ac | 14 +-
  1 file changed, 13 insertions(+), 1 deletion(-)

 diff --git a/configure.ac b/configure.ac
 index 91e111b..9d1835e 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -252,7 +252,19 @@ AC_SUBST([VISIBILITY_CXXFLAGS])
  dnl
  dnl Optional flags, check for compiler support
  dnl
 -AX_CHECK_COMPILE_FLAG([-msse4.1], [SSE41_SUPPORTED=1], [SSE41_SUPPORTED=0])
 +save_CFLAGS=$CFLAGS
 +CFLAGS=-msse4.1 $CFLAGS
 +AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
 +#include mmintrin.h
 +#include xmmintrin.h
 +#include emmintrin.h
 +#include smmintrin.h
 +int main () {
 +__m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
 +c = _mm_max_epu32(a, b);
 +return 0;

This seems complicated.

(a) Just #include immintrin.h
(b) Is any of this even necessary? how about

int main() { return !__SSE_4_1__; }

 +}]])], SSE41_SUPPORTED=1)
 +CFLAGS=$save_CFLAGS
  if test x$SSE41_SUPPORTED = x1; then
  DEFINES=$DEFINES -DUSE_SSE41
  fi
 --
 2.1.3

 ___
 mesa-dev mailing list
 mesa-dev@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/mesa-dev
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] configure.ac: roll up a program for the sse4.1 check

2014-11-15 Thread Ilia Mirkin
On Sat, Nov 15, 2014 at 1:13 PM, Ilia Mirkin imir...@alum.mit.edu wrote:
 On Sat, Nov 15, 2014 at 12:04 PM, Emil Velikov emil.l.veli...@gmail.com 
 wrote:
 So when checking/building sse code we have three possibilities:
  1 Old compiler, throws an error when using -msse*
  2 New compiler, user disables sse* (-mno-sse*)
  3 New compiler, user doesn't disable sse

 The original code, added code for #1 but not #2. Later on we patched
 around the lack of handling #2 by wrapping the code in __SSE4_1__.
 Yet it lead to a missing/undefined symbol in case of #1 or #2, which
 might cause an issue for #2 when using the i965 driver.

 A bit later we fixed the undefined symbol by using #1, rather than
 updating it to handle #2. With this commit we set things straight :)

 To top it all up, conventions state that in case of conflicting
 (-enable-foo -disable-foo) options, the latter one takes precedence.
 Thus we need to make sure to prepend -msse4.1 to CFLAGS in our test.

 Cc: Siavash Eliasi siavashser...@gmail.com
 Cc: Matt Turner matts...@gmail.com
 Signed-off-by: Emil Velikov emil.l.veli...@gmail.com
 ---

 Man this thing is _very_ messy.
 Matt from the last hunk it seems that pixman might need fixing. Should
 be bother with that, or let people have fun when they hit it :P

 -Emil

  configure.ac | 14 +-
  1 file changed, 13 insertions(+), 1 deletion(-)

 diff --git a/configure.ac b/configure.ac
 index 91e111b..9d1835e 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -252,7 +252,19 @@ AC_SUBST([VISIBILITY_CXXFLAGS])
  dnl
  dnl Optional flags, check for compiler support
  dnl
 -AX_CHECK_COMPILE_FLAG([-msse4.1], [SSE41_SUPPORTED=1], [SSE41_SUPPORTED=0])
 +save_CFLAGS=$CFLAGS
 +CFLAGS=-msse4.1 $CFLAGS
 +AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
 +#include mmintrin.h
 +#include xmmintrin.h
 +#include emmintrin.h
 +#include smmintrin.h
 +int main () {
 +__m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
 +c = _mm_max_epu32(a, b);
 +return 0;

 This seems complicated.

 (a) Just #include immintrin.h
 (b) Is any of this even necessary? how about

 int main() { return !__SSE_4_1__; }

Er, I guess this is a compile check, so more like

#ifndef __SSE_4_1__
#error no sse4.1 support
#endif

int main() { return 0; }


 +}]])], SSE41_SUPPORTED=1)
 +CFLAGS=$save_CFLAGS
  if test x$SSE41_SUPPORTED = x1; then
  DEFINES=$DEFINES -DUSE_SSE41
  fi
 --
 2.1.3

 ___
 mesa-dev mailing list
 mesa-dev@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/mesa-dev
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] configure.ac: roll up a program for the sse4.1 check

2014-11-15 Thread Matt Turner
On Sat, Nov 15, 2014 at 10:13 AM, Ilia Mirkin imir...@alum.mit.edu wrote:
 On Sat, Nov 15, 2014 at 12:04 PM, Emil Velikov emil.l.veli...@gmail.com 
 wrote:
 So when checking/building sse code we have three possibilities:
  1 Old compiler, throws an error when using -msse*
  2 New compiler, user disables sse* (-mno-sse*)
  3 New compiler, user doesn't disable sse

 The original code, added code for #1 but not #2. Later on we patched
 around the lack of handling #2 by wrapping the code in __SSE4_1__.
 Yet it lead to a missing/undefined symbol in case of #1 or #2, which
 might cause an issue for #2 when using the i965 driver.

 A bit later we fixed the undefined symbol by using #1, rather than
 updating it to handle #2. With this commit we set things straight :)

 To top it all up, conventions state that in case of conflicting
 (-enable-foo -disable-foo) options, the latter one takes precedence.
 Thus we need to make sure to prepend -msse4.1 to CFLAGS in our test.

 Cc: Siavash Eliasi siavashser...@gmail.com
 Cc: Matt Turner matts...@gmail.com
 Signed-off-by: Emil Velikov emil.l.veli...@gmail.com
 ---

 Man this thing is _very_ messy.
 Matt from the last hunk it seems that pixman might need fixing. Should
 be bother with that, or let people have fun when they hit it :P

 -Emil

  configure.ac | 14 +-
  1 file changed, 13 insertions(+), 1 deletion(-)

 diff --git a/configure.ac b/configure.ac
 index 91e111b..9d1835e 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -252,7 +252,19 @@ AC_SUBST([VISIBILITY_CXXFLAGS])
  dnl
  dnl Optional flags, check for compiler support
  dnl
 -AX_CHECK_COMPILE_FLAG([-msse4.1], [SSE41_SUPPORTED=1], [SSE41_SUPPORTED=0])
 +save_CFLAGS=$CFLAGS
 +CFLAGS=-msse4.1 $CFLAGS
 +AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
 +#include mmintrin.h
 +#include xmmintrin.h
 +#include emmintrin.h
 +#include smmintrin.h
 +int main () {
 +__m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
 +c = _mm_max_epu32(a, b);
 +return 0;

 This seems complicated.

 (a) Just #include immintrin.h
 (b) Is any of this even necessary? how about

 int main() { return !__SSE_4_1__; }

Checking that you can actually using the intrinsics seens like a good
plan. Pixman's configure.ac has been doing that for a long time. I'd
rather copy that. It's not like we'd save much by not doing it.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] configure.ac: roll up a program for the sse4.1 check

2014-11-15 Thread Matt Turner
On Sat, Nov 15, 2014 at 9:04 AM, Emil Velikov emil.l.veli...@gmail.com wrote:
 So when checking/building sse code we have three possibilities:
  1 Old compiler, throws an error when using -msse*
  2 New compiler, user disables sse* (-mno-sse*)
  3 New compiler, user doesn't disable sse

 The original code, added code for #1 but not #2. Later on we patched
 around the lack of handling #2 by wrapping the code in __SSE4_1__.
 Yet it lead to a missing/undefined symbol in case of #1 or #2, which
 might cause an issue for #2 when using the i965 driver.

 A bit later we fixed the undefined symbol by using #1, rather than
 updating it to handle #2. With this commit we set things straight :)

 To top it all up, conventions state that in case of conflicting
 (-enable-foo -disable-foo) options, the latter one takes precedence.
 Thus we need to make sure to prepend -msse4.1 to CFLAGS in our test.

 Cc: Siavash Eliasi siavashser...@gmail.com
 Cc: Matt Turner matts...@gmail.com
 Signed-off-by: Emil Velikov emil.l.veli...@gmail.com
 ---

 Man this thing is _very_ messy.
 Matt from the last hunk it seems that pixman might need fixing. Should
 be bother with that, or let people have fun when they hit it :P

I don't know what you mean, specifically.

 -Emil

  configure.ac | 14 +-
  1 file changed, 13 insertions(+), 1 deletion(-)

 diff --git a/configure.ac b/configure.ac
 index 91e111b..9d1835e 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -252,7 +252,19 @@ AC_SUBST([VISIBILITY_CXXFLAGS])
  dnl
  dnl Optional flags, check for compiler support
  dnl
 -AX_CHECK_COMPILE_FLAG([-msse4.1], [SSE41_SUPPORTED=1], [SSE41_SUPPORTED=0])
 +save_CFLAGS=$CFLAGS
 +CFLAGS=-msse4.1 $CFLAGS
 +AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
 +#include mmintrin.h
 +#include xmmintrin.h
 +#include emmintrin.h
 +#include smmintrin.h

I think all you need to include is smmintrin.h.

 +int main () {
 +__m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
 +c = _mm_max_epu32(a, b);
 +return 0;
 +}]])], SSE41_SUPPORTED=1)
 +CFLAGS=$save_CFLAGS
  if test x$SSE41_SUPPORTED = x1; then
  DEFINES=$DEFINES -DUSE_SSE41
  fi
 --
 2.1.3

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 2/2] Revert mesa: Wrap SSE4.1 code in #ifdef __SSE4_1__.

2014-11-15 Thread Matt Turner
On Sat, Nov 15, 2014 at 9:04 AM, Emil Velikov emil.l.veli...@gmail.com wrote:
 This reverts commit 8d3f739383fbdf671752fdec707f1c2b9b2aa6a3.

 In the last commit we've updated our check to determine if the actual
 code is buildable, rather than if the compiler acknowledges the option.
 I.e. did anyone provide -mno-sse4.1 vs is my compiler too old.

 Now this code will never be attemped to be build, in both cases.

 Confirmed by building mesa with
 export CFLAGS='-march=native -mno-sse4.1'
 configure  make

 Cc: Matt Turner matts...@gmail.com
 Cc: David Heidelberger da...@ixit.cz

Thanks Emil. Both look good, with some minor comments on patch #1 -- both are

Reviewed-by: Matt Turner matts...@gmail.com
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] configure.ac: roll up a program for the sse4.1 check

2014-11-15 Thread Emil Velikov
On 15/11/14 18:18, Matt Turner wrote:
 On Sat, Nov 15, 2014 at 10:13 AM, Ilia Mirkin imir...@alum.mit.edu wrote:
 On Sat, Nov 15, 2014 at 12:04 PM, Emil Velikov emil.l.veli...@gmail.com 
 wrote:
 So when checking/building sse code we have three possibilities:
  1 Old compiler, throws an error when using -msse*
  2 New compiler, user disables sse* (-mno-sse*)
  3 New compiler, user doesn't disable sse

 The original code, added code for #1 but not #2. Later on we patched
 around the lack of handling #2 by wrapping the code in __SSE4_1__.
 Yet it lead to a missing/undefined symbol in case of #1 or #2, which
 might cause an issue for #2 when using the i965 driver.

 A bit later we fixed the undefined symbol by using #1, rather than
 updating it to handle #2. With this commit we set things straight :)

 To top it all up, conventions state that in case of conflicting
 (-enable-foo -disable-foo) options, the latter one takes precedence.
 Thus we need to make sure to prepend -msse4.1 to CFLAGS in our test.

 Cc: Siavash Eliasi siavashser...@gmail.com
 Cc: Matt Turner matts...@gmail.com
 Signed-off-by: Emil Velikov emil.l.veli...@gmail.com
 ---

 Man this thing is _very_ messy.
 Matt from the last hunk it seems that pixman might need fixing. Should
 be bother with that, or let people have fun when they hit it :P

 -Emil

  configure.ac | 14 +-
  1 file changed, 13 insertions(+), 1 deletion(-)

 diff --git a/configure.ac b/configure.ac
 index 91e111b..9d1835e 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -252,7 +252,19 @@ AC_SUBST([VISIBILITY_CXXFLAGS])
  dnl
  dnl Optional flags, check for compiler support
  dnl
 -AX_CHECK_COMPILE_FLAG([-msse4.1], [SSE41_SUPPORTED=1], [SSE41_SUPPORTED=0])
 +save_CFLAGS=$CFLAGS
 +CFLAGS=-msse4.1 $CFLAGS
 +AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
 +#include mmintrin.h
 +#include xmmintrin.h
 +#include emmintrin.h
 +#include smmintrin.h
 +int main () {
 +__m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
 +c = _mm_max_epu32(a, b);
 +return 0;

 This seems complicated.

Ilia, did you really mean complicated or you're having a thing for me :)
Excessive ? Perhaps, but as Matt mentioned, actually checking one of the
functions you're going to use does not hurt.

 (a) Just #include immintrin.h
 (b) Is any of this even necessary? how about

 int main() { return !__SSE_4_1__; }
 
 Checking that you can actually using the intrinsics seens like a good
 plan. Pixman's configure.ac has been doing that for a long time. I'd
 rather copy that. It's not like we'd save much by not doing it.
 
That's where I drew the inspiration.

-Emil
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] configure.ac: roll up a program for the sse4.1 check

2014-11-15 Thread Siavash Eliasi
Tested on Core2 Q9550, using -march=native with and without 
-mno-sse4.1flag. It works perfect :)


Also David Heidelberg kindly tested the patch which permanently enables 
optimized code paths if supported by target machine and it was okay.

http://patchwork.freedesktop.org/patch/36488/

And a small improvement to your patch, I think including smmintrin.h 
or the all-in-one alternative immintrin.h should be enough.


Best regards,
Siavash Eliasi.

On 11/15/2014 08:34 PM, Emil Velikov wrote:

So when checking/building sse code we have three possibilities:
  1 Old compiler, throws an error when using -msse*
  2 New compiler, user disables sse* (-mno-sse*)
  3 New compiler, user doesn't disable sse

The original code, added code for #1 but not #2. Later on we patched
around the lack of handling #2 by wrapping the code in __SSE4_1__.
Yet it lead to a missing/undefined symbol in case of #1 or #2, which
might cause an issue for #2 when using the i965 driver.

A bit later we fixed the undefined symbol by using #1, rather than
updating it to handle #2. With this commit we set things straight :)

To top it all up, conventions state that in case of conflicting
(-enable-foo -disable-foo) options, the latter one takes precedence.
Thus we need to make sure to prepend -msse4.1 to CFLAGS in our test.

Cc: Siavash Eliasi siavashser...@gmail.com
Cc: Matt Turner matts...@gmail.com
Signed-off-by: Emil Velikov emil.l.veli...@gmail.com
---

Man this thing is _very_ messy.
Matt from the last hunk it seems that pixman might need fixing. Should
be bother with that, or let people have fun when they hit it :P

-Emil

  configure.ac | 14 +-
  1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 91e111b..9d1835e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -252,7 +252,19 @@ AC_SUBST([VISIBILITY_CXXFLAGS])
  dnl
  dnl Optional flags, check for compiler support
  dnl
-AX_CHECK_COMPILE_FLAG([-msse4.1], [SSE41_SUPPORTED=1], [SSE41_SUPPORTED=0])
+save_CFLAGS=$CFLAGS
+CFLAGS=-msse4.1 $CFLAGS
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
+#include mmintrin.h
+#include xmmintrin.h
+#include emmintrin.h
+#include smmintrin.h
+int main () {
+__m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
+c = _mm_max_epu32(a, b);
+return 0;
+}]])], SSE41_SUPPORTED=1)
+CFLAGS=$save_CFLAGS
  if test x$SSE41_SUPPORTED = x1; then
  DEFINES=$DEFINES -DUSE_SSE41
  fi


___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH] mesa: Bump version to 10.5.0-devel.

2014-11-15 Thread Matt Turner
On Sat, Nov 15, 2014 at 3:20 AM, Emil Velikov emil.l.veli...@gmail.com wrote:
 Hi Vinson,

 I've deliberately omitted the version update, pending the conclusion of
 the Move mesa version scheme to a more common style ? thread

Wouldn't the master branch be 10.5.0-devel regardless?
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] configure.ac: roll up a program for the sse4.1 check

2014-11-15 Thread Emil Velikov
On 15/11/14 18:21, Matt Turner wrote:
 On Sat, Nov 15, 2014 at 9:04 AM, Emil Velikov emil.l.veli...@gmail.com 
 wrote:
 So when checking/building sse code we have three possibilities:
  1 Old compiler, throws an error when using -msse*
  2 New compiler, user disables sse* (-mno-sse*)
  3 New compiler, user doesn't disable sse

 The original code, added code for #1 but not #2. Later on we patched
 around the lack of handling #2 by wrapping the code in __SSE4_1__.
 Yet it lead to a missing/undefined symbol in case of #1 or #2, which
 might cause an issue for #2 when using the i965 driver.

 A bit later we fixed the undefined symbol by using #1, rather than
 updating it to handle #2. With this commit we set things straight :)

 To top it all up, conventions state that in case of conflicting
 (-enable-foo -disable-foo) options, the latter one takes precedence.
 Thus we need to make sure to prepend -msse4.1 to CFLAGS in our test.

 Cc: Siavash Eliasi siavashser...@gmail.com
 Cc: Matt Turner matts...@gmail.com
 Signed-off-by: Emil Velikov emil.l.veli...@gmail.com
 ---

 Man this thing is _very_ messy.
 Matt from the last hunk it seems that pixman might need fixing. Should
 be bother with that, or let people have fun when they hit it :P
 
 I don't know what you mean, specifically.
 
configure.ac (in pixman) does:

CFLAGS=$CFLAGS -msse4.1
AC_COMPILE_IFELSE(...)

Which overwrites the cflags set by the user. I.e. it will not honour
-mno-sse4.1. At build time things will blow up, as CFLAGS, are placed
after AM_CFLAGS. I.e. in the makefiles the user knows best while in
configure it's the opposite.

 -Emil

  configure.ac | 14 +-
  1 file changed, 13 insertions(+), 1 deletion(-)

 diff --git a/configure.ac b/configure.ac
 index 91e111b..9d1835e 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -252,7 +252,19 @@ AC_SUBST([VISIBILITY_CXXFLAGS])
  dnl
  dnl Optional flags, check for compiler support
  dnl
 -AX_CHECK_COMPILE_FLAG([-msse4.1], [SSE41_SUPPORTED=1], [SSE41_SUPPORTED=0])
 +save_CFLAGS=$CFLAGS
 +CFLAGS=-msse4.1 $CFLAGS
 +AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
 +#include mmintrin.h
 +#include xmmintrin.h
 +#include emmintrin.h
 +#include smmintrin.h
 
 I think all you need to include is smmintrin.h.
 
True, blame pixman for the rest :P

-Emil
 +int main () {
 +__m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
 +c = _mm_max_epu32(a, b);
 +return 0;
 +}]])], SSE41_SUPPORTED=1)
 +CFLAGS=$save_CFLAGS
  if test x$SSE41_SUPPORTED = x1; then
  DEFINES=$DEFINES -DUSE_SSE41
  fi
 --
 2.1.3


___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH] st/mesa: add a fallback for clear_with_quad when no vs_layer

2014-11-15 Thread Ilia Mirkin
Not all drivers can set gl_Layer from VS. Add a fallback that passes the
instance id from VS to GS, and then uses the GS to set the layer.

Tested by adding

  quad_buffers |= clear_buffers;
  clear_buffers = 0;

to the st_Clear logic, and forcing set_vertex_shader_layered in all
cases. No piglit regressions (on piglits with 'clear' in the name).

Signed-off-by: Ilia Mirkin imir...@alum.mit.edu
Cc: 10.3 10.4 mesa-sta...@lists.freedesktop.org
---

No explicit piglit test hits this path without the above hacks, so it went
under the radar for a long time. I tested this on nvc0 with the above hacks,
and double-checked that without them, things still worked.

 src/gallium/auxiliary/util/u_simple_shaders.c | 70 +++
 src/gallium/auxiliary/util/u_simple_shaders.h |  6 +++
 src/mesa/state_tracker/st_cb_clear.c  | 25 --
 src/mesa/state_tracker/st_context.h   |  1 +
 4 files changed, 97 insertions(+), 5 deletions(-)

diff --git a/src/gallium/auxiliary/util/u_simple_shaders.c 
b/src/gallium/auxiliary/util/u_simple_shaders.c
index adf4887..2cf528b 100644
--- a/src/gallium/auxiliary/util/u_simple_shaders.c
+++ b/src/gallium/auxiliary/util/u_simple_shaders.c
@@ -124,6 +124,76 @@ void *util_make_layered_clear_vertex_shader(struct 
pipe_context *pipe)
return pipe-create_vs_state(pipe, state);
 }
 
+/**
+ * Takes position and color, and outputs position, color, and instance id.
+ */
+void *util_make_layered_clear_helper_vertex_shader(struct pipe_context *pipe)
+{
+   static const char text[] =
+ VERT\n
+ DCL IN[0]\n
+ DCL IN[1]\n
+ DCL SV[0], INSTANCEID\n
+ DCL OUT[0], POSITION\n
+ DCL OUT[1], GENERIC[0]\n
+ DCL OUT[2], GENERIC[1]\n
+
+ MOV OUT[0], IN[0]\n
+ MOV OUT[1], IN[1]\n
+ MOV OUT[2].x, SV[0].\n
+ END\n;
+   struct tgsi_token tokens[1000];
+   struct pipe_shader_state state = {tokens};
+
+   if (!tgsi_text_translate(text, tokens, Elements(tokens))) {
+  assert(0);
+  return NULL;
+   }
+   return pipe-create_vs_state(pipe, state);
+}
+
+/**
+ * Takes position, color, and target layer, and emits vertices on that target
+ * layer, with the specified color.
+ */
+void *util_make_layered_clear_geometry_shader(struct pipe_context *pipe)
+{
+   static const char text[] =
+  GEOM\n
+  PROPERTY GS_INPUT_PRIMITIVE TRIANGLES\n
+  PROPERTY GS_OUTPUT_PRIMITIVE TRIANGLE_STRIP\n
+  PROPERTY GS_MAX_OUTPUT_VERTICES 3\n
+  PROPERTY GS_INVOCATIONS 1\n
+  DCL IN[][0], POSITION\n /* position */
+  DCL IN[][1], GENERIC[0]\n /* color */
+  DCL IN[][2], GENERIC[1]\n /* vs invocation */
+  DCL OUT[0], POSITION\n
+  DCL OUT[1], GENERIC[0]\n
+  DCL OUT[2], LAYER\n
+  IMM[0] INT32 {0, 0, 0, 0}\n
+
+  MOV OUT[0], IN[0][0]\n
+  MOV OUT[1], IN[0][1]\n
+  MOV OUT[2].x, IN[0][2].\n
+  EMIT IMM[0].\n
+  MOV OUT[0], IN[1][0]\n
+  MOV OUT[1], IN[1][1]\n
+  MOV OUT[2].x, IN[1][2].\n
+  EMIT IMM[0].\n
+  MOV OUT[0], IN[2][0]\n
+  MOV OUT[1], IN[2][1]\n
+  MOV OUT[2].x, IN[2][2].\n
+  EMIT IMM[0].\n
+  END\n;
+   struct tgsi_token tokens[1000];
+   struct pipe_shader_state state = {tokens};
+
+   if (!tgsi_text_translate(text, tokens, Elements(tokens))) {
+  assert(0);
+  return NULL;
+   }
+   return pipe-create_gs_state(pipe, state);
+}
 
 /**
  * Make simple fragment texture shader:
diff --git a/src/gallium/auxiliary/util/u_simple_shaders.h 
b/src/gallium/auxiliary/util/u_simple_shaders.h
index c1d14aa..b467b9f5 100644
--- a/src/gallium/auxiliary/util/u_simple_shaders.h
+++ b/src/gallium/auxiliary/util/u_simple_shaders.h
@@ -60,6 +60,12 @@ extern void *
 util_make_layered_clear_vertex_shader(struct pipe_context *pipe);
 
 extern void *
+util_make_layered_clear_helper_vertex_shader(struct pipe_context *pipe);
+
+extern void *
+util_make_layered_clear_geometry_shader(struct pipe_context *pipe);
+
+extern void *
 util_make_fragment_tex_shader_writemask(struct pipe_context *pipe, 
 unsigned tex_target,
 unsigned interp_mode,
diff --git a/src/mesa/state_tracker/st_cb_clear.c 
b/src/mesa/state_tracker/st_cb_clear.c
index 2c1414e..e778556 100644
--- a/src/mesa/state_tracker/st_cb_clear.c
+++ b/src/mesa/state_tracker/st_cb_clear.c
@@ -88,6 +88,14 @@ st_destroy_clear(struct st_context *st)
   cso_delete_vertex_shader(st-cso_context, st-clear.vs);
   st-clear.vs = NULL;
}
+   if (st-clear.vs_layered) {
+  cso_delete_vertex_shader(st-cso_context, st-clear.vs_layered);
+  st-clear.vs_layered = NULL;
+   }
+   if (st-clear.gs_layered) {
+  cso_delete_geometry_shader(st-cso_context, st-clear.gs_layered);
+  st-clear.gs_layered = NULL;
+   }
 }
 
 
@@ -127,6 +135,7 @@ set_vertex_shader(struct st_context *st)
}
 
cso_set_vertex_shader_handle(st-cso_context, st-clear.vs);
+  

[Mesa-dev] [PATCHv2] configure.ac: roll up a program for the sse4.1 check

2014-11-15 Thread Emil Velikov
So when checking/building sse code we have three possibilities:
 1 Old compiler, throws an error when using -msse*
 2 New compiler, user disables sse* (-mno-sse*)
 3 New compiler, user doesn't disable sse

The original code, added code for #1 but not #2. Later on we patched
around the lack of handling #2 by wrapping the code in __SSE4_1__.
Yet it lead to a missing/undefined symbol in case of #1 or #2, which
might cause an issue for #2 when using the i965 driver.

A bit later we fixed the undefined symbol by using #1, rather than
updating it to handle #2. With this commit we set things straight :)

To top it all up, conventions state that in case of conflicting
(-enable-foo -disable-foo) options, the latter one takes precedence.
Thus we need to make sure to prepend -msse4.1 to CFLAGS in our test.

v2: Clean the #includes. Suggested by Ilia, Matt  Siavash.

Cc: Siavash Eliasi siavashser...@gmail.com
Cc: Matt Turner matts...@gmail.com
Tested-by: David Heidelberg da...@ixit.cz
Tested-by: Siavash Eliasi siavashser...@gmail.com
Reviewed-by: Matt Turner matts...@gmail.com
Signed-off-by: Emil Velikov emil.l.veli...@gmail.com
---
 configure.ac | 11 ++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 91e111b..8aa070d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -252,7 +252,16 @@ AC_SUBST([VISIBILITY_CXXFLAGS])
 dnl
 dnl Optional flags, check for compiler support
 dnl
-AX_CHECK_COMPILE_FLAG([-msse4.1], [SSE41_SUPPORTED=1], [SSE41_SUPPORTED=0])
+save_CFLAGS=$CFLAGS
+CFLAGS=-msse4.1 $CFLAGS
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
+#include smmintrin.h
+int main () {
+__m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
+c = _mm_max_epu32(a, b);
+return 0;
+}]])], SSE41_SUPPORTED=1)
+CFLAGS=$save_CFLAGS
 if test x$SSE41_SUPPORTED = x1; then
 DEFINES=$DEFINES -DUSE_SSE41
 fi
-- 
2.1.3

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] configure.ac: roll up a program for the sse4.1 check

2014-11-15 Thread Matt Turner
On Sat, Nov 15, 2014 at 10:30 AM, Emil Velikov emil.l.veli...@gmail.com wrote:
 On 15/11/14 18:21, Matt Turner wrote:
 On Sat, Nov 15, 2014 at 9:04 AM, Emil Velikov emil.l.veli...@gmail.com 
 wrote:
 Man this thing is _very_ messy.
 Matt from the last hunk it seems that pixman might need fixing. Should
 be bother with that, or let people have fun when they hit it :P

 I don't know what you mean, specifically.

 configure.ac (in pixman) does:

 CFLAGS=$CFLAGS -msse4.1
 AC_COMPILE_IFELSE(...)

Where? I see

MMX_CFLAGS=-mmmx -Winline
...
CFLAGS=$MMX_CFLAGS $CFLAGS

SSE2_CFLAGS=-msse2 -Winline
...
CFLAGS=$SSE2_CFLAGS $CFLAGS

and

SSSE3_CFLAGS=-mssse3 -Winline
...
CFLAGS=$SSSE3_CFLAGS $CFLAGS

which looks like it's doing the right thing. I tried building it with
-mno-ssse3 and it correctly disabled the SSSE3 code.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCHv2] configure.ac: roll up a program for the sse4.1 check

2014-11-15 Thread Matt Turner
On Sat, Nov 15, 2014 at 10:37 AM, Emil Velikov emil.l.veli...@gmail.com wrote:
 So when checking/building sse code we have three possibilities:
  1 Old compiler, throws an error when using -msse*
  2 New compiler, user disables sse* (-mno-sse*)
  3 New compiler, user doesn't disable sse

 The original code, added code for #1 but not #2. Later on we patched
 around the lack of handling #2 by wrapping the code in __SSE4_1__.
 Yet it lead to a missing/undefined symbol in case of #1 or #2, which
 might cause an issue for #2 when using the i965 driver.

 A bit later we fixed the undefined symbol by using #1, rather than
 updating it to handle #2. With this commit we set things straight :)

 To top it all up, conventions state that in case of conflicting
 (-enable-foo -disable-foo) options, the latter one takes precedence.
 Thus we need to make sure to prepend -msse4.1 to CFLAGS in our test.

 v2: Clean the #includes. Suggested by Ilia, Matt  Siavash.

 Cc: Siavash Eliasi siavashser...@gmail.com
 Cc: Matt Turner matts...@gmail.com

Get rid of the Ccs if people have responded before you commit. :)
 Tested-by: David Heidelberg da...@ixit.cz
 Tested-by: Siavash Eliasi siavashser...@gmail.com
 Reviewed-by: Matt Turner matts...@gmail.com
 Signed-off-by: Emil Velikov emil.l.veli...@gmail.com
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] configure.ac: roll up a program for the sse4.1 check

2014-11-15 Thread Ilia Mirkin
On Sat, Nov 15, 2014 at 1:25 PM, Emil Velikov emil.l.veli...@gmail.com wrote:
 On 15/11/14 18:18, Matt Turner wrote:
 On Sat, Nov 15, 2014 at 10:13 AM, Ilia Mirkin imir...@alum.mit.edu wrote:
 On Sat, Nov 15, 2014 at 12:04 PM, Emil Velikov emil.l.veli...@gmail.com 
 wrote:
 So when checking/building sse code we have three possibilities:
  1 Old compiler, throws an error when using -msse*
  2 New compiler, user disables sse* (-mno-sse*)
  3 New compiler, user doesn't disable sse

 The original code, added code for #1 but not #2. Later on we patched
 around the lack of handling #2 by wrapping the code in __SSE4_1__.
 Yet it lead to a missing/undefined symbol in case of #1 or #2, which
 might cause an issue for #2 when using the i965 driver.

 A bit later we fixed the undefined symbol by using #1, rather than
 updating it to handle #2. With this commit we set things straight :)

 To top it all up, conventions state that in case of conflicting
 (-enable-foo -disable-foo) options, the latter one takes precedence.
 Thus we need to make sure to prepend -msse4.1 to CFLAGS in our test.

 Cc: Siavash Eliasi siavashser...@gmail.com
 Cc: Matt Turner matts...@gmail.com
 Signed-off-by: Emil Velikov emil.l.veli...@gmail.com
 ---

 Man this thing is _very_ messy.
 Matt from the last hunk it seems that pixman might need fixing. Should
 be bother with that, or let people have fun when they hit it :P

 -Emil

  configure.ac | 14 +-
  1 file changed, 13 insertions(+), 1 deletion(-)

 diff --git a/configure.ac b/configure.ac
 index 91e111b..9d1835e 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -252,7 +252,19 @@ AC_SUBST([VISIBILITY_CXXFLAGS])
  dnl
  dnl Optional flags, check for compiler support
  dnl
 -AX_CHECK_COMPILE_FLAG([-msse4.1], [SSE41_SUPPORTED=1], 
 [SSE41_SUPPORTED=0])
 +save_CFLAGS=$CFLAGS
 +CFLAGS=-msse4.1 $CFLAGS
 +AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
 +#include mmintrin.h
 +#include xmmintrin.h
 +#include emmintrin.h
 +#include smmintrin.h
 +int main () {
 +__m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
 +c = _mm_max_epu32(a, b);
 +return 0;

 This seems complicated.

 Ilia, did you really mean complicated or you're having a thing for me :)

I like simplicity.

 Excessive ? Perhaps, but as Matt mentioned, actually checking one of the
 functions you're going to use does not hurt.

Indeed. Checking the functions seems like a not-unreasonable thing to
do. Perhaps I'm naive and like to think that if __SSE_4_1__ is
defined, then all's well :)


 (a) Just #include immintrin.h
 (b) Is any of this even necessary? how about

 int main() { return !__SSE_4_1__; }

 Checking that you can actually using the intrinsics seens like a good
 plan. Pixman's configure.ac has been doing that for a long time. I'd
 rather copy that. It's not like we'd save much by not doing it.

 That's where I drew the inspiration.

 -Emil
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] configure.ac: roll up a program for the sse4.1 check

2014-11-15 Thread Emil Velikov
On 15/11/14 18:38, Matt Turner wrote:
 On Sat, Nov 15, 2014 at 10:30 AM, Emil Velikov emil.l.veli...@gmail.com 
 wrote:
 On 15/11/14 18:21, Matt Turner wrote:
 On Sat, Nov 15, 2014 at 9:04 AM, Emil Velikov emil.l.veli...@gmail.com 
 wrote:
 Man this thing is _very_ messy.
 Matt from the last hunk it seems that pixman might need fixing. Should
 be bother with that, or let people have fun when they hit it :P

 I don't know what you mean, specifically.

 configure.ac (in pixman) does:

 CFLAGS=$CFLAGS -msse4.1
 AC_COMPILE_IFELSE(...)
 
 Where? I see
 ...
Pardon for the noise it seems to be a PEBKAC on my end :)

-Emil
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH] mesa: Bump version to 10.5.0-devel.

2014-11-15 Thread Emil Velikov
On 15/11/14 18:28, Matt Turner wrote:
 On Sat, Nov 15, 2014 at 3:20 AM, Emil Velikov emil.l.veli...@gmail.com 
 wrote:
 Hi Vinson,

 I've deliberately omitted the version update, pending the conclusion of
 the Move mesa version scheme to a more common style ? thread
 
 Wouldn't the master branch be 10.5.0-devel regardless?
 
Perhaps I was not clear enough, but the plan was to use the numbering
scheme throughout. Yet it seems that things are going to stay as is - 2
negative and 2 neutral votes :)

-Emil
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH] mesa/main: Fix tmp_row memory leak in texstore_rgba_integer.

2014-11-15 Thread Siavash Eliasi
---
 src/mesa/main/texstore.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/mesa/main/texstore.c b/src/mesa/main/texstore.c
index f913e42..f858cef 100644
--- a/src/mesa/main/texstore.c
+++ b/src/mesa/main/texstore.c
@@ -1667,8 +1667,10 @@ texstore_rgba_integer(TEXSTORE_PARAMS)
 
assert(is_array  !normalized);
 
-   if (!is_array)
+   if (!is_array) {
+  free(tmp_row);
   return GL_FALSE;
+   }
 
invert_swizzle(dst2rgba, rgba2dst);
compute_component_mapping(GL_RGBA, baseInternalFormat, base2rgba);
-- 
2.1.3

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH] mesa/main: Fix tmp_row memory leak in texstore_rgba_integer.

2014-11-15 Thread Jason Ekstrand
Good catch!

Reviewed-by: Jason Ekstrand jason.ekstr...@intel.com

Can you push or do you need me to?

On Sat, Nov 15, 2014 at 11:02 AM, Siavash Eliasi siavashser...@gmail.com
wrote:

 ---
  src/mesa/main/texstore.c | 4 +++-
  1 file changed, 3 insertions(+), 1 deletion(-)

 diff --git a/src/mesa/main/texstore.c b/src/mesa/main/texstore.c
 index f913e42..f858cef 100644
 --- a/src/mesa/main/texstore.c
 +++ b/src/mesa/main/texstore.c
 @@ -1667,8 +1667,10 @@ texstore_rgba_integer(TEXSTORE_PARAMS)

 assert(is_array  !normalized);

 -   if (!is_array)
 +   if (!is_array) {
 +  free(tmp_row);
return GL_FALSE;
 +   }

 invert_swizzle(dst2rgba, rgba2dst);
 compute_component_mapping(GL_RGBA, baseInternalFormat, base2rgba);
 --
 2.1.3

 ___
 mesa-dev mailing list
 mesa-dev@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/mesa-dev

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH] st/mesa: add a fallback for clear_with_quad when no vs_layer

2014-11-15 Thread Ilia Mirkin
On Sat, Nov 15, 2014 at 1:38 PM, Ilia Mirkin imir...@alum.mit.edu wrote:
 Not all drivers can set gl_Layer from VS. Add a fallback that passes the
 instance id from VS to GS, and then uses the GS to set the layer.

 Tested by adding

   quad_buffers |= clear_buffers;
   clear_buffers = 0;

 to the st_Clear logic, and forcing set_vertex_shader_layered in all
 cases. No piglit regressions (on piglits with 'clear' in the name).

 Signed-off-by: Ilia Mirkin imir...@alum.mit.edu
 Cc: 10.3 10.4 mesa-sta...@lists.freedesktop.org
 ---

 No explicit piglit test hits this path without the above hacks, so it went
 under the radar for a long time. I tested this on nvc0 with the above hacks,
 and double-checked that without them, things still worked.

Fun fact -- llvmpipe also needs this.


  src/gallium/auxiliary/util/u_simple_shaders.c | 70 
 +++
  src/gallium/auxiliary/util/u_simple_shaders.h |  6 +++
  src/mesa/state_tracker/st_cb_clear.c  | 25 --
  src/mesa/state_tracker/st_context.h   |  1 +
  4 files changed, 97 insertions(+), 5 deletions(-)

 diff --git a/src/gallium/auxiliary/util/u_simple_shaders.c 
 b/src/gallium/auxiliary/util/u_simple_shaders.c
 index adf4887..2cf528b 100644
 --- a/src/gallium/auxiliary/util/u_simple_shaders.c
 +++ b/src/gallium/auxiliary/util/u_simple_shaders.c
 @@ -124,6 +124,76 @@ void *util_make_layered_clear_vertex_shader(struct 
 pipe_context *pipe)
 return pipe-create_vs_state(pipe, state);
  }

 +/**
 + * Takes position and color, and outputs position, color, and instance id.
 + */
 +void *util_make_layered_clear_helper_vertex_shader(struct pipe_context *pipe)
 +{
 +   static const char text[] =
 + VERT\n
 + DCL IN[0]\n
 + DCL IN[1]\n
 + DCL SV[0], INSTANCEID\n
 + DCL OUT[0], POSITION\n
 + DCL OUT[1], GENERIC[0]\n
 + DCL OUT[2], GENERIC[1]\n
 +
 + MOV OUT[0], IN[0]\n
 + MOV OUT[1], IN[1]\n
 + MOV OUT[2].x, SV[0].\n
 + END\n;
 +   struct tgsi_token tokens[1000];
 +   struct pipe_shader_state state = {tokens};
 +
 +   if (!tgsi_text_translate(text, tokens, Elements(tokens))) {
 +  assert(0);
 +  return NULL;
 +   }
 +   return pipe-create_vs_state(pipe, state);
 +}
 +
 +/**
 + * Takes position, color, and target layer, and emits vertices on that target
 + * layer, with the specified color.
 + */
 +void *util_make_layered_clear_geometry_shader(struct pipe_context *pipe)
 +{
 +   static const char text[] =
 +  GEOM\n
 +  PROPERTY GS_INPUT_PRIMITIVE TRIANGLES\n
 +  PROPERTY GS_OUTPUT_PRIMITIVE TRIANGLE_STRIP\n
 +  PROPERTY GS_MAX_OUTPUT_VERTICES 3\n
 +  PROPERTY GS_INVOCATIONS 1\n
 +  DCL IN[][0], POSITION\n /* position */
 +  DCL IN[][1], GENERIC[0]\n /* color */
 +  DCL IN[][2], GENERIC[1]\n /* vs invocation */
 +  DCL OUT[0], POSITION\n
 +  DCL OUT[1], GENERIC[0]\n
 +  DCL OUT[2], LAYER\n
 +  IMM[0] INT32 {0, 0, 0, 0}\n
 +
 +  MOV OUT[0], IN[0][0]\n
 +  MOV OUT[1], IN[0][1]\n
 +  MOV OUT[2].x, IN[0][2].\n
 +  EMIT IMM[0].\n
 +  MOV OUT[0], IN[1][0]\n
 +  MOV OUT[1], IN[1][1]\n
 +  MOV OUT[2].x, IN[1][2].\n
 +  EMIT IMM[0].\n
 +  MOV OUT[0], IN[2][0]\n
 +  MOV OUT[1], IN[2][1]\n
 +  MOV OUT[2].x, IN[2][2].\n
 +  EMIT IMM[0].\n
 +  END\n;
 +   struct tgsi_token tokens[1000];
 +   struct pipe_shader_state state = {tokens};
 +
 +   if (!tgsi_text_translate(text, tokens, Elements(tokens))) {
 +  assert(0);
 +  return NULL;
 +   }
 +   return pipe-create_gs_state(pipe, state);
 +}

  /**
   * Make simple fragment texture shader:
 diff --git a/src/gallium/auxiliary/util/u_simple_shaders.h 
 b/src/gallium/auxiliary/util/u_simple_shaders.h
 index c1d14aa..b467b9f5 100644
 --- a/src/gallium/auxiliary/util/u_simple_shaders.h
 +++ b/src/gallium/auxiliary/util/u_simple_shaders.h
 @@ -60,6 +60,12 @@ extern void *
  util_make_layered_clear_vertex_shader(struct pipe_context *pipe);

  extern void *
 +util_make_layered_clear_helper_vertex_shader(struct pipe_context *pipe);
 +
 +extern void *
 +util_make_layered_clear_geometry_shader(struct pipe_context *pipe);
 +
 +extern void *
  util_make_fragment_tex_shader_writemask(struct pipe_context *pipe,
  unsigned tex_target,
  unsigned interp_mode,
 diff --git a/src/mesa/state_tracker/st_cb_clear.c 
 b/src/mesa/state_tracker/st_cb_clear.c
 index 2c1414e..e778556 100644
 --- a/src/mesa/state_tracker/st_cb_clear.c
 +++ b/src/mesa/state_tracker/st_cb_clear.c
 @@ -88,6 +88,14 @@ st_destroy_clear(struct st_context *st)
cso_delete_vertex_shader(st-cso_context, st-clear.vs);
st-clear.vs = NULL;
 }
 +   if (st-clear.vs_layered) {
 +  cso_delete_vertex_shader(st-cso_context, st-clear.vs_layered);
 +  st-clear.vs_layered = NULL;
 +   }
 +   if (st-clear.gs_layered) {
 +  

Re: [Mesa-dev] [PATCH] st/mesa: add a fallback for clear_with_quad when no vs_layer

2014-11-15 Thread Marek Olšák
Reviewed-by: Marek Olšák marek.ol...@amd.com

Marek

On Sat, Nov 15, 2014 at 7:38 PM, Ilia Mirkin imir...@alum.mit.edu wrote:
 Not all drivers can set gl_Layer from VS. Add a fallback that passes the
 instance id from VS to GS, and then uses the GS to set the layer.

 Tested by adding

   quad_buffers |= clear_buffers;
   clear_buffers = 0;

 to the st_Clear logic, and forcing set_vertex_shader_layered in all
 cases. No piglit regressions (on piglits with 'clear' in the name).

 Signed-off-by: Ilia Mirkin imir...@alum.mit.edu
 Cc: 10.3 10.4 mesa-sta...@lists.freedesktop.org
 ---

 No explicit piglit test hits this path without the above hacks, so it went
 under the radar for a long time. I tested this on nvc0 with the above hacks,
 and double-checked that without them, things still worked.

  src/gallium/auxiliary/util/u_simple_shaders.c | 70 
 +++
  src/gallium/auxiliary/util/u_simple_shaders.h |  6 +++
  src/mesa/state_tracker/st_cb_clear.c  | 25 --
  src/mesa/state_tracker/st_context.h   |  1 +
  4 files changed, 97 insertions(+), 5 deletions(-)

 diff --git a/src/gallium/auxiliary/util/u_simple_shaders.c 
 b/src/gallium/auxiliary/util/u_simple_shaders.c
 index adf4887..2cf528b 100644
 --- a/src/gallium/auxiliary/util/u_simple_shaders.c
 +++ b/src/gallium/auxiliary/util/u_simple_shaders.c
 @@ -124,6 +124,76 @@ void *util_make_layered_clear_vertex_shader(struct 
 pipe_context *pipe)
 return pipe-create_vs_state(pipe, state);
  }

 +/**
 + * Takes position and color, and outputs position, color, and instance id.
 + */
 +void *util_make_layered_clear_helper_vertex_shader(struct pipe_context *pipe)
 +{
 +   static const char text[] =
 + VERT\n
 + DCL IN[0]\n
 + DCL IN[1]\n
 + DCL SV[0], INSTANCEID\n
 + DCL OUT[0], POSITION\n
 + DCL OUT[1], GENERIC[0]\n
 + DCL OUT[2], GENERIC[1]\n
 +
 + MOV OUT[0], IN[0]\n
 + MOV OUT[1], IN[1]\n
 + MOV OUT[2].x, SV[0].\n
 + END\n;
 +   struct tgsi_token tokens[1000];
 +   struct pipe_shader_state state = {tokens};
 +
 +   if (!tgsi_text_translate(text, tokens, Elements(tokens))) {
 +  assert(0);
 +  return NULL;
 +   }
 +   return pipe-create_vs_state(pipe, state);
 +}
 +
 +/**
 + * Takes position, color, and target layer, and emits vertices on that target
 + * layer, with the specified color.
 + */
 +void *util_make_layered_clear_geometry_shader(struct pipe_context *pipe)
 +{
 +   static const char text[] =
 +  GEOM\n
 +  PROPERTY GS_INPUT_PRIMITIVE TRIANGLES\n
 +  PROPERTY GS_OUTPUT_PRIMITIVE TRIANGLE_STRIP\n
 +  PROPERTY GS_MAX_OUTPUT_VERTICES 3\n
 +  PROPERTY GS_INVOCATIONS 1\n
 +  DCL IN[][0], POSITION\n /* position */
 +  DCL IN[][1], GENERIC[0]\n /* color */
 +  DCL IN[][2], GENERIC[1]\n /* vs invocation */
 +  DCL OUT[0], POSITION\n
 +  DCL OUT[1], GENERIC[0]\n
 +  DCL OUT[2], LAYER\n
 +  IMM[0] INT32 {0, 0, 0, 0}\n
 +
 +  MOV OUT[0], IN[0][0]\n
 +  MOV OUT[1], IN[0][1]\n
 +  MOV OUT[2].x, IN[0][2].\n
 +  EMIT IMM[0].\n
 +  MOV OUT[0], IN[1][0]\n
 +  MOV OUT[1], IN[1][1]\n
 +  MOV OUT[2].x, IN[1][2].\n
 +  EMIT IMM[0].\n
 +  MOV OUT[0], IN[2][0]\n
 +  MOV OUT[1], IN[2][1]\n
 +  MOV OUT[2].x, IN[2][2].\n
 +  EMIT IMM[0].\n
 +  END\n;
 +   struct tgsi_token tokens[1000];
 +   struct pipe_shader_state state = {tokens};
 +
 +   if (!tgsi_text_translate(text, tokens, Elements(tokens))) {
 +  assert(0);
 +  return NULL;
 +   }
 +   return pipe-create_gs_state(pipe, state);
 +}

  /**
   * Make simple fragment texture shader:
 diff --git a/src/gallium/auxiliary/util/u_simple_shaders.h 
 b/src/gallium/auxiliary/util/u_simple_shaders.h
 index c1d14aa..b467b9f5 100644
 --- a/src/gallium/auxiliary/util/u_simple_shaders.h
 +++ b/src/gallium/auxiliary/util/u_simple_shaders.h
 @@ -60,6 +60,12 @@ extern void *
  util_make_layered_clear_vertex_shader(struct pipe_context *pipe);

  extern void *
 +util_make_layered_clear_helper_vertex_shader(struct pipe_context *pipe);
 +
 +extern void *
 +util_make_layered_clear_geometry_shader(struct pipe_context *pipe);
 +
 +extern void *
  util_make_fragment_tex_shader_writemask(struct pipe_context *pipe,
  unsigned tex_target,
  unsigned interp_mode,
 diff --git a/src/mesa/state_tracker/st_cb_clear.c 
 b/src/mesa/state_tracker/st_cb_clear.c
 index 2c1414e..e778556 100644
 --- a/src/mesa/state_tracker/st_cb_clear.c
 +++ b/src/mesa/state_tracker/st_cb_clear.c
 @@ -88,6 +88,14 @@ st_destroy_clear(struct st_context *st)
cso_delete_vertex_shader(st-cso_context, st-clear.vs);
st-clear.vs = NULL;
 }
 +   if (st-clear.vs_layered) {
 +  cso_delete_vertex_shader(st-cso_context, st-clear.vs_layered);
 +  st-clear.vs_layered = NULL;
 +   }
 +   if (st-clear.gs_layered) {
 

[Mesa-dev] EXT/ARB direct state access extensions

2014-11-15 Thread Gustaw Smolarczyk
Hello all,

I would like to ask what is the status of DSA (direct state access)
extensions in mesa. If I understand correctly, there was a GSoC
project by Dylan Noblesmith and there currently is a dsa branch in
mesa repo, but it's not actively worked on at the moment. Is there any
particular reason for not mainlining this other than there being not
enough interest in it? Or was the code not ready for inclusion?

Since the GL 4.5 includes the DSA extension, it would be nice to
support it in mesa. It also provides an easier way to use OpenGL and
could decrease API call count.

Regards,
Gustaw
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH] scons: Require glproto = 1.4.13 for X11.

2014-11-15 Thread Vinson Lee
GLXBadProfileARB and X_GLXCreateContextAtrribsARB require glproto =
1.4.13. These symbols were added in commit
d5d41112cbccd9301500e8e023be77eb9cb622cd st/xlib: Generate errors as
specified.

Signed-off-by: Vinson Lee v...@freedesktop.org
Cc: 10.4 mesa-sta...@lists.freedesktop.org
---
 scons/gallium.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scons/gallium.py b/scons/gallium.py
index e3786d2..4df6e1a 100755
--- a/scons/gallium.py
+++ b/scons/gallium.py
@@ -621,7 +621,7 @@ def generate(env):
 env.Tool('custom')
 createInstallMethods(env)
 
-env.PkgCheckModules('X11', ['x11', 'xext', 'xdamage', 'xfixes'])
+env.PkgCheckModules('X11', ['x11', 'xext', 'xdamage', 'xfixes', 'glproto 
= 1.4.13'])
 env.PkgCheckModules('XCB', ['x11-xcb', 'xcb-glx = 1.8.1', 'xcb-dri2 = 
1.8'])
 env.PkgCheckModules('XF86VIDMODE', ['xxf86vm'])
 env.PkgCheckModules('DRM', ['libdrm = 2.4.38'])
-- 
1.9.2

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH] scons: Require glproto = 1.4.13 for X11.

2014-11-15 Thread Matt Turner
On Sat, Nov 15, 2014 at 2:16 PM, Vinson Lee v...@freedesktop.org wrote:
 GLXBadProfileARB and X_GLXCreateContextAtrribsARB require glproto =
 1.4.13. These symbols were added in commit
 d5d41112cbccd9301500e8e023be77eb9cb622cd st/xlib: Generate errors as
 specified.

 Signed-off-by: Vinson Lee v...@freedesktop.org
 Cc: 10.4 mesa-sta...@lists.freedesktop.org
 ---
  scons/gallium.py | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

 diff --git a/scons/gallium.py b/scons/gallium.py
 index e3786d2..4df6e1a 100755
 --- a/scons/gallium.py
 +++ b/scons/gallium.py
 @@ -621,7 +621,7 @@ def generate(env):
  env.Tool('custom')
  createInstallMethods(env)

 -env.PkgCheckModules('X11', ['x11', 'xext', 'xdamage', 'xfixes'])
 +env.PkgCheckModules('X11', ['x11', 'xext', 'xdamage', 'xfixes', 'glproto 
 = 1.4.13'])
  env.PkgCheckModules('XCB', ['x11-xcb', 'xcb-glx = 1.8.1', 'xcb-dri2 = 
 1.8'])
  env.PkgCheckModules('XF86VIDMODE', ['xxf86vm'])
  env.PkgCheckModules('DRM', ['libdrm = 2.4.38'])
 --
 1.9.2

The autotools build system has required 1.4.14 since 2011 -- see
commit 1e39fc784bc.

It's not clear to me why this difference wouldn't have shown up before.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [Bug 84124] Please revert 8449121971ce1db03fea19665d314e523fdc10dd

2014-11-15 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=84124

--- Comment #6 from almos aaalmo...@gmail.com ---
I noticed that 10.4 has recently been branched, but the release notes doesn't
mention this change yet.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [Bug 86326] clEnqueueNDRangeKernel global_work_offset ignored

2014-11-15 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=86326

Bug ID: 86326
   Summary: clEnqueueNDRangeKernel global_work_offset ignored
   Product: Mesa
   Version: 10.3
  Hardware: x86 (IA32)
OS: Linux (All)
Status: NEW
  Severity: normal
  Priority: medium
 Component: Other
  Assignee: mesa-dev@lists.freedesktop.org
  Reporter: luke-jr+freedesktopb...@utopios.org

global_work_offset can be used to specify an array of work_dim unsigned values
that describe the offset used to calculate the global ID of a work-item. If
global_work_offset is NULL, the global IDs start at offset (0, 0, ... 0).
From:
https://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueNDRangeKernel.html

However, Mesa passes this into clover/core/kernel.cpp kernel::launch, which
then simply ignores it entirely.

Note that OpenCL 1.0 required global_work_offset to be NULL, but Mesa claims
OpenCL 1.1, and if it was only OpenCL 1.0 it would still need to fail if
global_work_offset was non-NULL.

As a result of this bug, software tries to use global_work_offset and ends up
with kernels executing with the wrong values for get_global_id(0)

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH 1/2] nv50, nvc0: actually check constbufs for invalidation

2014-11-15 Thread Ilia Mirkin
The number of vertex buffers has nothing to do with the number of bound
constbufs.

Signed-off-by: Ilia Mirkin imir...@alum.mit.edu
Cc: 10.4 10.3 mesa-sta...@lists.freedesktop.org
---
 src/gallium/drivers/nouveau/nv50/nv50_context.c | 5 +++--
 src/gallium/drivers/nouveau/nvc0/nvc0_context.c | 4 +++-
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/gallium/drivers/nouveau/nv50/nv50_context.c 
b/src/gallium/drivers/nouveau/nv50/nv50_context.c
index 07f6378..5e907d7 100644
--- a/src/gallium/drivers/nouveau/nv50/nv50_context.c
+++ b/src/gallium/drivers/nouveau/nv50/nv50_context.c
@@ -214,8 +214,9 @@ nv50_invalidate_resource_storage(struct nouveau_context 
*ctx,
 
if (res-bind  PIPE_BIND_CONSTANT_BUFFER) {
   for (s = 0; s  3; ++s) {
-  assert(nv50-num_vtxbufs = NV50_MAX_PIPE_CONSTBUFS);
-  for (i = 0; i  nv50-num_vtxbufs; ++i) {
+  for (i = 0; i  NV50_MAX_PIPE_CONSTBUFS; ++i) {
+ if (!(nv50-constbuf_valid[s]  (1  i)))
+continue;
  if (!nv50-constbuf[s][i].user 
  nv50-constbuf[s][i].u.buf == res) {
 nv50-dirty |= NV50_NEW_CONSTBUF;
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_context.c 
b/src/gallium/drivers/nouveau/nvc0/nvc0_context.c
index b33a673..49a46ea 100644
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_context.c
+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_context.c
@@ -232,7 +232,9 @@ nvc0_invalidate_resource_storage(struct nouveau_context 
*ctx,
 
if (res-bind  PIPE_BIND_CONSTANT_BUFFER) {
   for (s = 0; s  5; ++s) {
-  for (i = 0; i  nvc0-num_vtxbufs; ++i) {
+  for (i = 0; i  NVC0_MAX_PIPE_CONSTBUFS; ++i) {
+ if (!(nvc0-constbuf_valid[s]  (1  i)))
+continue;
  if (!nvc0-constbuf[s][i].user 
  nvc0-constbuf[s][i].u.buf == res) {
 nvc0-dirty |= NVC0_NEW_CONSTBUF;
-- 
2.0.4

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH 2/2] nv50, nvc0: buffer resources can be bound as other things down the line

2014-11-15 Thread Ilia Mirkin
res-bind is not an indicator of how the resource is currently bound.
buffers can be rebound across different binding points without changing
underlying storage.

Signed-off-by: Ilia Mirkin imir...@alum.mit.edu
Cc: 10.4 10.3 mesa-sta...@lists.freedesktop.org
---
 src/gallium/drivers/nouveau/nv50/nv50_context.c | 14 +++---
 src/gallium/drivers/nouveau/nvc0/nvc0_context.c | 14 +++---
 2 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/src/gallium/drivers/nouveau/nv50/nv50_context.c 
b/src/gallium/drivers/nouveau/nv50/nv50_context.c
index 5e907d7..1a53579 100644
--- a/src/gallium/drivers/nouveau/nv50/nv50_context.c
+++ b/src/gallium/drivers/nouveau/nv50/nv50_context.c
@@ -180,7 +180,12 @@ nv50_invalidate_resource_storage(struct nouveau_context 
*ctx,
   }
}
 
-   if (res-bind  PIPE_BIND_VERTEX_BUFFER) {
+   if (res-bind  (PIPE_BIND_VERTEX_BUFFER |
+PIPE_BIND_INDEX_BUFFER |
+PIPE_BIND_CONSTANT_BUFFER |
+PIPE_BIND_STREAM_OUTPUT |
+PIPE_BIND_SAMPLER_VIEW)) {
+
   assert(nv50-num_vtxbufs = PIPE_MAX_ATTRIBS);
   for (i = 0; i  nv50-num_vtxbufs; ++i) {
  if (nv50-vtxbuf[i].buffer == res) {
@@ -190,14 +195,11 @@ nv50_invalidate_resource_storage(struct nouveau_context 
*ctx,
return ref;
  }
   }
-   }
-   if (res-bind  PIPE_BIND_INDEX_BUFFER) {
+
   if (nv50-idxbuf.buffer == res)
  if (!--ref)
 return ref;
-   }
 
-   if (res-bind  PIPE_BIND_SAMPLER_VIEW) {
   for (s = 0; s  3; ++s) {
   assert(nv50-num_textures[s] = PIPE_MAX_SAMPLERS);
   for (i = 0; i  nv50-num_textures[s]; ++i) {
@@ -210,9 +212,7 @@ nv50_invalidate_resource_storage(struct nouveau_context 
*ctx,
  }
   }
   }
-   }
 
-   if (res-bind  PIPE_BIND_CONSTANT_BUFFER) {
   for (s = 0; s  3; ++s) {
   for (i = 0; i  NV50_MAX_PIPE_CONSTBUFS; ++i) {
  if (!(nv50-constbuf_valid[s]  (1  i)))
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_context.c 
b/src/gallium/drivers/nouveau/nvc0/nvc0_context.c
index 49a46ea..3992460 100644
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_context.c
+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_context.c
@@ -196,7 +196,12 @@ nvc0_invalidate_resource_storage(struct nouveau_context 
*ctx,
   }
}
 
-   if (res-bind  PIPE_BIND_VERTEX_BUFFER) {
+   if (res-bind  (PIPE_BIND_VERTEX_BUFFER |
+PIPE_BIND_INDEX_BUFFER |
+PIPE_BIND_CONSTANT_BUFFER |
+PIPE_BIND_STREAM_OUTPUT |
+PIPE_BIND_COMMAND_ARGS_BUFFER |
+PIPE_BIND_SAMPLER_VIEW)) {
   for (i = 0; i  nvc0-num_vtxbufs; ++i) {
  if (nvc0-vtxbuf[i].buffer == res) {
 nvc0-dirty |= NVC0_NEW_ARRAYS;
@@ -205,17 +210,14 @@ nvc0_invalidate_resource_storage(struct nouveau_context 
*ctx,
return ref;
  }
   }
-   }
-   if (res-bind  PIPE_BIND_INDEX_BUFFER) {
+
   if (nvc0-idxbuf.buffer == res) {
  nvc0-dirty |= NVC0_NEW_IDXBUF;
  nouveau_bufctx_reset(nvc0-bufctx_3d, NVC0_BIND_IDX);
  if (!--ref)
 return ref;
   }
-   }
 
-   if (res-bind  PIPE_BIND_SAMPLER_VIEW) {
   for (s = 0; s  5; ++s) {
   for (i = 0; i  nvc0-num_textures[s]; ++i) {
  if (nvc0-textures[s][i] 
@@ -228,9 +230,7 @@ nvc0_invalidate_resource_storage(struct nouveau_context 
*ctx,
  }
   }
   }
-   }
 
-   if (res-bind  PIPE_BIND_CONSTANT_BUFFER) {
   for (s = 0; s  5; ++s) {
   for (i = 0; i  NVC0_MAX_PIPE_CONSTBUFS; ++i) {
  if (!(nvc0-constbuf_valid[s]  (1  i)))
-- 
2.0.4

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH] dri/kms: Always zero out struct drm_mode_create_dumb

2014-11-15 Thread Emil Velikov
On 13/11/14 18:05, Thierry Reding wrote:
 From: Thierry Reding tred...@nvidia.com
 
 The DRM_IOCTL_MODE_CREATE_DUMB (and others) IOCTL isn't very rigorously
 specified, which has the effect that some kernel drivers do not consider
 the .pitch and .size fields of struct drm_mode_create_dumb outputs only.
 Instead they will use these as lower bounds and overwrite them only if
 the values that they compute are larger than what userspace provided.
 
 This works if and only if userspace initializes the fields explicitly to
 either 0 or some meaningful value. However, if userspace just leaves the
 values uninitialized and the struct drm_mode_create_dumb is allocated on
 the stack for example, the driver may try to overallocate buffers.
 
 Fortunately most userspace does zero out the structure before passing it
 to the IOCTL, but there are rare exceptions. Mesa is one of them. In an
 attempt to rectify this situation, kernel drivers are being updated to
 not use the .pitch and .size fields as inputs. However in order to fix
 the issue with older kernels, make sure that Mesa always zeros out the
 structure as well.
 
 Future IOCTLs should be more rigorously defined so that structures can
 be validated and IOCTLs rejected if output fields aren't set to zero.
 
Thanks Thierry.

I'm pretty sure the intent here was not to misuse the API, yet again
zeroing the struct sounds like a good idea. I've added Daniel's r-b and
pushed this to master.

Do you think it's of any use if we push this for the stable branches ?
I've not checked your drm changes, this I don't know if we actually
check/validate pitch  size. Is the ioctl going to carry on, throw a
warning or just error out ?

Cheers,
Emil

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [Bug 86330] lp_bld_debug.cpp:112: multiple definition of `raw_debug_ostream::write_impl(char const*, unsigned long)'

2014-11-15 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=86330

Bug ID: 86330
   Summary: lp_bld_debug.cpp:112: multiple definition of
`raw_debug_ostream::write_impl(char const*, unsigned
long)'
   Product: Mesa
   Version: git
  Hardware: x86-64 (AMD64)
OS: Linux (All)
Status: NEW
  Keywords: regression
  Severity: blocker
  Priority: medium
 Component: Mesa core
  Assignee: mesa-dev@lists.freedesktop.org
  Reporter: v...@freedesktop.org
CC: emil.l.veli...@gmail.com

mesa: 45e2ba1b8c9aec47b089eed536d3d7c1fcfb9909 (master 10.4.0-devel)

  CXXLDgallium_drv_video.la
../../../../src/gallium/auxiliary/.libs/libgallium.a(lt1-lp_bld_debug.o): In
function `raw_debug_ostream::write_impl(char const*, unsigned long)':
src/gallium/auxiliary/gallivm/lp_bld_debug.cpp:112: multiple definition of
`raw_debug_ostream::write_impl(char const*, unsigned long)'

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH] gallium/include/pipe: Added interface for atomic counter buffers in pipe

2014-11-15 Thread adityaatluri
---
 src/gallium/include/pipe/p_context.h |  5 +
 src/gallium/include/pipe/p_defines.h |  7 ++-
 src/gallium/include/pipe/p_state.h   | 10 ++
 3 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/src/gallium/include/pipe/p_context.h 
b/src/gallium/include/pipe/p_context.h
index af5674f..bf3be31 100644
--- a/src/gallium/include/pipe/p_context.h
+++ b/src/gallium/include/pipe/p_context.h
@@ -44,6 +44,7 @@ struct pipe_blit_info;
 struct pipe_box;
 struct pipe_clip_state;
 struct pipe_constant_buffer;
+struct pipe_counter_buffer;
 struct pipe_depth_stencil_alpha_state;
 struct pipe_draw_info;
 struct pipe_fence_handle;
@@ -201,6 +202,10 @@ struct pipe_context {
 uint shader, uint index,
 struct pipe_constant_buffer *buf );
 
+   void (*set_counter_buffer)( struct pipe_context *,
+   uint shader, uint index,
+   struct pipe_counter_buffer *buf );
+
void (*set_framebuffer_state)( struct pipe_context *,
   const struct pipe_framebuffer_state * );
 
diff --git a/src/gallium/include/pipe/p_defines.h 
b/src/gallium/include/pipe/p_defines.h
index 8c4e415..717ab6a 100644
--- a/src/gallium/include/pipe/p_defines.h
+++ b/src/gallium/include/pipe/p_defines.h
@@ -341,6 +341,7 @@ enum pipe_flush_flags {
 #define PIPE_BIND_VERTEX_BUFFER(1  4) /* set_vertex_buffers */
 #define PIPE_BIND_INDEX_BUFFER (1  5) /* draw_elements */
 #define PIPE_BIND_CONSTANT_BUFFER  (1  6) /* set_constant_buffer */
+#define PIPE_BIND_COUNTER_BUFFER   (1  7) /* set_counter_buffer */
 #define PIPE_BIND_DISPLAY_TARGET   (1  8) /* flush_front_buffer */
 #define PIPE_BIND_TRANSFER_WRITE   (1  9) /* transfer_map */
 #define PIPE_BIND_TRANSFER_READ(1  10) /* transfer_map */
@@ -572,6 +573,8 @@ enum pipe_cap {
PIPE_CAP_MAX_VERTEX_ATTRIB_STRIDE = 109,
PIPE_CAP_SAMPLER_VIEW_TARGET = 110,
PIPE_CAP_CLIP_HALFZ = 111,
+   PIPE_CAP_USER_COUNTER_BUFFERS = 112,
+   PIPE_CAP_COUNTER_BUFFER_OFFSET_ALIGNMENT = 113,
 };
 
 #define PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_NV50 (1  0)
@@ -631,7 +634,9 @@ enum pipe_shader_cap
PIPE_SHADER_CAP_PREFERRED_IR,
PIPE_SHADER_CAP_TGSI_SQRT_SUPPORTED,
PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS,
-   PIPE_SHADER_CAP_DOUBLES
+   PIPE_SHADER_CAP_DOUBLES,
+   PIPE_SHADER_CAP_MAX_COUNTER_BUFFER_SIZE,
+   PIPE_SHADER_CAP_MAX_COUNTER_BUFFERS
 };
 
 /**
diff --git a/src/gallium/include/pipe/p_state.h 
b/src/gallium/include/pipe/p_state.h
index 43bc48b..49fae5d 100644
--- a/src/gallium/include/pipe/p_state.h
+++ b/src/gallium/include/pipe/p_state.h
@@ -57,6 +57,7 @@ extern C {
 #define PIPE_MAX_CLIP_PLANES   8
 #define PIPE_MAX_COLOR_BUFS8
 #define PIPE_MAX_CONSTANT_BUFFERS 32
+#define PIPE_MAX_COUNTER_BUFFERS  32
 #define PIPE_MAX_SAMPLERS 16
 #define PIPE_MAX_SHADER_INPUTS32
 #define PIPE_MAX_SHADER_OUTPUTS   48 /* 32 GENERICs + POS, PSIZE, FOG, etc. */
@@ -462,6 +463,15 @@ struct pipe_constant_buffer {
const void *user_buffer;  /** pointer to a user buffer if buffer == NULL */
 };
 
+/**
+ * A Counter buffer. A new buffer is set everytime a variable with
+ * atomic_uint is defined.
+ */
+struct pipe_counter_buffer{
+   struct pipe_resource *buffer; /** The actual buffer */
+   unsigned buffer_offset; /** The offset to start of data in buffer in bytes 
*/
+   const void *user_buffer; /** The buffer which is created by the compiler */
+};
 
 /**
  * A stream output target. The structure specifies the range vertices can
-- 
1.9.1

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [Bug 86330] lp_bld_debug.cpp:112: multiple definition of `raw_debug_ostream::write_impl(char const*, unsigned long)'

2014-11-15 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=86330

Vinson Lee v...@freedesktop.org changed:

   What|Removed |Added

   Keywords||bisected

--- Comment #1 from Vinson Lee v...@freedesktop.org ---
Reproduction steps:
$ ./autogen.sh --with-dri-drivers= --with-gallium-drivers=i915,swrast
$ make

d936ef3fb75f2333f795e004204b87760e564b3f is the first bad commit
commit d936ef3fb75f2333f795e004204b87760e564b3f
Author: Emil Velikov emil.l.veli...@gmail.com
Date:   Sun Nov 16 01:07:32 2014 +

auxiliary: ship all files in the distribution tarball

 - Add all headers into Makefile.sources
 - Don't forget the target-helpers
 - Add the python scripts  the formats table/list (csv)
 - Temporary add vl/vl_winsys_dri.c to EXTRA_DIST until we rework the
way VL is build.
 - Add the following to EXTRA_DIST - they are included via the
generated u_indices_gen.c thus we should not add them to *SOURCES.
  indices/u_indices.c
  indices/u_unfilled_indices.c

XXX: Should we nuke gallivm/f.cpp ? It seems that no-one is using it.

v2: Rebase

Signed-off-by: Emil Velikov emil.l.veli...@gmail.com

:04 04 8b3325431a190c91f53fda5cfab5f2926f11628a
941f13adad070b33931d14cc3668f21b61626688 Msrc
bisect run success

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] tinderbox build regression

2014-11-15 Thread Dave Airlie
no idea but I'm picking Emil as the culprit!

Dave.

From:
http://tinderbox.x.org/builds/2014-11-16-/logs/mesa-mesa/#build

make[3]: Entering directory `/home/tinderbox/mesa/mesa/src/gallium/targets/xa'
  CC   libxatracker_la-target.lo
  CXXLDlibxatracker.la
../../../../src/gallium/auxiliary/.libs/libgallium.a(lt1-lp_bld_debug.o):
In function `raw_debug_ostream::write_impl(char const*, unsigned
long)':
/home/tinderbox/mesa/mesa/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp:111:
multiple definition of `raw_debug_ostream::write_impl(char const*,
unsigned long)'
../../../../src/gallium/auxiliary/.libs/libgallium.a(lp_bld_debug.o):/home/tinderbox/mesa/mesa/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp:111:
first defined here
../../../../src/gallium/auxiliary/.libs/libgallium.a(lt1-lp_bld_debug.o):
In function `lp_check_alignment':
/home/tinderbox/mesa/mesa/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp:89:
multiple definition of `lp_check_alignment'
../../../../src/gallium/auxiliary/.libs/libgallium.a(lp_bld_debug.o):/home/tinderbox/mesa/mesa/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp:89:
first defined here
../../../../src/gallium/auxiliary/.libs/libgallium.a(lt1-lp_bld_debug.o):
In function `lp_get_module_id':
/home/tinderbox/mesa/mesa/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp:126:
multiple definition of `lp_get_module_id'
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] feature request for mesamatrix.net

2014-11-15 Thread Romain Failliot
 I appreciate the work you've done to make the GL3.txt file much more
 readable.
 To improve it even more I would like to be able to click on the
 extensions names and see the whole text of the extension from the
 registry on opengl.org. I think it would help to understand why
 something isn't implemented yet and if it looks difficult, etc.

Hi David!

Thanks for the suggestion!
I made the changes and am waiting for a code review from my other dev
(https://github.com/MightyCreak/mesamatrix/compare/opengl-urls?expand=1).
I preferred to make a direct link to the opengl.org specs, I think
it's more mobile friendly than hover links.

Cheers,
Creak
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev