Re: [Mesa-dev] [PATCH1/2] radeonsi: add support for Mullins asics.

2014-05-02 Thread Tom Stellard
On Thu, May 01, 2014 at 01:27:58PM -0400, Samuel Li wrote:
> v2: name defaults to kabini for older llvm
> 
> Signed-off-by: Samuel Li 
> Signed-off-by: Alex Deucher 
> Signed-off-by: Leo Liu 
> Reviewed-by: Marek Olšák 
> 
> ---
>  src/gallium/drivers/radeon/r600_pipe_common.c | 7 +++
>  src/gallium/drivers/radeonsi/si_state.c   | 2 ++
>  src/gallium/winsys/radeon/drm/radeon_drm_winsys.c | 1 +
>  src/gallium/winsys/radeon/drm/radeon_winsys.h | 1 +
>  4 files changed, 11 insertions(+)
> 
> diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c 
> b/src/gallium/drivers/radeon/r600_pipe_common.c
> index 7508865..607521d 100644
> --- a/src/gallium/drivers/radeon/r600_pipe_common.c
> +++ b/src/gallium/drivers/radeon/r600_pipe_common.c
> @@ -293,6 +293,7 @@ static const char* r600_get_name(struct pipe_screen* 
> pscreen)
>   case CHIP_KAVERI: return "AMD KAVERI";
>   case CHIP_KABINI: return "AMD KABINI";
>   case CHIP_HAWAII: return "AMD HAWAII";
> + case CHIP_MULLINS: return "AMD MULLINS";
>   default: return "AMD unknown";
>   }
>  }
> @@ -410,6 +411,12 @@ const char *r600_get_llvm_processor_name(enum 
> radeon_family family)
>   case CHIP_KABINI: return "kabini";
>   case CHIP_KAVERI: return "kaveri";
>   case CHIP_HAWAII: return "hawaii";
> + case CHIP_MULLINS:
> +#if HAVE_LLVM >= 0x305

The convention is to leave the leading zero when specifying LLVM version e.g:

#if HAVE_LLVM >= 0x0305

With that fixed:

Reviewed-by: Tom Stellard 

> + return "mullins";
> +#else
> + return "kabini";
> +#endif
>   default: return "";
>  #endif
>   }
> diff --git a/src/gallium/drivers/radeonsi/si_state.c 
> b/src/gallium/drivers/radeonsi/si_state.c
> index 80f54e2..6d5408b 100644
> --- a/src/gallium/drivers/radeonsi/si_state.c
> +++ b/src/gallium/drivers/radeonsi/si_state.c
> @@ -3101,6 +3101,8 @@ void si_init_config(struct si_context *sctx)
>   /* XXX todo */
>   case CHIP_KABINI:
>   /* XXX todo */
> + case CHIP_MULLINS:
> + /* XXX todo */
>   default:
>   si_pm4_set_reg(pm4, R_028350_PA_SC_RASTER_CONFIG, 
> 0x);
>   si_pm4_set_reg(pm4, R_028354_PA_SC_RASTER_CONFIG_1, 
> 0x);
> diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c 
> b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
> index b53beba..ca34359 100644
> --- a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
> +++ b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
> @@ -276,6 +276,7 @@ static boolean do_winsys_init(struct radeon_drm_winsys 
> *ws)
>  case CHIP_KAVERI:
>  case CHIP_KABINI:
>  case CHIP_HAWAII:
> +case CHIP_MULLINS:
>  ws->info.chip_class = CIK;
>  break;
>  }
> diff --git a/src/gallium/winsys/radeon/drm/radeon_winsys.h 
> b/src/gallium/winsys/radeon/drm/radeon_winsys.h
> index fe0617b..1c0c825 100644
> --- a/src/gallium/winsys/radeon/drm/radeon_winsys.h
> +++ b/src/gallium/winsys/radeon/drm/radeon_winsys.h
> @@ -130,6 +130,7 @@ enum radeon_family {
>  CHIP_KAVERI,
>  CHIP_KABINI,
>  CHIP_HAWAII,
> +CHIP_MULLINS,
>  CHIP_LAST,
>  };
>  
> -- 
> 1.9.1
> 
> ___
> 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] i965: Set miptree target field when creating from a BO.

2014-05-02 Thread Jordan Justen
Reviewed-by: Jordan Justen 

On Thu, May 1, 2014 at 11:48 PM, Kenneth Graunke  wrote:
> Prior to commit 8435b60a3577d2d905eae189cd7e770500177e99, the region
> equivalent of this function called intel_miptree_create_layout, which
> set mt->target to target.  With that commit, it no longer copied target.
>
> Piglit's ext_image_dma_buf_import-sample_[xa]rgb tests would then
> hit an assertion failure, where image->TexObject->Target was
> GL_TEXTURE_EXTERNAL_OES, and mt->target was GL_TEXTURE_2D.
>
> Copying the target fixes this assertion failure.
>
> Cc: Eric Anholt 
> Signed-off-by: Kenneth Graunke 
> ---
>  src/mesa/drivers/dri/i965/intel_tex_image.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/src/mesa/drivers/dri/i965/intel_tex_image.c 
> b/src/mesa/drivers/dri/i965/intel_tex_image.c
> index fbb799b..4eb024f 100644
> --- a/src/mesa/drivers/dri/i965/intel_tex_image.c
> +++ b/src/mesa/drivers/dri/i965/intel_tex_image.c
> @@ -234,6 +234,7 @@ intel_set_texture_image_bo(struct gl_context *ctx,
>   0, width, height, pitch);
> if (intel_image->mt == NULL)
> return;
> +   intel_image->mt->target = target;
> intel_image->mt->total_width = width;
> intel_image->mt->total_height = height;
> intel_image->mt->level[0].slice[0].x_offset = tile_x;
> --
> 1.9.2
>
> ___
> 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


[Mesa-dev] [PATCH 3/9] st/vega: Prevent signed/unsigned comparisons.

2014-05-02 Thread jfonseca
From: José Fonseca 

---
 src/gallium/state_trackers/vega/vg_translate.c | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/gallium/state_trackers/vega/vg_translate.c 
b/src/gallium/state_trackers/vega/vg_translate.c
index 7b3df27..4aad899 100644
--- a/src/gallium/state_trackers/vega/vg_translate.c
+++ b/src/gallium/state_trackers/vega/vg_translate.c
@@ -34,7 +34,7 @@ void _vega_pack_rgba_span_float(struct vg_context *ctx,
 VGImageFormat dstFormat,
 void *dstAddr)
 {
-   VGint i;
+   VGuint i;
 
switch (dstFormat) {
case VG_sRGBX_: {
@@ -458,7 +458,7 @@ void _vega_unpack_float_span_rgba(struct vg_context *ctx,
   VGImageFormat dataFormat,
   VGfloat rgba[][4])
 {
-   VGint i;
+   VGuint i;
union util_color uc;
 
switch (dataFormat) {
@@ -681,7 +681,7 @@ void _vega_unpack_float_span_rgba(struct vg_context *ctx,
   src += offset;
   for (i = 0; i < n; i += 8) {
  VGfloat clr[4];
- VGint j;
+ VGuint j;
  for (j = 0; j < 8 && j < n ; ++j) {
 VGint shift = j;
 clr[0] = (((*src) & (1<> shift);
@@ -705,7 +705,7 @@ void _vega_unpack_float_span_rgba(struct vg_context *ctx,
   src += offset;
   for (i = 0; i < n; i += 8) {
  VGfloat clr[4];
- VGint j;
+ VGuint j;
  for (j = 0; j < 8 && j < n ; ++j) {
 VGint shift = j;
 clr[0] = 0.f;
@@ -728,7 +728,7 @@ void _vega_unpack_float_span_rgba(struct vg_context *ctx,
   src += offset/2;
   for (i = 0; i < n; i += 2) {
  VGfloat clr[4];
- VGint j;
+ VGuint j;
  for (j = 0; j < n && j < 2; ++j) {
 VGint bitter, shift;
 if (j == 0) {
-- 
1.9.1

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


[Mesa-dev] [PATCH 2/9] scons: Adjust the warnings for VS.

2014-05-02 Thread jfonseca
From: José Fonseca 

Silence insignificant warnings so significant warnings have a chance to
stand out.

The only abundant warning that's not silenced here is "C4018:
signed/unsigned mismatch", as it could hide security issues, so it's better
to actually fix the code.
---
 scons/gallium.py | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/scons/gallium.py b/scons/gallium.py
index d13d0e6..ca317b0 100755
--- a/scons/gallium.py
+++ b/scons/gallium.py
@@ -455,7 +455,9 @@ def generate(env):
 ]
 ccflags += [
 '/W3', # warning level
-#'/Wp64', # enable 64 bit porting warnings
+'/wd4244', # conversion from 'type1' to 'type2', possible loss of 
data
+'/wd4305', # truncation from 'type1' to 'type2'
+'/wd4800', # forcing value to bool 'true' or 'false' (performance 
warning)
 '/wd4996', # disable deprecated POSIX name warnings
 ]
 if env['machine'] == 'x86':
-- 
1.9.1

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


[Mesa-dev] [PATCH 1/9] util/u_debug_flush: Use util_snprintf.

2014-05-02 Thread jfonseca
From: José Fonseca 

---
 src/gallium/auxiliary/util/u_debug_flush.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/gallium/auxiliary/util/u_debug_flush.c 
b/src/gallium/auxiliary/util/u_debug_flush.c
index 9cf70db..fdb248c 100644
--- a/src/gallium/auxiliary/util/u_debug_flush.c
+++ b/src/gallium/auxiliary/util/u_debug_flush.c
@@ -46,6 +46,7 @@
 #include "util/u_hash_table.h"
 #include "util/u_double_list.h"
 #include "util/u_inlines.h"
+#include "util/u_string.h"
 #include "os/os_thread.h"
 #include 
 
@@ -320,8 +321,8 @@ debug_flush_might_flush_cb(void *key, void *value, void 
*data)
const char *reason = (const char *) data;
char message[80];
 
-   snprintf(message, sizeof(message),
-"%s referenced mapped buffer detected.", reason);
+   util_snprintf(message, sizeof(message),
+ "%s referenced mapped buffer detected.", reason);
 
pipe_mutex_lock(fbuf->mutex);
if (fbuf->mapped_sync) {
-- 
1.9.1

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


[Mesa-dev] [PATCH 5/9] scons: Don't restrict MSVC_VERSION values.

2014-05-02 Thread jfonseca
From: José Fonseca 

Saves the trouble of continuously needing to update.
---
 common.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/common.py b/common.py
index d6e6215..1d2d586 100644
--- a/common.py
+++ b/common.py
@@ -101,4 +101,4 @@ def AddOptions(opts):
opts.Add(BoolOption('quiet', 'DEPRECATED: profile build', 'yes'))
opts.Add(BoolOption('texture_float', 'enable floating-point textures 
and renderbuffers', 'no'))
if host_platform == 'windows':
-   opts.Add(EnumOption('MSVC_VERSION', 'MS Visual C++ version', 
None, allowed_values=('7.1', '8.0', '9.0', '10.0', '11.0', '12.0')))
+   opts.Add('MSVC_VERSION', 'Microsoft Visual C/C++ version')
-- 
1.9.1

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


[Mesa-dev] [PATCH 7/9] egl: Don't attempt to redefine stdint.h types with VS 2013.

2014-05-02 Thread jfonseca
From: José Fonseca 

Just include stdint.h.
---
 src/egl/main/eglcompiler.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/egl/main/eglcompiler.h b/src/egl/main/eglcompiler.h
index 53dab54..5ea83d6 100644
--- a/src/egl/main/eglcompiler.h
+++ b/src/egl/main/eglcompiler.h
@@ -37,7 +37,8 @@
 /**
  * Get standard integer types
  */
-#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L)
+#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
+(defined(_MSC_VER) && _MSC_VER >= 1600)
 #  include 
 #elif defined(_MSC_VER)
typedef __int8 int8_t;
-- 
1.9.1

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


[Mesa-dev] [PATCH 6/9] scons: Don't use bundled C99 headers for VS 2013.

2014-05-02 Thread jfonseca
From: José Fonseca 

Use the ones provided by the compiler instead.

NOTE: External trees should be updated to not include '#include/c99'
directory directly, but rather rely on scons/gallium.py to do the right
thing.
---
 SConstruct   | 6 --
 scons/gallium.py | 6 ++
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/SConstruct b/SConstruct
index 0e10818..ef71ab6 100644
--- a/SConstruct
+++ b/SConstruct
@@ -80,9 +80,6 @@ env.Append(CPPPATH = [
'#/src/gallium/winsys',
 ])
 
-if env['msvc']:
-env.Append(CPPPATH = ['#include/c99'])
-
 # for debugging
 #print env.Dump()
 
@@ -115,9 +112,6 @@ if env['crosscompile'] and not env['embedded']:
 host_env['hostonly'] = True
 assert host_env['crosscompile'] == False
 
-if host_env['msvc']:
-host_env.Append(CPPPATH = ['#include/c99'])
-
 target_env = env
 env = host_env
 Export('env')
diff --git a/scons/gallium.py b/scons/gallium.py
index ca317b0..5109ebf 100755
--- a/scons/gallium.py
+++ b/scons/gallium.py
@@ -433,6 +433,12 @@ def generate(env):
 # See also:
 # - http://msdn.microsoft.com/en-us/library/19z1t1wy.aspx
 # - cl /?
+if 'MSVC_VERSION' not in env or 
distutils.version.LooseVersion(env['MSVC_VERSION']) < 
distutils.version.LooseVersion('12.0'):
+# Use bundled stdbool.h and stdint.h headers for older MSVC
+# versions.  stdint.h was introduced in MSVC 2010, but stdbool.h
+# was only introduced in MSVC 2013.
+top_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), 
'..'))
+env.Append(CPPPATH = [os.path.join(top_dir, 'include/c99')])
 if env['build'] == 'debug':
 ccflags += [
   '/Od', # disable optimizations
-- 
1.9.1

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


[Mesa-dev] [PATCH 9/9] util: Don't attempt to redefine INFINITY/NAN on VS 2013.

2014-05-02 Thread jfonseca
From: José Fonseca 

There are now provided by VS.
---
 src/gallium/auxiliary/util/u_math.h | 5 +
 1 file changed, 5 insertions(+)

diff --git a/src/gallium/auxiliary/util/u_math.h 
b/src/gallium/auxiliary/util/u_math.h
index a60e183..2ade64a 100644
--- a/src/gallium/auxiliary/util/u_math.h
+++ b/src/gallium/auxiliary/util/u_math.h
@@ -138,8 +138,13 @@ roundf(float x)
 }
 #endif
 
+#ifndef INFINITY
 #define INFINITY (DBL_MAX + DBL_MAX)
+#endif
+
+#ifndef NAN
 #define NAN (INFINITY - INFINITY)
+#endif
 
 #endif /* _MSC_VER */
 
-- 
1.9.1

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


[Mesa-dev] [PATCH 4/9] draw: Prevent signed/unsigned comparisons.

2014-05-02 Thread jfonseca
From: José Fonseca 

---
 src/gallium/auxiliary/draw/draw_pt_so_emit.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/auxiliary/draw/draw_pt_so_emit.c 
b/src/gallium/auxiliary/draw/draw_pt_so_emit.c
index bd49d0a..91e67c0 100644
--- a/src/gallium/auxiliary/draw/draw_pt_so_emit.c
+++ b/src/gallium/auxiliary/draw/draw_pt_so_emit.c
@@ -162,7 +162,7 @@ static void so_emit_prim(struct pt_so_emit *so,
for (i = 0; i < num_vertices; ++i) {
   const float (*input)[4];
   const float *pre_clip_pos = NULL;
-  int ob;
+  unsigned  ob;
 
   input = (const float (*)[4])(
  (const char *)input_ptr + (indices[i] * input_vertex_stride));
-- 
1.9.1

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


[Mesa-dev] [PATCH 8/9] mesa: VS 2013 does not provide strcasecmp.

2014-05-02 Thread jfonseca
From: José Fonseca 

A define is necessary, like for earlier VS versions.
---
 src/mesa/main/imports.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/mesa/main/imports.h b/src/mesa/main/imports.h
index 17a9bd0..af780b2 100644
--- a/src/mesa/main/imports.h
+++ b/src/mesa/main/imports.h
@@ -126,7 +126,8 @@ typedef union { GLfloat f; GLint i; GLuint u; } fi_type;
 #define atanhf(f) ((float) atanh(f))
 #endif
 
-#if defined(_MSC_VER) && (_MSC_VER < 1800)  /* Not req'd on VS2013 and above */
+#if defined(_MSC_VER)
+#if _MSC_VER < 1800  /* Not req'd on VS2013 and above */
 static inline float truncf(float x) { return x < 0.0f ? ceilf(x) : floorf(x); }
 static inline float exp2f(float x) { return powf(2.0f, x); }
 static inline float log2f(float x) { return logf(x) * 1.442695041f; }
@@ -135,6 +136,7 @@ static inline float acoshf(float x) { return logf(x + 
sqrtf(x * x - 1.0f)); }
 static inline float atanhf(float x) { return (logf(1.0f + x) - logf(1.0f - x)) 
/ 2.0f; }
 static inline int isblank(int ch) { return ch == ' ' || ch == '\t'; }
 #define strtoll(p, e, b) _strtoi64(p, e, b)
+#endif /* _MSC_VER < 1800 */
 #define strcasecmp(s1, s2) _stricmp(s1, s2)
 #endif
 /*@}*/
-- 
1.9.1

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


Re: [Mesa-dev] [PATCH 1/9] util/u_debug_flush: Use util_snprintf.

2014-05-02 Thread Brian Paul

On 05/02/2014 09:11 AM, jfons...@vmware.com wrote:

From: José Fonseca 

---
  src/gallium/auxiliary/util/u_debug_flush.c | 5 +++--
  1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/gallium/auxiliary/util/u_debug_flush.c 
b/src/gallium/auxiliary/util/u_debug_flush.c
index 9cf70db..fdb248c 100644
--- a/src/gallium/auxiliary/util/u_debug_flush.c
+++ b/src/gallium/auxiliary/util/u_debug_flush.c
@@ -46,6 +46,7 @@
  #include "util/u_hash_table.h"
  #include "util/u_double_list.h"
  #include "util/u_inlines.h"
+#include "util/u_string.h"
  #include "os/os_thread.h"
  #include 

@@ -320,8 +321,8 @@ debug_flush_might_flush_cb(void *key, void *value, void 
*data)
 const char *reason = (const char *) data;
 char message[80];

-   snprintf(message, sizeof(message),
-"%s referenced mapped buffer detected.", reason);
+   util_snprintf(message, sizeof(message),
+ "%s referenced mapped buffer detected.", reason);

 pipe_mutex_lock(fbuf->mutex);
 if (fbuf->mapped_sync) {



These all look good.  I was about to send out the same 1/9 patch too. 
I've got some other MSVC warning fixes that I'll post soon.


Reviewed-by: Brian Paul 

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


Re: [Mesa-dev] [PATCH 1/9] util/u_debug_flush: Use util_snprintf.

2014-05-02 Thread Roland Scheidegger
Am 02.05.2014 17:11, schrieb jfons...@vmware.com:
> From: José Fonseca 
> 
> ---
>  src/gallium/auxiliary/util/u_debug_flush.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/src/gallium/auxiliary/util/u_debug_flush.c 
> b/src/gallium/auxiliary/util/u_debug_flush.c
> index 9cf70db..fdb248c 100644
> --- a/src/gallium/auxiliary/util/u_debug_flush.c
> +++ b/src/gallium/auxiliary/util/u_debug_flush.c
> @@ -46,6 +46,7 @@
>  #include "util/u_hash_table.h"
>  #include "util/u_double_list.h"
>  #include "util/u_inlines.h"
> +#include "util/u_string.h"
>  #include "os/os_thread.h"
>  #include 
>  
> @@ -320,8 +321,8 @@ debug_flush_might_flush_cb(void *key, void *value, void 
> *data)
> const char *reason = (const char *) data;
> char message[80];
>  
> -   snprintf(message, sizeof(message),
> -"%s referenced mapped buffer detected.", reason);
> +   util_snprintf(message, sizeof(message),
> + "%s referenced mapped buffer detected.", reason);
>  
> pipe_mutex_lock(fbuf->mutex);
> if (fbuf->mapped_sync) {
> 

Series looks good to me.

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


Re: [Mesa-dev] [PATCH 7/9] egl: Don't attempt to redefine stdint.h types with VS 2013.

2014-05-02 Thread Patrick Baggett
On Fri, May 2, 2014 at 10:11 AM,  wrote:

> From: José Fonseca 
>
> Just include stdint.h.
> ---
>  src/egl/main/eglcompiler.h | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/src/egl/main/eglcompiler.h b/src/egl/main/eglcompiler.h
> index 53dab54..5ea83d6 100644
> --- a/src/egl/main/eglcompiler.h
> +++ b/src/egl/main/eglcompiler.h
> @@ -37,7 +37,8 @@
>  /**
>   * Get standard integer types
>   */
> -#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L)
> +#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
> +(defined(_MSC_VER) && _MSC_VER >= 1600)
>

VS 2010 is where the support for  beings. This can be verified by
a quick Google search.



>  #  include 
>  #elif defined(_MSC_VER)
> typedef __int8 int8_t;
> --
> 1.9.1
>
> ___
> 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] R600/SI: Add processor type for Mullins.

2014-05-02 Thread Tom Stellard
On Wed, Apr 30, 2014 at 06:58:26PM -0400, Alex Deucher wrote:
> From: Samuel Li 
> 

Committed as r207846.

-Tom

> Signed-off-by: Samuel Li 
> Signed-off-by: Alex Deucher 
> ---
>  lib/Target/R600/Processors.td | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/lib/Target/R600/Processors.td b/lib/Target/R600/Processors.td
> index fde4481..ce17d7c 100644
> --- a/lib/Target/R600/Processors.td
> +++ b/lib/Target/R600/Processors.td
> @@ -106,3 +106,5 @@ def : Proc<"kabini", SI_Itin, [FeatureSeaIslands]>;
>  def : Proc<"kaveri", SI_Itin, [FeatureSeaIslands]>;
>  
>  def : Proc<"hawaii", SI_Itin, [FeatureSeaIslands]>;
> +
> +def : Proc<"mullins",SI_Itin, [FeatureSeaIslands]>;
> -- 
> 1.8.3.1
> 
> ___
> 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 7/9] egl: Don't attempt to redefine stdint.h types with VS 2013.

2014-05-02 Thread Jose Fonseca


- Original Message -
> On Fri, May 2, 2014 at 10:11 AM,  wrote:
> 
> > From: José Fonseca 
> >
> > Just include stdint.h.
> > ---
> >  src/egl/main/eglcompiler.h | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/src/egl/main/eglcompiler.h b/src/egl/main/eglcompiler.h
> > index 53dab54..5ea83d6 100644
> > --- a/src/egl/main/eglcompiler.h
> > +++ b/src/egl/main/eglcompiler.h
> > @@ -37,7 +37,8 @@
> >  /**
> >   * Get standard integer types
> >   */
> > -#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L)
> > +#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
> > +(defined(_MSC_VER) && _MSC_VER >= 1600)
> >
> 
> VS 2010 is where the support for  beings. This can be verified by
> a quick Google search.

Yes, but it doesn't provide stdbool.h, and we need both.  See comment in "Patch 
6/9"

stdbool.h is particularly tricky due to the "_Bool" builtin type existing in 
MSVC 2013 (it didn't in previous versions).

Also note that Mesa already builds fine with VS 2010 as is.  So it doesn't seem 
to be worth to go out of my way to use stdint.h in earlier MSVC versions.

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


Re: [Mesa-dev] [PATCH 7/9] egl: Don't attempt to redefine stdint.h types with VS 2013.

2014-05-02 Thread Jose Fonseca


- Original Message -
> 
> 
> - Original Message -
> > On Fri, May 2, 2014 at 10:11 AM,  wrote:
> > 
> > > From: José Fonseca 
> > >
> > > Just include stdint.h.
> > > ---
> > >  src/egl/main/eglcompiler.h | 3 ++-
> > >  1 file changed, 2 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/src/egl/main/eglcompiler.h b/src/egl/main/eglcompiler.h
> > > index 53dab54..5ea83d6 100644
> > > --- a/src/egl/main/eglcompiler.h
> > > +++ b/src/egl/main/eglcompiler.h
> > > @@ -37,7 +37,8 @@
> > >  /**
> > >   * Get standard integer types
> > >   */
> > > -#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L)
> > > +#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
> > > +(defined(_MSC_VER) && _MSC_VER >= 1600)
> > >
> > 
> > VS 2010 is where the support for  beings. This can be verified by
> > a quick Google search.
> 
> Yes, but it doesn't provide stdbool.h, and we need both.  See comment in
> "Patch 6/9"
> 
> stdbool.h is particularly tricky due to the "_Bool" builtin type existing in
> MSVC 2013 (it didn't in previous versions).
> 
> Also note that Mesa already builds fine with VS 2010 as is.  So it doesn't
> seem to be worth to go out of my way to use stdint.h in earlier MSVC
> versions.

Oh, never mind. Don't know what I was thinking.

You're right.  For this particular file, it's fine to include stdint.h starting 
from MSVC 2010.  But, it will actually include the bundled stdint.h from 
mesa/include/c99 (due to the reason I mentioned above).

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


Re: [Mesa-dev] [PATCH 0/6] v3: Implement INTEL_performance_query

2014-05-02 Thread Ian Romanick
On 04/23/2014 01:08 AM, Petri Latvala wrote:
> Third revision of the patch series. Changes:
> 
> - Rebased to current master
> - Changes based on Ian's review
> - Add the extension to 10.2 release notes
> 
> I didn't change patch 5/6 "Enable INTEL_performance_query for Gen5+"
> along the review comments yet. It's true that currently drivers can
> support both by just implementing the current driver hooks, but I'm
> worried that the situation might change with the upcoming changes to
> the driver functions to support semantic types and normalized
> counters. I have no concrete examples that would make that happen, I
> might just be too paranoid and wary.

Yeah, that's reasonable.

> Summarum, there's more changes for this extension incoming, and that
> sort of cleanup can be part of it if so desired.
> 
> I will need someone to push this btw.

Done.

   cf6c9db..6a2d285  6a2d28599f7326d7e40663033d34c32eeb814473 -> master

> Petri Latvala (6):
>   Regenerate gl_mangle.h.
>   mesa: Add INTEL_performance_query enums to tests/enum_strings.cpp
>   mesa: Add core support for the GL_INTEL_performance_query extension.
>   mesa: Implement INTEL_performance_query.
>   i965: Enable INTEL_performance_query for Gen5+.
>   docs: update 10.2 release notes
> 
>  docs/relnotes/10.2.html|   1 +
>  include/GL/gl_mangle.h | 371 ++-
>  src/mapi/glapi/gen/INTEL_performance_query.xml |  93 
>  src/mapi/glapi/gen/Makefile.am |   1 +
>  src/mapi/glapi/gen/gl_API.xml  |   2 +
>  src/mesa/drivers/dri/i965/intel_extensions.c   |   4 +-
>  src/mesa/main/config.h |   8 +
>  src/mesa/main/extensions.c |   1 +
>  src/mesa/main/get.c|   1 +
>  src/mesa/main/get_hash_params.py   |   6 +
>  src/mesa/main/mtypes.h |   1 +
>  src/mesa/main/performance_monitor.c| 614 
> +
>  src/mesa/main/performance_monitor.h|  43 +-
>  src/mesa/main/tests/dispatch_sanity.cpp|  24 +
>  src/mesa/main/tests/enum_strings.cpp   |  18 +
>  15 files changed, 1180 insertions(+), 8 deletions(-)
>  create mode 100644 src/mapi/glapi/gen/INTEL_performance_query.xml
> 

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


Re: [Mesa-dev] [PATCH 03/21] glsl: protect anonymous struct id with a mutex

2014-05-02 Thread Ian Romanick
On 04/22/2014 01:58 AM, Chia-I Wu wrote:
> There may be two contexts compiling shaders at the same time, and we want the
> anonymous struct id to be globally unique.

I am not very excited about this.

Is there any chance of getting stdatomic.h for the MSVC compilers that
people care about?  I'd much rather have this code be...

   if (identifier == NULL) {
  static volatile atomic_uint_t anon_count = ATOMIC_VAR_INIT(1);
  unsigned count;

  count = atomic_fetch_add(&anon_count, 1);
  identifier = ralloc_asprintf(this, "#anon_struct_%04x", count);
   }

> Signed-off-by: Chia-I Wu 
> ---
>  src/glsl/glsl_parser_extras.cpp | 10 --
>  1 file changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp
> index 91c9285..30e284b 100644
> --- a/src/glsl/glsl_parser_extras.cpp
> +++ b/src/glsl/glsl_parser_extras.cpp
> @@ -1332,9 +1332,15 @@ ast_struct_specifier::ast_struct_specifier(const char 
> *identifier,
>  ast_declarator_list *declarator_list)
>  {
> if (identifier == NULL) {
> +  static mtx_t mutex = _MTX_INITIALIZER_NP;
>static unsigned anon_count = 1;
> -  identifier = ralloc_asprintf(this, "#anon_struct_%04x", anon_count);
> -  anon_count++;
> +  unsigned count;
> +
> +  mtx_lock(&mutex);
> +  count = anon_count++;
> +  mtx_unlock(&mutex);
> +
> +  identifier = ralloc_asprintf(this, "#anon_struct_%04x", count);
> }
> name = identifier;
> this->declarations.push_degenerate_list_at_head(&declarator_list->link);
> 

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


Re: [Mesa-dev] [PATCH 02/21] glsl: protect locale_t with a mutex

2014-05-02 Thread Ian Romanick
On 04/22/2014 01:58 AM, Chia-I Wu wrote:
> There may be two contexts compiling shaders at the same time.  locale_t needs
> to be protected.

Rather than calling glsl_initialize_strtod from other places in the
compiler, it seems better to use call_once from the strtof and strtod
functions.

> Signed-off-by: Chia-I Wu 
> ---
>  src/glsl/glsl_lexer.ll |  1 +
>  src/glsl/ir_reader.cpp |  2 ++
>  src/glsl/strtod.c  | 36 
>  src/glsl/strtod.h  |  3 +++
>  4 files changed, 30 insertions(+), 12 deletions(-)
> 
> diff --git a/src/glsl/glsl_lexer.ll b/src/glsl/glsl_lexer.ll
> index 7602351..eb23120 100644
> --- a/src/glsl/glsl_lexer.ll
> +++ b/src/glsl/glsl_lexer.ll
> @@ -567,6 +567,7 @@ classify_identifier(struct _mesa_glsl_parse_state *state, 
> const char *name)
>  void
>  _mesa_glsl_lexer_ctor(struct _mesa_glsl_parse_state *state, const char 
> *string)
>  {
> +   glsl_initialize_strtod();
> yylex_init_extra(state, & state->scanner);
> yy_scan_string(string, state->scanner);
>  }
> diff --git a/src/glsl/ir_reader.cpp b/src/glsl/ir_reader.cpp
> index 28923f3..38b445b 100644
> --- a/src/glsl/ir_reader.cpp
> +++ b/src/glsl/ir_reader.cpp
> @@ -79,6 +79,8 @@ void
>  _mesa_glsl_read_ir(_mesa_glsl_parse_state *state, exec_list *instructions,
>  const char *src, bool scan_for_protos)
>  {
> +   glsl_initialize_strtod();
> +
> ir_reader r(state);
> r.read(instructions, src, scan_for_protos);
>  }
> diff --git a/src/glsl/strtod.c b/src/glsl/strtod.c
> index 5d4346b..f37b3f5 100644
> --- a/src/glsl/strtod.c
> +++ b/src/glsl/strtod.c
> @@ -25,6 +25,7 @@
>  
>  
>  #include 
> +#include "c11/threads.h"
>  
>  #ifdef _GNU_SOURCE
>  #include 
> @@ -35,6 +36,27 @@
>  
>  #include "strtod.h"
>  
> +#if defined(_GNU_SOURCE) && !defined(__CYGWIN__) && !defined(__FreeBSD__) && 
> \
> +   !defined(__HAIKU__) && !defined(__UCLIBC__)
> +#define GLSL_HAVE_LOCALE_T
> +#endif
> +
> +#ifdef GLSL_HAVE_LOCALE_T
> +static mtx_t loc_lock = _MTX_INITIALIZER_NP;
> +static locale_t loc = NULL;
> +#endif
> +
> +void
> +glsl_initialize_strtod(void)
> +{
> +#ifdef GLSL_HAVE_LOCALE_T
> +   mtx_lock(&loc_lock);
> +   if (!loc)
> +  loc = newlocale(LC_CTYPE_MASK, "C", NULL);
> +   mtx_unlock(&loc_lock);
> +#endif
> +}
> +
>  
>  
>  /**
> @@ -44,12 +66,7 @@
>  double
>  glsl_strtod(const char *s, char **end)
>  {
> -#if defined(_GNU_SOURCE) && !defined(__CYGWIN__) && !defined(__FreeBSD__) && 
> \
> -   !defined(__HAIKU__) && !defined(__UCLIBC__)
> -   static locale_t loc = NULL;
> -   if (!loc) {
> -  loc = newlocale(LC_CTYPE_MASK, "C", NULL);
> -   }
> +#ifdef GLSL_HAVE_LOCALE_T
> return strtod_l(s, end, loc);
>  #else
> return strtod(s, end);
> @@ -64,12 +81,7 @@ glsl_strtod(const char *s, char **end)
>  float
>  glsl_strtof(const char *s, char **end)
>  {
> -#if defined(_GNU_SOURCE) && !defined(__CYGWIN__) && !defined(__FreeBSD__) && 
> \
> -   !defined(__HAIKU__) && !defined(__UCLIBC__)
> -   static locale_t loc = NULL;
> -   if (!loc) {
> -  loc = newlocale(LC_CTYPE_MASK, "C", NULL);
> -   }
> +#ifdef GLSL_HAVE_LOCALE_T
> return strtof_l(s, end, loc);
>  #elif _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE
> return strtof(s, end);
> diff --git a/src/glsl/strtod.h b/src/glsl/strtod.h
> index ad847db..8062928 100644
> --- a/src/glsl/strtod.h
> +++ b/src/glsl/strtod.h
> @@ -31,6 +31,9 @@
>  extern "C" {
>  #endif
>  
> +extern void
> +glsl_initialize_strtod(void);
> +
>  extern double
>  glsl_strtod(const char *s, char **end);
>  
> 

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


Re: [Mesa-dev] [PATCH 01/21] glsl: make static constant variables "static const"

2014-05-02 Thread Ian Romanick
Reviewed-by: Ian Romanick 

This one seems low-impact enough that I went ahead and pushed it... so
that it would be in 10.2.

On 04/22/2014 01:58 AM, Chia-I Wu wrote:
> This allows them to be moved to .rodata, and allow us to be sure that they
> will not be modified.
> 
> Signed-off-by: Chia-I Wu 
> ---
>  src/glsl/builtin_types.cpp  |  2 +-
>  src/glsl/builtin_variables.cpp  | 63 
> +
>  src/glsl/glsl_parser.yy |  4 +--
>  src/glsl/glsl_parser_extras.cpp |  4 +--
>  src/glsl/ir.cpp |  2 +-
>  src/mesa/main/uniforms.h|  2 +-
>  6 files changed, 39 insertions(+), 38 deletions(-)
> 
> diff --git a/src/glsl/builtin_types.cpp b/src/glsl/builtin_types.cpp
> index dd42ecb..0a0fa8c 100644
> --- a/src/glsl/builtin_types.cpp
> +++ b/src/glsl/builtin_types.cpp
> @@ -241,7 +241,7 @@ const static struct builtin_type_versions {
> T(atomic_uint, 420, 999)
>  };
>  
> -const glsl_type *const deprecated_types[] = {
> +static const glsl_type *const deprecated_types[] = {
> glsl_type::struct_gl_PointParameters_type,
> glsl_type::struct_gl_MaterialParameters_type,
> glsl_type::struct_gl_LightSourceParameters_type,
> diff --git a/src/glsl/builtin_variables.cpp b/src/glsl/builtin_variables.cpp
> index 4176ae6..9b35850 100644
> --- a/src/glsl/builtin_variables.cpp
> +++ b/src/glsl/builtin_variables.cpp
> @@ -30,21 +30,21 @@
>  #include "program/prog_statevars.h"
>  #include "program/prog_instruction.h"
>  
> -static struct gl_builtin_uniform_element gl_NumSamples_elements[] = {
> +static const struct gl_builtin_uniform_element gl_NumSamples_elements[] = {
> {NULL, {STATE_NUM_SAMPLES, 0, 0}, SWIZZLE_}
>  };
>  
> -static struct gl_builtin_uniform_element gl_DepthRange_elements[] = {
> +static const struct gl_builtin_uniform_element gl_DepthRange_elements[] = {
> {"near", {STATE_DEPTH_RANGE, 0, 0}, SWIZZLE_},
> {"far", {STATE_DEPTH_RANGE, 0, 0}, SWIZZLE_},
> {"diff", {STATE_DEPTH_RANGE, 0, 0}, SWIZZLE_},
>  };
>  
> -static struct gl_builtin_uniform_element gl_ClipPlane_elements[] = {
> +static const struct gl_builtin_uniform_element gl_ClipPlane_elements[] = {
> {NULL, {STATE_CLIPPLANE, 0, 0}, SWIZZLE_XYZW}
>  };
>  
> -static struct gl_builtin_uniform_element gl_Point_elements[] = {
> +static const struct gl_builtin_uniform_element gl_Point_elements[] = {
> {"size", {STATE_POINT_SIZE}, SWIZZLE_},
> {"sizeMin", {STATE_POINT_SIZE}, SWIZZLE_},
> {"sizeMax", {STATE_POINT_SIZE}, SWIZZLE_},
> @@ -54,7 +54,7 @@ static struct gl_builtin_uniform_element 
> gl_Point_elements[] = {
> {"distanceQuadraticAttenuation", {STATE_POINT_ATTENUATION}, SWIZZLE_},
>  };
>  
> -static struct gl_builtin_uniform_element gl_FrontMaterial_elements[] = {
> +static const struct gl_builtin_uniform_element gl_FrontMaterial_elements[] = 
> {
> {"emission", {STATE_MATERIAL, 0, STATE_EMISSION}, SWIZZLE_XYZW},
> {"ambient", {STATE_MATERIAL, 0, STATE_AMBIENT}, SWIZZLE_XYZW},
> {"diffuse", {STATE_MATERIAL, 0, STATE_DIFFUSE}, SWIZZLE_XYZW},
> @@ -62,7 +62,7 @@ static struct gl_builtin_uniform_element 
> gl_FrontMaterial_elements[] = {
> {"shininess", {STATE_MATERIAL, 0, STATE_SHININESS}, SWIZZLE_},
>  };
>  
> -static struct gl_builtin_uniform_element gl_BackMaterial_elements[] = {
> +static const struct gl_builtin_uniform_element gl_BackMaterial_elements[] = {
> {"emission", {STATE_MATERIAL, 1, STATE_EMISSION}, SWIZZLE_XYZW},
> {"ambient", {STATE_MATERIAL, 1, STATE_AMBIENT}, SWIZZLE_XYZW},
> {"diffuse", {STATE_MATERIAL, 1, STATE_DIFFUSE}, SWIZZLE_XYZW},
> @@ -70,7 +70,7 @@ static struct gl_builtin_uniform_element 
> gl_BackMaterial_elements[] = {
> {"shininess", {STATE_MATERIAL, 1, STATE_SHININESS}, SWIZZLE_},
>  };
>  
> -static struct gl_builtin_uniform_element gl_LightSource_elements[] = {
> +static const struct gl_builtin_uniform_element gl_LightSource_elements[] = {
> {"ambient", {STATE_LIGHT, 0, STATE_AMBIENT}, SWIZZLE_XYZW},
> {"diffuse", {STATE_LIGHT, 0, STATE_DIFFUSE}, SWIZZLE_XYZW},
> {"specular", {STATE_LIGHT, 0, STATE_SPECULAR}, SWIZZLE_XYZW},
> @@ -89,67 +89,67 @@ static struct gl_builtin_uniform_element 
> gl_LightSource_elements[] = {
> {"quadraticAttenuation", {STATE_LIGHT, 0, STATE_ATTENUATION}, 
> SWIZZLE_},
>  };
>  
> -static struct gl_builtin_uniform_element gl_LightModel_elements[] = {
> +static const struct gl_builtin_uniform_element gl_LightModel_elements[] = {
> {"ambient", {STATE_LIGHTMODEL_AMBIENT, 0}, SWIZZLE_XYZW},
>  };
>  
> -static struct gl_builtin_uniform_element 
> gl_FrontLightModelProduct_elements[] = {
> +static const struct gl_builtin_uniform_element 
> gl_FrontLightModelProduct_elements[] = {
> {"sceneColor", {STATE_LIGHTMODEL_SCENECOLOR, 0}, SWIZZLE_XYZW},
>  };
>  
> -static struct gl_builtin_uniform_element gl_BackLightModelProduct_elements[] 
> = {
> +static const struct gl_bui

Re: [Mesa-dev] [PATCH 20/21] mesa: add support for threaded glCompileShader

2014-05-02 Thread Ian Romanick
On 04/22/2014 01:58 AM, Chia-I Wu wrote:
> From: Chia-I Wu 
> 
> Threaded glCompileShader can be enabled for a context by calling
> _mesa_enable_glsl_threadpool.  It will initialize the singleton GLSL thread
> pool and defer glCompileShader calls to the thread pool.
> 
> For applications to benefit from threaded glCompileShader, they have to
> compile shaders in this fashion
> 
>  for (i = 0; i < num_shaders; i++)
>glCompileShader(shaders[i]);
>  for (i = 0; i < num_shaders; i++)
>glGetShaderiv(shaders[i], GL_COMPILE_STATUS, &val);

I think when you try this series on some real applications, you will be
disappointed.  Eric had a pretty similar branch
(http://cgit.freedesktop.org/~anholt/mesa/log/?h=compiler-threads), but
it saw no benefit on any applications... because everybody does

for (i = 0; i < num_shaders; i++) {
glCompileShader(shaders[i]);
glGetShaderiv(shaders[i], GL_COMPILE_STATUS, &val);
}

or

for (i = 0; i < num_shaders; i++) {
glCompileShader(shaders[i]);
glAttachShader(prog, shaders[i]);
}

glLinkProgram(prog);

I'm also curious about your test case... did you link the shaders?  As
far as I'm aware, the bulk of time spent in the compiler happens during
linking (final optimizations and register allocation).  Eric's data
(http://lists.freedesktop.org/archives/mesa-dev/2014-April/057494.html)
says we spend more than 2x time in linking than in compiling.

> As each glGetShaderiv call will force mesa to wait for the deferred
> glCompileShader to complete, compiling shaders in the traditional way will
> defeat this feature.  This is also why the feature needs to be explicitly
> enabled with _mesa_enable_glsl_threadpool.
> 
> Signed-off-by: Chia-I Wu 
> ---
>  src/glsl/glsl_parser_extras.cpp |  4 +++
>  src/glsl/threadpool.c   | 72 
> +
>  src/glsl/threadpool.h   |  9 ++
>  src/mesa/main/context.c | 25 ++
>  src/mesa/main/context.h |  3 ++
>  src/mesa/main/mtypes.h  | 13 
>  src/mesa/main/shaderapi.c   | 48 +--
>  src/mesa/main/shaderobj.c   | 20 
>  src/mesa/main/shaderobj.h   |  2 ++
>  9 files changed, 194 insertions(+), 2 deletions(-)
> 
> diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp
> index 30e284b..c035474 100644
> --- a/src/glsl/glsl_parser_extras.cpp
> +++ b/src/glsl/glsl_parser_extras.cpp
> @@ -37,6 +37,7 @@ extern "C" {
>  #include "glsl_parser.h"
>  #include "ir_optimization.h"
>  #include "loop_analysis.h"
> +#include "threadpool.h"
>  
>  /**
>   * Format a short human-readable description of the given GLSL version.
> @@ -1567,6 +1568,8 @@ extern "C" {
>  void
>  _mesa_destroy_shader_compiler(void)
>  {
> +   _mesa_glsl_destroy_threadpool();
> +
> _mesa_destroy_shader_compiler_caches();
>  
> _mesa_glsl_release_types();
> @@ -1580,6 +1583,7 @@ _mesa_destroy_shader_compiler(void)
>  void
>  _mesa_destroy_shader_compiler_caches(void)
>  {
> +   _mesa_glsl_wait_threadpool();
> _mesa_glsl_release_builtin_functions();
>  }
>  
> diff --git a/src/glsl/threadpool.c b/src/glsl/threadpool.c
> index 0aaac3a..3d54ec0 100644
> --- a/src/glsl/threadpool.c
> +++ b/src/glsl/threadpool.c
> @@ -55,6 +55,7 @@ struct _mesa_threadpool_task {
>  struct _mesa_threadpool {
> mtx_t mutex;
> int refcnt;
> +   bool shutdown;
>  
> enum _mesa_threadpool_control thread_control;
> thrd_t *threads;
> @@ -158,6 +159,12 @@ _mesa_threadpool_queue_task(struct _mesa_threadpool 
> *pool,
>  
> mtx_lock(&pool->mutex);
>  
> +   if (unlikely(pool->shutdown)) {
> +  mtx_unlock(&pool->mutex);
> +  free(task);
> +  return NULL;
> +   }
> +
> while (unlikely(pool->thread_control != MESA_THREADPOOL_NORMAL))
>cnd_wait(&pool->thread_joined, &pool->mutex);
>  
> @@ -297,6 +304,17 @@ _mesa_threadpool_join(struct _mesa_threadpool *pool, 
> bool graceful)
>  }
>  
>  /**
> + * After this call, no task can be queued.
> + */
> +static void
> +_mesa_threadpool_set_shutdown(struct _mesa_threadpool *pool)
> +{
> +   mtx_lock(&pool->mutex);
> +   pool->shutdown = true;
> +   mtx_unlock(&pool->mutex);
> +}
> +
> +/**
>   * Decrease the reference count.  Destroy \p pool when the reference count
>   * reaches zero.
>   */
> @@ -392,3 +410,57 @@ _mesa_threadpool_create(int max_threads)
>  
> return pool;
>  }
> +
> +static mtx_t threadpool_lock = _MTX_INITIALIZER_NP;
> +static struct _mesa_threadpool *threadpool;
> +
> +/**
> + * Get the singleton GLSL thread pool.  \p max_threads is honored only by the
> + * first call to this function.
> + */
> +struct _mesa_threadpool *
> +_mesa_glsl_get_threadpool(int max_threads)
> +{
> +   mtx_lock(&threadpool_lock);
> +   if (!threadpool)
> +  threadpool = _mesa_threadpool_create(max_threads);
> +   if (threadpool)
> +  _mesa_threadpool_ref(threadpool);
> +   mtx_unlock(&threadpool_lock);
> +
>

Re: [Mesa-dev] [PATCH 00/21] deferred and threaded glCompileShader

2014-05-02 Thread Ian Romanick
I reviewed and pushed patch 1.

I sent some comments about patches 2, 3, and 20.

I want to look at 19 a bit more, and I'd also really like to have Eric
review it... since he wrote a pretty similar thing 18 months ago.

Patches 4 through 15, the "fixed" 16, 17, and 18 are

Reviewed-by: Ian Romanick 

On 04/22/2014 01:58 AM, Chia-I Wu wrote:
> Hi list,
> 
> This series adds a thread pool to the GLSL compiler, and a drirc option to
> defer glCompileShader calls to the pool.  The goal is to reduce the start-up
> time of applications that are aware of this feature.  That is, applications
> that compile shaders first and check the compile status later.
> 
> I do not have numbers from real applications yet.  But trying to compiling a
> set of 2882 shaders extracted from some trace file, with everything else
> idled, the time it takes is
> 
>   8 threads: 17.8s
>   4 threads: 20.3s
>   2 threads: 31.2s
>   1 threads: 58.0s
>   no thread pool: 54.5
> 
> on a quad core system.
> 
> Patches 1-4 fix potential races in the GLSL compiler.  As the compiler is
> already shared by all contexts, these patches could be desirable even without
> the thread pool that I am going to add.
> 
> Patches 5-18 adds true GL_DEBUG_OUTPUT_SYNCHRONOUS support to the KHR_debug
> code.  All except patch 18 are clean-ups.  Patch 18 adds a mutex to protect
> gl_debug_state.
> 
> Patch 19 defines a simple API to create and work with thread pools, as well as
> a test for the API.
> 
> Patch 20 adds the singleton GLSL thread pool and allows glCompileShader to be
> deferred to the pool.  This feature needs to be explicitly enabled with
> _mesa_enable_glsl_threadpool.
> 
> Patch 21 adds a drirc option to enable the thread pool.  The idea is that only
> applications that can benefit from it will enable it.
> ___
> 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


[Mesa-dev] [PATCH 2/2] i965: use sse4.1 runtime detection for miptree_map

2014-05-02 Thread Matthew Atwood
From: Matt Atwood 

Previous implementation was compile time decision
---
 src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 11 +++
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c 
b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
index b23fddf..f7185ca 100644
--- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
@@ -46,6 +46,7 @@
 #include "main/texcompress_etc.h"
 #include "main/teximage.h"
 #include "main/streaming-load-memcpy.h"
+#include "x86/common_x86_asm.h"
 
 #define FILE_DEBUG_FLAG DEBUG_MIPTREE
 
@@ -1826,7 +1827,6 @@ intel_miptree_unmap_blit(struct brw_context *brw,
intel_miptree_release(&map->mt);
 }
 
-#ifdef __SSE4_1__
 /**
  * "Map" a buffer by copying it to an untiled temporary using MOVNTDQA.
  */
@@ -1897,7 +1897,6 @@ intel_miptree_unmap_movntdqa(struct brw_context *brw,
map->buffer = NULL;
map->ptr = NULL;
 }
-#endif
 
 static void
 intel_miptree_map_s8(struct brw_context *brw,
@@ -2278,10 +2277,8 @@ intel_miptree_map(struct brw_context *brw,
   mt->bo->size >= brw->max_gtt_map_object_size) {
   assert(can_blit_slice(mt, level, slice));
   intel_miptree_map_blit(brw, mt, map, level, slice);
-#ifdef __SSE4_1__
-   } else if (!(mode & GL_MAP_WRITE_BIT) && !mt->compressed) {
+   } else if (!(mode & GL_MAP_WRITE_BIT) && !mt->compressed && cpu_has_sse4_1) 
{
   intel_miptree_map_movntdqa(brw, mt, map, level, slice);
-#endif
} else {
   intel_miptree_map_gtt(brw, mt, map, level, slice);
}
@@ -2318,10 +2315,8 @@ intel_miptree_unmap(struct brw_context *brw,
   intel_miptree_unmap_depthstencil(brw, mt, map, level, slice);
} else if (map->mt) {
   intel_miptree_unmap_blit(brw, mt, map, level, slice);
-#ifdef __SSE4_1__
-   } else if (map->buffer) {
+   } else if (map->buffer && cpu_has_sse4_1) {
   intel_miptree_unmap_movntdqa(brw, mt, map, level, slice);
-#endif
} else {
   intel_miptree_unmap_gtt(brw, mt, map, level, slice);
}
-- 
1.8.3.2

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


[Mesa-dev] [PATCH 1/2] mesa/x86: add SSE4.1 runtime detection

2014-05-02 Thread Matthew Atwood
From: Matt Atwood 

add in bit to _mesa_x86_features for sse4.1, along with macros to query
---
 src/mesa/x86/common_x86.c  | 3 +++
 src/mesa/x86/common_x86_features.h | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/src/mesa/x86/common_x86.c b/src/mesa/x86/common_x86.c
index 3c1adc9..87fa68a 100644
--- a/src/mesa/x86/common_x86.c
+++ b/src/mesa/x86/common_x86.c
@@ -238,6 +238,7 @@ _mesa_get_x86_features(void)
 
/* get cpu features */
cpu_features = _mesa_x86_cpuid_edx(1);
+   cpu_features_ecx = _mesa_x86_cpuid_ecx(1);
 
if (cpu_features & X86_CPU_FPU)
   _mesa_x86_cpu_features |= X86_FEATURE_FPU;
@@ -254,6 +255,8 @@ _mesa_get_x86_features(void)
   _mesa_x86_cpu_features |= X86_FEATURE_XMM;
if (cpu_features & X86_CPU_XMM2)
   _mesa_x86_cpu_features |= X86_FEATURE_XMM2;
+   if (cpu_features & x86_CPU_SSE4_1)
+  _mesa_x86_features |= X86_FEATURE_SSE4_1;
 #endif
 
/* query extended cpu features */
diff --git a/src/mesa/x86/common_x86_features.h 
b/src/mesa/x86/common_x86_features.h
index 8625484..1e4bbfc 100644
--- a/src/mesa/x86/common_x86_features.h
+++ b/src/mesa/x86/common_x86_features.h
@@ -43,6 +43,7 @@
 #define X86_FEATURE_XMM2   (1<<6)
 #define X86_FEATURE_3DNOWEXT   (1<<7)
 #define X86_FEATURE_3DNOW  (1<<8)
+#define X86_FEATURE_SSE4_1 (1<<9)
 
 /* standard X86 CPU features */
 #define X86_CPU_FPU(1<<0)
@@ -50,6 +51,7 @@
 #define X86_CPU_MMX(1<<23)
 #define X86_CPU_XMM(1<<25)
 #define X86_CPU_XMM2   (1<<26)
+#define X86_CPU_SSE4_1 (1<<19)
 
 /* extended X86 CPU features */
 #define X86_CPUEXT_MMX_EXT (1<<22)
@@ -62,6 +64,7 @@
 #define cpu_has_xmm2   (_mesa_x86_cpu_features & X86_FEATURE_XMM2)
 #define cpu_has_3dnow  (_mesa_x86_cpu_features & X86_FEATURE_3DNOW)
 #define cpu_has_3dnowext   (_mesa_x86_cpu_features & X86_FEATURE_3DNOWEXT)
+#define cpu_has_sse4_1 (_mesa_x86_cpu_features & X86_FEATURE_SSE4_1)
 
 #endif
 
-- 
1.8.3.2

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


Re: [Mesa-dev] [PATCH 4/6] mesa: Implement INTEL_performance_query.

2014-05-02 Thread Kenneth Graunke
On 04/23/2014 01:08 AM, Petri Latvala wrote:
> Using the existing driver hooks made for AMD_performance_monitor, implement
> INTEL_performance_query functions.
> 
> v2: Whitespace changes.
> v3: Whitespace changes, add a _mesa_warning()
> 
> Signed-off-by: Petri Latvala 
> Reviewed-by: Ian Romanick 
> ---
>  src/mesa/main/performance_monitor.c | 487 
> 
>  1 file changed, 441 insertions(+), 46 deletions(-)
> 
> diff --git a/src/mesa/main/performance_monitor.c 
> b/src/mesa/main/performance_monitor.c
> index 597f633..21b9423 100644
> --- a/src/mesa/main/performance_monitor.c
> +++ b/src/mesa/main/performance_monitor.c
> @@ -137,6 +137,46 @@ get_counter(const struct gl_perf_monitor_group 
> *group_obj, GLuint id)
> return &group_obj->Counters[id];
>  }
>  
> +/* For INTEL_performance_query, query id 0 is reserved to be invalid. We use
> + * index to Groups array + 1 as the query id. Same applies to counter id.
> + */
> +static inline GLuint
> +queryid_to_index(GLuint queryid)
> +{
> +   return queryid - 1;
> +}
> +
> +static inline GLuint
> +index_to_queryid(GLuint index)
> +{
> +   return index + 1;
> +}
> +
> +static inline bool
> +queryid_valid(const struct gl_context *ctx, GLuint queryid)
> +{
> +   return get_group(ctx, queryid_to_index(queryid)) != NULL;
> +}
> +
> +static inline GLuint
> +counterid_to_index(GLuint counterid)
> +{
> +   return counterid - 1;
> +}
> +
> +static inline GLuint
> +index_to_counterid(GLuint index)
> +{
> +   return index + 1;
> +}
> +
> +static inline bool
> +counterid_valid(const struct gl_perf_monitor_group *group_obj,
> +GLuint counterid)
> +{
> +   return get_counter(group_obj, counterid_to_index(counterid)) != NULL;
> +}
> +
>  
> /*/
>  
>  void GLAPIENTRY
> @@ -644,6 +684,7 @@ extern void GLAPIENTRY
>  _mesa_GetFirstPerfQueryIdINTEL(GLuint *queryId)
>  {
> GET_CURRENT_CONTEXT(ctx);
> +   unsigned numGroups;
>  
> /* The GL_INTEL_performance_query spec says:
>  *
> @@ -655,16 +696,22 @@ _mesa_GetFirstPerfQueryIdINTEL(GLuint *queryId)
>return;
> }
>  
> +   numGroups = ctx->PerfMonitor.NumGroups;
> +
> /* The GL_INTEL_performance_query spec says:
>  *
>  *"If the given hardware platform doesn't support any performance
>  *queries, then the value of 0 is returned and INVALID_OPERATION error
>  *is raised."
>  */
> +   if (numGroups == 0) {
> +  *queryId = 0;
> +  _mesa_error(ctx, GL_INVALID_OPERATION,
> +  "glGetFirstPerfQueryIdINTEL(no queries supported)");
> +  return;
> +   }
>  
> -   *queryId = 0;
> -   _mesa_error(ctx, GL_INVALID_OPERATION,
> -   "glGetFirstPerfQueryIdINTEL(no queries supported)");
> +   *queryId = index_to_queryid(0);
>  }
>  
>  extern void GLAPIENTRY
> @@ -674,40 +721,66 @@ _mesa_GetNextPerfQueryIdINTEL(GLuint queryId, GLuint 
> *nextQueryId)
>  
> /* The GL_INTEL_performance_query spec says:
>  *
> -*"If nextQueryId pointer is equal to 0, an INVALID_VALUE error is
> -*generated."
> +*"The result is passed in location pointed by nextQueryId. If query
> +*identified by queryId is the last query available the value of 0 is
> +*returned. If the specified performance query identifier is invalid
> +*then INVALID_VALUE error is generated. If nextQueryId pointer is
> +*equal to 0, an INVALID_VALUE error is generated.  Whenever error is
> +*generated, the value of 0 is returned."
>  */
> +
> if (!nextQueryId) {
>_mesa_error(ctx, GL_INVALID_VALUE,
>"glGetNextPerfQueryIdINTEL(nextQueryId == NULL)");
>return;
> }
>  
> -   /* The GL_INTEL_performance_query spec says:
> -*
> -*"If the specified performance query identifier is invalid then
> -*INVALID_VALUE error is generated. Whenever error is generated, the
> -*value of 0 is returned."
> -*
> -* No queries are supported, so all queries are invalid.
> -*/
> -   *nextQueryId = 0;
> -   _mesa_error(ctx, GL_INVALID_VALUE,
> -   "glGetNextPerfQueryIdINTEL(invalid query)");
> +   if (!queryid_valid(ctx, queryId)) {
> +  *nextQueryId = 0;
> +  _mesa_error(ctx, GL_INVALID_VALUE,
> +  "glGetNextPerfQueryIdINTEL(invalid query)");
> +  return;
> +   }
> +
> +   ++queryId;
> +
> +   if (!queryid_valid(ctx, queryId)) {
> +  *nextQueryId = 0;
> +   } else {
> +  *nextQueryId = queryId;
> +   }
>  }
>  
>  extern void GLAPIENTRY
>  _mesa_GetPerfQueryIdByNameINTEL(char *queryName, GLuint *queryId)
>  {
> GET_CURRENT_CONTEXT(ctx);
> +   unsigned i;
>  
> /* The GL_INTEL_performance_query spec says:
>  *
>  *"If queryName does not reference a valid query name, an 
> INVALID_VALUE
>  *error is generated."
> -*
> -* No queries are supported, so all query nam

Re: [Mesa-dev] [PATCH 1/2] mesa/x86: add SSE4.1 runtime detection

2014-05-02 Thread Ian Romanick
NAK.

common_x86 is only used for 32-bit builds, and there is nothing
equivalent for 64-bit.  As a result, this will disable the optimization
completely for 64-bit.

Gallium has a bunch of CPU detection code, so if we need to update the
CPU detection code in core Mesa, we should move the Gallium code to a
higher level in the tree to be shared.  I believe this has been
discussed before.

On 05/02/2014 11:11 AM, Matthew Atwood wrote:
> From: Matt Atwood 
> 
> add in bit to _mesa_x86_features for sse4.1, along with macros to query
> ---
>  src/mesa/x86/common_x86.c  | 3 +++
>  src/mesa/x86/common_x86_features.h | 3 +++
>  2 files changed, 6 insertions(+)
> 
> diff --git a/src/mesa/x86/common_x86.c b/src/mesa/x86/common_x86.c
> index 3c1adc9..87fa68a 100644
> --- a/src/mesa/x86/common_x86.c
> +++ b/src/mesa/x86/common_x86.c
> @@ -238,6 +238,7 @@ _mesa_get_x86_features(void)
>  
> /* get cpu features */
> cpu_features = _mesa_x86_cpuid_edx(1);
> +   cpu_features_ecx = _mesa_x86_cpuid_ecx(1);
>  
> if (cpu_features & X86_CPU_FPU)
>  _mesa_x86_cpu_features |= X86_FEATURE_FPU;
> @@ -254,6 +255,8 @@ _mesa_get_x86_features(void)
>  _mesa_x86_cpu_features |= X86_FEATURE_XMM;
> if (cpu_features & X86_CPU_XMM2)
>  _mesa_x86_cpu_features |= X86_FEATURE_XMM2;
> +   if (cpu_features & x86_CPU_SSE4_1)
> +_mesa_x86_features |= X86_FEATURE_SSE4_1;
>  #endif
>  
> /* query extended cpu features */
> diff --git a/src/mesa/x86/common_x86_features.h 
> b/src/mesa/x86/common_x86_features.h
> index 8625484..1e4bbfc 100644
> --- a/src/mesa/x86/common_x86_features.h
> +++ b/src/mesa/x86/common_x86_features.h
> @@ -43,6 +43,7 @@
>  #define X86_FEATURE_XMM2 (1<<6)
>  #define X86_FEATURE_3DNOWEXT (1<<7)
>  #define X86_FEATURE_3DNOW(1<<8)
> +#define X86_FEATURE_SSE4_1   (1<<9)
>  
>  /* standard X86 CPU features */
>  #define X86_CPU_FPU  (1<<0)
> @@ -50,6 +51,7 @@
>  #define X86_CPU_MMX  (1<<23)
>  #define X86_CPU_XMM  (1<<25)
>  #define X86_CPU_XMM2 (1<<26)
> +#define X86_CPU_SSE4_1   (1<<19)
>  
>  /* extended X86 CPU features */
>  #define X86_CPUEXT_MMX_EXT   (1<<22)
> @@ -62,6 +64,7 @@
>  #define cpu_has_xmm2 (_mesa_x86_cpu_features & X86_FEATURE_XMM2)
>  #define cpu_has_3dnow(_mesa_x86_cpu_features & 
> X86_FEATURE_3DNOW)
>  #define cpu_has_3dnowext (_mesa_x86_cpu_features & X86_FEATURE_3DNOWEXT)
> +#define cpu_has_sse4_1   (_mesa_x86_cpu_features & 
> X86_FEATURE_SSE4_1)
>  
>  #endif
>  
> 

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


Re: [Mesa-dev] [PATCH 00/15] Klocwork patches again

2014-05-02 Thread Ian Romanick
I just pushed the first 3 patches (the ones with Reviewed-bys).  I had
to modify patch 3 to avoid a MSVC build break.  We should be able to get
most or all of the others for 10.2-rc2.

On 04/27/2014 01:04 PM, Juha-Pekka Heikkila wrote:
> Most of these were earlier on the list but they seem to have vanished
> to void already. This set pass piglit quick set on my ivybridge without
> regressions.
> 
> Patch 15 (i965: Avoid null access in intelMakeCurrent()) I'm was a bit
> iffy if its the same behavior which I replaced.
> 
> In patch 14 (mesa/drivers: Add extra null check in blitframebuffer_texture())
> GetDrawableAttribute may send GLXBadDrawable if  is not bound 
> to thread's context. Should GLXBadDrawable be sent also if 
> GetGLXDRIDrawable(dpy, drawable) return NULL because it mean drawable 
> is not associated with a direct-rendering context. Now just return 0.
> 
> /Juha-Pekka
> 
> Ian Romanick (1):
>   mesa: Add _mesa_error_no_memory for logging out-of-memory messages
> 
> Juha-Pekka Heikkila (14):
>   mesa: add missing null checks in _tnl_register_fastpath()
>   mesa: add extra null checks in vbo_rebase_prims()
>   mesa: In emit_texenv() type mismatch was forced with typecast
>   mesa: Add missing null checks into prog_hash_table.c
>   glsl: add missing null check in tfeedback_decl::init()
>   mesa: add missing null check in _mesa_NewHashTable()
>   i965: check malloc return value in intel_resolve_map_set()
>   mesa: add null checks in symbol_table.c
>   glsl: Add null check in loop_analysis.cpp
>   glsl: check _mesa_hash_table_create return value in
> link_uniform_blocks
>   i965/fs: Check variable_storage return value in fs_visitor::visit
>   glx: Added missing null check in GetDrawableAttribute()
>   mesa/drivers: Add extra null check in blitframebuffer_texture()
>   i965: Avoid null access in intelMakeCurrent()
> 
>  src/glsl/Makefile.am  | 13 
>  src/glsl/link_uniform_blocks.cpp  |  5 +
>  src/glsl/link_varyings.cpp|  5 +
>  src/glsl/loop_analysis.cpp|  6 --
>  src/glsl/main.cpp |  6 ++
>  src/glsl/tests/common.c   | 30 
> +++
>  src/glx/glx_pbuffer.c |  4 
>  src/mesa/drivers/common/meta_blit.c   |  7 +++
>  src/mesa/drivers/dri/i965/brw_context.c   | 10 ++---
>  src/mesa/drivers/dri/i965/brw_fs_visitor.cpp  |  6 ++
>  src/mesa/drivers/dri/i965/intel_resolve_map.c |  7 +++
>  src/mesa/main/errors.c|  6 ++
>  src/mesa/main/errors.h|  3 +++
>  src/mesa/main/ff_fragment_shader.cpp  | 17 ---
>  src/mesa/main/hash.c  | 10 +
>  src/mesa/program/prog_hash_table.c|  8 +++
>  src/mesa/program/symbol_table.c   | 30 
> +++
>  src/mesa/tnl/t_vertex.c   | 14 +++--
>  src/mesa/vbo/vbo_rebase.c | 19 +
>  19 files changed, 187 insertions(+), 19 deletions(-)
>  create mode 100644 src/glsl/tests/common.c
> 

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


[Mesa-dev] [PATCH 1/2] mesa: Add uninitialized_vars macro from the Linux kernel.

2014-05-02 Thread Matt Turner
---
 src/mesa/main/compiler.h | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/src/mesa/main/compiler.h b/src/mesa/main/compiler.h
index 97075f5..6006917 100644
--- a/src/mesa/main/compiler.h
+++ b/src/mesa/main/compiler.h
@@ -264,6 +264,12 @@ static INLINE GLuint CPU_TO_LE32(GLuint x)
 #define unreachable()
 #endif
 
+/*
+ * A trick to suppress uninitialized variable warning without generating any
+ * code
+ */
+#define uninitialized_var(x) x = x
+
 #if (__GNUC__ >= 3)
 #define PRINTFLIKE(f, a) __attribute__ ((format(__printf__, f, a)))
 #else
-- 
1.8.3.2

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


[Mesa-dev] [PATCH 2/2] mesa/x86: Support SSE 4.1 detection on x86-64.

2014-05-02 Thread Matt Turner
Uses the cpuid.h header provided by gcc and clang. Other platforms are
encouraged to switch.
---
 src/mesa/main/cpuinfo.c   |  2 +-
 src/mesa/main/cpuinfo.h   |  2 +-
 src/mesa/x86/common_x86.c | 14 ++
 3 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/src/mesa/main/cpuinfo.c b/src/mesa/main/cpuinfo.c
index 8d482a6..d017598 100644
--- a/src/mesa/main/cpuinfo.c
+++ b/src/mesa/main/cpuinfo.c
@@ -34,7 +34,7 @@
 void
 _mesa_get_cpu_features(void)
 {
-#ifdef USE_X86_ASM
+#if defined USE_X86_ASM || defined __x86_64__
_mesa_get_x86_features();
 #endif
 }
diff --git a/src/mesa/main/cpuinfo.h b/src/mesa/main/cpuinfo.h
index 3678889..6fd32ad 100644
--- a/src/mesa/main/cpuinfo.h
+++ b/src/mesa/main/cpuinfo.h
@@ -27,7 +27,7 @@
 #define CPUINFO_H
 
 
-#if defined(USE_X86_ASM)
+#if defined(USE_X86_ASM) || defined(__x86_64__)
 #include "x86/common_x86_asm.h"
 #endif
 
diff --git a/src/mesa/x86/common_x86.c b/src/mesa/x86/common_x86.c
index 87fa68a..672226d 100644
--- a/src/mesa/x86/common_x86.c
+++ b/src/mesa/x86/common_x86.c
@@ -47,6 +47,9 @@
 #include 
 #include 
 #endif
+#if defined(__x86_64__)
+#include 
+#endif
 
 #include "main/imports.h"
 #include "common_x86_asm.h"
@@ -333,6 +336,17 @@ _mesa_get_x86_features(void)
}
 #endif
 
+#elif defined __x86_64__
+   unsigned int uninitialized_var(eax), uninitialized_var(ebx),
+uninitialized_var(ecx), uninitialized_var(edx);
+
+   /* Always available on x86-64. */
+   _mesa_x86_cpu_features |= X86_FEATURE_XMM | X86_FEATURE_XMM2;
+
+   __get_cpuid(1, &eax, &ebx, &ecx, &edx);
+
+   if (ecx & bit_SSE4_1)
+  _mesa_x86_cpu_features |= X86_FEATURE_SSE4_1;
 #endif /* USE_X86_ASM */
 
(void) detection_debug;
-- 
1.8.3.2

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


Re: [Mesa-dev] [PATCH 1/2] mesa/x86: add SSE4.1 runtime detection

2014-05-02 Thread Matt Turner
On Fri, May 2, 2014 at 11:49 AM, Ian Romanick  wrote:
> Gallium has a bunch of CPU detection code, so if we need to update the
> CPU detection code in core Mesa, we should move the Gallium code to a
> higher level in the tree to be shared.  I believe this has been
> discussed before.

I just sent two patches to use gcc/clang's cpuid.h for detection on
__x86_64__. We should really prefer that over hand rolling our own
assembly detection routines.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] Mesa 10.2 release plan strawman

2014-05-02 Thread Ian Romanick
On 04/04/2014 05:18 PM, Ian Romanick wrote:
> Fast forwarding 3 months from the 10.1 release (March 4th, planned for
> February 28th) is May 30th.  I'd like to propose the following set of dates:

(Slight edits to the quoted e-mail to account for changes to the RC plan.)

> May 2nd: Feature freeze / 10.2 branch created / RC1.

Just a reminder... this is about 6 or 7 hours away.  I don't think
there's anything pending that would be too disruptive, but be careful
what you push.

I've asked the VMware guys to do an MSCV build, so hopefully RC1 won't
go out broken on that platform.

> May 9th: RC2
> 
> May 16th: RC3
> 
> May 23rd: RC4
> 
> May 30th: 10.2 final release
> 
> Does this plan sound reasonable?
> ___
> 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] [PATCHES 0/9] Draw Indirect and Cube Map Arrays for RadeonSI

2014-05-02 Thread Marek Olšák
On Fri, May 2, 2014 at 4:56 AM, Michel Dänzer  wrote:
> On 26.04.2014 22:27, Marek Olšák wrote:
>>
>> This series adds support for ARB_texture_cube_map_array and
>> ARB_draw_indirect to the radeonsi driver. There is also Gallium
>> infrastructure support for ARB_draw_indirect. As usual, the first
>> patch is unrelated to the rest of the series. ;)
>
> While that's funny :), please submit such patches separately in the
> future. Actually, the same applies to patch 2? Anyway, those two patches are

Okay.

>
> Reviewed-by: Michel Dänzer 
>
>
> I'm holding off on the later patches, as the best approach for handling
> the necessary changes between LLVM and radeonsi doesn't seem settled yet.

I'll just wait until LLVM 3.5 is released with my patch, and then I'll
make the Mesa configure script require that version.

I'm also probably going to commit the non-driver patches for
ARB_draw_indirect sooner.

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


[Mesa-dev] [PATCH 1/4] dri_util: keep __dri2ConfigOptions symbol private

2014-05-02 Thread Emil Velikov
The symbol was added with commit 45e2b51c853(DRI2/GLX: check for
vblank_mode in DRI2 GLX code) but was never used as such according
to git log.

Possibly it was marked as public due to confusion with
__driConfigOptions which was used for dri1 drivers.

Cc: Jesse Barnes 
Signed-off-by: Emil Velikov 
---
 src/mesa/drivers/dri/common/dri_util.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/common/dri_util.c 
b/src/mesa/drivers/dri/common/dri_util.c
index 248c361..1a205d9 100644
--- a/src/mesa/drivers/dri/common/dri_util.c
+++ b/src/mesa/drivers/dri/common/dri_util.c
@@ -52,7 +52,7 @@
 #include "main/errors.h"
 #include "main/macros.h"
 
-PUBLIC const char __dri2ConfigOptions[] =
+const char __dri2ConfigOptions[] =
DRI_CONF_BEGIN
   DRI_CONF_SECTION_PERFORMANCE
  DRI_CONF_VBLANK_MODE(DRI_CONF_VBLANK_DEF_INTERVAL_1)
-- 
1.9.2

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


[Mesa-dev] [PATCH 3/4] targets/osmesa: limit the amount of exported symbols

2014-05-02 Thread Emil Velikov
Explicitly list all the OSMesa* symbols and wildcast the gl*
ones.

Cc: Brian Paul 
Signed-off-by: Emil Velikov 
---
 src/gallium/targets/osmesa/Makefile.am |  1 +
 src/gallium/targets/osmesa/osmesa.sym  | 18 ++
 2 files changed, 19 insertions(+)
 create mode 100644 src/gallium/targets/osmesa/osmesa.sym

diff --git a/src/gallium/targets/osmesa/Makefile.am 
b/src/gallium/targets/osmesa/Makefile.am
index 067f980..0ec8a26 100644
--- a/src/gallium/targets/osmesa/Makefile.am
+++ b/src/gallium/targets/osmesa/Makefile.am
@@ -45,6 +45,7 @@ lib@OSMESA_LIB@_la_LDFLAGS = \
-module \
-no-undefined \
-version-number @OSMESA_VERSION@ \
+   
-Wl,--version-script=$(top_srcdir)/src/gallium/targets/osmesa/osmesa.sym \
$(GC_SECTIONS) \
$(LD_NO_UNDEFINED)
 
diff --git a/src/gallium/targets/osmesa/osmesa.sym 
b/src/gallium/targets/osmesa/osmesa.sym
new file mode 100644
index 000..b8230e0
--- /dev/null
+++ b/src/gallium/targets/osmesa/osmesa.sym
@@ -0,0 +1,18 @@
+{
+   global:
+   OSMesaColorClamp;
+   OSMesaCreateContext;
+   OSMesaCreateContextExt;
+   OSMesaDestroyContext;
+   OSMesaGetColorBuffer;
+   OSMesaGetCurrentContext;
+   OSMesaGetDepthBuffer;
+   OSMesaGetIntegerv;
+   OSMesaGetProcAddress;
+   OSMesaMakeCurrent;
+   OSMesaPixelStore;
+   OSMesaPostprocess;
+   gl*;
+   local:
+   *;
+};
-- 
1.9.2

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


[Mesa-dev] [PATCH 4/4] targets/libgl-xlib: hide all the exported symbol mayhem

2014-05-02 Thread Emil Velikov
TODO:
 - properly cleanup all the _glapi* symbols
 - XMesa*
 -- no sign of the header even being distributed
 -- mesa-demos uses it to the point that the relevant code is not compiled
 -- the classic driver (x11) exibits the same issues

Brian,

Do you know of any users of the XMesa* functions outside of mesa-demos ?
AFAICS we should be safe with dropping PUBLIC although I may have missed
something. As a follow up someone can cleanup all the mesa-demos code :)

Cc: Brian Paul 
Signed-off-by: Emil Velikov 
---
 src/gallium/targets/libgl-xlib/Makefile.am| 1 +
 src/gallium/targets/libgl-xlib/libgl-xlib.sym | 6 ++
 2 files changed, 7 insertions(+)
 create mode 100644 src/gallium/targets/libgl-xlib/libgl-xlib.sym

diff --git a/src/gallium/targets/libgl-xlib/Makefile.am 
b/src/gallium/targets/libgl-xlib/Makefile.am
index 4ee364e..3718243 100644
--- a/src/gallium/targets/libgl-xlib/Makefile.am
+++ b/src/gallium/targets/libgl-xlib/Makefile.am
@@ -47,6 +47,7 @@ libGL_la_SOURCES = xlib.c
 libGL_la_LDFLAGS = \
-no-undefined \
-version-number $(GL_MAJOR):$(GL_MINOR):$(GL_TINY) \
+   
-Wl,--version-script=$(top_srcdir)/src/gallium/targets/libgl-xlib/libgl-xlib.sym
 \
$(GC_SECTIONS) \
$(LD_NO_UNDEFINED)
 
diff --git a/src/gallium/targets/libgl-xlib/libgl-xlib.sym 
b/src/gallium/targets/libgl-xlib/libgl-xlib.sym
new file mode 100644
index 000..d6cd23d
--- /dev/null
+++ b/src/gallium/targets/libgl-xlib/libgl-xlib.sym
@@ -0,0 +1,6 @@
+{
+   global:
+   gl*;
+   local:
+   *;
+};
-- 
1.9.2

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


[Mesa-dev] [PATCH 2/4] targets/xa: limit the amount of exported symbols

2014-05-02 Thread Emil Velikov
In the presence of LLVM the final library exports every symbol from
the llvm namespace. Resolve this by using a version script (w/o the
version/name tag).

Considering that there are only ~35 symbols, explicitly list them
to minimize the chances of rogue symbols sneaking in.

Signed-off-by: Emil Velikov 
---
 src/gallium/targets/xa/Makefile.am |  1 +
 src/gallium/targets/xa/xa.sym  | 38 ++
 2 files changed, 39 insertions(+)
 create mode 100644 src/gallium/targets/xa/xa.sym

diff --git a/src/gallium/targets/xa/Makefile.am 
b/src/gallium/targets/xa/Makefile.am
index 2619e57..17cd6c4 100644
--- a/src/gallium/targets/xa/Makefile.am
+++ b/src/gallium/targets/xa/Makefile.am
@@ -63,6 +63,7 @@ endif
 libxatracker_la_LDFLAGS = \
-no-undefined \
-version-number $(XA_MAJOR):$(XA_MINOR):$(XA_TINY) \
+   -Wl,--version-script=$(top_srcdir)/src/gallium/targets/xa/xa.sym \
$(GC_SECTIONS) \
$(LD_NO_UNDEFINED)
 
diff --git a/src/gallium/targets/xa/xa.sym b/src/gallium/targets/xa/xa.sym
new file mode 100644
index 000..9c7f422
--- /dev/null
+++ b/src/gallium/targets/xa/xa.sym
@@ -0,0 +1,38 @@
+{
+   global:
+   xa_composite_allocation;
+   xa_composite_check_accelerated;
+   xa_composite_done;
+   xa_composite_prepare;
+   xa_composite_rect;
+   xa_context_create;
+   xa_context_default;
+   xa_context_destroy;
+   xa_context_flush;
+   xa_copy;
+   xa_copy_done;
+   xa_copy_prepare;
+   xa_fence_get;
+   xa_fence_wait;
+   xa_fence_destroy;
+   xa_format_check_supported;
+   xa_solid;
+   xa_solid_done;
+   xa_solid_prepare;
+   xa_surface_create;
+   xa_surface_dma;
+   xa_surface_format;
+   xa_surface_from_handle;
+   xa_surface_handle;
+   xa_surface_map;
+   xa_surface_redefine;
+   xa_surface_ref;
+   xa_surface_unmap;
+   xa_surface_unref;
+   xa_tracker_create;
+   xa_tracker_destroy;
+   xa_tracker_version;
+   xa_yuv_planar_blit;
+   local:
+   *;
+};
-- 
1.9.2

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


Re: [Mesa-dev] [PATCH 7/9] egl: Don't attempt to redefine stdint.h types with VS 2013.

2014-05-02 Thread Jose Fonseca


- Original Message -
> On Fri, May 2, 2014 at 10:11 AM,  wrote:
> 
> > From: José Fonseca 
> >
> > Just include stdint.h.
> > ---
> >  src/egl/main/eglcompiler.h | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/src/egl/main/eglcompiler.h b/src/egl/main/eglcompiler.h
> > index 53dab54..5ea83d6 100644
> > --- a/src/egl/main/eglcompiler.h
> > +++ b/src/egl/main/eglcompiler.h
> > @@ -37,7 +37,8 @@
> >  /**
> >   * Get standard integer types
> >   */
> > -#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L)
> > +#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
> > +(defined(_MSC_VER) && _MSC_VER >= 1600)
> >
> 
> VS 2010 is where the support for  beings. This can be verified by
> a quick Google search.

Actually, "_MSC_VER >= 1600" is VS 2010.  So only the patch subject needs 
updating.

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


Re: [Mesa-dev] [Mesa-stable] A candidate branch for the next stable release

2014-05-02 Thread Emil Velikov
On 02/05/14 01:08, Carl Worth wrote:
> Carl Worth  writes:
>> At this point, I'm just waiting for Anuj to backport two patches, then
>> I'll test and push out the latest state as reflected here:
> 
> Anuj gave me the updated patches, and testing looks good. I've pushed
> out this state now:
> 
>   http://cworth.org/~cworth/mesa-stable-queue/
> 
> with only 5 nominated patches not in (not yet on master).
> 
A quick look at the five patches:

  dri3: Enable GLX_MESA_query_renderer on DRI3 too

Had some trivial nitpick with it earlier, which is not a reason for the patch
to not go in as is. Pushed to master - commit
625bdd64e5ea3327d4459b1ff8dab89129d0.

  mesa: Don't use derived vertex state in api_arrayelt.c

Awaiting review.

  mesa: Remove redundant if checks in _mesa_texstore_xx_xx() functions

Never (?) been nominated to stable. Reviewed and merged in master - commit
ef924f0de93accff2ea12dbd90cc3c1df794c8f5

  glsl: Try vectorizing when seeing a repeated assignment to a channel.

Reviewed and merged in master - commit ae2a03b5736037128fb071595717f300d5b3afd5

  wayland: Prevent zero sized wl_egl_window

Not reviewed but already in master - commit
c9d6898fdfd7e23306762af9bf2501a5bca1974


Hope that helps a bit.

-Emil

> This looks pretty good to me, and I'll release it tomorrow unless I hear
> some reason not to.
> 
> -Carl
> 
> 
> 
> ___
> 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/9] configure.ac: radeonsi requires EGL_DRM and GBM

2014-05-02 Thread Emil Velikov
On 26/04/14 14:27, Marek Olšák wrote:
> From: Marek Olšák 
> 
> ---
>  configure.ac | 14 ++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/configure.ac b/configure.ac
> index c71fa26..b2ea8ca 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -1738,6 +1738,19 @@ gallium_require_drm_loader() {
>  fi
>  }
>  
> +require_egl_drm() {
> +case "$with_egl_platforms" in
> +*drm*)
> +;;
> + *)
> +AC_MSG_ERROR([--with-egl-platforms=drm is required to build the 
> $1 driver.])
> +;;
> +esac
> +if test "x$enable_gbm" != xyes; then
> +AC_MSG_ERROR([--enable-gbm is required to build the $1 driver.])
> +fi
> +}
> +
Hi Marek,

I'm not sure if the patch does exactly what you expect it to.

AFAICS, based on the above you require the drm egl platform with radeonsi,
although it will break the build for people that do not build gbm/egl.

Do I take it that radeonsi is available/usable _only_ when gbm + drm egl is
build ? Otherwise just wrap the above in a

if test "x$enable_egl" = xyes; then

fi

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


[Mesa-dev] recent build breakage w.r.t. dri3

2014-05-02 Thread Brian Paul
I don't have time to investigate right now, but a recent Mesa commit 
seems to have broke some of our automated builds on Linux:


With SCONS:

scons: done reading SConscript files.
scons: Building targets ...
  Compiling src/gallium/state_trackers/egl/x11/x11_screen.c ...
  Compiling src/gallium/state_trackers/egl/x11/dri2.c ...
  Compiling src/glx/dri2.c ...
  Compiling src/glx/dri2_glx.c ...
  Compiling src/glx/dri2_query_renderer.c ...
In file included from src/glx/dri2_query_renderer.c:31:0:
src/glx/dri3_priv.h:58:22: fatal error: xcb/dri3.h: No such file or 
directory

 #include 
  ^
compilation terminated.
  Compiling src/glx/dri_glx.c ...
scons: *** [build/linux-x86_64-checked/glx/dri2_query_renderer.os] Error 1
scons: building terminated because of errors.


With make:

  CC   glxhash.lo
  CC   dri2_glx.lo
  CC   dri2.lo
  CC   dri2_query_renderer.lo
  CC   applegl_glx.lo
In file included from dri2_query_renderer.c:31:0:
dri3_priv.h:58:22: fatal error: xcb/dri3.h: No such file or directory
 #include 
  ^
compilation terminated.
make[3]: *** [dri2_query_renderer.lo] Error 1
make[3]: Leaving directory 
`/var/lib/hudson/jobs/mesa-ubuntu64-make/workspace/src/glx'

make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory 
`/var/lib/hudson/jobs/mesa-ubuntu64-make/workspace/src/glx'

make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory 
`/var/lib/hudson/jobs/mesa-ubuntu64-make/workspace/src'

make: *** [all-recursive] Error 1

It would be great if someone could check on this.

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


Re: [Mesa-dev] recent build breakage w.r.t. dri3

2014-05-02 Thread Alex Deucher
On Fri, May 2, 2014 at 5:51 PM, Brian Paul  wrote:
> I don't have time to investigate right now, but a recent Mesa commit seems
> to have broke some of our automated builds on Linux:
>
> With SCONS:
>
> scons: done reading SConscript files.
> scons: Building targets ...
>   Compiling src/gallium/state_trackers/egl/x11/x11_screen.c ...
>   Compiling src/gallium/state_trackers/egl/x11/dri2.c ...
>   Compiling src/glx/dri2.c ...
>   Compiling src/glx/dri2_glx.c ...
>   Compiling src/glx/dri2_query_renderer.c ...
> In file included from src/glx/dri2_query_renderer.c:31:0:
> src/glx/dri3_priv.h:58:22: fatal error: xcb/dri3.h: No such file or
> directory
>  #include 
>   ^
> compilation terminated.
>   Compiling src/glx/dri_glx.c ...
> scons: *** [build/linux-x86_64-checked/glx/dri2_query_renderer.os] Error 1
> scons: building terminated because of errors.
>
>
> With make:
>
>   CC   glxhash.lo
>   CC   dri2_glx.lo
>   CC   dri2.lo
>   CC   dri2_query_renderer.lo
>   CC   applegl_glx.lo
> In file included from dri2_query_renderer.c:31:0:
> dri3_priv.h:58:22: fatal error: xcb/dri3.h: No such file or directory
>  #include 
>   ^
> compilation terminated.
> make[3]: *** [dri2_query_renderer.lo] Error 1
> make[3]: Leaving directory
> `/var/lib/hudson/jobs/mesa-ubuntu64-make/workspace/src/glx'
> make[2]: *** [all-recursive] Error 1
> make[2]: Leaving directory
> `/var/lib/hudson/jobs/mesa-ubuntu64-make/workspace/src/glx'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory
> `/var/lib/hudson/jobs/mesa-ubuntu64-make/workspace/src'
> make: *** [all-recursive] Error 1
>
> It would be great if someone could check on this.

It's:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=625bdd64e5ea3327d4459b1ff8dab89129d0

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


Re: [Mesa-dev] recent build breakage w.r.t. dri3

2014-05-02 Thread Armin K.
On 05/02/2014 11:51 PM, Brian Paul wrote:
> I don't have time to investigate right now, but a recent Mesa commit
> seems to have broke some of our automated builds on Linux:
> 
> With SCONS:
> 
> scons: done reading SConscript files.
> scons: Building targets ...
>   Compiling src/gallium/state_trackers/egl/x11/x11_screen.c ...
>   Compiling src/gallium/state_trackers/egl/x11/dri2.c ...
>   Compiling src/glx/dri2.c ...
>   Compiling src/glx/dri2_glx.c ...
>   Compiling src/glx/dri2_query_renderer.c ...
> In file included from src/glx/dri2_query_renderer.c:31:0:
> src/glx/dri3_priv.h:58:22: fatal error: xcb/dri3.h: No such file or
> directory
>  #include 
>   ^
> compilation terminated.
>   Compiling src/glx/dri_glx.c ...
> scons: *** [build/linux-x86_64-checked/glx/dri2_query_renderer.os] Error 1
> scons: building terminated because of errors.
> 
> 
> With make:
> 
>   CC   glxhash.lo
>   CC   dri2_glx.lo
>   CC   dri2.lo
>   CC   dri2_query_renderer.lo
>   CC   applegl_glx.lo
> In file included from dri2_query_renderer.c:31:0:
> dri3_priv.h:58:22: fatal error: xcb/dri3.h: No such file or directory
>  #include 
>   ^
> compilation terminated.
> make[3]: *** [dri2_query_renderer.lo] Error 1
> make[3]: Leaving directory
> `/var/lib/hudson/jobs/mesa-ubuntu64-make/workspace/src/glx'
> make[2]: *** [all-recursive] Error 1
> make[2]: Leaving directory
> `/var/lib/hudson/jobs/mesa-ubuntu64-make/workspace/src/glx'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory
> `/var/lib/hudson/jobs/mesa-ubuntu64-make/workspace/src'
> make: *** [all-recursive] Error 1
> 
> It would be great if someone could check on this.
> 
> -Brian
> ___
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Does the attached patch fix the build for you?

-- 
Note: My last name is not Krejzi.
>From f83c41c6e3cca790cdfe9415c667cb7c379e6ceb Mon Sep 17 00:00:00 2001
From: Armin K 
Date: Fri, 2 May 2014 23:59:22 +0200
Subject: [PATCH] glx: Conditionally compile GLX_MESA_query_renderer DRI3
 support

---
 src/glx/dri2_query_renderer.c | 4 
 1 file changed, 4 insertions(+)

diff --git a/src/glx/dri2_query_renderer.c b/src/glx/dri2_query_renderer.c
index c96e1f9..c1e8772 100644
--- a/src/glx/dri2_query_renderer.c
+++ b/src/glx/dri2_query_renderer.c
@@ -28,7 +28,9 @@
 #include "dri2.h"
 #include "dri_interface.h"
 #include "dri2_priv.h"
+#if defined(HAVE_DRI3)
 #include "dri3_priv.h"
+#endif
 
 static int
 dri2_convert_glx_query_renderer_attribs(int attribute)
@@ -99,6 +101,7 @@ dri2_query_renderer_string(struct glx_screen *base, int attribute,
return psc->rendererQuery->queryString(psc->driScreen, dri_attribute, value);
 }
 
+#if defined(HAVE_DRI3)
 _X_HIDDEN int
 dri3_query_renderer_integer(struct glx_screen *base, int attribute,
 unsigned int *value)
@@ -136,5 +139,6 @@ dri3_query_renderer_string(struct glx_screen *base, int attribute,
 
return psc->rendererQuery->queryString(psc->driScreen, dri_attribute, value);
 }
+#endif /* HAVE_DRI3 */
 
 #endif /* GLX_DIRECT_RENDERING */
-- 
1.9.2

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


Re: [Mesa-dev] [PATCH 1/9] configure.ac: radeonsi requires EGL_DRM and GBM

2014-05-02 Thread Marek Olšák
Radeonsi requires Glamor and Glamor requires GBM and EGL DRM. Without
the two, there is no way to get acceleration.

Marek

On Fri, May 2, 2014 at 11:31 PM, Emil Velikov  wrote:
> On 26/04/14 14:27, Marek Olšák wrote:
>> From: Marek Olšák 
>>
>> ---
>>  configure.ac | 14 ++
>>  1 file changed, 14 insertions(+)
>>
>> diff --git a/configure.ac b/configure.ac
>> index c71fa26..b2ea8ca 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -1738,6 +1738,19 @@ gallium_require_drm_loader() {
>>  fi
>>  }
>>
>> +require_egl_drm() {
>> +case "$with_egl_platforms" in
>> +*drm*)
>> +;;
>> + *)
>> +AC_MSG_ERROR([--with-egl-platforms=drm is required to build the 
>> $1 driver.])
>> +;;
>> +esac
>> +if test "x$enable_gbm" != xyes; then
>> +AC_MSG_ERROR([--enable-gbm is required to build the $1 driver.])
>> +fi
>> +}
>> +
> Hi Marek,
>
> I'm not sure if the patch does exactly what you expect it to.
>
> AFAICS, based on the above you require the drm egl platform with radeonsi,
> although it will break the build for people that do not build gbm/egl.
>
> Do I take it that radeonsi is available/usable _only_ when gbm + drm egl is
> build ? Otherwise just wrap the above in a
>
> if test "x$enable_egl" = xyes; then
> 
> fi
>
> Cheers,
> -Emil
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] recent build breakage w.r.t. dri3

2014-05-02 Thread Emil Velikov
On 02/05/14 23:01, Armin K. wrote:
> On 05/02/2014 11:51 PM, Brian Paul wrote:
>> I don't have time to investigate right now, but a recent Mesa commit
>> seems to have broke some of our automated builds on Linux:
>>
>> With SCONS:
>>
>> scons: done reading SConscript files.
>> scons: Building targets ...
>>   Compiling src/gallium/state_trackers/egl/x11/x11_screen.c ...
>>   Compiling src/gallium/state_trackers/egl/x11/dri2.c ...
>>   Compiling src/glx/dri2.c ...
>>   Compiling src/glx/dri2_glx.c ...
>>   Compiling src/glx/dri2_query_renderer.c ...
>> In file included from src/glx/dri2_query_renderer.c:31:0:
>> src/glx/dri3_priv.h:58:22: fatal error: xcb/dri3.h: No such file or
>> directory
>>  #include 
>>   ^
>> compilation terminated.
>>   Compiling src/glx/dri_glx.c ...
>> scons: *** [build/linux-x86_64-checked/glx/dri2_query_renderer.os] Error 1
>> scons: building terminated because of errors.
>>
>>
>> With make:
>>
>>   CC   glxhash.lo
>>   CC   dri2_glx.lo
>>   CC   dri2.lo
>>   CC   dri2_query_renderer.lo
>>   CC   applegl_glx.lo
>> In file included from dri2_query_renderer.c:31:0:
>> dri3_priv.h:58:22: fatal error: xcb/dri3.h: No such file or directory
>>  #include 
>>   ^
>> compilation terminated.
>> make[3]: *** [dri2_query_renderer.lo] Error 1
>> make[3]: Leaving directory
>> `/var/lib/hudson/jobs/mesa-ubuntu64-make/workspace/src/glx'
>> make[2]: *** [all-recursive] Error 1
>> make[2]: Leaving directory
>> `/var/lib/hudson/jobs/mesa-ubuntu64-make/workspace/src/glx'
>> make[1]: *** [all-recursive] Error 1
>> make[1]: Leaving directory
>> `/var/lib/hudson/jobs/mesa-ubuntu64-make/workspace/src'
>> make: *** [all-recursive] Error 1
>>
>> It would be great if someone could check on this.
>>
>> -Brian
>> ___
>> mesa-dev mailing list
>> mesa-dev@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> 
> Does the attached patch fix the build for you?
> 
Sorry for the breakage gents.

The attached patch does resolve the problem on my system, and is obviously the
right thing to do. Thanks Armin.

I've slapped the following two and pushed to master.

Cc: "10.1" 
Reviewed-by: Emil Velikov 

-Emil

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


Re: [Mesa-dev] [Mesa-stable] A candidate branch for the next stable release

2014-05-02 Thread Carl Worth
Emil Velikov  writes:
> Had some trivial nitpick with it earlier, which is not a reason for the patch
> to not go in as is. Pushed to master - commit
> 625bdd64e5ea3327d4459b1ff8dab89129d0

Thanks for the review and push!

>   mesa: Remove redundant if checks in _mesa_texstore_xx_xx() functions
>
> Never (?) been nominated to stable. Reviewed and merged in master - commit
> ef924f0de93accff2ea12dbd90cc3c1df794c8f5

That's odd. I wonder how it ended up on my list. Clearly some mistake I
made.

>   glsl: Try vectorizing when seeing a repeated assignment to a channel.
>
> Reviewed and merged in master - commit
> ae2a03b5736037128fb071595717f300d5b3afd5

Not only merged in master. This one was included as part of the 10.1.1
release already. No wonder I wasn't seeing it appear on master after
that. ;-)

So that's another one that simply didn't belong on my list.

>   wayland: Prevent zero sized wl_egl_window
>
> Not reviewed but already in master - commit
> c9d6898fdfd7e23306762af9bf2501a5bca1974

Ahah! It looks like this was a case where Ander was doing an
after-the-fact nomination of a commit that was already on master. But
since it was sent to the mesa-stable@ list as a patch, I mistakenly
thought it was a newly-proposed patch, so I was waiting for it to appear
on master.

I'll update the instructions for after-the-fact nominations to suggest
sending a sentence with a commit ID:

Please pick commit  to the stable branch.

rather than instructing people to send patches in this case.

And that should avoid the confusion.

> Hope that helps a bit.

Yes. Very much. Thanks for tracking down the details of each of
these. It will be nice to have a stable release with a nearly-empty list
of nominated-but-not-yet-applied patches.

-Carl



pgpmlDBwGDgJl.pgp
Description: PGP signature
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/9] configure.ac: radeonsi requires EGL_DRM and GBM

2014-05-02 Thread Emil Velikov
On 02/05/14 23:14, Marek Olšák wrote:
> Radeonsi requires Glamor and Glamor requires GBM and EGL DRM. Without
> the two, there is no way to get acceleration.
> 
Completely forgot that radeonsi uses glamor. Sorry for the noise.

-Emil

> Marek
> 
> On Fri, May 2, 2014 at 11:31 PM, Emil Velikov  
> wrote:
>> On 26/04/14 14:27, Marek Olšák wrote:
>>> From: Marek Olšák 
>>>
>>> ---
>>>  configure.ac | 14 ++
>>>  1 file changed, 14 insertions(+)
>>>
>>> diff --git a/configure.ac b/configure.ac
>>> index c71fa26..b2ea8ca 100644
>>> --- a/configure.ac
>>> +++ b/configure.ac
>>> @@ -1738,6 +1738,19 @@ gallium_require_drm_loader() {
>>>  fi
>>>  }
>>>
>>> +require_egl_drm() {
>>> +case "$with_egl_platforms" in
>>> +*drm*)
>>> +;;
>>> + *)
>>> +AC_MSG_ERROR([--with-egl-platforms=drm is required to build 
>>> the $1 driver.])
>>> +;;
>>> +esac
>>> +if test "x$enable_gbm" != xyes; then
>>> +AC_MSG_ERROR([--enable-gbm is required to build the $1 
>>> driver.])
>>> +fi
>>> +}
>>> +
>> Hi Marek,
>>
>> I'm not sure if the patch does exactly what you expect it to.
>>
>> AFAICS, based on the above you require the drm egl platform with radeonsi,
>> although it will break the build for people that do not build gbm/egl.
>>
>> Do I take it that radeonsi is available/usable _only_ when gbm + drm egl is
>> build ? Otherwise just wrap the above in a
>>
>> if test "x$enable_egl" = xyes; then
>> 
>> fi
>>
>> Cheers,
>> -Emil

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


Re: [Mesa-dev] recent build breakage w.r.t. dri3

2014-05-02 Thread Brian Paul

On 05/02/2014 04:23 PM, Emil Velikov wrote:

On 02/05/14 23:01, Armin K. wrote:

On 05/02/2014 11:51 PM, Brian Paul wrote:

I don't have time to investigate right now, but a recent Mesa commit
seems to have broke some of our automated builds on Linux:

With SCONS:

scons: done reading SConscript files.
scons: Building targets ...
   Compiling src/gallium/state_trackers/egl/x11/x11_screen.c ...
   Compiling src/gallium/state_trackers/egl/x11/dri2.c ...
   Compiling src/glx/dri2.c ...
   Compiling src/glx/dri2_glx.c ...
   Compiling src/glx/dri2_query_renderer.c ...
In file included from src/glx/dri2_query_renderer.c:31:0:
src/glx/dri3_priv.h:58:22: fatal error: xcb/dri3.h: No such file or
directory
  #include 
   ^
compilation terminated.
   Compiling src/glx/dri_glx.c ...
scons: *** [build/linux-x86_64-checked/glx/dri2_query_renderer.os] Error 1
scons: building terminated because of errors.


With make:

   CC   glxhash.lo
   CC   dri2_glx.lo
   CC   dri2.lo
   CC   dri2_query_renderer.lo
   CC   applegl_glx.lo
In file included from dri2_query_renderer.c:31:0:
dri3_priv.h:58:22: fatal error: xcb/dri3.h: No such file or directory
  #include 
   ^
compilation terminated.
make[3]: *** [dri2_query_renderer.lo] Error 1
make[3]: Leaving directory
`/var/lib/hudson/jobs/mesa-ubuntu64-make/workspace/src/glx'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory
`/var/lib/hudson/jobs/mesa-ubuntu64-make/workspace/src/glx'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory
`/var/lib/hudson/jobs/mesa-ubuntu64-make/workspace/src'
make: *** [all-recursive] Error 1

It would be great if someone could check on this.

-Brian
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://urldefense.proofpoint.com/v1/url?u=http://lists.freedesktop.org/mailman/listinfo/mesa-dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=lGQMzzTgII0I7jefp2FHq7WtZ%2BTLs8wadB%2BiIj9xpBY%3D%0A&m=3Wv2C6h%2FGq%2BW%2Fe5ajUPMNrTehyoUJpOMV%2BDnavdvQIk%3D%0A&s=d6c9417208d65c58d8137015a63070b8671838677cb6e0c72cd3448f57d76f60


Does the attached patch fix the build for you?


Sorry for the breakage gents.

The attached patch does resolve the problem on my system, and is obviously the
right thing to do. Thanks Armin.

I've slapped the following two and pushed to master.


Yup, that fixed it.  Thanks!

-Brian


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


Re: [Mesa-dev] [Mesa-stable] A candidate branch for the next stable release

2014-05-02 Thread Emil Velikov
On 02/05/14 23:25, Carl Worth wrote:
> Emil Velikov  writes:
>> Had some trivial nitpick with it earlier, which is not a reason for the patch
>> to not go in as is. Pushed to master - commit
>> 625bdd64e5ea3327d4459b1ff8dab89129d0
> 
> Thanks for the review and push!
> 
Which has caused a build breakage (fixed with commit
0b307afd57082f0d4a0e8ba19093d313c9fb46ad) :\

>>   mesa: Remove redundant if checks in _mesa_texstore_xx_xx() functions
>>
>> Never (?) been nominated to stable. Reviewed and merged in master - commit
>> ef924f0de93accff2ea12dbd90cc3c1df794c8f5
> 
> That's odd. I wonder how it ended up on my list. Clearly some mistake I
> made.
> 
>>   glsl: Try vectorizing when seeing a repeated assignment to a channel.
>>
>> Reviewed and merged in master - commit
>> ae2a03b5736037128fb071595717f300d5b3afd5
> 
> Not only merged in master. This one was included as part of the 10.1.1
> release already. No wonder I wasn't seeing it appear on master after
> that. ;-)
> 
> So that's another one that simply didn't belong on my list.
> 
>>   wayland: Prevent zero sized wl_egl_window
>>
>> Not reviewed but already in master - commit
>> c9d6898fdfd7e23306762af9bf2501a5bca1974
> 
> Ahah! It looks like this was a case where Ander was doing an
> after-the-fact nomination of a commit that was already on master. But
> since it was sent to the mesa-stable@ list as a patch, I mistakenly
> thought it was a newly-proposed patch, so I was waiting for it to appear
> on master.
> 
> I'll update the instructions for after-the-fact nominations to suggest
> sending a sentence with a commit ID:
> 
>   Please pick commit  to the stable branch.
> 
> rather than instructing people to send patches in this case.
> 
> And that should avoid the confusion.
> 
Hmm I seem to recall that this was documented already. Perhaps was only
discussed but never made it into the documentation ?

>> Hope that helps a bit.
> 
> Yes. Very much. Thanks for tracking down the details of each of
> these. It will be nice to have a stable release with a nearly-empty list
> of nominated-but-not-yet-applied patches.
> 
Glad I could help.

-Emil
> -Carl
> 

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


Re: [Mesa-dev] recent build breakage w.r.t. dri3

2014-05-02 Thread Carl Worth
Emil Velikov  writes:
> Sorry for the breakage gents.
>
> The attached patch does resolve the problem on my system, and is obviously the
> right thing to do. Thanks Armin.
>
> I've slapped the following two and pushed to master.

Thanks, Emil.

> Cc: "10.1" 

I've picked this over to the stable branch, (where I also squashed it
into the previously-picked commit being fixed).

-Carl

-- 
carl.d.wo...@intel.com


pgp8dRKCKkl13.pgp
Description: PGP signature
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 00/21] deferred and threaded glCompileShader

2014-05-02 Thread Pierre-Loup A. Griffais

This series adds a thread pool to the GLSL compiler, and a drirc option to
defer glCompileShader calls to the pool.  The goal is to reduce the start-up
time of applications that are aware of this feature.  That is, applications
that compile shaders first and check the compile status later.

I do not have numbers from real applications yet.


I believe I can help with that. Some more context on the intent: we're 
having this work done because shader compilation time on OpenGL is a 
real issue that both end-users and developers run into on a daily basis. 
Threaded compiles and lazy shader reflection have been part of the D3D 
ecosystem for a long while. Here's a sample that contains several data 
points to put this into perspective:


https://github.com/ValveSoftware/Dota-2/issues/661

I'm happy to say that when applying this patch series to my Mesa branch 
and changing ToGL in DOTA2 to perform lazy shader reflection, I'm seeing 
a 20s reduction in loading times across the board on a Brix Pro machine, 
from starting the client to getting in-game.


This is a very promising start and I will be merging this patch series 
to the SteamOS Mesa branch, and ship it as part of our next driver 
release cycle.


We will also be releasing updated builds of CS:GO and DOTA2 for Linux to 
take advantage of that feature; we encourage developers shipping on 
Linux to use that same pattern when compiling their shaders as well as 
enabling this new feature in their environment, as it's too good to pass on.


Thanks a lot,
 - Pierre-Loup
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH] i965: Set miptree target field when creating from a BO.

2014-05-02 Thread Eric Anholt
Kenneth Graunke  writes:

> Prior to commit 8435b60a3577d2d905eae189cd7e770500177e99, the region
> equivalent of this function called intel_miptree_create_layout, which
> set mt->target to target.  With that commit, it no longer copied target.
>
> Piglit's ext_image_dma_buf_import-sample_[xa]rgb tests would then
> hit an assertion failure, where image->TexObject->Target was
> GL_TEXTURE_EXTERNAL_OES, and mt->target was GL_TEXTURE_2D.

Reviewed-by: Eric Anholt 


pgpMuyOxoJNIp.pgp
Description: PGP signature
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH 1/3] gallium: add support for sampling from stencil of depth_stencil texture

2014-05-02 Thread Ilia Mirkin
Adds a PIPE_CAP_STENCIL_SAMPLING to indicate support for the feature,
and a stencil_sampling bit in pipe_sampler_view to indicate that the
stencil should be sampled instead of the depth.

Signed-off-by: Ilia Mirkin 
---
 src/gallium/docs/source/screen.rst   | 3 ++-
 src/gallium/drivers/freedreno/freedreno_screen.c | 1 +
 src/gallium/drivers/i915/i915_screen.c   | 1 +
 src/gallium/drivers/ilo/ilo_screen.c | 1 +
 src/gallium/drivers/llvmpipe/lp_screen.c | 1 +
 src/gallium/drivers/nouveau/nv30/nv30_screen.c   | 1 +
 src/gallium/drivers/nouveau/nv50/nv50_screen.c   | 1 +
 src/gallium/drivers/nouveau/nvc0/nvc0_screen.c   | 1 +
 src/gallium/drivers/r300/r300_screen.c   | 1 +
 src/gallium/drivers/r600/r600_pipe.c | 1 +
 src/gallium/drivers/radeonsi/si_pipe.c   | 1 +
 src/gallium/drivers/softpipe/sp_screen.c | 1 +
 src/gallium/drivers/svga/svga_screen.c   | 1 +
 src/gallium/include/pipe/p_defines.h | 1 +
 src/gallium/include/pipe/p_state.h   | 1 +
 15 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/src/gallium/docs/source/screen.rst 
b/src/gallium/docs/source/screen.rst
index b292257..1451ad6 100644
--- a/src/gallium/docs/source/screen.rst
+++ b/src/gallium/docs/source/screen.rst
@@ -202,7 +202,8 @@ The integer capabilities:
   implemented.
 * ``PIPE_CAP_TEXTURE_GATHER_OFFSETS``: Whether the ``TG4`` instruction can
   accept 4 offsets.
-
+* ``PIPE_CAP_STENCIL_SAMPLING``: Whether sampling can be done on the stencil
+  component of DEPTH_STENCIL textures. Flag passed in ``pipe_sampler_view``.
 
 .. _pipe_capf:
 
diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c 
b/src/gallium/drivers/freedreno/freedreno_screen.c
index 4de3e3f..45390ed 100644
--- a/src/gallium/drivers/freedreno/freedreno_screen.c
+++ b/src/gallium/drivers/freedreno/freedreno_screen.c
@@ -210,6 +210,7 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum 
pipe_cap param)
case PIPE_CAP_TEXTURE_QUERY_LOD:
case PIPE_CAP_SAMPLE_SHADING:
case PIPE_CAP_TEXTURE_GATHER_OFFSETS:
+   case PIPE_CAP_STENCIL_SAMPLING:
return 0;
 
/* Stream output. */
diff --git a/src/gallium/drivers/i915/i915_screen.c 
b/src/gallium/drivers/i915/i915_screen.c
index dfd7a2e..abc1d9b 100644
--- a/src/gallium/drivers/i915/i915_screen.c
+++ b/src/gallium/drivers/i915/i915_screen.c
@@ -222,6 +222,7 @@ i915_get_param(struct pipe_screen *screen, enum pipe_cap 
cap)
case PIPE_CAP_TEXTURE_QUERY_LOD:
case PIPE_CAP_SAMPLE_SHADING:
case PIPE_CAP_TEXTURE_GATHER_OFFSETS:
+   case PIPE_CAP_STENCIL_SAMPLING:
   return 0;
 
case PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETS:
diff --git a/src/gallium/drivers/ilo/ilo_screen.c 
b/src/gallium/drivers/ilo/ilo_screen.c
index 0a1c56d..8862b55 100644
--- a/src/gallium/drivers/ilo/ilo_screen.c
+++ b/src/gallium/drivers/ilo/ilo_screen.c
@@ -441,6 +441,7 @@ ilo_get_param(struct pipe_screen *screen, enum pipe_cap 
param)
case PIPE_CAP_TEXTURE_QUERY_LOD:
case PIPE_CAP_SAMPLE_SHADING:
case PIPE_CAP_TEXTURE_GATHER_OFFSETS:
+   case PIPE_CAP_STENCIL_SAMPLING:
   return 0;
 
default:
diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c 
b/src/gallium/drivers/llvmpipe/lp_screen.c
index e236802..14bea7e 100644
--- a/src/gallium/drivers/llvmpipe/lp_screen.c
+++ b/src/gallium/drivers/llvmpipe/lp_screen.c
@@ -243,6 +243,7 @@ llvmpipe_get_param(struct pipe_screen *screen, enum 
pipe_cap param)
case PIPE_CAP_TEXTURE_QUERY_LOD:
case PIPE_CAP_SAMPLE_SHADING:
case PIPE_CAP_TEXTURE_GATHER_OFFSETS:
+   case PIPE_CAP_STENCIL_SAMPLING:
   return 0;
case PIPE_CAP_FAKE_SW_MSAA:
return 1;
diff --git a/src/gallium/drivers/nouveau/nv30/nv30_screen.c 
b/src/gallium/drivers/nouveau/nv30/nv30_screen.c
index 7157e0c..5734169 100644
--- a/src/gallium/drivers/nouveau/nv30/nv30_screen.c
+++ b/src/gallium/drivers/nouveau/nv30/nv30_screen.c
@@ -137,6 +137,7 @@ nv30_screen_get_param(struct pipe_screen *pscreen, enum 
pipe_cap param)
case PIPE_CAP_TEXTURE_QUERY_LOD:
case PIPE_CAP_SAMPLE_SHADING:
case PIPE_CAP_TEXTURE_GATHER_OFFSETS:
+   case PIPE_CAP_STENCIL_SAMPLING:
   return 0;
case PIPE_CAP_VERTEX_BUFFER_OFFSET_4BYTE_ALIGNED_ONLY:
case PIPE_CAP_VERTEX_BUFFER_STRIDE_4BYTE_ALIGNED_ONLY:
diff --git a/src/gallium/drivers/nouveau/nv50/nv50_screen.c 
b/src/gallium/drivers/nouveau/nv50/nv50_screen.c
index fcac3c1..881da0e 100644
--- a/src/gallium/drivers/nouveau/nv50/nv50_screen.c
+++ b/src/gallium/drivers/nouveau/nv50/nv50_screen.c
@@ -119,6 +119,7 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum 
pipe_cap param)
case PIPE_CAP_TWO_SIDED_STENCIL:
case PIPE_CAP_DEPTH_CLIP_DISABLE:
case PIPE_CAP_POINT_SPRITE:
+   case PIPE_CAP_STENCIL_SAMPLING:
   return 1;
case PIPE_CAP_SM3:
   return 1;
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c 
b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.

[Mesa-dev] [PATCH 2/3] nv50, nvc0: add support for stencil sampling from depth_stencil textures

2014-05-02 Thread Ilia Mirkin
Signed-off-by: Ilia Mirkin 
---
 src/gallium/drivers/nouveau/nv50/nv50_tex.c | 12 
 src/gallium/drivers/nouveau/nvc0/nvc0_tex.c | 12 
 2 files changed, 24 insertions(+)

diff --git a/src/gallium/drivers/nouveau/nv50/nv50_tex.c 
b/src/gallium/drivers/nouveau/nv50/nv50_tex.c
index 5cfce3a..acb28fd 100644
--- a/src/gallium/drivers/nouveau/nv50/nv50_tex.c
+++ b/src/gallium/drivers/nouveau/nv50/nv50_tex.c
@@ -103,6 +103,18 @@ nv50_create_texture_view(struct pipe_context *pipe,
 
tex_int = util_format_is_pure_integer(view->pipe.format);
 
+   if (templ->stencil_sampling) {
+  /* flip between C0 and C1 for r */
+  tic[0] ^= 1 << NV50_TIC_0_MAPR__SHIFT;
+  /* clear out g/b/a */
+  tic[0] &= ~(NV50_TIC_0_MAPG__MASK |
+  NV50_TIC_0_MAPB__MASK |
+  NV50_TIC_0_MAPA__MASK);
+  /* set a to 1 */
+  tic[0] |= NV50_TIC_MAP_ONE_INT << NV50_TIC_0_MAPA__SHIFT;
+  tex_int = 1;
+   }
+
swz[0] = nv50_tic_swizzle(tic[0], view->pipe.swizzle_r, tex_int);
swz[1] = nv50_tic_swizzle(tic[0], view->pipe.swizzle_g, tex_int);
swz[2] = nv50_tic_swizzle(tic[0], view->pipe.swizzle_b, tex_int);
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_tex.c 
b/src/gallium/drivers/nouveau/nvc0/nvc0_tex.c
index 1b11bd0..ef0047f 100644
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_tex.c
+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_tex.c
@@ -106,6 +106,18 @@ nvc0_create_texture_view(struct pipe_context *pipe,
 
tex_int = util_format_is_pure_integer(view->pipe.format);
 
+   if (templ->stencil_sampling) {
+  /* flip between C0 and C1 for r */
+  tic[0] ^= 1 << NV50_TIC_0_MAPR__SHIFT;
+  /* clear out g/b/a */
+  tic[0] &= ~(NV50_TIC_0_MAPG__MASK |
+  NV50_TIC_0_MAPB__MASK |
+  NV50_TIC_0_MAPA__MASK);
+  /* set a to 1 */
+  tic[0] |= NV50_TIC_MAP_ONE_INT << NV50_TIC_0_MAPA__SHIFT;
+  tex_int = 1;
+   }
+
swz[0] = nv50_tic_swizzle(tic[0], view->pipe.swizzle_r, tex_int);
swz[1] = nv50_tic_swizzle(tic[0], view->pipe.swizzle_g, tex_int);
swz[2] = nv50_tic_swizzle(tic[0], view->pipe.swizzle_b, tex_int);
-- 
1.8.3.2

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


[Mesa-dev] [PATCH 3/3] mesa/st: pass stencil sampling flag along in pipe_sampler_view

2014-05-02 Thread Ilia Mirkin
Also enable ARB_stencil_texturing when PIPE_CAP_STENCIL_SAMPLING is set.

Signed-off-by: Ilia Mirkin 
---
 src/mesa/state_tracker/st_atom_texture.c | 3 +++
 src/mesa/state_tracker/st_extensions.c   | 1 +
 2 files changed, 4 insertions(+)

diff --git a/src/mesa/state_tracker/st_atom_texture.c 
b/src/mesa/state_tracker/st_atom_texture.c
index afc6d9d..21c965b 100644
--- a/src/mesa/state_tracker/st_atom_texture.c
+++ b/src/mesa/state_tracker/st_atom_texture.c
@@ -253,6 +253,8 @@ st_create_texture_sampler_view_from_stobj(struct 
pipe_context *pipe,
   templ.swizzle_a = GET_SWZ(swizzle, 3);
}
 
+   templ.stencil_sampling = stObj->base.StencilSampling;
+
return pipe->create_sampler_view(pipe, stObj->pt, &templ);
 }
 
@@ -275,6 +277,7 @@ st_get_texture_sampler_view_from_stobj(struct st_context 
*st,
if (*sv) {
   if (check_sampler_swizzle(stObj, *sv) ||
  (format != (*sv)->format) ||
+  stObj->base.StencilSampling != (*sv)->stencil_sampling ||
  stObj->base.BaseLevel != (*sv)->u.tex.first_level) {
 pipe_sampler_view_reference(sv, NULL);
   }
diff --git a/src/mesa/state_tracker/st_extensions.c 
b/src/mesa/state_tracker/st_extensions.c
index 33cd129..16e25c1 100644
--- a/src/mesa/state_tracker/st_extensions.c
+++ b/src/mesa/state_tracker/st_extensions.c
@@ -427,6 +427,7 @@ void st_init_extensions(struct st_context *st)
   { o(ARB_texture_multisample),  PIPE_CAP_TEXTURE_MULTISAMPLE  
},
   { o(ARB_texture_query_lod),PIPE_CAP_TEXTURE_QUERY_LOD
},
   { o(ARB_sample_shading),   PIPE_CAP_SAMPLE_SHADING   
},
+  { o(ARB_stencil_texturing),PIPE_CAP_STENCIL_SAMPLING 
},
};
 
/* Required: render target and sampler support */
-- 
1.8.3.2

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


[Mesa-dev] [PATCH] st/egl: Flush resources before presentation (android - bug 77966)

2014-05-02 Thread pstglia
---
 src/gallium/state_trackers/egl/android/native_android.cpp | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/src/gallium/state_trackers/egl/android/native_android.cpp 
b/src/gallium/state_trackers/egl/android/native_android.cpp
index e73d031..8620ed8 100644
--- a/src/gallium/state_trackers/egl/android/native_android.cpp
+++ b/src/gallium/state_trackers/egl/android/native_android.cpp
@@ -396,6 +396,13 @@ android_surface_swap_buffers(struct native_surface *nsurf)
struct android_surface *asurf = android_surface(nsurf);
struct android_display *adpy = asurf->adpy;
 
+   struct native_display *ndpy = &adpy->base;
+   struct pipe_context *pipe = ndpy_get_copy_context(ndpy);
+
+   /* flush buffer */
+   pipe->flush_resource(pipe, asurf->buf_res);
+   pipe->flush(pipe, NULL, 0);
+
android_surface_enqueue_buffer(&asurf->base);
 
asurf->stamp++;
-- 
1.7.12.1

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


[Mesa-dev] Mesa 10.2 release candidate 1

2014-05-02 Thread Ian Romanick
Mesa 10.2 release candidate 1 is now available for testing.  The current
plan of record is to have an additional release candidate each Friday
until the 10.2 release on Friday, May 28th.

The tag in the GIT repository for Mesa 10.2-rc1 is 'mesa-10.2-rc1'.

After Eric's suggestion, I have also pushed a tag '10.2-branchpoint' the
mark the point where master and 10.2 diverge.  This should make
git-describe a bit more useful.

Mesa 10.2 release candidate 1 is available for download at
ftp://freedesktop.org/pub/mesa/10.2/

md5sums:

d4653afa83e584291bf00687913163b0  MesaLib-10.2.0-rc1.tar.gz
7b34588043453e86628037566c4785e3  MesaLib-10.2.0-rc1.tar.bz2
70d8f39a48a4d8b10d05f9691f5cbfba  MesaLib-10.2.0-rc1.zip

I have verified building from the .tar.bz2 file by doing the following
on my aging Fedora 18 system:

tar -xjf Mesa-10.2.0-rc1.tar.bz2
cd Mesa-10.2.0-rc1
./configure --enable-gallium-llvm --with-llvm-shared-libs
make -j6
make install



signature.asc
Description: OpenPGP digital signature
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev