Mesa (master): gallium/os: Fix nano-micro second concersion.

2012-12-08 Thread Jose Fonseca
Module: Mesa
Branch: master
Commit: 122dfc5ee25ec4faf040baf5dc834d144bb3a42c
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=122dfc5ee25ec4faf040baf5dc834d144bb3a42c

Author: José Fonseca jose.r.fons...@gmail.com
Date:   Sat Dec  8 11:15:46 2012 +

gallium/os: Fix nano-micro second concersion.

copy'n'paste: best friend, worst enemy..

Trivial.

---

 src/gallium/auxiliary/os/os_time.h |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/gallium/auxiliary/os/os_time.h 
b/src/gallium/auxiliary/os/os_time.h
index 517de9b..4fab03c 100644
--- a/src/gallium/auxiliary/os/os_time.h
+++ b/src/gallium/auxiliary/os/os_time.h
@@ -62,7 +62,7 @@ os_time_get_nano(void);
  */
 static INLINE int64_t
 os_time_get(void) {
-return os_time_get_nano() * 1000;
+return os_time_get_nano() / 1000;
 }
 
 

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


Mesa (master): draw: update a comment about index buffers

2012-12-08 Thread Brian Paul
Module: Mesa
Branch: master
Commit: b46b44b0a90db3d25e95c0ff1c6997374a3c45ee
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b46b44b0a90db3d25e95c0ff1c6997374a3c45ee

Author: Brian Paul bri...@vmware.com
Date:   Fri Dec  7 12:26:18 2012 -0700

draw: update a comment about index buffers

Reviewed-by: Jose Fonseca jfons...@vmware.com

---

 src/gallium/auxiliary/draw/draw_pt.c |5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/gallium/auxiliary/draw/draw_pt.c 
b/src/gallium/auxiliary/draw/draw_pt.c
index 08e06e8..23cdf36 100644
--- a/src/gallium/auxiliary/draw/draw_pt.c
+++ b/src/gallium/auxiliary/draw/draw_pt.c
@@ -443,9 +443,8 @@ draw_arrays_instanced(struct draw_context *draw,
 /**
  * Draw vertex arrays.
  * This is the main entrypoint into the drawing module.  If drawing an indexed
- * primitive, the draw_set_index_buffer() and draw_set_mapped_index_buffer()
- * functions should have already been called to specify the element/index
- * buffer information.
+ * primitive, the draw_set_indexes() function should have already been called
+ * to specify the element/index buffer information.
  */
 void
 draw_vbo(struct draw_context *draw,

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


Mesa (master): draw: add comment on draw-pt.opt field

2012-12-08 Thread Brian Paul
Module: Mesa
Branch: master
Commit: 9b11344b25742062ff954370cc8c6a9a885b3394
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=9b11344b25742062ff954370cc8c6a9a885b3394

Author: Brian Paul bri...@vmware.com
Date:   Fri Dec  7 12:33:27 2012 -0700

draw: add comment on draw-pt.opt field

Reviewed-by: Jose Fonseca jfons...@vmware.com

---

 src/gallium/auxiliary/draw/draw_private.h |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/gallium/auxiliary/draw/draw_private.h 
b/src/gallium/auxiliary/draw/draw_private.h
index 86ce397..e52b3fd 100644
--- a/src/gallium/auxiliary/draw/draw_private.h
+++ b/src/gallium/auxiliary/draw/draw_private.h
@@ -141,7 +141,7 @@ struct draw_context
   /* Current active frontend */
   struct draw_pt_front_end *frontend;
   unsigned prim;
-  unsigned opt;
+  unsigned opt; /** bitmask of PT_x flags */
   unsigned eltSize; /* saved eltSize for flushing */
 
   struct {

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


Mesa (master): draw: rearrange code in llvm_middle_end_prepare()

2012-12-08 Thread Brian Paul
Module: Mesa
Branch: master
Commit: a506ccd89fed8e4942ad5cd034b16b2aa9e873a7
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a506ccd89fed8e4942ad5cd034b16b2aa9e873a7

Author: Brian Paul bri...@vmware.com
Date:   Fri Dec  7 12:15:28 2012 -0700

draw: rearrange code in llvm_middle_end_prepare()

To clean it up and make it look more like the non-LLVM
fetch_pipeline_prepare() function.

Reviewed-by: Jose Fonseca jfons...@vmware.com

---

 .../draw/draw_pt_fetch_shade_pipeline_llvm.c   |  140 ++-
 1 files changed, 74 insertions(+), 66 deletions(-)

diff --git a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c 
b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c
index 507c158..9b8d343 100644
--- a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c
+++ b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c
@@ -65,23 +65,15 @@ llvm_middle_end_prepare( struct draw_pt_middle_end *middle,
 {
struct llvm_middle_end *fpme = (struct llvm_middle_end *)middle;
struct draw_context *draw = fpme-draw;
-   struct llvm_vertex_shader *shader =
-  llvm_vertex_shader(draw-vs.vertex_shader);
-   char store[DRAW_LLVM_MAX_VARIANT_KEY_SIZE];
-   struct draw_llvm_variant_key *key;
-   struct draw_llvm_variant *variant = NULL;
-   struct draw_llvm_variant_list_item *li;
-   const unsigned out_prim = (draw-gs.geometry_shader ? 
-  draw-gs.geometry_shader-output_primitive :
-  in_prim);
+   struct draw_vertex_shader *vs = draw-vs.vertex_shader;
+   struct draw_geometry_shader *gs = draw-gs.geometry_shader;
+   const unsigned out_prim = gs ? gs-output_primitive : in_prim;
 
/* Add one to num_outputs because the pipeline occasionally tags on
 * an additional texcoord, eg for AA lines.
 */
-   const unsigned nr = MAX2( shader-base.info.num_inputs,
- shader-base.info.num_outputs + 1 );
-
-   unsigned i;
+   const unsigned nr = MAX2( vs-info.num_inputs,
+ vs-info.num_outputs + 1 );
 
fpme-input_prim = in_prim;
fpme-opt = opt;
@@ -121,70 +113,86 @@ llvm_middle_end_prepare( struct draw_pt_middle_end 
*middle,
 
/* return even number */
*max_vertices = *max_vertices  ~1;
-   
-   key = draw_llvm_make_variant_key(fpme-llvm, store);
-
-   /* Search shader's list of variants for the key */
-   li = first_elem(shader-variants);
-   while (!at_end(shader-variants, li)) {
-  if (memcmp(li-base-key, key, shader-variant_key_size) == 0) {
- variant = li-base;
- break;
+
+   /* Find/create the vertex shader variant */
+   {
+  struct draw_llvm_variant_key *key;
+  struct draw_llvm_variant *variant = NULL;
+  struct draw_llvm_variant_list_item *li;
+  struct llvm_vertex_shader *shader = llvm_vertex_shader(vs);
+  char store[DRAW_LLVM_MAX_VARIANT_KEY_SIZE];
+  unsigned i;
+
+  key = draw_llvm_make_variant_key(fpme-llvm, store);
+
+  /* Search shader's list of variants for the key */
+  li = first_elem(shader-variants);
+  while (!at_end(shader-variants, li)) {
+ if (memcmp(li-base-key, key, shader-variant_key_size) == 0) {
+variant = li-base;
+break;
+ }
+ li = next_elem(li);
   }
-  li = next_elem(li);
-   }
 
-   if (variant) {
-  /* found the variant, move to head of global list (for LRU) */
-  move_to_head(fpme-llvm-vs_variants_list, variant-list_item_global);
-   }
-   else {
-  /* Need to create new variant */
-
-  /* First check if we've created too many variants.  If so, free
-   * 25% of the LRU to avoid using too much memory.
-   */
-  if (fpme-llvm-nr_variants = DRAW_MAX_SHADER_VARIANTS) {
- /*
-  * XXX: should we flush here ?
+  if (variant) {
+ /* found the variant, move to head of global list (for LRU) */
+ move_to_head(fpme-llvm-vs_variants_list,
+  variant-list_item_global);
+  }
+  else {
+ /* Need to create new variant */
+
+ /* First check if we've created too many variants.  If so, free
+  * 25% of the LRU to avoid using too much memory.
   */
- for (i = 0; i  DRAW_MAX_SHADER_VARIANTS / 4; i++) {
-struct draw_llvm_variant_list_item *item;
-if (is_empty_list(fpme-llvm-vs_variants_list)) {
-   break;
+ if (fpme-llvm-nr_variants = DRAW_MAX_SHADER_VARIANTS) {
+/*
+ * XXX: should we flush here ?
+ */
+for (i = 0; i  DRAW_MAX_SHADER_VARIANTS / 4; i++) {
+   struct draw_llvm_variant_list_item *item;
+   if (is_empty_list(fpme-llvm-vs_variants_list)) {
+  break;
+   }
+   item = last_elem(fpme-llvm-vs_variants_list);
+   assert(item);
+   assert(item-base);
+   

Mesa (master): draw: fix comment typo

2012-12-08 Thread Brian Paul
Module: Mesa
Branch: master
Commit: 3e0fa487fbddcc5578f7829bd972a3d442e0a4cb
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3e0fa487fbddcc5578f7829bd972a3d442e0a4cb

Author: Brian Paul bri...@vmware.com
Date:   Fri Dec  7 12:41:22 2012 -0700

draw: fix comment typo

Reviewed-by: Jose Fonseca jfons...@vmware.com

---

 src/gallium/auxiliary/draw/draw_pt.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/gallium/auxiliary/draw/draw_pt.c 
b/src/gallium/auxiliary/draw/draw_pt.c
index 23cdf36..7113b9e 100644
--- a/src/gallium/auxiliary/draw/draw_pt.c
+++ b/src/gallium/auxiliary/draw/draw_pt.c
@@ -121,7 +121,7 @@ draw_pt_arrays(struct draw_context *draw,
  /* Flush draw state if eltSize changed.
   * This could be improved so only the frontend is flushed since it
   * converts all indices to ushorts and the fetch part of the middle
-  * always perpares both linear and indexed.
+  * always prepares both linear and indexed.
   */
  frontend-flush( frontend, DRAW_FLUSH_STATE_CHANGE );
  frontend = NULL;

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



Mesa (master): draw: add reminder comments about similar code in different files

2012-12-08 Thread Brian Paul
Module: Mesa
Branch: master
Commit: c5f544e69075001855da9f49f1c1d06191765a6c
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c5f544e69075001855da9f49f1c1d06191765a6c

Author: Brian Paul bri...@vmware.com
Date:   Fri Dec  7 12:21:08 2012 -0700

draw: add reminder comments about similar code in different files

When one function is changed, also look at the other.
Presently, there are some differences with respect to geometry
shaders and instanced drawing...

Reviewed-by: Jose Fonseca jfons...@vmware.com

---

 .../auxiliary/draw/draw_pt_fetch_shade_pipeline.c  |6 ++
 .../draw/draw_pt_fetch_shade_pipeline_llvm.c   |5 +
 2 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c 
b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c
index 053ea7d..a6f5484 100644
--- a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c
+++ b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c
@@ -51,6 +51,12 @@ struct fetch_pipeline_middle_end {
unsigned opt;
 };
 
+
+/**
+ * Prepare/validate middle part of the vertex pipeline.
+ * NOTE: if you change this function, also look at the LLVM
+ * function llvm_middle_end_prepare() for similar changes.
+ */
 static void fetch_pipeline_prepare( struct draw_pt_middle_end *middle,
 unsigned prim,
unsigned opt,
diff --git a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c 
b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c
index 9b8d343..2230a7e 100644
--- a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c
+++ b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c
@@ -57,6 +57,11 @@ struct llvm_middle_end {
 };
 
 
+/**
+ * Prepare/validate middle part of the vertex pipeline.
+ * NOTE: if you change this function, also look at the non-LLVM
+ * function fetch_pipeline_prepare() for similar changes.
+ */
 static void
 llvm_middle_end_prepare( struct draw_pt_middle_end *middle,
  unsigned in_prim,

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


Mesa (master): draw: fix/improve dirty state validation

2012-12-08 Thread Brian Paul
Module: Mesa
Branch: master
Commit: 4b73cdb864aef6d64c35a7ab9a59e4ee4e3f9d0f
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4b73cdb864aef6d64c35a7ab9a59e4ee4e3f9d0f

Author: Brian Paul bri...@vmware.com
Date:   Fri Dec  7 13:58:34 2012 -0700

draw: fix/improve dirty state validation

This patch does two things:

1. Constant buffer state changes were broken (but happened to work by
   dumb luck).  The problem is we weren't calling draw_do_flush() in
   draw_set_mapped_constant_buffer() when we changed that state.  All the
   other draw_set_foo() functions were calling draw_do_flush() already.

2. Use a simpler state validation step when we're changing light-weight
   parameter state such as constant buffers, viewport dims or clip planes.
   There's no need to revalidate the whole pipeline when changing state
   like that.  The new validation method is called bind_parameters()
   and is called instead of the prepare() method.  A new
   DRAW_FLUSH_PARAMETER_CHANGE flag is used to signal these light-weight
   state changes.  This results in a modest but measurable increase in
   FPS for many Mesa demos.

Reviewed-by: Jose Fonseca jfons...@vmware.com

---

 src/gallium/auxiliary/draw/draw_context.c  |6 ++-
 src/gallium/auxiliary/draw/draw_pipe.c |2 +-
 src/gallium/auxiliary/draw/draw_private.h  |7 ++-
 src/gallium/auxiliary/draw/draw_pt.c   |   14 ++-
 src/gallium/auxiliary/draw/draw_pt.h   |7 +++
 .../auxiliary/draw/draw_pt_fetch_shade_pipeline.c  |   10 +
 .../draw/draw_pt_fetch_shade_pipeline_llvm.c   |   43 ---
 src/gallium/auxiliary/draw/draw_pt_vsplit.c|2 +-
 8 files changed, 68 insertions(+), 23 deletions(-)

diff --git a/src/gallium/auxiliary/draw/draw_context.c 
b/src/gallium/auxiliary/draw/draw_context.c
index c231aba..bc2f0e1 100644
--- a/src/gallium/auxiliary/draw/draw_context.c
+++ b/src/gallium/auxiliary/draw/draw_context.c
@@ -289,7 +289,7 @@ void draw_set_rasterize_stage( struct draw_context *draw,
 void draw_set_clip_state( struct draw_context *draw,
   const struct pipe_clip_state *clip )
 {
-   draw_do_flush( draw, DRAW_FLUSH_STATE_CHANGE );
+   draw_do_flush(draw, DRAW_FLUSH_PARAMETER_CHANGE);
 
memcpy(draw-plane[6], clip-ucp, sizeof(clip-ucp));
 }
@@ -301,7 +301,7 @@ void draw_set_clip_state( struct draw_context *draw,
 void draw_set_viewport_state( struct draw_context *draw,
   const struct pipe_viewport_state *viewport )
 {
-   draw_do_flush( draw, DRAW_FLUSH_STATE_CHANGE );
+   draw_do_flush(draw, DRAW_FLUSH_PARAMETER_CHANGE);
draw-viewport = *viewport; /* struct copy */
draw-identity_viewport = (viewport-scale[0] == 1.0f 
   viewport-scale[1] == 1.0f 
@@ -368,6 +368,8 @@ draw_set_mapped_constant_buffer(struct draw_context *draw,
 shader_type == PIPE_SHADER_GEOMETRY);
debug_assert(slot  PIPE_MAX_CONSTANT_BUFFERS);
 
+   draw_do_flush(draw, DRAW_FLUSH_PARAMETER_CHANGE);
+
switch (shader_type) {
case PIPE_SHADER_VERTEX:
   draw-pt.user.vs_constants[slot] = buffer;
diff --git a/src/gallium/auxiliary/draw/draw_pipe.c 
b/src/gallium/auxiliary/draw/draw_pipe.c
index ac449b7..f1ee6cb 100644
--- a/src/gallium/auxiliary/draw/draw_pipe.c
+++ b/src/gallium/auxiliary/draw/draw_pipe.c
@@ -347,6 +347,6 @@ void draw_pipeline_flush( struct draw_context *draw,
   unsigned flags )
 {
draw-pipeline.first-flush( draw-pipeline.first, flags );
-   if (!(flags  DRAW_FLUSH_BACKEND))
+   if (flags  DRAW_FLUSH_STATE_CHANGE)
   draw-pipeline.first = draw-pipeline.validate;
 }
diff --git a/src/gallium/auxiliary/draw/draw_private.h 
b/src/gallium/auxiliary/draw/draw_private.h
index e52b3fd..2223fcb 100644
--- a/src/gallium/auxiliary/draw/draw_private.h
+++ b/src/gallium/auxiliary/draw/draw_private.h
@@ -144,6 +144,8 @@ struct draw_context
   unsigned opt; /** bitmask of PT_x flags */
   unsigned eltSize; /* saved eltSize for flushing */
 
+  boolean rebind_parameters;
+
   struct {
  struct draw_pt_middle_end *fetch_emit;
  struct draw_pt_middle_end *fetch_shade_emit;
@@ -434,8 +436,9 @@ void draw_pipeline_flush( struct draw_context *draw,
  * Flushing 
  */
 
-#define DRAW_FLUSH_STATE_CHANGE  0x8
-#define DRAW_FLUSH_BACKEND   0x10
+#define DRAW_FLUSH_PARAMETER_CHANGE 0x1  /** Constants, viewport, etc */
+#define DRAW_FLUSH_STATE_CHANGE 0x2  /** Other/heavy state changes */
+#define DRAW_FLUSH_BACKEND  0x4  /** Flush the output buffer */
 
 
 void draw_do_flush( struct draw_context *draw, unsigned flags );
diff --git a/src/gallium/auxiliary/draw/draw_pt.c 
b/src/gallium/auxiliary/draw/draw_pt.c
index 7113b9e..ddaedcd 100644
--- a/src/gallium/auxiliary/draw/draw_pt.c
+++ b/src/gallium/auxiliary/draw/draw_pt.c
@@ -139,6 +139,12 @@ draw_pt_arrays(struct draw_context *draw,
 

Mesa (gles3): mesa: print unsigned values with %u

2012-12-08 Thread Matt Turner
Module: Mesa
Branch: gles3
Commit: 6b8a9c43bb87f214782c280fa96847992032891b
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6b8a9c43bb87f214782c280fa96847992032891b

Author: Matt Turner matts...@gmail.com
Date:   Fri Dec  7 14:26:04 2012 -0800

mesa: print unsigned values with %u

Otherwise messages say silly things like
   glGetActiveUniformBlockiv(block index -1 = 0)

Reviewed-by: Brian Paul bri...@vmware.com
Reviewed-by: Kenneth Graunke kenn...@whitecape.org

---

 src/mesa/main/uniforms.c |8 
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/mesa/main/uniforms.c b/src/mesa/main/uniforms.c
index 3f156bf..77b195e 100644
--- a/src/mesa/main/uniforms.c
+++ b/src/mesa/main/uniforms.c
@@ -614,14 +614,14 @@ _mesa_UniformBlockBinding(GLuint program,
 
if (uniformBlockIndex = shProg-NumUniformBlocks) {
   _mesa_error(ctx, GL_INVALID_VALUE,
- glUniformBlockBinding(block index %d = %d),
+ glUniformBlockBinding(block index %u = %u),
  uniformBlockIndex, shProg-NumUniformBlocks);
   return;
}
 
if (uniformBlockBinding = ctx-Const.MaxUniformBufferBindings) {
   _mesa_error(ctx, GL_INVALID_VALUE,
- glUniformBlockBinding(block binding %d = %d),
+ glUniformBlockBinding(block binding %u = %u),
  uniformBlockBinding, ctx-Const.MaxUniformBufferBindings);
   return;
}
@@ -667,7 +667,7 @@ _mesa_GetActiveUniformBlockiv(GLuint program,
 
if (uniformBlockIndex = shProg-NumUniformBlocks) {
   _mesa_error(ctx, GL_INVALID_VALUE,
- glGetActiveUniformBlockiv(block index %d = %d),
+ glGetActiveUniformBlockiv(block index %u = %u),
  uniformBlockIndex, shProg-NumUniformBlocks);
   return;
}
@@ -750,7 +750,7 @@ _mesa_GetActiveUniformBlockName(GLuint program,
 
if (uniformBlockIndex = shProg-NumUniformBlocks) {
   _mesa_error(ctx, GL_INVALID_VALUE,
- glGetActiveUniformBlockiv(block index %d = %d),
+ glGetActiveUniformBlockiv(block index %u = %u),
  uniformBlockIndex, shProg-NumUniformBlocks);
   return;
}

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


Mesa (gles3): mesa/uniform_query: Don' t write to *params if there is an error

2012-12-08 Thread Matt Turner
Module: Mesa
Branch: gles3
Commit: d7063e8ee25963d08de2cd4d4ba61260c8eca9ca
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d7063e8ee25963d08de2cd4d4ba61260c8eca9ca

Author: Matt Turner matts...@gmail.com
Date:   Fri Dec  7 16:32:30 2012 -0800

mesa/uniform_query: Don't write to *params if there is an error

The GL 3.1 and ES 3.0 specs say of glGetActiveUniformsiv:
   If an error occurs, nothing will be written to params.

So, make a pass through the indices and check that they're valid before
the pass that actually writes to params. Checking pname happens on the
first iteration of the second loop.

Fixes es3conform's getactiveuniformsiv_for_nonexistent_uniform_indices
test.

Reviewed-by: Brian Paul bri...@vmware.com
Reviewed-by: Kenneth Graunke kenn...@whitecape.org

---

 src/mesa/main/uniform_query.cpp |6 +-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/src/mesa/main/uniform_query.cpp b/src/mesa/main/uniform_query.cpp
index cbdd39e..245e9a7 100644
--- a/src/mesa/main/uniform_query.cpp
+++ b/src/mesa/main/uniform_query.cpp
@@ -97,12 +97,16 @@ _mesa_GetActiveUniformsiv(GLuint program,
 
for (i = 0; i  uniformCount; i++) {
   GLuint index = uniformIndices[i];
-  const struct gl_uniform_storage *uni = shProg-UniformStorage[index];
 
   if (index = shProg-NumUserUniformStorage) {
 _mesa_error(ctx, GL_INVALID_VALUE, glGetActiveUniformsiv(index));
 return;
   }
+   }
+
+   for (i = 0; i  uniformCount; i++) {
+  GLuint index = uniformIndices[i];
+  const struct gl_uniform_storage *uni = shProg-UniformStorage[index];
 
   switch (pname) {
   case GL_UNIFORM_TYPE:

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


Mesa (master): nvc0/ir: allow neg, abs modifiers on OP_SET with integer result

2012-12-08 Thread Christoph Bumiller
Module: Mesa
Branch: master
Commit: 1f079f9e5879ed9e5f2a951bca305a43e5dc9d1d
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=1f079f9e5879ed9e5f2a951bca305a43e5dc9d1d

Author: Christoph Bumiller e0425...@student.tuwien.ac.at
Date:   Sat Dec  8 19:46:14 2012 +0100

nvc0/ir: allow neg,abs modifiers on OP_SET with integer result

---

 .../drivers/nvc0/codegen/nv50_ir_target_nvc0.cpp   |4 
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/src/gallium/drivers/nvc0/codegen/nv50_ir_target_nvc0.cpp 
b/src/gallium/drivers/nvc0/codegen/nv50_ir_target_nvc0.cpp
index e3db4b2..cdc7c0a 100644
--- a/src/gallium/drivers/nvc0/codegen/nv50_ir_target_nvc0.cpp
+++ b/src/gallium/drivers/nvc0/codegen/nv50_ir_target_nvc0.cpp
@@ -481,6 +481,10 @@ TargetNVC0::isModSupported(const Instruction *insn, int s, 
Modifier mod) const
   case OP_OR:
   case OP_XOR:
  break;
+  case OP_SET:
+ if (insn-sType != TYPE_F32)
+return false;
+ break;
   case OP_ADD:
  if (mod.abs())
 return false;

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


Mesa (master): nvc0/ir/emit: fix check for flags register use in logic ops

2012-12-08 Thread Christoph Bumiller
Module: Mesa
Branch: master
Commit: 7c6584b9968ff1af0798d0a783142052b43c1dc0
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=7c6584b9968ff1af0798d0a783142052b43c1dc0

Author: Christoph Bumiller e0425...@student.tuwien.ac.at
Date:   Sat Dec  8 15:06:43 2012 +0100

nvc0/ir/emit: fix check for flags register use in logic ops

---

 .../drivers/nvc0/codegen/nv50_ir_emit_nvc0.cpp |6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/gallium/drivers/nvc0/codegen/nv50_ir_emit_nvc0.cpp 
b/src/gallium/drivers/nvc0/codegen/nv50_ir_emit_nvc0.cpp
index 92496a3..ab4fb94 100644
--- a/src/gallium/drivers/nvc0/codegen/nv50_ir_emit_nvc0.cpp
+++ b/src/gallium/drivers/nvc0/codegen/nv50_ir_emit_nvc0.cpp
@@ -647,17 +647,17 @@ CodeEmitterNVC0::emitLogicOp(const Instruction *i, 
uint8_t subOp)
   if (isLIMM(i-src(1), TYPE_U32)) {
  emitForm_A(i, HEX64(3800, 0002));
 
- if (i-srcExists(2))
+ if (i-flagsDef = 0)
 code[1] |= 1  26;
   } else {
  emitForm_A(i, HEX64(6800, 0003));
 
- if (i-srcExists(2))
+ if (i-flagsDef = 0)
 code[1] |= 1  16;
   }
   code[0] |= subOp  6;
 
-  if (i-srcExists(2)) // carry
+  if (i-flagsSrc = 0) // carry
  code[0] |= 1  5;
 
   if (i-src(0).mod  Modifier(NV50_IR_MOD_NOT)) code[0] |= 1  9;

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


Mesa (master): st/mesa: set PIPE_BIND_SAMPLER_VIEW for TBOs in st_bufferobj_data

2012-12-08 Thread Christoph Bumiller
Module: Mesa
Branch: master
Commit: 5e98cefb5a088b71ed3cb8e5cd826deed7d28b37
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5e98cefb5a088b71ed3cb8e5cd826deed7d28b37

Author: Christoph Bumiller e0425...@student.tuwien.ac.at
Date:   Sat Dec  8 16:02:54 2012 +0100

st/mesa: set PIPE_BIND_SAMPLER_VIEW for TBOs in st_bufferobj_data

---

 src/mesa/state_tracker/st_cb_bufferobjects.c |3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/src/mesa/state_tracker/st_cb_bufferobjects.c 
b/src/mesa/state_tracker/st_cb_bufferobjects.c
index 7d1c05a..cf291c1 100644
--- a/src/mesa/state_tracker/st_cb_bufferobjects.c
+++ b/src/mesa/state_tracker/st_cb_bufferobjects.c
@@ -195,6 +195,9 @@ st_bufferobj_data(struct gl_context *ctx,
case GL_ELEMENT_ARRAY_BUFFER_ARB:
   bind = PIPE_BIND_INDEX_BUFFER;
   break;
+   case GL_TEXTURE_BUFFER:
+  bind = PIPE_BIND_SAMPLER_VIEW;
+  break;
case GL_TRANSFORM_FEEDBACK_BUFFER:
   bind = PIPE_BIND_STREAM_OUTPUT;
   break;

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


Mesa (master): i965: Add missing _NEW_BUFFERS dirty bit in Gen7 SBE state.

2012-12-08 Thread Kenneth Graunke
Module: Mesa
Branch: master
Commit: bd87441ac028068f422e2c96b39f93644a0f246f
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=bd87441ac028068f422e2c96b39f93644a0f246f

Author: Kenneth Graunke kenn...@whitecape.org
Date:   Thu Nov 29 02:40:09 2012 -0800

i965: Add missing _NEW_BUFFERS dirty bit in Gen7 SBE state.

This is needed to compute render_to_fbo.  It even has the comment.

NOTE: This is a candidate for stable branches.

Reviewed-by: Eric Anholt e...@anholt.net

---

 src/mesa/drivers/dri/i965/gen7_sf_state.c |3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/gen7_sf_state.c 
b/src/mesa/drivers/dri/i965/gen7_sf_state.c
index 28c6508..8b33514 100644
--- a/src/mesa/drivers/dri/i965/gen7_sf_state.c
+++ b/src/mesa/drivers/dri/i965/gen7_sf_state.c
@@ -142,7 +142,8 @@ upload_sbe_state(struct brw_context *brw)
 
 const struct brw_tracked_state gen7_sbe_state = {
.dirty = {
-  .mesa  = (_NEW_LIGHT |
+  .mesa  = (_NEW_BUFFERS |
+   _NEW_LIGHT |
_NEW_POINT |
_NEW_PROGRAM),
   .brw   = (BRW_NEW_CONTEXT |

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