Mesa (master): radeon: enable Hyper-Z on r600g and radeonsi by default

2014-10-24 Thread Andreas Boll
Module: Mesa
Branch: master
Commit: 14bdcc6ff98664552216acfdb7e35d0b128003ef
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=14bdcc6ff98664552216acfdb7e35d0b128003ef

Author: Andreas Boll andreas.boll@gmail.com
Date:   Thu Oct 23 14:52:55 2014 +0200

radeon: enable Hyper-Z on r600g and radeonsi by default

This reverts commit 01e637114914453451becc0dc8afe60faff48d84.
Since then many Hyper-Z issues have been fixed or worked around.

Enable Hyper-Z by default so that we get enough feedback for the upcoming
mesa 10.4 release.

If you have issues with Hyper-Z try to disable Hyper-Z using the enviroment
variable R600_DEBUG=nohyperz and please report the issue on the bugtracker.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=75011
See also: https://bugs.freedesktop.org/show_bug.cgi?id=75112

Signed-off-by: Andreas Boll andreas.boll@gmail.com
Reviewed-by: Marek Olšák marek.ol...@amd.com

---

 src/gallium/drivers/r600/r600_pipe.c  |4 ++--
 src/gallium/drivers/radeon/r600_pipe_common.c |2 +-
 src/gallium/drivers/radeon/r600_pipe_common.h |2 +-
 src/gallium/drivers/radeon/r600_texture.c |2 +-
 4 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_pipe.c 
b/src/gallium/drivers/r600/r600_pipe.c
index c794530..c5f01c0 100644
--- a/src/gallium/drivers/r600/r600_pipe.c
+++ b/src/gallium/drivers/r600/r600_pipe.c
@@ -539,8 +539,8 @@ struct pipe_screen *r600_screen_create(struct radeon_winsys 
*ws)
rscreen-b.debug_flags |= DBG_COMPUTE;
if (debug_get_bool_option(R600_DUMP_SHADERS, FALSE))
rscreen-b.debug_flags |= DBG_FS | DBG_VS | DBG_GS | DBG_PS | 
DBG_CS;
-   if (debug_get_bool_option(R600_HYPERZ, FALSE))
-   rscreen-b.debug_flags |= DBG_HYPERZ;
+   if (!debug_get_bool_option(R600_HYPERZ, TRUE))
+   rscreen-b.debug_flags |= DBG_NO_HYPERZ;
if (debug_get_bool_option(R600_LLVM, FALSE))
rscreen-b.debug_flags |= DBG_LLVM;
 
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c 
b/src/gallium/drivers/radeon/r600_pipe_common.c
index ae203b6..a6dbd78 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.c
+++ b/src/gallium/drivers/radeon/r600_pipe_common.c
@@ -314,7 +314,7 @@ static const struct debug_named_value 
common_debug_options[] = {
 
/* features */
{ nodma, DBG_NO_ASYNC_DMA, Disable asynchronous DMA },
-   { hyperz, DBG_HYPERZ, Enable Hyper-Z },
+   { nohyperz, DBG_NO_HYPERZ, Disable Hyper-Z },
/* GL uses the word INVALIDATE, gallium uses the word DISCARD */
{ noinvalrange, DBG_NO_DISCARD_RANGE, Disable handling of 
INVALIDATE_RANGE map flags },
{ no2d, DBG_NO_2D_TILING, Disable 2D tiling },
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.h 
b/src/gallium/drivers/radeon/r600_pipe_common.h
index 4651bf8..dfd8fff 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.h
+++ b/src/gallium/drivers/radeon/r600_pipe_common.h
@@ -97,7 +97,7 @@
 #define DBG_CS (1  9)
 /* features */
 #define DBG_NO_ASYNC_DMA   (1  10)
-#define DBG_HYPERZ (1  11)
+#define DBG_NO_HYPERZ  (1  11)
 #define DBG_NO_DISCARD_RANGE   (1  12)
 #define DBG_NO_2D_TILING   (1  13)
 #define DBG_NO_TILING  (1  14)
diff --git a/src/gallium/drivers/radeon/r600_texture.c 
b/src/gallium/drivers/radeon/r600_texture.c
index 1d4e966..fdf4d76 100644
--- a/src/gallium/drivers/radeon/r600_texture.c
+++ b/src/gallium/drivers/radeon/r600_texture.c
@@ -603,7 +603,7 @@ r600_texture_create_object(struct pipe_screen *screen,
if (rtex-is_depth) {
if (!(base-flags  (R600_RESOURCE_FLAG_TRANSFER |
 R600_RESOURCE_FLAG_FLUSHED_DEPTH)) 
-   (rscreen-debug_flags  DBG_HYPERZ)) {
+   !(rscreen-debug_flags  DBG_NO_HYPERZ)) {
 
r600_texture_allocate_htile(rscreen, rtex);
}

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


Mesa (master): vc4: Allow dead code elimination of unused varyings.

2014-10-24 Thread Eric Anholt
Module: Mesa
Branch: master
Commit: 52824811b9c0a9bb78a40fcb43af00b315f612d0
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=52824811b9c0a9bb78a40fcb43af00b315f612d0

Author: Eric Anholt e...@anholt.net
Date:   Fri Oct 24 15:03:04 2014 +0100

vc4: Allow dead code elimination of unused varyings.

total instructions in shared programs: 39022 - 37341 (-4.31%)
instructions in affected programs: 26979 - 25298 (-6.23%)
total uniforms in shared programs: 11242 - 10523 (-6.40%)
uniforms in affected programs: 5836 - 5117 (-12.32%)

---

 src/gallium/drivers/vc4/vc4_opt_cse.c   |2 +-
 src/gallium/drivers/vc4/vc4_opt_dead_code.c |2 +-
 src/gallium/drivers/vc4/vc4_program.c   |   15 +++
 src/gallium/drivers/vc4/vc4_qir.c   |   15 +--
 src/gallium/drivers/vc4/vc4_qir.h   |2 +-
 5 files changed, 31 insertions(+), 5 deletions(-)

diff --git a/src/gallium/drivers/vc4/vc4_opt_cse.c 
b/src/gallium/drivers/vc4/vc4_opt_cse.c
index d3ef910..bebfb652 100644
--- a/src/gallium/drivers/vc4/vc4_opt_cse.c
+++ b/src/gallium/drivers/vc4/vc4_opt_cse.c
@@ -132,7 +132,7 @@ qir_opt_cse(struct vc4_compile *c)
 foreach_s(node, t, c-instructions) {
 struct qinst *inst = (struct qinst *)node;
 
-if (qir_has_side_effects(inst)) {
+if (qir_has_side_effects(c, inst)) {
 if (inst-op == QOP_TLB_DISCARD_SETUP)
 last_sf = NULL;
 continue;
diff --git a/src/gallium/drivers/vc4/vc4_opt_dead_code.c 
b/src/gallium/drivers/vc4/vc4_opt_dead_code.c
index f08818a..d958dcb 100644
--- a/src/gallium/drivers/vc4/vc4_opt_dead_code.c
+++ b/src/gallium/drivers/vc4/vc4_opt_dead_code.c
@@ -63,7 +63,7 @@ qir_opt_dead_code(struct vc4_compile *c)
 
 if (inst-dst.file == QFILE_TEMP 
 !used[inst-dst.index] 
-(!qir_has_side_effects(inst) ||
+(!qir_has_side_effects(c, inst) ||
  inst-op == QOP_TEX_RESULT)) {
 if (inst-op == QOP_TEX_RESULT) {
 dce_tex = true;
diff --git a/src/gallium/drivers/vc4/vc4_program.c 
b/src/gallium/drivers/vc4/vc4_program.c
index 01941f8..0674e4f 100644
--- a/src/gallium/drivers/vc4/vc4_program.c
+++ b/src/gallium/drivers/vc4/vc4_program.c
@@ -2018,6 +2018,18 @@ vc4_get_compiled_shader(struct vc4_context *vc4, enum 
qstage stage,
 
 shader-program_id = vc4-next_compiled_program_id++;
 if (stage == QSTAGE_FRAG) {
+bool input_live[c-num_input_semantics];
+struct simple_node *node;
+
+memset(input_live, 0, sizeof(input_live));
+foreach(node, c-instructions) {
+struct qinst *inst = (struct qinst *)node;
+for (int i = 0; i  qir_get_op_nsrc(inst-op); i++) {
+if (inst-src[i].file == QFILE_VARY)
+input_live[inst-src[i].index] = true;
+}
+}
+
 shader-input_semantics = ralloc_array(shader,
struct 
vc4_varying_semantic,
c-num_input_semantics);
@@ -2025,6 +2037,9 @@ vc4_get_compiled_shader(struct vc4_context *vc4, enum 
qstage stage,
 for (int i = 0; i  c-num_input_semantics; i++) {
 struct vc4_varying_semantic *sem = 
c-input_semantics[i];
 
+if (!input_live[i])
+continue;
+
 /* Skip non-VS-output inputs. */
 if (sem-semantic == (uint8_t)~0)
 continue;
diff --git a/src/gallium/drivers/vc4/vc4_qir.c 
b/src/gallium/drivers/vc4/vc4_qir.c
index 9c7c15e..a7a4d96 100644
--- a/src/gallium/drivers/vc4/vc4_qir.c
+++ b/src/gallium/drivers/vc4/vc4_qir.c
@@ -122,12 +122,23 @@ qir_get_op_nsrc(enum qop qop)
 abort();
 }
 
+/**
+ * Returns whether the instruction has any side effects that must be
+ * preserved.
+ */
 bool
-qir_has_side_effects(struct qinst *inst)
+qir_has_side_effects(struct vc4_compile *c, struct qinst *inst)
 {
+/* We can dead-code eliminate varyings, because we only tell the VS
+ * about the live ones at the end.  But we have to preserve the
+ * point/line coordinates reads, because they're generated by
+ * fixed-function hardware.
+ */
 for (int i = 0; i  qir_get_op_nsrc(inst-op); i++) {
-if (inst-src[i].file == QFILE_VARY)
+if (inst-src[i].file == QFILE_VARY 
+c-input_semantics[inst-src[i].index].semantic == 0xff) {
 return true;
+}
 }
 
 return qir_op_info[inst-op].has_side_effects;
diff 

Mesa (master): vc4: When asked to discard-map a whole resource, discard it.

2014-10-24 Thread Eric Anholt
Module: Mesa
Branch: master
Commit: 18ccda7b86b8f7ab7466265aefb3f3e773f4a757
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=18ccda7b86b8f7ab7466265aefb3f3e773f4a757

Author: Eric Anholt e...@anholt.net
Date:   Fri Oct 24 16:50:37 2014 +0100

vc4: When asked to discard-map a whole resource, discard it.

This saves a bunch of extra flushes when texsubimaging a whole texture
that's been used for rendering, or subdataing a whole BO.  In particular,
this massively reduces the runtime of piglit texture-packed-formats (when
the probes have been moved out of the inner loop).

---

 src/gallium/drivers/vc4/vc4_resource.c |   42 +---
 1 file changed, 28 insertions(+), 14 deletions(-)

diff --git a/src/gallium/drivers/vc4/vc4_resource.c 
b/src/gallium/drivers/vc4/vc4_resource.c
index 62667bf..b02e289 100644
--- a/src/gallium/drivers/vc4/vc4_resource.c
+++ b/src/gallium/drivers/vc4/vc4_resource.c
@@ -34,6 +34,20 @@
 #include vc4_tiling.h
 
 static void
+vc4_resource_bo_alloc(struct vc4_resource *rsc)
+{
+struct pipe_resource *prsc = rsc-base.b;
+struct pipe_screen *pscreen = prsc-screen;
+
+vc4_bo_unreference(rsc-bo);
+rsc-bo = vc4_bo_alloc(vc4_screen(pscreen),
+   rsc-slices[0].offset +
+   rsc-slices[0].size +
+   rsc-cube_map_stride * (prsc-array_size - 1),
+   resource);
+}
+
+static void
 vc4_resource_transfer_unmap(struct pipe_context *pctx,
 struct pipe_transfer *ptrans)
 {
@@ -75,14 +89,19 @@ vc4_resource_transfer_map(struct pipe_context *pctx,
 char *buf;
 
 if (usage  PIPE_TRANSFER_DISCARD_WHOLE_RESOURCE) {
-uint32_t size = rsc-bo-size;
-vc4_bo_unreference(rsc-bo);
-rsc-bo = vc4_bo_alloc(vc4-screen, size, resource);
-}
-
-if (!(usage  PIPE_TRANSFER_UNSYNCHRONIZED)) {
-if (vc4_cl_references_bo(pctx, rsc-bo))
-vc4_flush(pctx);
+vc4_resource_bo_alloc(rsc);
+} else if (!(usage  PIPE_TRANSFER_UNSYNCHRONIZED)) {
+if (vc4_cl_references_bo(pctx, rsc-bo)) {
+if ((usage  PIPE_TRANSFER_DISCARD_RANGE) 
+prsc-last_level == 0 
+prsc-width0 == box-width 
+prsc-height0 == box-height 
+prsc-depth0 == box-depth) {
+vc4_resource_bo_alloc(rsc);
+} else {
+vc4_flush(pctx);
+}
+}
 }
 
 if (usage  PIPE_TRANSFER_WRITE)
@@ -324,12 +343,7 @@ vc4_resource_create(struct pipe_screen *pscreen,
 }
 
 vc4_setup_slices(rsc);
-
-rsc-bo = vc4_bo_alloc(vc4_screen(pscreen),
-   rsc-slices[0].offset +
-   rsc-slices[0].size +
-   rsc-cube_map_stride * (prsc-array_size - 1),
-   resource);
+vc4_resource_bo_alloc(rsc);
 if (!rsc-bo)
 goto fail;
 

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


Mesa (master): vc4: Add debug output to match shaderdb info to program dumps.

2014-10-24 Thread Eric Anholt
Module: Mesa
Branch: master
Commit: 5d32e263357e562779bfc0d2af712d4c7538a32b
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5d32e263357e562779bfc0d2af712d4c7538a32b

Author: Eric Anholt e...@anholt.net
Date:   Wed Oct 22 18:02:18 2014 +0100

vc4: Add debug output to match shaderdb info to program dumps.

I'm going to be using VC4_DEBUG=shaderdb,norast to do shaderdb stats, but
when debugging regressions, I want to match shaderdb output to shader
disassembly.

---

 src/gallium/drivers/vc4/vc4_context.h  |5 +
 src/gallium/drivers/vc4/vc4_program.c  |   24 ++--
 src/gallium/drivers/vc4/vc4_qir.h  |3 +++
 src/gallium/drivers/vc4/vc4_qpu_emit.c |4 +++-
 4 files changed, 29 insertions(+), 7 deletions(-)

diff --git a/src/gallium/drivers/vc4/vc4_context.h 
b/src/gallium/drivers/vc4/vc4_context.h
index 45dfa02..d0b280a 100644
--- a/src/gallium/drivers/vc4/vc4_context.h
+++ b/src/gallium/drivers/vc4/vc4_context.h
@@ -79,6 +79,10 @@ struct vc4_shader_uniform_info {
 };
 
 struct vc4_uncompiled_shader {
+/** A name for this program, so you can track it in shader-db output. 
*/
+uint32_t program_id;
+/** How many variants of this program were compiled, for shader-db. */
+uint32_t compiled_variant_count;
 struct pipe_shader_state base;
 const struct tgsi_token *twoside_tokens;
 };
@@ -183,6 +187,7 @@ struct vc4_context {
 struct primconvert_context *primconvert;
 
 struct util_hash_table *fs_cache, *vs_cache;
+uint32_t next_uncompiled_program_id;
 uint64_t next_compiled_program_id;
 
 struct ra_regs *regs;
diff --git a/src/gallium/drivers/vc4/vc4_program.c 
b/src/gallium/drivers/vc4/vc4_program.c
index c6d9fb3..01941f8 100644
--- a/src/gallium/drivers/vc4/vc4_program.c
+++ b/src/gallium/drivers/vc4/vc4_program.c
@@ -1827,6 +1827,8 @@ vc4_shader_tgsi_to_qir(struct vc4_context *vc4, enum 
qstage stage,
 
 c-stage = stage;
 c-shader_state = key-shader_state-base;
+c-program_id = key-shader_state-program_id;
+c-variant_id = key-shader_state-compiled_variant_count++;
 
 c-key = key;
 switch (stage) {
@@ -1874,7 +1876,9 @@ vc4_shader_tgsi_to_qir(struct vc4_context *vc4, enum 
qstage stage,
 assert(ret == TGSI_PARSE_OK);
 
 if (vc4_debug  VC4_DEBUG_TGSI) {
-fprintf(stderr, TGSI:\n);
+fprintf(stderr, %s prog %d/%d TGSI:\n,
+qir_get_stage_name(c-stage),
+c-program_id, c-variant_id);
 tgsi_dump(tokens, 0);
 }
 
@@ -1918,17 +1922,23 @@ vc4_shader_tgsi_to_qir(struct vc4_context *vc4, enum 
qstage stage,
 qir_optimize(c);
 
 if (vc4_debug  VC4_DEBUG_QIR) {
-fprintf(stderr, QIR:\n);
+fprintf(stderr, %s prog %d/%d QIR:\n,
+qir_get_stage_name(c-stage),
+c-program_id, c-variant_id);
 qir_dump(c);
 }
 qir_reorder_uniforms(c);
 vc4_generate_code(vc4, c);
 
 if (vc4_debug  VC4_DEBUG_SHADERDB) {
-fprintf(stderr, SHADER-DB: %s: %d instructions\n,
-qir_get_stage_name(c-stage), c-qpu_inst_count);
-fprintf(stderr, SHADER-DB: %s: %d uniforms\n,
-qir_get_stage_name(c-stage), c-num_uniforms);
+fprintf(stderr, SHADER-DB: %s prog %d/%d: %d instructions\n,
+qir_get_stage_name(c-stage),
+c-program_id, c-variant_id,
+c-qpu_inst_count);
+fprintf(stderr, SHADER-DB: %s prog %d/%d: %d uniforms\n,
+qir_get_stage_name(c-stage),
+c-program_id, c-variant_id,
+c-num_uniforms);
 }
 
 return c;
@@ -1938,6 +1948,7 @@ static void *
 vc4_shader_state_create(struct pipe_context *pctx,
 const struct pipe_shader_state *cso)
 {
+struct vc4_context *vc4 = vc4_context(pctx);
 struct vc4_uncompiled_shader *so = 
CALLOC_STRUCT(vc4_uncompiled_shader);
 if (!so)
 return NULL;
@@ -1961,6 +1972,7 @@ vc4_shader_state_create(struct pipe_context *pctx,
 so-base.tokens = tgsi_transform_lowering(lowering_config, 
cso-tokens, info);
 if (!so-base.tokens)
 so-base.tokens = tgsi_dup_tokens(cso-tokens);
+so-program_id = vc4-next_uncompiled_program_id++;
 
 return so;
 }
diff --git a/src/gallium/drivers/vc4/vc4_qir.h 
b/src/gallium/drivers/vc4/vc4_qir.h
index b95dbc3..c2f83a7 100644
--- a/src/gallium/drivers/vc4/vc4_qir.h
+++ b/src/gallium/drivers/vc4/vc4_qir.h
@@ -289,6 +289,9 @@ struct vc4_compile {
 uint32_t qpu_inst_count;
 uint32_t qpu_inst_size;
 uint32_t num_inputs;
+
+uint32_t program_id;
+uint32_t variant_id;
 };
 
 

Mesa (master): vc4: Refactor flushing before mapping a BO.

2014-10-24 Thread Eric Anholt
Module: Mesa
Branch: master
Commit: a71c3b885a532016aa426b5bb753291cffe39a44
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a71c3b885a532016aa426b5bb753291cffe39a44

Author: Eric Anholt e...@anholt.net
Date:   Fri Oct 24 16:45:04 2014 +0100

vc4: Refactor flushing before mapping a BO.

I'm going to want to make some other decisions here before flushing.

---

 src/gallium/drivers/vc4/vc4_context.c  |   17 -
 src/gallium/drivers/vc4/vc4_context.h  |2 +-
 src/gallium/drivers/vc4/vc4_resource.c |6 --
 3 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/src/gallium/drivers/vc4/vc4_context.c 
b/src/gallium/drivers/vc4/vc4_context.c
index 87f0251..b1f0f35 100644
--- a/src/gallium/drivers/vc4/vc4_context.c
+++ b/src/gallium/drivers/vc4/vc4_context.c
@@ -350,13 +350,13 @@ vc4_pipe_flush(struct pipe_context *pctx, struct 
pipe_fence_handle **fence,
  *
  * This helps avoid flushing the command buffers when unnecessary.
  */
-void
-vc4_flush_for_bo(struct pipe_context *pctx, struct vc4_bo *bo)
+bool
+vc4_cl_references_bo(struct pipe_context *pctx, struct vc4_bo *bo)
 {
 struct vc4_context *vc4 = vc4_context(pctx);
 
 if (!vc4-needs_flush)
-return;
+return false;
 
 /* Walk all the referenced BOs in the drawing command list to see if
  * they match.
@@ -365,8 +365,7 @@ vc4_flush_for_bo(struct pipe_context *pctx, struct vc4_bo 
*bo)
 for (int i = 0; i  (vc4-bo_handles.next -
  vc4-bo_handles.base) / 4; i++) {
 if (referenced_bos[i] == bo) {
-vc4_flush(pctx);
-return;
+return true;
 }
 }
 
@@ -377,8 +376,7 @@ vc4_flush_for_bo(struct pipe_context *pctx, struct vc4_bo 
*bo)
 if (csurf) {
 struct vc4_resource *ctex = vc4_resource(csurf-base.texture);
 if (ctex-bo == bo) {
-vc4_flush(pctx);
-return;
+return true;
 }
 }
 
@@ -387,10 +385,11 @@ vc4_flush_for_bo(struct pipe_context *pctx, struct vc4_bo 
*bo)
 struct vc4_resource *ztex =
 vc4_resource(zsurf-base.texture);
 if (ztex-bo == bo) {
-vc4_flush(pctx);
-return;
+return true;
 }
 }
+
+return false;
 }
 
 static void
diff --git a/src/gallium/drivers/vc4/vc4_context.h 
b/src/gallium/drivers/vc4/vc4_context.h
index d0b280a..9eaff8f 100644
--- a/src/gallium/drivers/vc4/vc4_context.h
+++ b/src/gallium/drivers/vc4/vc4_context.h
@@ -278,7 +278,7 @@ void vc4_write_uniforms(struct vc4_context *vc4,
 struct vc4_texture_stateobj *texstate);
 
 void vc4_flush(struct pipe_context *pctx);
-void vc4_flush_for_bo(struct pipe_context *pctx, struct vc4_bo *bo);
+bool vc4_cl_references_bo(struct pipe_context *pctx, struct vc4_bo *bo);
 void vc4_emit_state(struct pipe_context *pctx);
 void vc4_generate_code(struct vc4_context *vc4, struct vc4_compile *c);
 struct qpu_reg *vc4_register_allocate(struct vc4_context *vc4, struct 
vc4_compile *c);
diff --git a/src/gallium/drivers/vc4/vc4_resource.c 
b/src/gallium/drivers/vc4/vc4_resource.c
index c198ab9..62667bf 100644
--- a/src/gallium/drivers/vc4/vc4_resource.c
+++ b/src/gallium/drivers/vc4/vc4_resource.c
@@ -80,8 +80,10 @@ vc4_resource_transfer_map(struct pipe_context *pctx,
 rsc-bo = vc4_bo_alloc(vc4-screen, size, resource);
 }
 
-if (!(usage  PIPE_TRANSFER_UNSYNCHRONIZED))
-vc4_flush_for_bo(pctx, rsc-bo);
+if (!(usage  PIPE_TRANSFER_UNSYNCHRONIZED)) {
+if (vc4_cl_references_bo(pctx, rsc-bo))
+vc4_flush(pctx);
+}
 
 if (usage  PIPE_TRANSFER_WRITE)
 rsc-writes++;

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


Mesa (master): vc4: Reuse uniform_data/ contents indices when making uniforms.

2014-10-24 Thread Eric Anholt
Module: Mesa
Branch: master
Commit: 8c7ac377b7a859705479a0b421d1dacc53ca240a
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8c7ac377b7a859705479a0b421d1dacc53ca240a

Author: Eric Anholt e...@anholt.net
Date:   Fri Oct 24 17:16:59 2014 +0100

vc4: Reuse uniform_data/contents indices when making uniforms.

This allows vc4_opt_cse.c to CSE-away operations involving the same
uniform values.

total instructions in shared programs: 37341 - 36906 (-1.16%)
instructions in affected programs: 10233 - 9798 (-4.25%)
total uniforms in shared programs: 10523 - 10320 (-1.93%)
uniforms in affected programs: 2467 - 2264 (-8.23%)

---

 src/gallium/drivers/vc4/vc4_program.c |7 +++
 1 file changed, 7 insertions(+)

diff --git a/src/gallium/drivers/vc4/vc4_program.c 
b/src/gallium/drivers/vc4/vc4_program.c
index 0674e4f..c6b7edb 100644
--- a/src/gallium/drivers/vc4/vc4_program.c
+++ b/src/gallium/drivers/vc4/vc4_program.c
@@ -114,6 +114,13 @@ add_uniform(struct vc4_compile *c,
 enum quniform_contents contents,
 uint32_t data)
 {
+for (int i = 0; i  c-num_uniforms; i++) {
+if (c-uniform_contents[i] == contents 
+c-uniform_data[i] == data) {
+return (struct qreg) { QFILE_UNIF, i };
+}
+}
+
 uint32_t uniform = c-num_uniforms++;
 struct qreg u = { QFILE_UNIF, uniform };
 

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


Mesa (master): gallium: Enable ARB_clip_control for gallium drivers.

2014-10-24 Thread Mathias Fröhlich
Module: Mesa
Branch: master
Commit: 5fc0e11053a57d0559f30c28399ba8a8403f12a9
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5fc0e11053a57d0559f30c28399ba8a8403f12a9

Author: Mathias Fröhlich mathias.froehl...@gmx.net
Date:   Sun Sep 21 18:09:22 2014 +0200

gallium: Enable ARB_clip_control for gallium drivers.

Gallium should be prepared fine for ARB_clip_control.
So enable this and mention it in the release notes.

v2:
Only enable for drivers announcing the freshly introduced
PIPE_CAP_CLIP_HALFZ capability.

v3:
Use extension enable infrastructure to connect PIPE_CAP_CLIP_HALFZ
with ARB_clip_control.

Reviewed-by: Brian Paul bri...@vmware.com
Signed-off-by: Mathias Froehlich mathias.froehl...@web.de

---

 docs/GL3.txt|2 +-
 docs/relnotes/10.4.html |1 +
 src/mesa/state_tracker/st_atom_rasterizer.c |   14 +-
 src/mesa/state_tracker/st_extensions.c  |1 +
 4 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/docs/GL3.txt b/docs/GL3.txt
index 07d1d2c..6a988d5 100644
--- a/docs/GL3.txt
+++ b/docs/GL3.txt
@@ -187,7 +187,7 @@ GL 4.4, GLSL 4.40:
 GL 4.5, GLSL 4.50:
 
   GL_ARB_ES3_1_compatibility   not started
-  GL_ARB_clip_control  not started
+  GL_ARB_clip_control  DONE (llvmpipe, 
softpipe, r300, r600, radeonsi)
   GL_ARB_conditional_render_inverted   DONE (i965, nvc0, 
llvmpipe, softpipe)
   GL_ARB_cull_distance not started
   GL_ARB_derivative_controlDONE (i965, nv50, nvc0, 
r600)
diff --git a/docs/relnotes/10.4.html b/docs/relnotes/10.4.html
index 64cbfae..67c3087 100644
--- a/docs/relnotes/10.4.html
+++ b/docs/relnotes/10.4.html
@@ -46,6 +46,7 @@ Note: some of the new features are only available with 
certain drivers.
 ul
 liGL_ARB_sample_shading on r600/li
 liGL_ARB_texture_view on nv50, nvc0/li
+liGL_ARB_clip_control on llvmpipe, softpipe, r300, r600, radeonsi/li
 /ul
 
 
diff --git a/src/mesa/state_tracker/st_atom_rasterizer.c 
b/src/mesa/state_tracker/st_atom_rasterizer.c
index dfa728b..5020978 100644
--- a/src/mesa/state_tracker/st_atom_rasterizer.c
+++ b/src/mesa/state_tracker/st_atom_rasterizer.c
@@ -72,6 +72,11 @@ static void update_raster_state( struct st_context *st )
{
   raster-front_ccw = (ctx-Polygon.FrontFace == GL_CCW);
 
+  /* _NEW_VIEWPORT */
+  if (ctx-Transform.ClipOrigin == GL_UPPER_LEFT) {
+ raster-front_ccw ^= 1;
+  }
+
   /*
* Gallium's surfaces are Y=0=TOP orientation.  OpenGL is the
* opposite.  Window system surfaces are Y=0=TOP.  Mesa's FBOs
@@ -241,6 +246,12 @@ static void update_raster_state( struct st_context *st )
raster-half_pixel_center = 1;
if (st_fb_orientation(ctx-DrawBuffer) == Y_0_TOP)
   raster-bottom_edge_rule = 1;
+   /* _NEW_VIEWPORT */
+   if (ctx-Transform.ClipOrigin == GL_UPPER_LEFT)
+  raster-bottom_edge_rule ^= 1;
+
+   /* _NEW_VIEWPORT */
+   raster-clip_halfz = (ctx-Transform.ClipDepthMode == GL_ZERO_TO_ONE);
 
/* ST_NEW_RASTERIZER */
raster-rasterizer_discard = ctx-RasterDiscard;
@@ -272,7 +283,8 @@ const struct st_tracked_state st_update_rasterizer = {
_NEW_PROGRAM |
_NEW_SCISSOR |
_NEW_FRAG_CLAMP |
-   _NEW_TRANSFORM),  /* mesa state dependencies*/
+   _NEW_TRANSFORM |
+   _NEW_VIEWPORT),  /* mesa state dependencies*/
   (ST_NEW_VERTEX_PROGRAM |
ST_NEW_RASTERIZER),  /* state tracker dependencies */
},
diff --git a/src/mesa/state_tracker/st_extensions.c 
b/src/mesa/state_tracker/st_extensions.c
index 78bfe30..aff3dde 100644
--- a/src/mesa/state_tracker/st_extensions.c
+++ b/src/mesa/state_tracker/st_extensions.c
@@ -463,6 +463,7 @@ void st_init_extensions(struct pipe_screen *screen,
   { o(ARB_derivative_control),   PIPE_CAP_TGSI_FS_FINE_DERIVATIVE  
},
   { o(ARB_conditional_render_inverted),  
PIPE_CAP_CONDITIONAL_RENDER_INVERTED  },
   { o(ARB_texture_view), PIPE_CAP_SAMPLER_VIEW_TARGET  
},
+  { o(ARB_clip_control), PIPE_CAP_CLIP_HALFZ   
},
};
 
/* Required: render target and sampler support */

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


Mesa (master): gallium: introduce PIPE_CAP_CLIP_HALFZ.

2014-10-24 Thread Mathias Fröhlich
Module: Mesa
Branch: master
Commit: 56088131d066ee29a15e8111bfce40ce45b42687
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=56088131d066ee29a15e8111bfce40ce45b42687

Author: Mathias Fröhlich mathias.froehl...@gmx.net
Date:   Sun Sep 14 15:17:07 2014 +0200

gallium: introduce PIPE_CAP_CLIP_HALFZ.

In preparation of ARB_clip_control. Let the driver decide if
it supports pipe_rasterizer_state::clip_halfz being set to true.

v3:
Initially enable on ilo.

Reviewed-by: Roland Scheidegger srol...@vmware.com
Reviewed-by: Brian Paul bri...@vmware.com
Signed-off-by: Mathias Froehlich mathias.froehl...@web.de

---

 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 |2 ++
 src/gallium/drivers/llvmpipe/lp_screen.c |2 ++
 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 |2 ++
 src/gallium/drivers/svga/svga_screen.c   |1 +
 src/gallium/drivers/vc4/vc4_screen.c |1 +
 src/gallium/include/pipe/p_defines.h |1 +
 15 files changed, 20 insertions(+)

diff --git a/src/gallium/docs/source/screen.rst 
b/src/gallium/docs/source/screen.rst
index 88d7e49..e711ad4 100644
--- a/src/gallium/docs/source/screen.rst
+++ b/src/gallium/docs/source/screen.rst
@@ -230,6 +230,9 @@ The integer capabilities:
   different than the underlying resource's, as permitted by
   ARB_texture_view. For example a 2d array texture may be reinterpreted as a
   cube (array) texture and vice-versa.
+* ``PIPE_CAP_CLIP_HALFZ``: Whether the driver supports the
+  pipe_rasterizer_state::clip_halfz being set to true. This is required
+  for enabling ARB_clip_control.
 
 
 .. _pipe_capf:
diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c 
b/src/gallium/drivers/freedreno/freedreno_screen.c
index 90156b4..7a3cd95 100644
--- a/src/gallium/drivers/freedreno/freedreno_screen.c
+++ b/src/gallium/drivers/freedreno/freedreno_screen.c
@@ -226,6 +226,7 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum 
pipe_cap param)
case PIPE_CAP_TGSI_FS_FINE_DERIVATIVE:
case PIPE_CAP_CONDITIONAL_RENDER_INVERTED:
case PIPE_CAP_SAMPLER_VIEW_TARGET:
+   case PIPE_CAP_CLIP_HALFZ:
return 0;
 
case PIPE_CAP_MAX_VIEWPORTS:
diff --git a/src/gallium/drivers/i915/i915_screen.c 
b/src/gallium/drivers/i915/i915_screen.c
index 2a6e751..062f1a6 100644
--- a/src/gallium/drivers/i915/i915_screen.c
+++ b/src/gallium/drivers/i915/i915_screen.c
@@ -225,6 +225,7 @@ i915_get_param(struct pipe_screen *screen, enum pipe_cap 
cap)
case PIPE_CAP_TEXTURE_GATHER_OFFSETS:
case PIPE_CAP_TGSI_VS_WINDOW_SPACE_POSITION:
case PIPE_CAP_CONDITIONAL_RENDER_INVERTED:
+   case PIPE_CAP_CLIP_HALFZ:
   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 48c3dea..da6cf76 100644
--- a/src/gallium/drivers/ilo/ilo_screen.c
+++ b/src/gallium/drivers/ilo/ilo_screen.c
@@ -469,6 +469,8 @@ ilo_get_param(struct pipe_screen *screen, enum pipe_cap 
param)
}
case PIPE_CAP_UMA:
   return true;
+   case PIPE_CAP_CLIP_HALFZ:
+  return true;
 
default:
   return 0;
diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c 
b/src/gallium/drivers/llvmpipe/lp_screen.c
index ad716b7..cec0fcb 100644
--- a/src/gallium/drivers/llvmpipe/lp_screen.c
+++ b/src/gallium/drivers/llvmpipe/lp_screen.c
@@ -277,6 +277,8 @@ llvmpipe_get_param(struct pipe_screen *screen, enum 
pipe_cap param)
}
case PIPE_CAP_UMA:
   return 0;
+   case PIPE_CAP_CLIP_HALFZ:
+  return 1;
}
/* should only get here on unhandled cases */
debug_printf(Unexpected PIPE_CAP %d query\n, param);
diff --git a/src/gallium/drivers/nouveau/nv30/nv30_screen.c 
b/src/gallium/drivers/nouveau/nv30/nv30_screen.c
index 700b9bb..2b65f8c 100644
--- a/src/gallium/drivers/nouveau/nv30/nv30_screen.c
+++ b/src/gallium/drivers/nouveau/nv30/nv30_screen.c
@@ -156,6 +156,7 @@ nv30_screen_get_param(struct pipe_screen *pscreen, enum 
pipe_cap param)
case PIPE_CAP_TGSI_FS_FINE_DERIVATIVE:
case PIPE_CAP_CONDITIONAL_RENDER_INVERTED:
case PIPE_CAP_SAMPLER_VIEW_TARGET:
+   case PIPE_CAP_CLIP_HALFZ:
   return 0;
 
case PIPE_CAP_VENDOR_ID:
diff --git a/src/gallium/drivers/nouveau/nv50/nv50_screen.c 
b/src/gallium/drivers/nouveau/nv50/nv50_screen.c
index d26a438..4ee5980 100644
--- a/src/gallium/drivers/nouveau/nv50/nv50_screen.c
+++ 

Mesa (master): mesa: Implement ARB_clip_control.

2014-10-24 Thread Mathias Fröhlich
Module: Mesa
Branch: master
Commit: 34a3c97fe6d273d68d2ee80386791832824f3211
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=34a3c97fe6d273d68d2ee80386791832824f3211

Author: Mathias Fröhlich mathias.froehl...@gmx.net
Date:   Sun Sep 21 18:09:22 2014 +0200

mesa: Implement ARB_clip_control.

Implement the mesa parts of ARB_clip_control.
So far no driver enables this.

v3:
Restrict getting clip control state to the availability
of ARB_clip_control.
Move to transformation state.
Handle clip control state with the GL_TRANSFORM_BIT.
Move _FrontBit update into state.c.

Reviewed-by: Brian Paul bri...@vmware.com
Signed-off-by: Mathias Froehlich mathias.froehl...@web.de

---

 src/mapi/glapi/gen/ARB_clip_control.xml |   25 ++
 src/mapi/glapi/gen/gl_API.xml   |4 +-
 src/mesa/main/attrib.c  |1 +
 src/mesa/main/dlist.c   |   26 +++
 src/mesa/main/extensions.c  |1 +
 src/mesa/main/get.c |1 +
 src/mesa/main/get_hash_params.py|2 +
 src/mesa/main/mtypes.h  |4 ++
 src/mesa/main/polygon.c |2 -
 src/mesa/main/state.c   |   16 +++
 src/mesa/main/tests/dispatch_sanity.cpp |3 ++
 src/mesa/main/viewport.c|   78 +--
 src/mesa/main/viewport.h|3 ++
 13 files changed, 159 insertions(+), 7 deletions(-)

diff --git a/src/mapi/glapi/gen/ARB_clip_control.xml 
b/src/mapi/glapi/gen/ARB_clip_control.xml
new file mode 100644
index 000..2973a31
--- /dev/null
+++ b/src/mapi/glapi/gen/ARB_clip_control.xml
@@ -0,0 +1,25 @@
+?xml version=1.0?
+!DOCTYPE OpenGLAPI SYSTEM gl_API.dtd
+
+OpenGLAPI
+
+category name=GL_ARB_clip_control number=160
+
+enum name=LOWER_LEFT value = 0x8CA1/
+enum name=UPPER_LEFT value = 0x8CA2/
+
+enum name=NEGATIVE_ONE_TO_ONE value = 0x935E/
+enum name=ZERO_TO_ONE value = 0x935F/
+
+enum name=CLIP_ORIGIN value = 0x935C/
+enum name=CLIP_DEPTH_MODE value = 0x935D/
+
+function name=ClipControl offset=assign
+param name=origin type=GLenum/
+param name=depth type=GLenum/
+glx rop=1340/
+/function
+
+/category
+
+/OpenGLAPI
diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml
index 73f2f75..534e6a0 100644
--- a/src/mapi/glapi/gen/gl_API.xml
+++ b/src/mapi/glapi/gen/gl_API.xml
@@ -8364,7 +8364,9 @@
 
 xi:include href=ARB_multi_bind.xml 
xmlns:xi=http://www.w3.org/2001/XInclude/
 
-!-- ARB extensions 148 - 160 --
+!-- ARB extensions 148 - 159 --
+
+xi:include href=ARB_clip_control.xml 
xmlns:xi=http://www.w3.org/2001/XInclude/
 
 category name=GL_ARB_conditional_render_inverted number=161
 enum name=QUERY_WAIT_INVERTED  value=0x8E17/
diff --git a/src/mesa/main/attrib.c b/src/mesa/main/attrib.c
index d90e662..5345339 100644
--- a/src/mesa/main/attrib.c
+++ b/src/mesa/main/attrib.c
@@ -1345,6 +1345,7 @@ _mesa_PopAttrib(void)
if (xform-DepthClamp != ctx-Transform.DepthClamp)
   _mesa_set_enable(ctx, GL_DEPTH_CLAMP,
ctx-Transform.DepthClamp);
+   _mesa_ClipControl(xform-ClipOrigin, xform-ClipDepthMode);
 }
 break;
  case GL_TEXTURE_BIT:
diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c
index 5c7160d..4b7b060 100644
--- a/src/mesa/main/dlist.c
+++ b/src/mesa/main/dlist.c
@@ -398,6 +398,9 @@ typedef enum
OPCODE_PROGRAM_UNIFORM_MATRIX34F,
OPCODE_PROGRAM_UNIFORM_MATRIX43F,
 
+   /* GL_ARB_clip_control */
+   OPCODE_CLIP_CONTROL,
+
/* GL_ARB_color_buffer_float */
OPCODE_CLAMP_COLOR,
 
@@ -7208,6 +7211,22 @@ save_ProgramUniformMatrix4fv(GLuint program, GLint 
location, GLsizei count,
 }
 
 static void GLAPIENTRY
+save_ClipControl(GLenum origin, GLenum depth)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   Node *n;
+   ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+   n = alloc_instruction(ctx, OPCODE_CLIP_CONTROL, 2);
+   if (n) {
+  n[1].e = origin;
+  n[2].e = depth;
+   }
+   if (ctx-ExecuteFlag) {
+  CALL_ClipControl(ctx-Exec, (origin, depth));
+   }
+}
+
+static void GLAPIENTRY
 save_ClampColorARB(GLenum target, GLenum clamp)
 {
GET_CURRENT_CONTEXT(ctx);
@@ -8617,6 +8636,10 @@ execute_list(struct gl_context *ctx, GLuint list)
   get_pointer(n[5])));
 break;
 
+ case OPCODE_CLIP_CONTROL:
+CALL_ClipControl(ctx-Exec, (n[1].e, n[2].e));
+break;
+
  case OPCODE_CLAMP_COLOR:
 CALL_ClampColor(ctx-Exec, (n[1].e, n[2].e));
 break;
@@ -9551,6 +9574,9 @@ _mesa_initialize_save_table(const struct gl_context *ctx)
SET_TexParameterIiv(table, save_TexParameterIiv);
SET_TexParameterIuiv(table, save_TexParameterIuiv);
 
+   /* GL_ARB_clip_control */
+   SET_ClipControl(table, save_ClipControl);
+
/* GL_ARB_color_buffer_float */

Mesa (master): mesa: Refactor viewport transform computation.

2014-10-24 Thread Mathias Fröhlich
Module: Mesa
Branch: master
Commit: 6340e609a354770e04192b9b44e91fb06aab0159
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6340e609a354770e04192b9b44e91fb06aab0159

Author: Mathias Fröhlich mathias.froehl...@gmx.net
Date:   Sun Sep 21 18:09:21 2014 +0200

mesa: Refactor viewport transform computation.

This is for preparation of ARB_clip_control.

v3:
Add comments.

Reviewed-by: Brian Paul bri...@vmware.com
Signed-off-by: Mathias Froehlich mathias.froehl...@web.de

---

 src/mesa/drivers/dri/i915/i915_state.c|   26 +--
 src/mesa/main/state.c |9 ++---
 src/mesa/main/viewport.c  |   52 -
 src/mesa/main/viewport.h  |3 ++
 src/mesa/math/m_matrix.c  |   17 +-
 src/mesa/math/m_matrix.h  |4 +--
 src/mesa/state_tracker/st_atom_viewport.c |   23 ++---
 7 files changed, 73 insertions(+), 61 deletions(-)

diff --git a/src/mesa/drivers/dri/i915/i915_state.c 
b/src/mesa/drivers/dri/i915/i915_state.c
index f31b271..f9aecba 100644
--- a/src/mesa/drivers/dri/i915/i915_state.c
+++ b/src/mesa/drivers/dri/i915/i915_state.c
@@ -34,6 +34,7 @@
 #include main/dd.h
 #include main/state.h
 #include main/stencil.h
+#include main/viewport.h
 #include tnl/tnl.h
 #include tnl/t_context.h
 
@@ -401,26 +402,17 @@ void
 intelCalcViewport(struct gl_context * ctx)
 {
struct intel_context *intel = intel_context(ctx);
+   double scale[3], translate[3];
+
+   _mesa_get_viewport_xform(ctx, 0, scale, translate);
 
if (_mesa_is_winsys_fbo(ctx-DrawBuffer)) {
-  _math_matrix_viewport(intel-ViewportMatrix,
-   ctx-ViewportArray[0].X,
-   ctx-DrawBuffer-Height - ctx-ViewportArray[0].Y,
-   ctx-ViewportArray[0].Width,
-   -ctx-ViewportArray[0].Height,
-   ctx-ViewportArray[0].Near,
-   ctx-ViewportArray[0].Far,
-   1.0);
-   } else {
-  _math_matrix_viewport(intel-ViewportMatrix,
-   ctx-ViewportArray[0].X,
-   ctx-ViewportArray[0].Y,
-   ctx-ViewportArray[0].Width,
-   ctx-ViewportArray[0].Height,
-   ctx-ViewportArray[0].Near,
-   ctx-ViewportArray[0].Far,
-   1.0);
+  scale[1] = -scale[1];
+  translate[1] = ctx-DrawBuffer-Height - translate[1];
}
+
+   _math_matrix_viewport(intel-ViewportMatrix,
+ scale, translate, 1.0);
 }
 
 
diff --git a/src/mesa/main/state.c b/src/mesa/main/state.c
index 80287c4..3dbbfaa 100644
--- a/src/mesa/main/state.c
+++ b/src/mesa/main/state.c
@@ -51,6 +51,7 @@
 #include texobj.h
 #include texstate.h
 #include varray.h
+#include viewport.h
 #include blend.h
 
 
@@ -281,11 +282,11 @@ update_viewport_matrix(struct gl_context *ctx)
 * NOTE: RasterPos uses this.
 */
for (i = 0; i  ctx-Const.MaxViewports; i++) {
+  double scale[3], translate[3];
+
+  _mesa_get_viewport_xform(ctx, i, scale, translate);
   _math_matrix_viewport(ctx-ViewportArray[i]._WindowMap,
-ctx-ViewportArray[i].X, ctx-ViewportArray[i].Y,
-ctx-ViewportArray[i].Width, 
ctx-ViewportArray[i].Height,
-ctx-ViewportArray[i].Near, 
ctx-ViewportArray[i].Far,
-depthMax);
+scale, translate, depthMax);
}
 }
 
diff --git a/src/mesa/main/viewport.c b/src/mesa/main/viewport.c
index 222ae30..afc813d 100644
--- a/src/mesa/main/viewport.c
+++ b/src/mesa/main/viewport.c
@@ -39,6 +39,8 @@ set_viewport_no_notify(struct gl_context *ctx, unsigned idx,
GLfloat x, GLfloat y,
GLfloat width, GLfloat height)
 {
+   double scale[3], translate[3];
+
/* clamp width and height to the implementation dependent range */
width  = MIN2(width, (GLfloat) ctx-Const.MaxViewportWidth);
height = MIN2(height, (GLfloat) ctx-Const.MaxViewportHeight);
@@ -75,14 +77,9 @@ set_viewport_no_notify(struct gl_context *ctx, unsigned idx,
 * the WindowMap matrix being up to date in the driver's Viewport
 * and DepthRange functions.
 */
+   _mesa_get_viewport_xform(ctx, idx, scale, translate);
_math_matrix_viewport(ctx-ViewportArray[idx]._WindowMap,
- ctx-ViewportArray[idx].X,
- ctx-ViewportArray[idx].Y,
- ctx-ViewportArray[idx].Width,
- ctx-ViewportArray[idx].Height,
- ctx-ViewportArray[idx].Near,
- ctx-ViewportArray[idx].Far,
- ctx-DrawBuffer-_DepthMaxF);
+ scale, translate, ctx-DrawBuffer-_DepthMaxF);
 #endif
 }
 
@@ -248,6 +245,8 @@ 

Mesa (master): mesa: Handle clip control in meta operations.

2014-10-24 Thread Mathias Fröhlich
Module: Mesa
Branch: master
Commit: 85edaa8b72cea5cb20ead812cd3c793eb55209e6
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=85edaa8b72cea5cb20ead812cd3c793eb55209e6

Author: Mathias Fröhlich mathias.froehl...@gmx.net
Date:   Thu Sep 25 19:39:31 2014 +0200

mesa: Handle clip control in meta operations.

Restore clip control to the default state if MESA_META_VIEWPORT
or MESA_META_DEPTH_TEST is requested.

v3:
Handle clip control state with MESA_META_TRANSFORM.

Reviewed-by: Brian Paul bri...@vmware.com
Signed-off-by: Mathias Froehlich mathias.froehl...@web.de

---

 src/mesa/drivers/common/meta.c |6 ++
 src/mesa/drivers/common/meta.h |3 +++
 2 files changed, 9 insertions(+)

diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index 7a8e627..45c50fd 100644
--- a/src/mesa/drivers/common/meta.c
+++ b/src/mesa/drivers/common/meta.c
@@ -680,6 +680,10 @@ _mesa_meta_begin(struct gl_context *ctx, GLbitfield state)
  _mesa_Ortho(0.0, ctx-DrawBuffer-Width,
  0.0, ctx-DrawBuffer-Height,
  -1.0, 1.0);
+
+  save-ClipOrigin = ctx-Transform.ClipOrigin;
+  save-ClipDepthMode = ctx-Transform.ClipDepthMode;
+  _mesa_ClipControl(GL_LOWER_LEFT, GL_NEGATIVE_ONE_TO_ONE);
}
 
if (state  MESA_META_CLIP) {
@@ -1081,6 +1085,8 @@ _mesa_meta_end(struct gl_context *ctx)
   _mesa_LoadMatrixf(save-ProjectionMatrix);
 
   _mesa_MatrixMode(save-MatrixMode);
+
+  _mesa_ClipControl(save-ClipOrigin, save-ClipDepthMode);
}
 
if (state  MESA_META_CLIP) {
diff --git a/src/mesa/drivers/common/meta.h b/src/mesa/drivers/common/meta.h
index 2c9517b..6ecf3c0 100644
--- a/src/mesa/drivers/common/meta.h
+++ b/src/mesa/drivers/common/meta.h
@@ -136,6 +136,9 @@ struct save_state
GLfloat ModelviewMatrix[16];
GLfloat ProjectionMatrix[16];
GLfloat TextureMatrix[16];
+   /** GL_ARB_clip_control */
+   GLenum ClipOrigin; /** GL_LOWER_LEFT or GL_UPPER_LEFT */
+   GLenum ClipDepthMode;  /** GL_NEGATIVE_ONE_TO_ONE or GL_ZERO_TO_ONE */
 
/** MESA_META_CLIP */
GLbitfield ClipPlanesEnabled;

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


Mesa (master): llvmpipe: Flush stdout on lp_test_* unit tests.

2014-10-24 Thread Jose Fonseca
Module: Mesa
Branch: master
Commit: 1ef6d439ba9a31af5063f55312bf17228c336177
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=1ef6d439ba9a31af5063f55312bf17228c336177

Author: José Fonseca jfons...@vmware.com
Date:   Fri Oct 24 19:54:28 2014 +0100

llvmpipe: Flush stdout on lp_test_* unit tests.

So that the order of test messages and gallivm/llvmpipe debug output is
preserved.

Reviewed-by: Roland Scheidegger srol...@vmware.com

---

 src/gallium/drivers/llvmpipe/lp_test_arit.c   |1 +
 src/gallium/drivers/llvmpipe/lp_test_format.c |2 ++
 2 files changed, 3 insertions(+)

diff --git a/src/gallium/drivers/llvmpipe/lp_test_arit.c 
b/src/gallium/drivers/llvmpipe/lp_test_arit.c
index 660ad4d..3fc64ce 100644
--- a/src/gallium/drivers/llvmpipe/lp_test_arit.c
+++ b/src/gallium/drivers/llvmpipe/lp_test_arit.c
@@ -395,6 +395,7 @@ test_unary(unsigned verbose, FILE *fp, const struct 
unary_test_t *test)
 printf(%s(%.9g): ref = %.9g, out = %.9g, precision = %f bits, 
%s\n,
   test-name, in[i], ref, out[i], precision,
   pass ? PASS : FAIL);
+fflush(stdout);
  }
 
  if (!pass) {
diff --git a/src/gallium/drivers/llvmpipe/lp_test_format.c 
b/src/gallium/drivers/llvmpipe/lp_test_format.c
index cdacb1b..a4b3b56 100644
--- a/src/gallium/drivers/llvmpipe/lp_test_format.c
+++ b/src/gallium/drivers/llvmpipe/lp_test_format.c
@@ -156,6 +156,7 @@ test_format_float(unsigned verbose, FILE *fp,
  if (first) {
 printf(Testing %s (float) ...\n,
desc-name);
+fflush(stdout);
 first = FALSE;
  }
 
@@ -194,6 +195,7 @@ test_format_float(unsigned verbose, FILE *fp,
  test-unpacked[i][j][1],
  test-unpacked[i][j][2],
  test-unpacked[i][j][3]);
+  fflush(stdout);
   success = FALSE;
}
 }

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


Mesa (master): llvmpipe: Ensure the packed input of the lp_test_format is aligned.

2014-10-24 Thread Jose Fonseca
Module: Mesa
Branch: master
Commit: 701f739d7fa1bc2d56dac41ac1f7f3ec8969544d
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=701f739d7fa1bc2d56dac41ac1f7f3ec8969544d

Author: José Fonseca jfons...@vmware.com
Date:   Fri Oct 24 20:27:31 2014 +0100

llvmpipe: Ensure the packed input of the lp_test_format is aligned.

Fixes:
- https://bugs.freedesktop.org/show_bug.cgi?id=85377
- http://llvm.org/bugs/show_bug.cgi?id=21365

Reviewed-by: Roland Scheidegger srol...@vmware.com

---

 src/gallium/drivers/llvmpipe/lp_test_format.c |   12 ++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/llvmpipe/lp_test_format.c 
b/src/gallium/drivers/llvmpipe/lp_test_format.c
index a4b3b56..48bf06e 100644
--- a/src/gallium/drivers/llvmpipe/lp_test_format.c
+++ b/src/gallium/drivers/llvmpipe/lp_test_format.c
@@ -133,6 +133,7 @@ test_format_float(unsigned verbose, FILE *fp,
struct gallivm_state *gallivm;
LLVMValueRef fetch = NULL;
fetch_ptr_t fetch_ptr;
+   PIPE_ALIGN_VAR(16) uint8_t packed[UTIL_FORMAT_MAX_PACKED_BYTES];
PIPE_ALIGN_VAR(16) float unpacked[4];
boolean first = TRUE;
boolean success = TRUE;
@@ -160,13 +161,16 @@ test_format_float(unsigned verbose, FILE *fp,
 first = FALSE;
  }
 
+ /* To ensure it's 16-byte aligned */
+ memcpy(packed, test-packed, sizeof packed);
+
  for (i = 0; i  desc-block.height; ++i) {
 for (j = 0; j  desc-block.width; ++j) {
boolean match = TRUE;
 
memset(unpacked, 0, sizeof unpacked);
 
-   fetch_ptr(unpacked, test-packed, j, i);
+   fetch_ptr(unpacked, packed, j, i);
 
for(k = 0; k  4; ++k) {
   if (util_double_inf_sign(test-unpacked[i][j][k]) != 
util_inf_sign(unpacked[k])) {
@@ -220,6 +224,7 @@ test_format_unorm8(unsigned verbose, FILE *fp,
struct gallivm_state *gallivm;
LLVMValueRef fetch = NULL;
fetch_ptr_t fetch_ptr;
+   PIPE_ALIGN_VAR(16) uint8_t packed[UTIL_FORMAT_MAX_PACKED_BYTES];
uint8_t unpacked[4];
boolean first = TRUE;
boolean success = TRUE;
@@ -246,13 +251,16 @@ test_format_unorm8(unsigned verbose, FILE *fp,
 first = FALSE;
  }
 
+ /* To ensure it's 16-byte aligned */
+ memcpy(packed, test-packed, sizeof packed);
+
  for (i = 0; i  desc-block.height; ++i) {
 for (j = 0; j  desc-block.width; ++j) {
boolean match;
 
memset(unpacked, 0, sizeof unpacked);
 
-   fetch_ptr(unpacked, test-packed, j, i);
+   fetch_ptr(unpacked, packed, j, i);
 
match = TRUE;
for(k = 0; k  4; ++k) {

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


Mesa (master): radeonsi: pass the GS shader directly to si_generate_gs_copy_shader

2014-10-24 Thread Marek Olšák
Module: Mesa
Branch: master
Commit: 68d36c0bb532987db27a596408e0326f20ca0365
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=68d36c0bb532987db27a596408e0326f20ca0365

Author: Marek Olšák marek.ol...@amd.com
Date:   Tue Sep 30 18:15:17 2014 +0200

radeonsi: pass the GS shader directly to si_generate_gs_copy_shader

Reviewed-by: Michel Dänzer michel.daen...@amd.com

---

 src/gallium/drivers/radeonsi/si_shader.c |6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_shader.c 
b/src/gallium/drivers/radeonsi/si_shader.c
index 286014c..4e8f80f 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -2701,14 +2701,13 @@ int si_compile_llvm(struct si_screen *sscreen, struct 
si_shader *shader,
 /* Generate code for the hardware VS shader stage to go with a geometry shader 
*/
 static int si_generate_gs_copy_shader(struct si_screen *sscreen,
  struct si_shader_context *si_shader_ctx,
- bool dump)
+ struct si_shader *gs, bool dump)
 {
struct gallivm_state *gallivm = si_shader_ctx-radeon_bld.gallivm;
struct lp_build_tgsi_context *bld_base = 
si_shader_ctx-radeon_bld.soa.bld_base;
struct lp_build_context *base = bld_base-base;
struct lp_build_context *uint = bld_base-uint_bld;
struct si_shader *shader = si_shader_ctx-shader;
-   struct si_shader *gs = si_shader_ctx-shader-selector-current;
struct si_shader_output_values *outputs;
LLVMValueRef t_list_ptr, t_list;
LLVMValueRef args[9];
@@ -2910,7 +2909,8 @@ int si_shader_create(struct si_screen *sscreen, struct 
si_shader *shader)
shader-gs_copy_shader-selector = shader-selector;
shader-gs_copy_shader-key = shader-key;
si_shader_ctx.shader = shader-gs_copy_shader;
-   if ((r = si_generate_gs_copy_shader(sscreen, si_shader_ctx, 
dump))) {
+   if ((r = si_generate_gs_copy_shader(sscreen, si_shader_ctx,
+   shader, dump))) {
free(shader-gs_copy_shader);
shader-gs_copy_shader = NULL;
goto out;

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


Mesa (master): clover: Add semantic information to module:: argument for implicit parameter passing.

2014-10-24 Thread Francisco Jerez
Module: Mesa
Branch: master
Commit: 06139c56fa070f84a931a4ddbdb894c9e8d24f55
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=06139c56fa070f84a931a4ddbdb894c9e8d24f55

Author: Francisco Jerez curroje...@riseup.net
Date:   Wed Oct  8 17:32:18 2014 +0300

clover: Add semantic information to module::argument for implicit parameter 
passing.

Reviewed-by: Jan Vesely jan.ves...@rutgers.edu

---

 src/gallium/state_trackers/clover/core/module.hpp |   16 
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/src/gallium/state_trackers/clover/core/module.hpp 
b/src/gallium/state_trackers/clover/core/module.hpp
index 18a5bfb..ee6caf9 100644
--- a/src/gallium/state_trackers/clover/core/module.hpp
+++ b/src/gallium/state_trackers/clover/core/module.hpp
@@ -68,27 +68,35 @@ namespace clover {
 sign_ext
  };
 
+ enum semantic {
+general,
+grid_dimension,
+grid_offset
+ };
+
  argument(enum type type, size_t size,
   size_t target_size, size_t target_align,
-  enum ext_type ext_type) :
+  enum ext_type ext_type,
+  enum semantic semantic = general) :
 type(type), size(size),
 target_size(target_size), target_align(target_align),
-ext_type(ext_type) { }
+ext_type(ext_type), semantic(semantic) { }
 
  argument(enum type type, size_t size) :
 type(type), size(size),
 target_size(size), target_align(1),
-ext_type(zero_ext) { }
+ext_type(zero_ext), semantic(general) { }
 
  argument() : type(scalar), size(0),
   target_size(0), target_align(1),
-  ext_type(zero_ext) { }
+  ext_type(zero_ext), semantic(general) { }
 
  type type;
  size_t size;
  size_t target_size;
  size_t target_align;
  ext_type ext_type;
+ semantic semantic;
   };
 
   struct symbol {

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


Mesa (master): radeonsi: assume ClipDistance usage mask is always 0xf

2014-10-24 Thread Marek Olšák
Module: Mesa
Branch: master
Commit: a9592cd3ac20143e01126ef1df372ecca54b41d1
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a9592cd3ac20143e01126ef1df372ecca54b41d1

Author: Marek Olšák marek.ol...@amd.com
Date:   Sat Oct  4 19:09:09 2014 +0200

radeonsi: assume ClipDistance usage mask is always 0xf

No code in Mesa sets the usage mask to any other value.
The final mask is AND'ed with enable bits from the rasterizer state anyway.

If somebody implements setting usage masks in st/mesa, we can use
tgsi_shader_info to get it more easily.

This is a prerequisite for the following commit.

Reviewed-by: Michel Dänzer michel.daen...@amd.com

---

 src/gallium/drivers/radeonsi/si_shader.c |9 ++---
 src/gallium/drivers/radeonsi/si_shader.h |1 -
 2 files changed, 2 insertions(+), 8 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_shader.c 
b/src/gallium/drivers/radeonsi/si_shader.c
index 6ac39e8..e21cb76 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -51,7 +51,6 @@ struct si_shader_output_values
unsigned name;
unsigned index;
unsigned sid;
-   unsigned usage;
 };
 
 struct si_shader_context
@@ -256,7 +255,6 @@ static int si_store_shader_io_attribs(struct si_shader 
*shader,
shader-output[i].name = d-Semantic.Name;
shader-output[i].sid = d-Semantic.Index;
shader-output[i].index = d-Range.First;
-   shader-output[i].usage = d-Declaration.UsageMask;
break;
}
 
@@ -1135,7 +1133,7 @@ static void si_llvm_export_vs(struct 
lp_build_tgsi_context *bld_base,
LLVMValueRef args[9];
LLVMValueRef pos_args[4][9] = { { 0 } };
LLVMValueRef psize_value = NULL, edgeflag_value = NULL, layer_value = 
NULL;
-   unsigned semantic_name, semantic_index, semantic_usage;
+   unsigned semantic_name, semantic_index;
unsigned target;
unsigned param_count = 0;
unsigned pos_idx;
@@ -1148,7 +1146,6 @@ static void si_llvm_export_vs(struct 
lp_build_tgsi_context *bld_base,
for (i = 0; i  noutput; i++) {
semantic_name = outputs[i].name;
semantic_index = outputs[i].sid;
-   semantic_usage = outputs[i].usage;
 
 handle_semantic:
/* Select the correct target */
@@ -1182,7 +1179,7 @@ handle_semantic:
  (1  semantic_index)))
continue;
shader-clip_dist_write |=
-   semantic_usage  (semantic_index  2);
+   0xf  (semantic_index * 4);
target = V_008DFC_SQ_EXP_POS + 2 + semantic_index;
break;
case TGSI_SEMANTIC_CLIPVERTEX:
@@ -1394,7 +1391,6 @@ static void si_llvm_emit_vs_epilogue(struct 
lp_build_tgsi_context * bld_base)
outputs[noutput].index = index;
outputs[noutput].name = d-Semantic.Name;
outputs[noutput].sid = d-Semantic.Index;
-   outputs[noutput].usage = d-Declaration.UsageMask;
 
for (i = 0; i  4; i++)
outputs[noutput].values[i] =
@@ -2758,7 +2754,6 @@ static int si_generate_gs_copy_shader(struct si_screen 
*sscreen,
outputs[i].name = out-name;
outputs[i].index = out-index;
outputs[i].sid = out-sid;
-   outputs[i].usage = out-usage;
 
for (chan = 0; chan  4; chan++) {
args[2] = lp_build_const_int32(gallivm,
diff --git a/src/gallium/drivers/radeonsi/si_shader.h 
b/src/gallium/drivers/radeonsi/si_shader.h
index 11e5ae0..43a4e65 100644
--- a/src/gallium/drivers/radeonsi/si_shader.h
+++ b/src/gallium/drivers/radeonsi/si_shader.h
@@ -110,7 +110,6 @@ struct si_shader_output {
int sid;
unsignedparam_offset;
unsignedindex;
-   unsignedusage;
 };
 
 struct si_shader;

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


Mesa (master): docs: add news item and link release notes

2014-10-24 Thread Emil Velikov
Module: Mesa
Branch: master
Commit: b86f814afd4a8cc1d5a17308fcdd05fbb937ae93
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b86f814afd4a8cc1d5a17308fcdd05fbb937ae93

Author: Emil Velikov emil.l.veli...@gmail.com
Date:   Mon Oct 13 02:14:02 2014 +0100

docs: add news item and link release notes

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

---

 docs/index.html|   12 
 docs/relnotes.html |2 ++
 2 files changed, 14 insertions(+)

diff --git a/docs/index.html b/docs/index.html
index 98162bb..244a7a3 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -16,6 +16,18 @@
 
 h1News/h1
 
+h2October 12, 2014/h2
+p
+a href=relnotes/10.2.9.htmlMesa 10.2.9/a
+and a href=relnotes/10.3.1.htmlMesa 10.3.1/a are released.
+
+These are bug-fix releases from the 10.2 and 10.3 branches, respectively.
+br
+NOTE: It is anticipated that 10.2.9 will be the final release in the 10.2
+series. Users of 10.2 are encouraged to migrate to the 10.3 series in order
+to obtain future fixes.
+/p
+
 h2September 19, 2014/h2
 p
 a href=relnotes/10.3.htmlMesa 10.3/a is released.  This is a new
diff --git a/docs/relnotes.html b/docs/relnotes.html
index 0a4c3de..d546e85 100644
--- a/docs/relnotes.html
+++ b/docs/relnotes.html
@@ -21,6 +21,8 @@ The release notes summarize what's new or changed in each 
Mesa release.
 /p
 
 ul
+lia href=relnotes/10.3.1.html10.3.1 release notes/a
+lia href=relnotes/10.2.9.html10.2.9 release notes/a
 lia href=relnotes/10.3.html10.3 release notes/a
 lia href=relnotes/10.2.8.html10.2.8 release notes/a
 lia href=relnotes/10.2.7.html10.2.7 release notes/a

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


Mesa (master): radeonsi: use tgsi_shader_info to get a list of GS outputs

2014-10-24 Thread Marek Olšák
Module: Mesa
Branch: master
Commit: 02134cfaae541b37ffb70869401cabab4da91cb9
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=02134cfaae541b37ffb70869401cabab4da91cb9

Author: Marek Olšák marek.ol...@amd.com
Date:   Sat Oct  4 22:07:50 2014 +0200

radeonsi: use tgsi_shader_info to get a list of GS outputs

Reviewed-by: Michel Dänzer michel.daen...@amd.com

---

 src/gallium/drivers/radeonsi/si_shader.c |   22 ++
 src/gallium/drivers/radeonsi/si_state_draw.c |4 ++--
 2 files changed, 12 insertions(+), 14 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_shader.c 
b/src/gallium/drivers/radeonsi/si_shader.c
index 5ab9e55..a4073a7 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -2232,6 +2232,7 @@ static void si_llvm_emit_vertex(
struct si_shader_context *si_shader_ctx = si_shader_context(bld_base);
struct lp_build_context *uint = bld_base-uint_bld;
struct si_shader *shader = si_shader_ctx-shader;
+   struct tgsi_shader_info *info = shader-selector-info;
struct gallivm_state *gallivm = bld_base-base.gallivm;
LLVMTypeRef i32 = LLVMInt32TypeInContext(gallivm-context);
LLVMValueRef soffset = LLVMGetParam(si_shader_ctx-radeon_bld.main_fn,
@@ -2282,9 +2283,9 @@ static void si_llvm_emit_vertex(
build_intrinsic(gallivm-builder, llvm.AMDGPU.kill,
LLVMVoidTypeInContext(gallivm-context), kill, 1, 0);
 
-   for (i = 0; i  shader-noutput; i++) {
+   for (i = 0; i  info-num_outputs; i++) {
LLVMValueRef *out_ptr =
-   
si_shader_ctx-radeon_bld.soa.outputs[shader-output[i].index];
+   si_shader_ctx-radeon_bld.soa.outputs[i];
 
for (chan = 0; chan  4; chan++) {
LLVMValueRef out_val = LLVMBuildLoad(gallivm-builder, 
out_ptr[chan], );
@@ -2693,11 +2694,12 @@ static int si_generate_gs_copy_shader(struct si_screen 
*sscreen,
struct lp_build_context *uint = bld_base-uint_bld;
struct si_shader *shader = si_shader_ctx-shader;
struct si_shader_output_values *outputs;
+   struct tgsi_shader_info *gsinfo = gs-selector-info;
LLVMValueRef t_list_ptr, t_list;
LLVMValueRef args[9];
int i, r;
 
-   outputs = MALLOC(gs-noutput * sizeof(outputs[0]));
+   outputs = MALLOC(gsinfo-num_outputs * sizeof(outputs[0]));
 
si_shader_ctx-type = TGSI_PROCESSOR_VERTEX;
shader-is_gs_copy_shader = true;
@@ -2727,15 +2729,12 @@ static int si_generate_gs_copy_shader(struct si_screen 
*sscreen,
args[8] = uint-zero; /* TFE */
 
/* Fetch vertex data from GSVS ring */
-   for (i = 0; i  gs-noutput; ++i) {
-   struct si_shader_output *out = gs-output + i;
+   for (i = 0; i  gsinfo-num_outputs; ++i) {
unsigned chan;
 
-   shader-output[i] = *out;
-
-   outputs[i].name = out-name;
-   outputs[i].index = out-index;
-   outputs[i].sid = out-sid;
+   outputs[i].name = gsinfo-output_semantic_name[i];
+   outputs[i].index = i;
+   outputs[i].sid = gsinfo-output_semantic_index[i];
 
for (chan = 0; chan  4; chan++) {
args[2] = lp_build_const_int32(gallivm,
@@ -2752,9 +2751,8 @@ static int si_generate_gs_copy_shader(struct si_screen 
*sscreen,
 base-elem_type, );
}
}
-   shader-noutput = gs-noutput;
 
-   si_llvm_export_vs(bld_base, outputs, gs-noutput);
+   si_llvm_export_vs(bld_base, outputs, gsinfo-num_outputs);
 
radeon_llvm_finalize_module(si_shader_ctx-radeon_bld);
 
diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c 
b/src/gallium/drivers/radeonsi/si_state_draw.c
index 78f0535..0a614a1 100644
--- a/src/gallium/drivers/radeonsi/si_state_draw.c
+++ b/src/gallium/drivers/radeonsi/si_state_draw.c
@@ -80,7 +80,7 @@ static void si_shader_es(struct pipe_context *ctx, struct 
si_shader *shader)
 static void si_shader_gs(struct pipe_context *ctx, struct si_shader *shader)
 {
struct si_context *sctx = (struct si_context *)ctx;
-   unsigned gs_vert_itemsize = shader-noutput * (16  2);
+   unsigned gs_vert_itemsize = shader-selector-info.num_outputs * (16  
2);
unsigned gs_max_vert_out = shader-selector-gs_max_out_vertices;
unsigned gsvs_itemsize = gs_vert_itemsize * gs_max_vert_out;
unsigned cut_mode;
@@ -633,7 +633,7 @@ static void si_update_derived_state(struct si_context *sctx)
si_set_ring_buffer(ctx, PIPE_SHADER_GEOMETRY, SI_RING_GSVS,
   sctx-gsvs_ring,
   sctx-gs_shader-gs_max_out_vertices *
-  sctx-gs_shader-current-noutput * 16,
+  

Mesa (master): i965: Use unsynchronized maps for the program cache on LLC platforms.

2014-10-24 Thread Kenneth Graunke
Module: Mesa
Branch: master
Commit: 02ca66fbc3e2b272afcb9bae66348d3b1900e2c3
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=02ca66fbc3e2b272afcb9bae66348d3b1900e2c3

Author: Kenneth Graunke kenn...@whitecape.org
Date:   Thu Aug 21 14:41:17 2014 -0700

i965: Use unsynchronized maps for the program cache on LLC platforms.

There's no reason to stall on pwrite - the CPU always appends to the
buffer and never modifies existing contents, and the GPU never writes
it.  Further, the CPU always appends new data before submitting a batch
that requires it.

This code predates the unsynchronized mapping feature, so we simply
didn't have the option when it was written.

Ideally, we would do this for non-LLC platforms too, but unsynchronized
mapping support only exists for LLC systems.

Saves a bunch of stall avoidance copies when uploading shaders.

v2: Rebase on changes to previous patch.

Signed-off-by: Kenneth Graunke kenn...@whitecape.org
Reviewed-by: Kristian Høgsberg k...@bitplanet.net [v1]

---

 src/mesa/drivers/dri/i965/brw_state_cache.c |   35 +--
 1 file changed, 28 insertions(+), 7 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_state_cache.c 
b/src/mesa/drivers/dri/i965/brw_state_cache.c
index f4cae8f..eb7452ec 100644
--- a/src/mesa/drivers/dri/i965/brw_state_cache.c
+++ b/src/mesa/drivers/dri/i965/brw_state_cache.c
@@ -172,14 +172,23 @@ brw_cache_new_bo(struct brw_cache *cache, uint32_t 
new_size)
drm_intel_bo *new_bo;
 
new_bo = drm_intel_bo_alloc(brw-bufmgr, program cache, new_size, 64);
+   if (brw-has_llc)
+  drm_intel_gem_bo_map_unsynchronized(new_bo);
 
/* Copy any existing data that needs to be saved. */
if (cache-next_offset != 0) {
-  drm_intel_bo_map(cache-bo, false);
-  drm_intel_bo_subdata(new_bo, 0, cache-next_offset, cache-bo-virtual);
-  drm_intel_bo_unmap(cache-bo);
+  if (brw-has_llc) {
+ memcpy(new_bo-virtual, cache-bo-virtual, cache-next_offset);
+  } else {
+ drm_intel_bo_map(cache-bo, false);
+ drm_intel_bo_subdata(new_bo, 0, cache-next_offset,
+  cache-bo-virtual);
+ drm_intel_bo_unmap(cache-bo);
+  }
}
 
+   if (brw-has_llc)
+  drm_intel_bo_unmap(cache-bo);
drm_intel_bo_unreference(cache-bo);
cache-bo = new_bo;
cache-bo_used_by_gpu = false;
@@ -200,6 +209,7 @@ brw_try_upload_using_copy(struct brw_cache *cache,
  const void *data,
  const void *aux)
 {
+   struct brw_context *brw = cache-brw;
int i;
struct brw_cache_item *item;
 
@@ -221,9 +231,11 @@ brw_try_upload_using_copy(struct brw_cache *cache,
continue;
 }
 
-drm_intel_bo_map(cache-bo, false);
+ if (!brw-has_llc)
+drm_intel_bo_map(cache-bo, false);
 ret = memcmp(cache-bo-virtual + item-offset, data, item-size);
-drm_intel_bo_unmap(cache-bo);
+ if (!brw-has_llc)
+drm_intel_bo_unmap(cache-bo);
 if (ret)
continue;
 
@@ -256,7 +268,7 @@ brw_upload_item_data(struct brw_cache *cache,
/* If we would block on writing to an in-use program BO, just
 * recreate it.
 */
-   if (cache-bo_used_by_gpu) {
+   if (!brw-has_llc  cache-bo_used_by_gpu) {
   perf_debug(Copying busy program cache buffer.\n);
   brw_cache_new_bo(cache, cache-bo-size);
}
@@ -279,6 +291,7 @@ brw_upload_cache(struct brw_cache *cache,
 uint32_t *out_offset,
 void *out_aux)
 {
+   struct brw_context *brw = cache-brw;
struct brw_cache_item *item = CALLOC_STRUCT(brw_cache_item);
GLuint hash;
void *tmp;
@@ -319,7 +332,11 @@ brw_upload_cache(struct brw_cache *cache,
cache-n_items++;
 
/* Copy data to the buffer */
-   drm_intel_bo_subdata(cache-bo, item-offset, data_size, data);
+   if (brw-has_llc) {
+  memcpy((char *) cache-bo-virtual + item-offset, data, data_size);
+   } else {
+  drm_intel_bo_subdata(cache-bo, item-offset, data_size, data);
+   }
 
*out_offset = item-offset;
*(void **)out_aux = (void *)((char *)item-key + item-key_size);
@@ -341,6 +358,8 @@ brw_init_caches(struct brw_context *brw)
cache-bo = drm_intel_bo_alloc(brw-bufmgr,
  program cache,
  4096, 64);
+   if (brw-has_llc)
+  drm_intel_gem_bo_map_unsynchronized(cache-bo);
 
cache-aux_compare[BRW_VS_PROG] = brw_vs_prog_data_compare;
cache-aux_compare[BRW_GS_PROG] = brw_gs_prog_data_compare;
@@ -407,6 +426,8 @@ brw_destroy_cache(struct brw_context *brw, struct brw_cache 
*cache)
 
DBG(%s\n, __FUNCTION__);
 
+   if (brw-has_llc)
+  drm_intel_bo_unmap(cache-bo);
drm_intel_bo_unreference(cache-bo);
cache-bo = NULL;
brw_clear_cache(brw, cache);

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org

Mesa (master): vc4: Translate 4-byte index buffers to 2 bytes.

2014-10-24 Thread Eric Anholt
Module: Mesa
Branch: master
Commit: 6212d2402df4ad0658cbb98ce889e35ef5f32fa3
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6212d2402df4ad0658cbb98ce889e35ef5f32fa3

Author: Eric Anholt e...@anholt.net
Date:   Sat Oct 18 12:50:05 2014 +0100

vc4: Translate 4-byte index buffers to 2 bytes.

Fixes assertion failures in 14 piglit tests (half of which now pass).

---

 src/gallium/drivers/vc4/vc4_draw.c |   14 ++
 src/gallium/drivers/vc4/vc4_resource.c |   46 
 src/gallium/drivers/vc4/vc4_resource.h |   17 +++-
 src/gallium/drivers/vc4/vc4_state.c|   25 ++---
 4 files changed, 92 insertions(+), 10 deletions(-)

diff --git a/src/gallium/drivers/vc4/vc4_draw.c 
b/src/gallium/drivers/vc4/vc4_draw.c
index f53caf7..e70506b 100644
--- a/src/gallium/drivers/vc4/vc4_draw.c
+++ b/src/gallium/drivers/vc4/vc4_draw.c
@@ -209,19 +209,23 @@ vc4_draw_vbo(struct pipe_context *pctx, const struct 
pipe_draw_info *info)
  */
 if (info-indexed) {
 struct vc4_resource *rsc = vc4_resource(vc4-indexbuf.buffer);
-
-assert(vc4-indexbuf.index_size == 1 ||
-   vc4-indexbuf.index_size == 2);
+uint32_t offset = vc4-indexbuf.offset;
+uint32_t index_size = vc4-indexbuf.index_size;
+if (rsc-shadow_parent) {
+vc4_update_shadow_index_buffer(pctx, vc4-indexbuf);
+offset = 0;
+index_size = 2;
+}
 
 cl_start_reloc(vc4-bcl, 1);
 cl_u8(vc4-bcl, VC4_PACKET_GL_INDEXED_PRIMITIVE);
 cl_u8(vc4-bcl,
   info-mode |
-  (vc4-indexbuf.index_size == 2 ?
+  (index_size == 2 ?
VC4_INDEX_BUFFER_U16:
VC4_INDEX_BUFFER_U8));
 cl_u32(vc4-bcl, info-count);
-cl_reloc(vc4, vc4-bcl, rsc-bo, vc4-indexbuf.offset);
+cl_reloc(vc4, vc4-bcl, rsc-bo, offset);
 cl_u32(vc4-bcl, max_index);
 } else {
 cl_u8(vc4-bcl, VC4_PACKET_GL_ARRAY_PRIMITIVE);
diff --git a/src/gallium/drivers/vc4/vc4_resource.c 
b/src/gallium/drivers/vc4/vc4_resource.c
index 803d357..c198ab9 100644
--- a/src/gallium/drivers/vc4/vc4_resource.c
+++ b/src/gallium/drivers/vc4/vc4_resource.c
@@ -512,6 +512,52 @@ vc4_update_shadow_baselevel_texture(struct pipe_context 
*pctx,
 shadow-writes = orig-writes;
 }
 
+/**
+ * Converts a 4-byte index buffer to 2 bytes.
+ *
+ * Since GLES2 only has support for 1 and 2-byte indices, the hardware doesn't
+ * include 4-byte index support, and we have to shrink it down.
+ *
+ * There's no fallback support for when indices end up being larger than 2^16,
+ * though it will at least assertion fail.  Also, if the original index data
+ * was in user memory, it would be nice to not have uploaded it to a VBO
+ * before translating.
+ */
+void
+vc4_update_shadow_index_buffer(struct pipe_context *pctx,
+   const struct pipe_index_buffer *ib)
+{
+struct vc4_resource *shadow = vc4_resource(ib-buffer);
+struct vc4_resource *orig = vc4_resource(shadow-shadow_parent);
+uint32_t count = shadow-base.b.width0 / 2;
+
+if (shadow-writes == orig-writes)
+return;
+
+struct pipe_transfer *src_transfer;
+uint32_t *src = pipe_buffer_map_range(pctx, orig-base.b,
+  ib-offset,
+  count * 4,
+  PIPE_TRANSFER_READ, 
src_transfer);
+
+struct pipe_transfer *dst_transfer;
+uint16_t *dst = pipe_buffer_map_range(pctx, shadow-base.b,
+  0,
+  count * 2,
+  PIPE_TRANSFER_WRITE, 
dst_transfer);
+
+for (int i = 0; i  count; i++) {
+uint32_t src_index = src[i];
+assert(src_index = 0x);
+dst[i] = src_index;
+}
+
+pctx-transfer_unmap(pctx, dst_transfer);
+pctx-transfer_unmap(pctx, src_transfer);
+
+shadow-writes = orig-writes;
+}
+
 void
 vc4_resource_screen_init(struct pipe_screen *pscreen)
 {
diff --git a/src/gallium/drivers/vc4/vc4_resource.h 
b/src/gallium/drivers/vc4/vc4_resource.h
index 7cc16a4..90b58e1 100644
--- a/src/gallium/drivers/vc4/vc4_resource.h
+++ b/src/gallium/drivers/vc4/vc4_resource.h
@@ -67,9 +67,22 @@ struct vc4_resource {
  *
  * This is used to track when we need to update this shadow resource
  * from its parent in the case of GL_TEXTURE_BASE_LEVEL (which we
- * can't support in hardware).
+ * can't support in hardware) or GL_UNSIGNED_INTEGER index buffers.
  */
   

Mesa (master): i965: Dirty state in BO reallocation based on usage history

2014-10-24 Thread Chris Forbes
Module: Mesa
Branch: master
Commit: 1655f6fc61a2502d8c1fb87344f5e8b25bff8081
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=1655f6fc61a2502d8c1fb87344f5e8b25bff8081

Author: Chris Forbes chr...@ijw.co.nz
Date:   Wed Oct  1 19:29:25 2014 +1300

i965: Dirty state in BO reallocation based on usage history

Signed-off-by: Chris Forbes chr...@ijw.co.nz
Reviewed-by: Anuj Phogat anuj.pho...@gmail.com

---

 src/mesa/drivers/dri/i965/intel_buffer_objects.c |5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/intel_buffer_objects.c 
b/src/mesa/drivers/dri/i965/intel_buffer_objects.c
index 82e0744..9298e24 100644
--- a/src/mesa/drivers/dri/i965/intel_buffer_objects.c
+++ b/src/mesa/drivers/dri/i965/intel_buffer_objects.c
@@ -110,7 +110,10 @@ intel_bufferobj_alloc_buffer(struct brw_context *brw,
 
/* the buffer might be bound as a uniform buffer, need to update it
 */
-   brw-state.dirty.brw |= BRW_NEW_UNIFORM_BUFFER;
+   if (intel_obj-Base.UsageHistory  USAGE_UNIFORM_BUFFER)
+  brw-state.dirty.brw |= BRW_NEW_UNIFORM_BUFFER;
+   if (intel_obj-Base.UsageHistory  USAGE_TEXTURE_BUFFER)
+  brw-state.dirty.brw |= BRW_NEW_TEXTURE_BUFFER;
 
intel_bufferobj_mark_inactive(intel_obj);
 }

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


Mesa (master): clover: Don' t return CL_INVALID_VALUE if there is no header.

2014-10-24 Thread Francisco Jerez
Module: Mesa
Branch: master
Commit: 01d94193ac34239cc96e3f4aab7df0e37a82eb31
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=01d94193ac34239cc96e3f4aab7df0e37a82eb31

Author: EdB edb+m...@sigluy.net
Date:   Sat Oct 11 18:01:36 2014 +0200

clover: Don't return CL_INVALID_VALUE if there is no header.

Reviewed-by: Francisco Jerez curroje...@riseup.net

---

 src/gallium/state_trackers/clover/api/program.cpp |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/state_trackers/clover/api/program.cpp 
b/src/gallium/state_trackers/clover/api/program.cpp
index 342915b..a8a6291 100644
--- a/src/gallium/state_trackers/clover/api/program.cpp
+++ b/src/gallium/state_trackers/clover/api/program.cpp
@@ -197,7 +197,7 @@ clCompileProgram(cl_program d_prog, cl_uint num_devs,
  name, header.source()));
   },
   range(header_names, num_headers),
-  objs(d_header_progs, num_headers));
+  objsallow_empty_tag(d_header_progs, num_headers));
 
prog.build(devs, opts, headers);
return CL_SUCCESS;

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


Mesa (master): i965/fs: Generate better code for ir_triop_csel.

2014-10-24 Thread Kenneth Graunke
Module: Mesa
Branch: master
Commit: 4d34c4b5823de984fb8f0469b67c6b4be02030b2
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4d34c4b5823de984fb8f0469b67c6b4be02030b2

Author: Kenneth Graunke kenn...@whitecape.org
Date:   Wed Oct 15 18:57:07 2014 -0700

i965/fs: Generate better code for ir_triop_csel.

Previously, we generated an extra CMP instruction:

   cmp.ge.f0(8)   g41D  g20,1,0F  0F
   cmp.nz.f0(8)   nullg48,8,1D  0D
   (+f0) sel(8)   g1201Fg2.40,1,0Fg30,1,0F

The first operand is always a boolean, and we want to predicate the SEL
on that.  Rather than producing a boolean value and comparing it against
zero, we can just produce a condition code in the flag register.

Now we generate:

   cmp.ge.f0(8)nullg20,1,0F  0F
   (+f0) sel(8)g1241Fg2.40,1,0Fg30,1,0F

total instructions in shared programs: 5473459 - 5473253 (-0.00%)
instructions in affected programs: 6219 - 6013 (-3.31%)

Signed-off-by: Kenneth Graunke kenn...@whitecape.org
Reviewed-by: Ian Romanick ian.d.roman...@intel.com
Reviewed-by: Matt Turner matts...@gmail.com

---

 src/mesa/drivers/dri/i965/brw_fs_visitor.cpp |   18 +-
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp 
b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
index 541c25a..3fc9e39 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
@@ -487,6 +487,19 @@ fs_visitor::visit(ir_expression *ir)
  return;
   break;
 
+   case ir_triop_csel:
+  ir-operands[1]-accept(this);
+  op[1] = this-result;
+  ir-operands[2]-accept(this);
+  op[2] = this-result;
+
+  emit_bool_to_cond_code(ir-operands[0]);
+
+  this-result = fs_reg(this, ir-type);
+  inst = emit(SEL(this-result, op[1], op[2]));
+  inst-predicate = BRW_PREDICATE_NORMAL;
+  return;
+
case ir_unop_interpolate_at_centroid:
case ir_binop_interpolate_at_offset:
case ir_binop_interpolate_at_sample:
@@ -1023,11 +1036,6 @@ fs_visitor::visit(ir_expression *ir)
   break;
 
case ir_triop_csel:
-  emit(CMP(reg_null_d, op[0], fs_reg(0), BRW_CONDITIONAL_NZ));
-  inst = emit(BRW_OPCODE_SEL, this-result, op[1], op[2]);
-  inst-predicate = BRW_PREDICATE_NORMAL;
-  break;
-
case ir_unop_interpolate_at_centroid:
case ir_binop_interpolate_at_offset:
case ir_binop_interpolate_at_sample:

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


Mesa (master): i965/vec4: Delete some dead code in visit(ir_expression *).

2014-10-24 Thread Kenneth Graunke
Module: Mesa
Branch: master
Commit: cb36e79f96101528080917c469dea3b525df2a32
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=cb36e79f96101528080917c469dea3b525df2a32

Author: Kenneth Graunke kenn...@whitecape.org
Date:   Wed Oct 15 19:13:16 2014 -0700

i965/vec4: Delete some dead code in visit(ir_expression *).

Nothing uses the vector_elements temporary variable.

Setting this-result.file is dead because we overwrite this-result a
few lines later.

Signed-off-by: Kenneth Graunke kenn...@whitecape.org
Reviewed-by: Ian Romanick ian.d.roman...@intel.com
Reviewed-by: Matt Turner matts...@gmail.com

---

 src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp |8 
 1 file changed, 8 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp 
b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
index 0caa7a5..0b2b9ca 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
@@ -1289,14 +1289,6 @@ vec4_visitor::visit(ir_expression *ir)
   assert(!ir-operands[operand]-type-is_matrix());
}
 
-   int vector_elements = ir-operands[0]-type-vector_elements;
-   if (ir-operands[1]) {
-  vector_elements = MAX2(vector_elements,
-ir-operands[1]-type-vector_elements);
-   }
-
-   this-result.file = BAD_FILE;
-
/* Storage for our result.  Ideally for an assignment we'd be using
 * the actual storage for the result here, instead.
 */

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


Mesa (master): radeonsi: remove conversion of DX9 FACE input to GL

2014-10-24 Thread Marek Olšák
Module: Mesa
Branch: master
Commit: e827bb6fe747bfb5153d1d8c522b83ba8e07e3d6
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e827bb6fe747bfb5153d1d8c522b83ba8e07e3d6

Author: Marek Olšák marek.ol...@amd.com
Date:   Thu Oct 16 16:20:26 2014 +0200

radeonsi: remove conversion of DX9 FACE input to GL

st/mesa and gallium expect the DX9 format, so this is useless.

Reviewed-by: Michel Dänzer michel.daen...@amd.com

---

 src/gallium/drivers/radeonsi/si_shader.c |   15 +--
 1 file changed, 1 insertion(+), 14 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_shader.c 
b/src/gallium/drivers/radeonsi/si_shader.c
index 6b4f9e6..6f2fb7b 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -426,21 +426,8 @@ static void declare_input_fs(
}
 
if (decl-Semantic.Name == TGSI_SEMANTIC_FACE) {
-   LLVMValueRef face, is_face_positive;
-
-   face = LLVMGetParam(main_fn, SI_PARAM_FRONT_FACE);
-
-   is_face_positive = LLVMBuildFCmp(gallivm-builder,
-LLVMRealUGT, face,
-lp_build_const_float(gallivm, 
0.0f),
-);
-
radeon_bld-inputs[radeon_llvm_reg_index_soa(input_index, 0)] =
-   LLVMBuildSelect(gallivm-builder,
-   is_face_positive,
-   lp_build_const_float(gallivm, 1.0f),
-   lp_build_const_float(gallivm, 0.0f),
-   );
+   LLVMGetParam(main_fn, SI_PARAM_FRONT_FACE);
radeon_bld-inputs[radeon_llvm_reg_index_soa(input_index, 1)] =
radeon_bld-inputs[radeon_llvm_reg_index_soa(input_index, 2)] =
lp_build_const_float(gallivm, 0.0f);

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


Mesa (master): radeonsi: add some missing register definitions

2014-10-24 Thread Marek Olšák
Module: Mesa
Branch: master
Commit: c5a44cf3f83a9cb81d4ebe41051ca779a89475f6
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c5a44cf3f83a9cb81d4ebe41051ca779a89475f6

Author: Marek Olšák marek.ol...@amd.com
Date:   Mon Oct  6 00:19:31 2014 +0200

radeonsi: add some missing register definitions

Reviewed-by: Michel Dänzer michel.daen...@amd.com

---

 src/gallium/drivers/radeonsi/sid.h |   23 +++
 1 file changed, 23 insertions(+)

diff --git a/src/gallium/drivers/radeonsi/sid.h 
b/src/gallium/drivers/radeonsi/sid.h
index 3241725..c4d4afd 100644
--- a/src/gallium/drivers/radeonsi/sid.h
+++ b/src/gallium/drivers/radeonsi/sid.h
@@ -4829,6 +4829,9 @@
 #define   S_00B32C_EXCP_EN(x) (((x)  
0x7F)  8) /* mask is 0x1FF on CIK */
 #define   G_00B32C_EXCP_EN(x) (((x)  
8)  0x7F) /* mask is 0x1FF on CIK */
 #define   C_00B32C_EXCP_EN
0x80FF /* mask is 0x1FF on CIK */
+#define   S_00B32C_LDS_SIZE(x)(((x)  
0x1FF)  20) /* CIK, for on-chip GS */
+#define   G_00B32C_LDS_SIZE(x)(((x)  
20)  0x1FF) /* CIK, for on-chip GS */
+#define   C_00B32C_LDS_SIZE   
0xE00F /* CIK, for on-chip GS */
 #define R_00B330_SPI_SHADER_USER_DATA_ES_0  
0x00B330
 /* CIK */
 #define R_00B41C_SPI_SHADER_PGM_RSRC3_HS
0x00B41C
@@ -6627,15 +6630,35 @@
 #define   C_028800_DISABLE_COLOR_WRITES_ON_DEPTH_PASS 
0x7FFF
 #define R_028804_DB_EQAA
0x028804
 #define   S_028804_MAX_ANCHOR_SAMPLES(x)   (((x)  0x7)  0)
+#define   G_028804_MAX_ANCHOR_SAMPLES(x)   (((x)  0)  0x7)
+#define   C_028804_MAX_ANCHOR_SAMPLES  (~(((~0)  0x7)  0))
 #define   S_028804_PS_ITER_SAMPLES(x)  (((x)  0x7)  4)
+#define   G_028804_PS_ITER_SAMPLES(x)  (((x)  4)  0x7)
+#define   C_028804_PS_ITER_SAMPLES (~(((~0)  0x7)  4))
 #define   S_028804_MASK_EXPORT_NUM_SAMPLES(x)  (((x)  0x7)  8)
+#define   G_028804_MASK_EXPORT_NUM_SAMPLES(x)  (((x)  8)  0x7)
+#define   C_028804_MASK_EXPORT_NUM_SAMPLES (~(((~0)  0x7)  8))
 #define   S_028804_ALPHA_TO_MASK_NUM_SAMPLES(x)(((x)  0x7)  
12)
+#define   G_028804_ALPHA_TO_MASK_NUM_SAMPLES(x)(((x)  12)  
0x7)
+#define   C_028804_ALPHA_TO_MASK_NUM_SAMPLES   (~(((~0)  0x7)  12))
 #define   S_028804_HIGH_QUALITY_INTERSECTIONS(x)   (((x)  0x1)  16)
+#define   G_028804_HIGH_QUALITY_INTERSECTIONS(x)   (((x)  16)  0x1)
+#define   C_028804_HIGH_QUALITY_INTERSECTIONS  (~(((~0)  0x1)  16))
 #define   S_028804_INCOHERENT_EQAA_READS(x)(((x)  0x1)  17)
+#define   G_028804_INCOHERENT_EQAA_READS(x)(((x)  17)  0x1)
+#define   C_028804_INCOHERENT_EQAA_READS   (~(((~0)  0x1)  17))
 #define   S_028804_INTERPOLATE_COMP_Z(x)   (((x)  0x1)  18)
+#define   G_028804_INTERPOLATE_COMP_Z(x)   (((x)  18)  0x1)
+#define   C_028804_INTERPOLATE_COMP_Z  (~(((~0)  18)  0x1))
 #define   S_028804_INTERPOLATE_SRC_Z(x)(((x)  0x1)  
19)
+#define   G_028804_INTERPOLATE_SRC_Z(x)(((x)  19)  
0x1)
+#define   C_028804_INTERPOLATE_SRC_Z   (~(((~0)  0x1)  19))
 #define   S_028804_STATIC_ANCHOR_ASSOCIATIONS(x)   (((x)  0x1)  20)
+#define   G_028804_STATIC_ANCHOR_ASSOCIATIONS(x)   (((x)  20)  0x1)
+#define   C_028804_STATIC_ANCHOR_ASSOCIATIONS  (~(((~0)  0x1)  20))
 #define   S_028804_ALPHA_TO_MASK_EQAA_DISABLE(x)   (((x)  0x1)  21)
+#define   G_028804_ALPHA_TO_MASK_EQAA_DISABLE(x)   (((x)  21)  0x1)
+#define   C_028804_ALPHA_TO_MASK_EQAA_DISABLE  (~(((~0)  0x1)  21))
 #define R_028808_CB_COLOR_CONTROL   
0x028808
 #define   S_028808_DEGAMMA_ENABLE(x)  (((x)  
0x1)  3)
 #define   G_028808_DEGAMMA_ENABLE(x)  (((x)  
3)  0x1)

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


Mesa (master): u_blitter: put a comment on util_blitter_cache_all_shaders( )

2014-10-24 Thread Brian Paul
Module: Mesa
Branch: master
Commit: c9a6ec197816d988f6301f84a6a2b09b1f2dde78
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c9a6ec197816d988f6301f84a6a2b09b1f2dde78

Author: Brian Paul bri...@vmware.com
Date:   Tue Oct 21 10:30:22 2014 -0600

u_blitter: put a comment on util_blitter_cache_all_shaders()

Trivial.

---

 src/gallium/auxiliary/util/u_blitter.c |7 +++
 1 file changed, 7 insertions(+)

diff --git a/src/gallium/auxiliary/util/u_blitter.c 
b/src/gallium/auxiliary/util/u_blitter.c
index ea9094e..e59fa04 100644
--- a/src/gallium/auxiliary/util/u_blitter.c
+++ b/src/gallium/auxiliary/util/u_blitter.c
@@ -1009,6 +1009,13 @@ void *blitter_get_fs_texfetch_stencil(struct 
blitter_context_priv *ctx,
}
 }
 
+
+/**
+ * Generate and save all fragment shaders that we will ever need for
+ * blitting.  Drivers which use the 'draw' fallbacks will typically use
+ * this to make sure we generate/use shaders that don't go through the
+ * draw module's wrapper functions.
+ */
 void util_blitter_cache_all_shaders(struct blitter_context *blitter)
 {
struct blitter_context_priv *ctx = (struct blitter_context_priv*)blitter;

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


Mesa (master): i965/fs: Silence uninitialized variable warning.

2014-10-24 Thread Matt Turner
Module: Mesa
Branch: master
Commit: 40492be2a4a339b02c38990ad8736644f3a8776b
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=40492be2a4a339b02c38990ad8736644f3a8776b

Author: Matt Turner matts...@gmail.com
Date:   Thu Oct 23 15:45:15 2014 -0700

i965/fs: Silence uninitialized variable warning.

The compiler isn't privy to the knowledge that we're doing at least one
framebuffer write.

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

---

 src/mesa/drivers/dri/i965/brw_fs.cpp |1 +
 1 file changed, 1 insertion(+)

diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp 
b/src/mesa/drivers/dri/i965/brw_fs.cpp
index e941c58..983e8db 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -2601,6 +2601,7 @@ fs_visitor::emit_repclear_shader()
   write-header_present = false;
   write-mlen = 1;
} else {
+  assume(key-nr_color_regions  0);
   for (int i = 0; i  key-nr_color_regions; ++i) {
  write = emit(FS_OPCODE_REP_FB_WRITE);
  write-saturate = key-clamp_fragment_color;

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


Mesa (master): vc4: Apply a Newton-Raphson step to improve RSQ

2014-10-24 Thread Eric Anholt
Module: Mesa
Branch: master
Commit: 15eb4c59f6504473989e6a064fda11d6c009ed8f
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=15eb4c59f6504473989e6a064fda11d6c009ed8f

Author: Eric Anholt e...@anholt.net
Date:   Fri Oct 17 15:28:02 2014 +0100

vc4: Apply a Newton-Raphson step to improve RSQ

Fixes all the piglit built-in-functions/*sqrt tests, among others.

---

 src/gallium/drivers/vc4/vc4_program.c |   22 --
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/vc4/vc4_program.c 
b/src/gallium/drivers/vc4/vc4_program.c
index 0046b22..66dff97 100644
--- a/src/gallium/drivers/vc4/vc4_program.c
+++ b/src/gallium/drivers/vc4/vc4_program.c
@@ -313,6 +313,25 @@ tgsi_to_qir_rcp(struct vc4_compile *c,
 }
 
 static struct qreg
+tgsi_to_qir_rsq(struct vc4_compile *c,
+struct tgsi_full_instruction *tgsi_inst,
+enum qop op, struct qreg *src, int i)
+{
+struct qreg x = src[0 * 4 + 0];
+struct qreg r = qir_RSQ(c, x);
+
+/* Apply a Newton-Raphson step to improve the accuracy. */
+r = qir_FMUL(c, r, qir_FSUB(c,
+qir_uniform_f(c, 1.5),
+qir_FMUL(c,
+ qir_uniform_f(c, 0.5),
+ qir_FMUL(c, x,
+  qir_FMUL(c, r, r);
+
+return r;
+}
+
+static struct qreg
 qir_srgb_decode(struct vc4_compile *c, struct qreg srgb)
 {
 struct qreg low = qir_FMUL(c, srgb, qir_uniform_f(c, 1.0 / 12.92));
@@ -1165,7 +1184,6 @@ emit_tgsi_instruction(struct vc4_compile *c,
 [TGSI_OPCODE_IDIV] = { 0, tgsi_to_qir_idiv },
 [TGSI_OPCODE_INEG] = { 0, tgsi_to_qir_ineg },
 
-[TGSI_OPCODE_RSQ] = { QOP_RSQ, tgsi_to_qir_alu },
 [TGSI_OPCODE_SEQ] = { 0, tgsi_to_qir_seq },
 [TGSI_OPCODE_SNE] = { 0, tgsi_to_qir_sne },
 [TGSI_OPCODE_SGE] = { 0, tgsi_to_qir_sge },
@@ -1182,7 +1200,7 @@ emit_tgsi_instruction(struct vc4_compile *c,
 [TGSI_OPCODE_CMP] = { 0, tgsi_to_qir_cmp },
 [TGSI_OPCODE_MAD] = { 0, tgsi_to_qir_mad },
 [TGSI_OPCODE_RCP] = { QOP_RCP, tgsi_to_qir_rcp },
-[TGSI_OPCODE_RSQ] = { QOP_RSQ, tgsi_to_qir_scalar },
+[TGSI_OPCODE_RSQ] = { QOP_RSQ, tgsi_to_qir_rsq },
 [TGSI_OPCODE_EX2] = { QOP_EXP2, tgsi_to_qir_scalar },
 [TGSI_OPCODE_LG2] = { QOP_LOG2, tgsi_to_qir_scalar },
 [TGSI_OPCODE_LRP] = { 0, tgsi_to_qir_lrp },

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


Mesa (master): vc4: correctly include the source files

2014-10-24 Thread Eric Anholt
Module: Mesa
Branch: master
Commit: 79d09a4b125e745cc89f9bca336619cbd44d9f95
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=79d09a4b125e745cc89f9bca336619cbd44d9f95

Author: Emil Velikov emil.l.veli...@gmail.com
Date:   Tue Oct 14 16:10:50 2014 +0100

vc4: correctly include the source files

The kernel files are built into a separate static library and
all the functions that require it are already wrapped in ifdef
USE_VC4_SIMULATOR. Don't forget the header file :)

Signed-off-by: Emil Velikov emil.l.veli...@gmail.com
Reviewed-by: Eric Anholt e...@anholt.net

---

 src/gallium/drivers/vc4/Makefile.sources|3 ---
 src/gallium/drivers/vc4/kernel/Makefile.sources |1 +
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/gallium/drivers/vc4/Makefile.sources 
b/src/gallium/drivers/vc4/Makefile.sources
index 1befb9f..2336565 100644
--- a/src/gallium/drivers/vc4/Makefile.sources
+++ b/src/gallium/drivers/vc4/Makefile.sources
@@ -36,7 +36,4 @@ C_SOURCES := \
vc4_state.c \
vc4_tiling.c \
vc4_tiling.h \
-   kernel/vc4_gem.c \
-   kernel/vc4_validate.c \
-   kernel/vc4_validate_shaders.c \
$()
diff --git a/src/gallium/drivers/vc4/kernel/Makefile.sources 
b/src/gallium/drivers/vc4/kernel/Makefile.sources
index d1d70dd..7d17a89 100644
--- a/src/gallium/drivers/vc4/kernel/Makefile.sources
+++ b/src/gallium/drivers/vc4/kernel/Makefile.sources
@@ -1,4 +1,5 @@
 C_SOURCES := \
+   vc4_drv.h \
vc4_gem.c \
vc4_validate.c \
vc4_validate_shaders.c \

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


Mesa (master): i965/fs: Compute q-values for register allocation manually

2014-10-24 Thread Jason Ekstrand
Module: Mesa
Branch: master
Commit: 5d1046291a13a1be4bfaeed0fb9d758f877e927e
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5d1046291a13a1be4bfaeed0fb9d758f877e927e

Author: Jason Ekstrand jason.ekstr...@intel.com
Date:   Fri Oct  3 18:13:05 2014 -0700

i965/fs: Compute q-values for register allocation manually

Previously, we were allowing the register allocation code to do the
computation for us in ra_set_finalize.  However, the runtime for this
computation is O(c^4 * g) where c is the number of classes and g is the
number of GRF registers.  However, these q-values are directly computable
based on the way we lay out our register classes so there is no need for
the aweful runtime algorithm.

We were doing ok until commit 7210583eb where we bumped the number of
register classes from 11 to 16.  While startup times don't normally matter,
this caused piglit to take 4 times as long to run on Bay Trail.  This patch
should make generating the ra_set much faster and melt the piglit run
times.

v2: Fixed a couple of bugs.  I have now verified that the same q-values are
generated both ways.

Signed-off-by: Jason Ekstrand jason.ekstr...@intel.com
Reviewed-by: Matt Turner matts...@gmail.com

---

 src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp |   58 -
 1 file changed, 56 insertions(+), 2 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp 
b/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
index 0c4888f..7ae6c75 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
@@ -152,6 +152,13 @@ brw_alloc_reg_set(struct intel_screen *screen, int 
reg_width)
int *classes = ralloc_array(screen, int, class_count);
int aligned_pairs_class = -1;
 
+   /* Allocate space for q values.  We allocate class_count + 1 because we
+* want to leave room for the aligned pairs class if we have it. */
+   unsigned int **q_values = ralloc_array(screen, unsigned int *,
+  class_count + 1);
+   for (int i = 0; i  class_count + 1; ++i)
+  q_values[i] = ralloc_array(q_values, unsigned int, class_count + 1);
+
/* Now, add the registers to their classes, and add the conflicts
 * between them and the base GRF registers (and also each other).
 */
@@ -162,8 +169,41 @@ brw_alloc_reg_set(struct intel_screen *screen, int 
reg_width)
   int class_reg_count;
   if (devinfo-gen = 5  reg_width == 2) {
  class_reg_count = (base_reg_count - (class_sizes[i] - 1)) / 2;
+
+ /* See comment below.  The only difference here is that we are
+  * dealing with pairs of registers instead of single registers.
+  * Registers of odd sizes simply get rounded up. */
+ for (int j = 0; j  class_count; j++)
+q_values[i][j] = (class_sizes[i] + 1) / 2 +
+ (class_sizes[j] + 1) / 2 - 1;
   } else {
  class_reg_count = base_reg_count - (class_sizes[i] - 1);
+
+ /* From register_allocate.c:
+  *
+  * q(B,C) (indexed by C, B is this register class) in
+  * Runeson/Nyström paper.  This is how many registers of B could
+  * the worst choice register from C conflict with.
+  *
+  * If we just let the register allocation algorithm compute these
+  * values, is extremely expensive.  However, since all of our
+  * registers are laid out, we can very easily compute them
+  * ourselves.  View the register from C as fixed starting at GRF n
+  * somwhere in the middle, and the register from B as sliding back
+  * and forth.  Then the first register to conflict from B is the
+  * one starting at n - class_size[B] + 1 and the last register to
+  * conflict will start at n + class_size[B] - 1.  Therefore, the
+  * number of conflicts from B is class_size[B] + class_size[C] - 1.
+  *
+  *   +-+-+-+-+-+-+ +-+-+-+-+-+-+
+  * B | | | | | |n| -- | | | | | | |
+  *   +-+-+-+-+-+-+ +-+-+-+-+-+-+
+  * +-+-+-+-+-+
+  * C   |n| | | | |
+  * +-+-+-+-+-+
+  */
+ for (int j = 0; j  class_count; j++)
+q_values[i][j] = class_sizes[i] + class_sizes[j] - 1;
   }
   classes[i] = ra_alloc_reg_class(regs);
 
@@ -208,7 +248,7 @@ brw_alloc_reg_set(struct intel_screen *screen, int 
reg_width)
/* Add a special class for aligned pairs, which we'll put delta_x/y
 * in on gen5 so that we can do PLN.
 */
-   if (devinfo-has_pln  devinfo-gen  6) {
+   if (devinfo-has_pln  reg_width == 1  devinfo-gen  6) {
   aligned_pairs_class = ra_alloc_reg_class(regs);
 
   for (int i = 0; i  pairs_reg_count; i++) {
@@ -216,9 +256,23 @@ brw_alloc_reg_set(struct intel_screen *screen, int 
reg_width)
ra_class_add_reg(regs, aligned_pairs_class, pairs_base_reg + i);
 }
   

Mesa (master): util: Use reg_belongs_to_class instead of BITSET_TEST

2014-10-24 Thread Jason Ekstrand
Module: Mesa
Branch: master
Commit: f84adb848161bd0a23b26edc0c136489dd2d38da
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f84adb848161bd0a23b26edc0c136489dd2d38da

Author: Jason Ekstrand jason.ekstr...@intel.com
Date:   Fri Oct  3 18:08:12 2014 -0700

util: Use reg_belongs_to_class instead of BITSET_TEST

This shouldn't be a functional change since reg_belongs_to_class is just a
wrapper around BITSET_TEST.  It just makes the code a little easier to
read.

Signed-off-by: Jason Ekstrand jason.ekstr...@intel.com
Reviewed-by: Matt Turner matts...@gmail.com

---

 src/util/register_allocate.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/util/register_allocate.c b/src/util/register_allocate.c
index afab9dd..6cf7ce7 100644
--- a/src/util/register_allocate.c
+++ b/src/util/register_allocate.c
@@ -335,7 +335,7 @@ ra_set_finalize(struct ra_regs *regs, unsigned int 
**q_values)
 
for (i = 0; i  regs-regs[rc].num_conflicts; i++) {
   unsigned int rb = regs-regs[rc].conflict_list[i];
-  if (BITSET_TEST(regs-classes[b]-regs, rb))
+  if (reg_belongs_to_class(rb, regs-classes[b]))
  conflicts++;
}
max_conflicts = MAX2(max_conflicts, conflicts);

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


Mesa (master): i965/fs: Add another use of MAX_VGRF_SIZE

2014-10-24 Thread Jason Ekstrand
Module: Mesa
Branch: master
Commit: 1988b7165567f19f3439514625adf8ed6ccf3b62
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=1988b7165567f19f3439514625adf8ed6ccf3b62

Author: Jason Ekstrand jason.ekstr...@intel.com
Date:   Fri Oct  3 18:09:52 2014 -0700

i965/fs: Add another use of MAX_VGRF_SIZE

Signed-off-by: Jason Ekstrand jason.ekstr...@intel.com
Reviewed-by: Matt Turner matts...@gmail.com

---

 src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp 
b/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
index 65a09a0..be02dfe 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
@@ -102,7 +102,7 @@ brw_alloc_reg_set(struct intel_screen *screen, int 
reg_width)
 * regs).
 */
int class_count;
-   int class_sizes[BRW_MAX_MRF];
+   int class_sizes[MAX_VGRF_SIZE];
 
if (devinfo-gen = 7) {
   for (class_count = 0; class_count  MAX_VGRF_SIZE; class_count++)

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


Mesa (master): i965/fs: Don't interfere with too many base registers

2014-10-24 Thread Jason Ekstrand
Module: Mesa
Branch: master
Commit: 2ec161b2396b08341264965a5825152784b54549
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=2ec161b2396b08341264965a5825152784b54549

Author: Jason Ekstrand jason.ekstr...@intel.com
Date:   Mon Oct  6 21:27:06 2014 -0700

i965/fs: Don't interfere with too many base registers

On older GENs in SIMD16 mode, we were accidentally building too much
interference into our register classes.  Since everything is divided by 2,
the reigster allocator thinks we have 64 base registers instead of 128.
The actual GRF mapping still needs to be doubled, but as far as the ra_set
is concerned, we only have 64.  We were accidentally adding way too much
interference.

Signed-off-by: Jason Ekstrand jason.ekstr...@gmail.com
Reviewed-by: Matt Turner matts...@gmail.com

---

 src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp 
b/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
index 34ee40f..0c4888f 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
@@ -179,8 +179,8 @@ brw_alloc_reg_set(struct intel_screen *screen, int 
reg_width)
 
 ra_reg_to_grf[reg] = j * 2;
 
-for (int base_reg = j * 2;
- base_reg  j * 2 + class_sizes[i];
+for (int base_reg = j;
+ base_reg  j + (class_sizes[i] + 1) / 2;
  base_reg++) {
ra_add_transitive_reg_conflict(regs, base_reg, reg);
 }

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


Mesa (master): i965/fs: Properly precolor payload registers on GEN5 in SIMD16

2014-10-24 Thread Jason Ekstrand
Module: Mesa
Branch: master
Commit: ee65f2b50d5a411e05fb4e0dbe26766a47305b59
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ee65f2b50d5a411e05fb4e0dbe26766a47305b59

Author: Jason Ekstrand jason.ekstr...@intel.com
Date:   Mon Oct 13 19:41:17 2014 -0700

i965/fs: Properly precolor payload registers on GEN5 in SIMD16

For GEN6 SIMD16 mode, we have to 2-align all the registers, so we only have
the even-numbered ones.  This means that we have to divide the register
number by 2 when we precolor.  This wasn't a problem before because we were
setting up the interference between ra_node registers wrong.  This will be
fixed in the next commit.

Signed-off-by: Jason Ekstrand jason.ekstr...@intel.com
Reviewed-by: Matt Turner matts...@gmail.com

---

 src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp |   11 ++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp 
b/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
index be02dfe..34ee40f 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
@@ -390,7 +390,16 @@ fs_visitor::setup_payload_interference(struct ra_graph *g,
* The alternative would be to have per-physical-register classes, which
* would just be silly.
*/
-  ra_set_node_reg(g, first_payload_node + i, i);
+  if (brw-intelScreen-devinfo-gen = 5  dispatch_width == 16) {
+ /* We have to divide by 2 here because we only have even numbered
+  * registers.  Some of the payload registers will be odd, but
+  * that's ok because their physical register numbers have already
+  * been assigned.  The only thing this is used for is interference.
+  */
+ ra_set_node_reg(g, first_payload_node + i, i / 2);
+  } else {
+ ra_set_node_reg(g, first_payload_node + i, i);
+  }
}
 }
 

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


Mesa (10.3): Update VERSION to 10.3.2

2014-10-24 Thread Emil Velikov
Module: Mesa
Branch: 10.3
Commit: e0aaa9591b2ad94d2bf4efb5a83538cea800b614
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e0aaa9591b2ad94d2bf4efb5a83538cea800b614

Author: Emil Velikov emil.l.veli...@gmail.com
Date:   Sat Oct 25 00:27:57 2014 +

Update VERSION to 10.3.2

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

---

 VERSION |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/VERSION b/VERSION
index a936832..15d0c6b 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-10.3.1
+10.3.2

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


Mesa: tag mesa-10.3.2: Mesa 10.3.2 release

2014-10-24 Thread Emil Velikov
Module: Mesa
Branch: refs/tags/mesa-10.3.2
Tag:1316861c098118dfd9193c9f4f331a0745b5cc11
URL:
http://cgit.freedesktop.org/mesa/mesa/tag/?id=1316861c098118dfd9193c9f4f331a0745b5cc11

Tagger: Emil Velikov emil.l.veli...@gmail.com
Date:   Sat Oct 25 00:41:29 2014 +

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


Mesa (10.3): docs: Add sha256 sums for the 10.3.2 release

2014-10-24 Thread Emil Velikov
Module: Mesa
Branch: 10.3
Commit: 95994706429e08665d1d33d248c8bcd67d40251e
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=95994706429e08665d1d33d248c8bcd67d40251e

Author: Emil Velikov emil.l.veli...@gmail.com
Date:   Sat Oct 25 00:43:12 2014 +

docs: Add sha256 sums for the 10.3.2 release

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

---

 docs/relnotes/10.3.2.html |4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/docs/relnotes/10.3.2.html b/docs/relnotes/10.3.2.html
index 657c0ac..4c08f65 100644
--- a/docs/relnotes/10.3.2.html
+++ b/docs/relnotes/10.3.2.html
@@ -30,7 +30,9 @@ because compatibility contexts are not supported.
 
 h2SHA256 checksums/h2
 pre
-TBD
+e65f8e691f06f111c1aeb3a376b13c9cc88cb162bee2709e0e7e6b0e6628ca75  
MesaLib-10.3.2.tar.gz
+e9849bcb9aa9acd98a753d6d46d2e7d7238d3367036e11357a60efd16de8bea3  
MesaLib-10.3.2.tar.bz2
+427dc0d670d38e713ebff2675665ec2fe4ff7d04ce227bd54de946999fc1d234  
MesaLib-10.3.2.zip
 /pre
 
 h2New features/h2

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


Mesa (10.3): Add release notes for the 10.3.2 release

2014-10-24 Thread Emil Velikov
Module: Mesa
Branch: 10.3
Commit: 3b6a4758fa8958db4b76e6d7efccc93b12b1da06
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3b6a4758fa8958db4b76e6d7efccc93b12b1da06

Author: Emil Velikov emil.l.veli...@gmail.com
Date:   Sat Oct 25 00:33:38 2014 +

Add release notes for the 10.3.2 release

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

---

 docs/relnotes/10.3.2.html |  113 +
 1 file changed, 113 insertions(+)

diff --git a/docs/relnotes/10.3.2.html b/docs/relnotes/10.3.2.html
new file mode 100644
index 000..657c0ac
--- /dev/null
+++ b/docs/relnotes/10.3.2.html
@@ -0,0 +1,113 @@
+!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN 
http://www.w3.org/TR/html4/loose.dtd;
+html lang=en
+head
+  meta http-equiv=content-type content=text/html; charset=utf-8
+  titleMesa Release Notes/title
+  link rel=stylesheet type=text/css href=../mesa.css
+/head
+body
+
+div class=header
+  h1The Mesa 3D Graphics Library/h1
+/div
+
+iframe src=../contents.html/iframe
+div class=content
+
+h1Mesa 10.3.2 Release Notes / October 24, 2014/h1
+
+p
+Mesa 10.3.2 is a bug fix release which fixes bugs found since the 10.3 release.
+/p
+p
+Mesa 10.3.2 implements the OpenGL 3.3 API, but the version reported by
+glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
+glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
+Some drivers don't support all the features required in OpenGL 3.3.  OpenGL
+3.3 is strongonly/strong available if requested at context creation
+because compatibility contexts are not supported.
+/p
+
+h2SHA256 checksums/h2
+pre
+TBD
+/pre
+
+h2New features/h2
+pNone/p
+
+h2Bug fixes/h2
+
+pThis list is likely incomplete./p
+
+ul
+
+lia href=https://bugs.freedesktop.org/show_bug.cgi?id=54372;Bug 54372/a 
- GLX_INTEL_swap_event crashes driver when swapping window buffers/li
+
+lia href=https://bugs.freedesktop.org/show_bug.cgi?id=81680;Bug 81680/a 
- [r600g] Firefox crashes with hardware acceleration turned on/li
+
+lia href=https://bugs.freedesktop.org/show_bug.cgi?id=84140;Bug 84140/a 
- mplayer crashes playing some files using vdpau output/li
+
+lia href=https://bugs.freedesktop.org/show_bug.cgi?id=84662;Bug 84662/a 
- Long pauses with Unreal demo Elemental on R9270X since : Always flush the HDP 
cache before submitting a CS to the GPU/li
+
+lia href=https://bugs.freedesktop.org/show_bug.cgi?id=85267;Bug 85267/a 
- vlc crashes with vdpau (Radeon 3850HD) [r600]/li
+
+/ul
+
+h2Changes/h2
+
+pBrian Paul (3):/p
+ul
+  limesa: fix spurious wglGetProcAddress / GL_INVALID_OPERATION error/li
+  list/wgl: add WINAPI qualifiers on wgl function typedefs/li
+  liglsl: fix several use-after-free bugs/li
+/ul
+
+pDaniel Manjarres (1):/p
+ul
+  liglx: Fix glxUseXFont for glxWindow and glxPixmaps/li
+/ul
+
+pDave Airlie (1):/p
+ul
+  limesa: fix GetTexImage for 1D array depth textures/li
+/ul
+
+pEmil Velikov (2):/p
+ul
+  lidocs: Add sha256 sums for the 10.3.1 release/li
+  liUpdate VERSION to 10.3.2/li
+/ul
+
+pIlia Mirkin (4):/p
+ul
+  ligm107/ir: add dnz emission for fmul/li
+  ligk110/ir: add dnz flag emission for fmul/fmad/li
+  linouveau: 3d textures are unsupported, limit 3d levels to 1/li
+  list/gbm: fix order of arguments passed to is_format_supported/li
+/ul
+
+pKenneth Graunke (3):/p
+ul
+  lii965: Add a BRW_MOCS_PTE #define./li
+  lii965: Use BDW_MOCS_PTE for renderbuffers./li
+  lii965: Fix register write checks./li
+/ul
+
+pMarek Olšák (2):/p
+ul
+  list/mesa: use pipe_sampler_view_release for releasing sampler views/li
+  liglsl_to_tgsi: fix the value of gl_FrontFacing with native integers/li
+/ul
+
+pMichel Dänzer (4):/p
+ul
+  liradeonsi: Clear sampler view flags when binding a buffer/li
+  lir600g,radeonsi: Always use GTT again for PIPE_USAGE_STREAM buffers/li
+  liwinsys/radeon: Use separate caching buffer manager for each set of 
flags/li
+  lir600g: Drop references to destroyed blend state/li
+/ul
+
+/div
+/body
+/html

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


Mesa (master): Add release notes for the 10.3.2 release

2014-10-24 Thread Emil Velikov
Module: Mesa
Branch: master
Commit: 95d31ab54c98f3bedaac43e42c43528777162546
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=95d31ab54c98f3bedaac43e42c43528777162546

Author: Emil Velikov emil.l.veli...@gmail.com
Date:   Sat Oct 25 00:33:38 2014 +

Add release notes for the 10.3.2 release

Signed-off-by: Emil Velikov emil.l.veli...@gmail.com
(cherry picked from commit 3b6a4758fa8958db4b76e6d7efccc93b12b1da06)

---

 docs/relnotes/10.3.2.html |  113 +
 1 file changed, 113 insertions(+)

diff --git a/docs/relnotes/10.3.2.html b/docs/relnotes/10.3.2.html
new file mode 100644
index 000..657c0ac
--- /dev/null
+++ b/docs/relnotes/10.3.2.html
@@ -0,0 +1,113 @@
+!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN 
http://www.w3.org/TR/html4/loose.dtd;
+html lang=en
+head
+  meta http-equiv=content-type content=text/html; charset=utf-8
+  titleMesa Release Notes/title
+  link rel=stylesheet type=text/css href=../mesa.css
+/head
+body
+
+div class=header
+  h1The Mesa 3D Graphics Library/h1
+/div
+
+iframe src=../contents.html/iframe
+div class=content
+
+h1Mesa 10.3.2 Release Notes / October 24, 2014/h1
+
+p
+Mesa 10.3.2 is a bug fix release which fixes bugs found since the 10.3 release.
+/p
+p
+Mesa 10.3.2 implements the OpenGL 3.3 API, but the version reported by
+glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
+glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
+Some drivers don't support all the features required in OpenGL 3.3.  OpenGL
+3.3 is strongonly/strong available if requested at context creation
+because compatibility contexts are not supported.
+/p
+
+h2SHA256 checksums/h2
+pre
+TBD
+/pre
+
+h2New features/h2
+pNone/p
+
+h2Bug fixes/h2
+
+pThis list is likely incomplete./p
+
+ul
+
+lia href=https://bugs.freedesktop.org/show_bug.cgi?id=54372;Bug 54372/a 
- GLX_INTEL_swap_event crashes driver when swapping window buffers/li
+
+lia href=https://bugs.freedesktop.org/show_bug.cgi?id=81680;Bug 81680/a 
- [r600g] Firefox crashes with hardware acceleration turned on/li
+
+lia href=https://bugs.freedesktop.org/show_bug.cgi?id=84140;Bug 84140/a 
- mplayer crashes playing some files using vdpau output/li
+
+lia href=https://bugs.freedesktop.org/show_bug.cgi?id=84662;Bug 84662/a 
- Long pauses with Unreal demo Elemental on R9270X since : Always flush the HDP 
cache before submitting a CS to the GPU/li
+
+lia href=https://bugs.freedesktop.org/show_bug.cgi?id=85267;Bug 85267/a 
- vlc crashes with vdpau (Radeon 3850HD) [r600]/li
+
+/ul
+
+h2Changes/h2
+
+pBrian Paul (3):/p
+ul
+  limesa: fix spurious wglGetProcAddress / GL_INVALID_OPERATION error/li
+  list/wgl: add WINAPI qualifiers on wgl function typedefs/li
+  liglsl: fix several use-after-free bugs/li
+/ul
+
+pDaniel Manjarres (1):/p
+ul
+  liglx: Fix glxUseXFont for glxWindow and glxPixmaps/li
+/ul
+
+pDave Airlie (1):/p
+ul
+  limesa: fix GetTexImage for 1D array depth textures/li
+/ul
+
+pEmil Velikov (2):/p
+ul
+  lidocs: Add sha256 sums for the 10.3.1 release/li
+  liUpdate VERSION to 10.3.2/li
+/ul
+
+pIlia Mirkin (4):/p
+ul
+  ligm107/ir: add dnz emission for fmul/li
+  ligk110/ir: add dnz flag emission for fmul/fmad/li
+  linouveau: 3d textures are unsupported, limit 3d levels to 1/li
+  list/gbm: fix order of arguments passed to is_format_supported/li
+/ul
+
+pKenneth Graunke (3):/p
+ul
+  lii965: Add a BRW_MOCS_PTE #define./li
+  lii965: Use BDW_MOCS_PTE for renderbuffers./li
+  lii965: Fix register write checks./li
+/ul
+
+pMarek Olšák (2):/p
+ul
+  list/mesa: use pipe_sampler_view_release for releasing sampler views/li
+  liglsl_to_tgsi: fix the value of gl_FrontFacing with native integers/li
+/ul
+
+pMichel Dänzer (4):/p
+ul
+  liradeonsi: Clear sampler view flags when binding a buffer/li
+  lir600g,radeonsi: Always use GTT again for PIPE_USAGE_STREAM buffers/li
+  liwinsys/radeon: Use separate caching buffer manager for each set of 
flags/li
+  lir600g: Drop references to destroyed blend state/li
+/ul
+
+/div
+/body
+/html

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


Mesa (master): docs: Add sha256 sums for the 10.3.2 release

2014-10-24 Thread Emil Velikov
Module: Mesa
Branch: master
Commit: 95d00f6640516e9b25570758521d70d30c9276f0
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=95d00f6640516e9b25570758521d70d30c9276f0

Author: Emil Velikov emil.l.veli...@gmail.com
Date:   Sat Oct 25 00:43:12 2014 +

docs: Add sha256 sums for the 10.3.2 release

Signed-off-by: Emil Velikov emil.l.veli...@gmail.com
(cherry picked from commit 95994706429e08665d1d33d248c8bcd67d40251e)

---

 docs/relnotes/10.3.2.html |4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/docs/relnotes/10.3.2.html b/docs/relnotes/10.3.2.html
index 657c0ac..4c08f65 100644
--- a/docs/relnotes/10.3.2.html
+++ b/docs/relnotes/10.3.2.html
@@ -30,7 +30,9 @@ because compatibility contexts are not supported.
 
 h2SHA256 checksums/h2
 pre
-TBD
+e65f8e691f06f111c1aeb3a376b13c9cc88cb162bee2709e0e7e6b0e6628ca75  
MesaLib-10.3.2.tar.gz
+e9849bcb9aa9acd98a753d6d46d2e7d7238d3367036e11357a60efd16de8bea3  
MesaLib-10.3.2.tar.bz2
+427dc0d670d38e713ebff2675665ec2fe4ff7d04ce227bd54de946999fc1d234  
MesaLib-10.3.2.zip
 /pre
 
 h2New features/h2

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


Mesa (master): meta: Only use _mesa_ClipControl if the extension is supported

2014-10-24 Thread Ian Romanick
Module: Mesa
Branch: master
Commit: 3e462d9221191dc6862614c1616a33691f67
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3e462d9221191dc6862614c1616a33691f67

Author: Ian Romanick ian.d.roman...@intel.com
Date:   Fri Oct 24 17:59:05 2014 -0700

meta: Only use _mesa_ClipControl if the extension is supported

Fixes many piglit failures on IVB since 85edaa8.

Signed-off-by: Ian Romanick ian.d.roman...@intel.com
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=85425
Reviewed-by: Jason Ekstrand jason.ekstr...@intel.com
Cc: Mathias Fröhlich mathias.froehl...@gmx.net

---

 src/mesa/drivers/common/meta.c |   11 +++
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index 45c50fd..87532c1 100644
--- a/src/mesa/drivers/common/meta.c
+++ b/src/mesa/drivers/common/meta.c
@@ -681,9 +681,11 @@ _mesa_meta_begin(struct gl_context *ctx, GLbitfield state)
  0.0, ctx-DrawBuffer-Height,
  -1.0, 1.0);
 
-  save-ClipOrigin = ctx-Transform.ClipOrigin;
-  save-ClipDepthMode = ctx-Transform.ClipDepthMode;
-  _mesa_ClipControl(GL_LOWER_LEFT, GL_NEGATIVE_ONE_TO_ONE);
+  if (ctx-Extensions.ARB_clip_control) {
+ save-ClipOrigin = ctx-Transform.ClipOrigin;
+ save-ClipDepthMode = ctx-Transform.ClipDepthMode;
+ _mesa_ClipControl(GL_LOWER_LEFT, GL_NEGATIVE_ONE_TO_ONE);
+  }
}
 
if (state  MESA_META_CLIP) {
@@ -1086,7 +1088,8 @@ _mesa_meta_end(struct gl_context *ctx)
 
   _mesa_MatrixMode(save-MatrixMode);
 
-  _mesa_ClipControl(save-ClipOrigin, save-ClipDepthMode);
+  if (ctx-Extensions.ARB_clip_control)
+ _mesa_ClipControl(save-ClipOrigin, save-ClipDepthMode);
}
 
if (state  MESA_META_CLIP) {

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


Mesa (master): i965: Remove brw_new_shader_program

2014-10-24 Thread Ian Romanick
Module: Mesa
Branch: master
Commit: a2dc16ed81e053eea9d74a6c0105ef1e4e3e0428
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a2dc16ed81e053eea9d74a6c0105ef1e4e3e0428

Author: Ian Romanick ian.d.roman...@intel.com
Date:   Mon Oct 20 15:26:42 2014 -0700

i965: Remove brw_new_shader_program

It was identical to the default implementation in
_mesa_new_shader_program.

Signed-off-by: Ian Romanick ian.d.roman...@intel.com
Reviewed-by: Brian Paul bri...@vmware.com
Reviewed-by: Matt Turner matts...@gmail.com
Reviewed-by: Kenneth Graunke kenn...@whitecape.org

---

 src/mesa/drivers/dri/i965/brw_program.c  |1 -
 src/mesa/drivers/dri/i965/brw_shader.cpp |   11 ---
 src/mesa/drivers/dri/i965/brw_wm.h   |1 -
 3 files changed, 13 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_program.c 
b/src/mesa/drivers/dri/i965/brw_program.c
index b37da4e..e56ece0 100644
--- a/src/mesa/drivers/dri/i965/brw_program.c
+++ b/src/mesa/drivers/dri/i965/brw_program.c
@@ -237,7 +237,6 @@ void brwInitFragProgFuncs( struct dd_function_table 
*functions )
functions-ProgramStringNotify = brwProgramStringNotify;
 
functions-NewShader = brw_new_shader;
-   functions-NewShaderProgram = brw_new_shader_program;
functions-LinkShader = brw_link_shader;
 }
 
diff --git a/src/mesa/drivers/dri/i965/brw_shader.cpp 
b/src/mesa/drivers/dri/i965/brw_shader.cpp
index 935514c..21dcf2d 100644
--- a/src/mesa/drivers/dri/i965/brw_shader.cpp
+++ b/src/mesa/drivers/dri/i965/brw_shader.cpp
@@ -49,17 +49,6 @@ brw_new_shader(struct gl_context *ctx, GLuint name, GLuint 
type)
return shader-base;
 }
 
-struct gl_shader_program *
-brw_new_shader_program(struct gl_context *ctx, GLuint name)
-{
-   struct gl_shader_program *prog = rzalloc(NULL, struct gl_shader_program);
-   if (prog) {
-  prog-Name = name;
-  _mesa_init_shader_program(ctx, prog);
-   }
-   return prog;
-}
-
 /**
  * Performs a compile of the shader stages even when we don't know
  * what non-orthogonal state will be set, in the hope that it reflects
diff --git a/src/mesa/drivers/dri/i965/brw_wm.h 
b/src/mesa/drivers/dri/i965/brw_wm.h
index 77a3644..0e0039b 100644
--- a/src/mesa/drivers/dri/i965/brw_wm.h
+++ b/src/mesa/drivers/dri/i965/brw_wm.h
@@ -96,7 +96,6 @@ const unsigned *brw_wm_fs_emit(struct brw_context *brw,
 
 GLboolean brw_link_shader(struct gl_context *ctx, struct gl_shader_program 
*prog);
 struct gl_shader *brw_new_shader(struct gl_context *ctx, GLuint name, GLuint 
type);
-struct gl_shader_program *brw_new_shader_program(struct gl_context *ctx, 
GLuint name);
 
 bool brw_color_buffer_write_enabled(struct brw_context *brw);
 bool do_wm_prog(struct brw_context *brw,

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


Mesa (master): i965: Silence unused parameter warning in brw_dump_ir

2014-10-24 Thread Ian Romanick
Module: Mesa
Branch: master
Commit: 7d560a3861ff30aa9d8ec872cf9cd7d72a980eb2
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=7d560a3861ff30aa9d8ec872cf9cd7d72a980eb2

Author: Ian Romanick ian.d.roman...@intel.com
Date:   Mon Oct 20 15:50:36 2014 -0700

i965: Silence unused parameter warning in brw_dump_ir

Just remove the parameter.  Silences:

brw_program.c: In function 'brw_dump_ir':
brw_program.c:566:33: warning: unused parameter 'brw' [-Wunused-parameter]

Signed-off-by: Ian Romanick ian.d.roman...@intel.com
Reviewed-by: Brian Paul bri...@vmware.com
Reviewed-by: Matt Turner matts...@gmail.com
Reviewed-by: Kenneth Graunke kenn...@whitecape.org

---

 src/mesa/drivers/dri/i965/brw_fs.cpp  |2 +-
 src/mesa/drivers/dri/i965/brw_program.c   |3 +--
 src/mesa/drivers/dri/i965/brw_program.h   |3 +--
 src/mesa/drivers/dri/i965/brw_vec4.cpp|2 +-
 src/mesa/drivers/dri/i965/brw_vec4_gs_visitor.cpp |2 +-
 5 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp 
b/src/mesa/drivers/dri/i965/brw_fs.cpp
index 983e8db..aa1d8d2 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -3697,7 +3697,7 @@ brw_wm_fs_emit(struct brw_context *brw,
   shader = (brw_shader *) prog-_LinkedShaders[MESA_SHADER_FRAGMENT];
 
if (unlikely(INTEL_DEBUG  DEBUG_WM))
-  brw_dump_ir(brw, fragment, prog, shader-base, fp-Base);
+  brw_dump_ir(fragment, prog, shader-base, fp-Base);
 
/* Now the main event: Visit the shader IR and generate our FS IR for it.
 */
diff --git a/src/mesa/drivers/dri/i965/brw_program.c 
b/src/mesa/drivers/dri/i965/brw_program.c
index ed117dd..17edb09 100644
--- a/src/mesa/drivers/dri/i965/brw_program.c
+++ b/src/mesa/drivers/dri/i965/brw_program.c
@@ -555,8 +555,7 @@ brw_stage_prog_data_free(const void *p)
 }
 
 void
-brw_dump_ir(struct brw_context *brw, const char *stage,
-struct gl_shader_program *shader_prog,
+brw_dump_ir(const char *stage, struct gl_shader_program *shader_prog,
 struct gl_shader *shader, struct gl_program *prog)
 {
if (shader_prog) {
diff --git a/src/mesa/drivers/dri/i965/brw_program.h 
b/src/mesa/drivers/dri/i965/brw_program.h
index a8650c3..672777f 100644
--- a/src/mesa/drivers/dri/i965/brw_program.h
+++ b/src/mesa/drivers/dri/i965/brw_program.h
@@ -82,8 +82,7 @@ void
 brw_stage_prog_data_free(const void *prog_data);
 
 void
-brw_dump_ir(struct brw_context *brw, const char *stage,
-struct gl_shader_program *shader_prog,
+brw_dump_ir(const char *stage, struct gl_shader_program *shader_prog,
 struct gl_shader *shader, struct gl_program *prog);
 
 #ifdef __cplusplus
diff --git a/src/mesa/drivers/dri/i965/brw_vec4.cpp 
b/src/mesa/drivers/dri/i965/brw_vec4.cpp
index 46aa7d5..df589b8 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp
@@ -1875,7 +1875,7 @@ brw_vs_emit(struct brw_context *brw,
   shader = (brw_shader *) prog-_LinkedShaders[MESA_SHADER_VERTEX];
 
if (unlikely(INTEL_DEBUG  DEBUG_VS))
-  brw_dump_ir(brw, vertex, prog, shader-base, c-vp-program.Base);
+  brw_dump_ir(vertex, prog, shader-base, c-vp-program.Base);
 
vec4_vs_visitor v(brw, c, prog_data, prog, mem_ctx);
if (!v.run()) {
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_gs_visitor.cpp 
b/src/mesa/drivers/dri/i965/brw_vec4_gs_visitor.cpp
index c569e0a..db0e6cc 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_gs_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_gs_visitor.cpp
@@ -632,7 +632,7 @@ brw_gs_emit(struct brw_context *brw,
   struct brw_shader *shader =
  (brw_shader *) prog-_LinkedShaders[MESA_SHADER_GEOMETRY];
 
-  brw_dump_ir(brw, geometry, prog, shader-base, NULL);
+  brw_dump_ir(geometry, prog, shader-base, NULL);
}
 
if (brw-gen = 7) {

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


Mesa (master): mesa: Add some missing clean-up to _mesa_clear_shader_program_data

2014-10-24 Thread Ian Romanick
Module: Mesa
Branch: master
Commit: 7cbcff06069ad88962115b8b5030e08c74f208cf
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=7cbcff06069ad88962115b8b5030e08c74f208cf

Author: Ian Romanick ian.d.roman...@intel.com
Date:   Mon Oct 20 14:35:01 2014 -0700

mesa: Add some missing clean-up to _mesa_clear_shader_program_data

All of this is already done in link_shaders.  More clean-ups coming.

Signed-off-by: Ian Romanick ian.d.roman...@intel.com
Reviewed-by: Brian Paul bri...@vmware.com
Reviewed-by: Matt Turner matts...@gmail.com
Reviewed-by: Kenneth Graunke kenn...@whitecape.org

---

 src/mesa/main/shaderobj.c |   15 ++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/mesa/main/shaderobj.c b/src/mesa/main/shaderobj.c
index 693e9a2..785baa2 100644
--- a/src/mesa/main/shaderobj.c
+++ b/src/mesa/main/shaderobj.c
@@ -280,8 +280,9 @@ void
 _mesa_clear_shader_program_data(struct gl_context *ctx,
 struct gl_shader_program *shProg)
 {
+   unsigned i;
+
if (shProg-UniformStorage) {
-  unsigned i;
   for (i = 0; i  shProg-NumUserUniformStorage; ++i)
  _mesa_uniform_detach_all_driver_storage(shProg-UniformStorage[i]);
   ralloc_free(shProg-UniformStorage);
@@ -303,6 +304,18 @@ _mesa_clear_shader_program_data(struct gl_context *ctx,
assert(shProg-InfoLog != NULL);
ralloc_free(shProg-InfoLog);
shProg-InfoLog = ralloc_strdup(shProg, );
+
+   ralloc_free(shProg-UniformBlocks);
+   shProg-UniformBlocks = NULL;
+   shProg-NumUniformBlocks = 0;
+   for (i = 0; i  MESA_SHADER_STAGES; i++) {
+  ralloc_free(shProg-UniformBlockStageIndex[i]);
+  shProg-UniformBlockStageIndex[i] = NULL;
+   }
+
+   ralloc_free(shProg-AtomicBuffers);
+   shProg-AtomicBuffers = NULL;
+   shProg-NumAtomicBuffers = 0;
 }
 
 

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


Mesa (master): mesa: Silence unused parameter warning in _mesa_clear_shader_program_data

2014-10-24 Thread Ian Romanick
Module: Mesa
Branch: master
Commit: 9cdf2f78fc123b9bfd2ff23f6d5cd4e834596c2b
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=9cdf2f78fc123b9bfd2ff23f6d5cd4e834596c2b

Author: Ian Romanick ian.d.roman...@intel.com
Date:   Mon Oct 20 14:50:55 2014 -0700

mesa: Silence unused parameter warning in _mesa_clear_shader_program_data

Just remove the parameter.

Signed-off-by: Ian Romanick ian.d.roman...@intel.com
Reviewed-by: Brian Paul bri...@vmware.com
Reviewed-by: Matt Turner matts...@gmail.com
Reviewed-by: Kenneth Graunke kenn...@whitecape.org

---

 src/glsl/main.cpp   |2 +-
 src/glsl/standalone_scaffolding.cpp |3 +--
 src/glsl/standalone_scaffolding.h   |3 +--
 src/mesa/main/shaderobj.c   |5 ++---
 src/mesa/main/shaderobj.h   |3 +--
 src/mesa/program/ir_to_mesa.cpp |2 +-
 6 files changed, 7 insertions(+), 11 deletions(-)

diff --git a/src/glsl/main.cpp b/src/glsl/main.cpp
index 96d3915..9b36a1f 100644
--- a/src/glsl/main.cpp
+++ b/src/glsl/main.cpp
@@ -403,7 +403,7 @@ main(int argc, char **argv)
}
 
if ((status == EXIT_SUCCESS)  do_link)  {
-  _mesa_clear_shader_program_data(ctx, whole_program);
+  _mesa_clear_shader_program_data(whole_program);
 
   link_shaders(ctx, whole_program);
   status = (whole_program-LinkStatus) ? EXIT_SUCCESS : EXIT_FAILURE;
diff --git a/src/glsl/standalone_scaffolding.cpp 
b/src/glsl/standalone_scaffolding.cpp
index a635c96..67b0d0c 100644
--- a/src/glsl/standalone_scaffolding.cpp
+++ b/src/glsl/standalone_scaffolding.cpp
@@ -84,8 +84,7 @@ _mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum 
type)
 }
 
 void
-_mesa_clear_shader_program_data(struct gl_context *ctx,
-struct gl_shader_program *shProg)
+_mesa_clear_shader_program_data(struct gl_shader_program *shProg)
 {
unsigned i;
 
diff --git a/src/glsl/standalone_scaffolding.h 
b/src/glsl/standalone_scaffolding.h
index b805f40..895dd27 100644
--- a/src/glsl/standalone_scaffolding.h
+++ b/src/glsl/standalone_scaffolding.h
@@ -45,8 +45,7 @@ extern C struct gl_shader *
 _mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum type);
 
 extern C void
-_mesa_clear_shader_program_data(struct gl_context *,
-struct gl_shader_program *);
+_mesa_clear_shader_program_data(struct gl_shader_program *);
 
 extern C void
 _mesa_shader_debug(struct gl_context *ctx, GLenum type, GLuint *id,
diff --git a/src/mesa/main/shaderobj.c b/src/mesa/main/shaderobj.c
index 785baa2..15c736e 100644
--- a/src/mesa/main/shaderobj.c
+++ b/src/mesa/main/shaderobj.c
@@ -277,8 +277,7 @@ _mesa_new_shader_program(struct gl_context *ctx, GLuint 
name)
  * Clear (free) the shader program state that gets produced by linking.
  */
 void
-_mesa_clear_shader_program_data(struct gl_context *ctx,
-struct gl_shader_program *shProg)
+_mesa_clear_shader_program_data(struct gl_shader_program *shProg)
 {
unsigned i;
 
@@ -332,7 +331,7 @@ _mesa_free_shader_program_data(struct gl_context *ctx,
 
assert(shProg-Type == GL_SHADER_PROGRAM_MESA);
 
-   _mesa_clear_shader_program_data(ctx, shProg);
+   _mesa_clear_shader_program_data(shProg);
 
if (shProg-AttributeBindings) {
   string_to_uint_map_dtor(shProg-AttributeBindings);
diff --git a/src/mesa/main/shaderobj.h b/src/mesa/main/shaderobj.h
index d72919c..be1e44e 100644
--- a/src/mesa/main/shaderobj.h
+++ b/src/mesa/main/shaderobj.h
@@ -82,8 +82,7 @@ _mesa_lookup_shader_program_err(struct gl_context *ctx, 
GLuint name,
 const char *caller);
 
 extern void
-_mesa_clear_shader_program_data(struct gl_context *ctx,
-struct gl_shader_program *shProg);
+_mesa_clear_shader_program_data(struct gl_shader_program *shProg);
 
 extern void
 _mesa_free_shader_program_data(struct gl_context *ctx,
diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp
index b3e04d7..5cd9058 100644
--- a/src/mesa/program/ir_to_mesa.cpp
+++ b/src/mesa/program/ir_to_mesa.cpp
@@ -3020,7 +3020,7 @@ _mesa_glsl_link_shader(struct gl_context *ctx, struct 
gl_shader_program *prog)
 {
unsigned int i;
 
-   _mesa_clear_shader_program_data(ctx, prog);
+   _mesa_clear_shader_program_data(prog);
 
prog-LinkStatus = GL_TRUE;
 

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


Mesa (master): mesa: Remove context parameter from _mesa_init_shader_program

2014-10-24 Thread Ian Romanick
Module: Mesa
Branch: master
Commit: cfe195f9016be08cdb6b81a0361e7aa7c9f87c56
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=cfe195f9016be08cdb6b81a0361e7aa7c9f87c56

Author: Ian Romanick ian.d.roman...@intel.com
Date:   Mon Oct 20 15:03:06 2014 -0700

mesa: Remove context parameter from _mesa_init_shader_program

Silences:

../../src/mesa/main/shaderobj.c: In function '_mesa_init_shader_program':
../../src/mesa/main/shaderobj.c:239:46: warning: unused parameter 'ctx' 
[-Wunused-parameter]

For now, this adds a couple other unused parameter warnings, but future
patches will clean those up.

Signed-off-by: Ian Romanick ian.d.roman...@intel.com
Reviewed-by: Brian Paul bri...@vmware.com
Reviewed-by: Matt Turner matts...@gmail.com
Reviewed-by: Kenneth Graunke kenn...@whitecape.org

---

 src/mesa/main/shaderobj.c |4 ++--
 src/mesa/main/shaderobj.h |2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/mesa/main/shaderobj.c b/src/mesa/main/shaderobj.c
index 15c736e..e703d42 100644
--- a/src/mesa/main/shaderobj.c
+++ b/src/mesa/main/shaderobj.c
@@ -236,7 +236,7 @@ _mesa_reference_shader_program(struct gl_context *ctx,
 }
 
 void
-_mesa_init_shader_program(struct gl_context *ctx, struct gl_shader_program 
*prog)
+_mesa_init_shader_program(struct gl_shader_program *prog)
 {
prog-Type = GL_SHADER_PROGRAM_MESA;
prog-RefCount = 1;
@@ -267,7 +267,7 @@ _mesa_new_shader_program(struct gl_context *ctx, GLuint 
name)
shProg = rzalloc(NULL, struct gl_shader_program);
if (shProg) {
   shProg-Name = name;
-  _mesa_init_shader_program(ctx, shProg);
+  _mesa_init_shader_program(shProg);
}
return shProg;
 }
diff --git a/src/mesa/main/shaderobj.h b/src/mesa/main/shaderobj.h
index be1e44e..6285941 100644
--- a/src/mesa/main/shaderobj.h
+++ b/src/mesa/main/shaderobj.h
@@ -72,7 +72,7 @@ extern struct gl_shader *
 _mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum type);
 
 extern void
-_mesa_init_shader_program(struct gl_context *ctx, struct gl_shader_program 
*prog);
+_mesa_init_shader_program(struct gl_shader_program *prog);
 
 extern struct gl_shader_program *
 _mesa_lookup_shader_program(struct gl_context *ctx, GLuint name);

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


Mesa (master): mesa: Remove prototypes for nonexistent functions

2014-10-24 Thread Ian Romanick
Module: Mesa
Branch: master
Commit: a3bfc7d313703b2a308645310f4adcaa24be014d
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a3bfc7d313703b2a308645310f4adcaa24be014d

Author: Ian Romanick ian.d.roman...@intel.com
Date:   Mon Oct 20 17:43:08 2014 -0700

mesa: Remove prototypes for nonexistent functions

_mesa_UseShaderProgramEXT, _mesa_ActiveProgramEXT, and
_mesa_CreateShaderProgramEXT were all removed when support for
GL_EXT_separate_shader_objects was removed.

Signed-off-by: Ian Romanick ian.d.roman...@intel.com
Reviewed-by: Brian Paul bri...@vmware.com
Reviewed-by: Matt Turner matts...@gmail.com
Reviewed-by: Kenneth Graunke kenn...@whitecape.org

---

 src/mesa/main/shaderapi.h |9 -
 1 file changed, 9 deletions(-)

diff --git a/src/mesa/main/shaderapi.h b/src/mesa/main/shaderapi.h
index 17b05b3..047d256 100644
--- a/src/mesa/main/shaderapi.h
+++ b/src/mesa/main/shaderapi.h
@@ -205,15 +205,6 @@ _mesa_use_shader_program(struct gl_context *ctx, GLenum 
type,
  struct gl_shader_program *shProg,
  struct gl_pipeline_object *shTarget);
 
-extern void GLAPIENTRY
-_mesa_UseShaderProgramEXT(GLenum type, GLuint program);
-
-extern void GLAPIENTRY
-_mesa_ActiveProgramEXT(GLuint program);
-
-extern GLuint GLAPIENTRY
-_mesa_CreateShaderProgramEXT(GLenum type, const GLchar *string);
-
 extern void
 _mesa_copy_linked_program_data(gl_shader_stage type,
const struct gl_shader_program *src,

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


Mesa (master): ff_fragment_shader: Silence unused parameter warning in smear

2014-10-24 Thread Ian Romanick
Module: Mesa
Branch: master
Commit: 1ac924a77d9bed20efd0241c6712043e07d9b268
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=1ac924a77d9bed20efd0241c6712043e07d9b268

Author: Ian Romanick ian.d.roman...@intel.com
Date:   Thu Oct 23 09:20:26 2014 -0700

ff_fragment_shader: Silence unused parameter warning in smear

Just remove the parameter.  Silences:

../../src/mesa/main/ff_fragment_shader.cpp:668:1: warning: unused parameter 'p' 
[-Wunused-parameter]

Signed-off-by: Ian Romanick ian.d.roman...@intel.com
Reviewed-by: Brian Paul bri...@vmware.com
Reviewed-by: Matt Turner matts...@gmail.com
Reviewed-by: Kenneth Graunke kenn...@whitecape.org

---

 src/mesa/main/ff_fragment_shader.cpp |   12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/mesa/main/ff_fragment_shader.cpp 
b/src/mesa/main/ff_fragment_shader.cpp
index 9bb706c..e31a145 100644
--- a/src/mesa/main/ff_fragment_shader.cpp
+++ b/src/mesa/main/ff_fragment_shader.cpp
@@ -665,7 +665,7 @@ static GLboolean args_match( const struct state_key *key, 
GLuint unit )
 }
 
 static ir_rvalue *
-smear(texenv_fragment_program *p, ir_rvalue *val)
+smear(ir_rvalue *val)
 {
if (!val-type-is_scalar())
   return val;
@@ -722,7 +722,7 @@ emit_combine(texenv_fragment_program *p,
   tmp1 = mul(src[1], new(p-mem_ctx) ir_constant(2.0f));
   tmp1 = add(tmp1, new(p-mem_ctx) ir_constant(-1.0f));
 
-  return dot(swizzle_xyz(smear(p, tmp0)), swizzle_xyz(smear(p, tmp1)));
+  return dot(swizzle_xyz(smear(tmp0)), swizzle_xyz(smear(tmp1)));
}
case MODE_MODULATE_ADD_ATI:
   return add(mul(src[0], src[2]), src[1]);
@@ -804,7 +804,7 @@ emit_texenv(texenv_fragment_program *p, GLuint unit)
 key-unit[unit].NumArgsRGB,
 key-unit[unit].ModeRGB,
 key-unit[unit].OptRGB);
-  val = smear(p, val);
+  val = smear(val);
   if (rgb_saturate)
 val = saturate(val);
 
@@ -816,7 +816,7 @@ emit_texenv(texenv_fragment_program *p, GLuint unit)
key-unit[unit].NumArgsRGB,
key-unit[unit].ModeRGB,
key-unit[unit].OptRGB);
-  val = smear(p, val);
+  val = smear(val);
   if (rgb_saturate)
 val = saturate(val);
   p-emit(assign(temp_var, val));
@@ -829,7 +829,7 @@ emit_texenv(texenv_fragment_program *p, GLuint unit)
 key-unit[unit].NumArgsRGB,
 key-unit[unit].ModeRGB,
 key-unit[unit].OptRGB);
-  val = swizzle_xyz(smear(p, val));
+  val = swizzle_xyz(smear(val));
   if (rgb_saturate)
 val = saturate(val);
   p-emit(assign(temp_var, val, WRITEMASK_XYZ));
@@ -838,7 +838,7 @@ emit_texenv(texenv_fragment_program *p, GLuint unit)
 key-unit[unit].NumArgsA,
 key-unit[unit].ModeA,
 key-unit[unit].OptA);
-  val = swizzle_w(smear(p, val));
+  val = swizzle_w(smear(val));
   if (alpha_saturate)
 val = saturate(val);
   p-emit(assign(temp_var, val, WRITEMASK_W));

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


Mesa (master): linker: Rely on _mesa_clear_shader_program_data to clear link information

2014-10-24 Thread Ian Romanick
Module: Mesa
Branch: master
Commit: fefead3b63584603278b3388cc9c426a8a44e92c
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=fefead3b63584603278b3388cc9c426a8a44e92c

Author: Ian Romanick ian.d.roman...@intel.com
Date:   Mon Oct 20 14:40:34 2014 -0700

linker: Rely on _mesa_clear_shader_program_data to clear link information

_mesa_link_shader_program already calls _mesa_clear_shader_program_data
before calling link_shaders, so this is already done.

Signed-off-by: Ian Romanick ian.d.roman...@intel.com
Reviewed-by: Matt Turner matts...@gmail.com

---

 src/glsl/linker.cpp |   14 --
 src/glsl/main.cpp   |2 ++
 src/glsl/standalone_scaffolding.cpp |   28 
 src/glsl/standalone_scaffolding.h   |4 
 4 files changed, 34 insertions(+), 14 deletions(-)

diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
index 47a722d..b0d2e6e 100644
--- a/src/glsl/linker.cpp
+++ b/src/glsl/linker.cpp
@@ -2484,20 +2484,6 @@ link_shaders(struct gl_context *ctx, struct 
gl_shader_program *prog)
prog-Validated = false;
prog-_Used = false;
 
-   ralloc_free(prog-InfoLog);
-   prog-InfoLog = ralloc_strdup(NULL, );
-
-   ralloc_free(prog-UniformBlocks);
-   prog-UniformBlocks = NULL;
-   prog-NumUniformBlocks = 0;
-   for (int i = 0; i  MESA_SHADER_STAGES; i++) {
-  ralloc_free(prog-UniformBlockStageIndex[i]);
-  prog-UniformBlockStageIndex[i] = NULL;
-   }
-
-   ralloc_free(prog-AtomicBuffers);
-   prog-AtomicBuffers = NULL;
-   prog-NumAtomicBuffers = 0;
prog-ARB_fragment_coord_conventions_enable = false;
 
/* Separate the shaders into groups based on their type.
diff --git a/src/glsl/main.cpp b/src/glsl/main.cpp
index feed100..96d3915 100644
--- a/src/glsl/main.cpp
+++ b/src/glsl/main.cpp
@@ -403,6 +403,8 @@ main(int argc, char **argv)
}
 
if ((status == EXIT_SUCCESS)  do_link)  {
+  _mesa_clear_shader_program_data(ctx, whole_program);
+
   link_shaders(ctx, whole_program);
   status = (whole_program-LinkStatus) ? EXIT_SUCCESS : EXIT_FAILURE;
 
diff --git a/src/glsl/standalone_scaffolding.cpp 
b/src/glsl/standalone_scaffolding.cpp
index 2b76dd1..a635c96 100644
--- a/src/glsl/standalone_scaffolding.cpp
+++ b/src/glsl/standalone_scaffolding.cpp
@@ -83,6 +83,34 @@ _mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum 
type)
return shader;
 }
 
+void
+_mesa_clear_shader_program_data(struct gl_context *ctx,
+struct gl_shader_program *shProg)
+{
+   unsigned i;
+
+   shProg-NumUserUniformStorage = 0;
+   shProg-UniformStorage = NULL;
+   shProg-NumUniformRemapTable = 0;
+   shProg-UniformRemapTable = NULL;
+   shProg-UniformHash = NULL;
+
+   ralloc_free(shProg-InfoLog);
+   shProg-InfoLog = ralloc_strdup(shProg, );
+
+   ralloc_free(shProg-UniformBlocks);
+   shProg-UniformBlocks = NULL;
+   shProg-NumUniformBlocks = 0;
+   for (i = 0; i  MESA_SHADER_STAGES; i++) {
+  ralloc_free(shProg-UniformBlockStageIndex[i]);
+  shProg-UniformBlockStageIndex[i] = NULL;
+   }
+
+   ralloc_free(shProg-AtomicBuffers);
+   shProg-AtomicBuffers = NULL;
+   shProg-NumAtomicBuffers = 0;
+}
+
 void initialize_context_to_defaults(struct gl_context *ctx, gl_api api)
 {
memset(ctx, 0, sizeof(*ctx));
diff --git a/src/glsl/standalone_scaffolding.h 
b/src/glsl/standalone_scaffolding.h
index df783af..b805f40 100644
--- a/src/glsl/standalone_scaffolding.h
+++ b/src/glsl/standalone_scaffolding.h
@@ -45,6 +45,10 @@ extern C struct gl_shader *
 _mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum type);
 
 extern C void
+_mesa_clear_shader_program_data(struct gl_context *,
+struct gl_shader_program *);
+
+extern C void
 _mesa_shader_debug(struct gl_context *ctx, GLenum type, GLuint *id,
const char *msg, int len);
 

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


Mesa (master): mesa: Silence unused parameter warning in _mesa_init_shader_program

2014-10-24 Thread Ian Romanick
Module: Mesa
Branch: master
Commit: 66d950464c40ea53b8a5a87241c9ade0116e1f91
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=66d950464c40ea53b8a5a87241c9ade0116e1f91

Author: Ian Romanick ian.d.roman...@intel.com
Date:   Mon Oct 20 14:54:44 2014 -0700

mesa: Silence unused parameter warning in _mesa_init_shader_program

Just remove the parameter.  Silences:

../../src/mesa/main/uniform_query.cpp:1062:1: warning: unused parameter 'ctx' 
[-Wunused-parameter]

Signed-off-by: Ian Romanick ian.d.roman...@intel.com
Reviewed-by: Brian Paul bri...@vmware.com
Reviewed-by: Matt Turner matts...@gmail.com
Reviewed-by: Kenneth Graunke kenn...@whitecape.org

---

 src/mesa/main/uniform_query.cpp |3 +--
 src/mesa/main/uniforms.c|8 
 src/mesa/main/uniforms.h|2 +-
 3 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/src/mesa/main/uniform_query.cpp b/src/mesa/main/uniform_query.cpp
index db97d3d..fcb14c4 100644
--- a/src/mesa/main/uniform_query.cpp
+++ b/src/mesa/main/uniform_query.cpp
@@ -973,8 +973,7 @@ _mesa_uniform_matrix(struct gl_context *ctx, struct 
gl_shader_program *shProg,
  * array offset in *offset, or GL_INVALID_INDEX (-1).
  */
 extern C unsigned
-_mesa_get_uniform_location(struct gl_context *ctx,
-   struct gl_shader_program *shProg,
+_mesa_get_uniform_location(struct gl_shader_program *shProg,
const GLchar *name,
unsigned *out_offset)
 {
diff --git a/src/mesa/main/uniforms.c b/src/mesa/main/uniforms.c
index 598b4d4..c307107 100644
--- a/src/mesa/main/uniforms.c
+++ b/src/mesa/main/uniforms.c
@@ -931,7 +931,7 @@ _mesa_GetUniformLocation(GLuint programObj, const GLcharARB 
*name)
   return -1;
}
 
-   index = _mesa_get_uniform_location(ctx, shProg, name, offset);
+   index = _mesa_get_uniform_location(shProg, name, offset);
if (index == GL_INVALID_INDEX)
   return -1;
 
@@ -1004,7 +1004,7 @@ _mesa_GetUniformIndices(GLuint program,
 
for (i = 0; i  uniformCount; i++) {
   unsigned offset;
-  uniformIndices[i] = _mesa_get_uniform_location(ctx, shProg,
+  uniformIndices[i] = _mesa_get_uniform_location(shProg,
 uniformNames[i], offset);
}
 }
@@ -1110,7 +1110,7 @@ _mesa_GetActiveUniformBlockiv(GLuint program,
   for (i = 0; i  block-NumUniforms; i++) {
 unsigned offset;
  const int idx =
-_mesa_get_uniform_location(ctx, shProg,
+_mesa_get_uniform_location(shProg,
block-Uniforms[i].IndexName,
offset);
  if (idx != -1)
@@ -1127,7 +1127,7 @@ _mesa_GetActiveUniformBlockiv(GLuint program,
   for (i = 0; i  block-NumUniforms; i++) {
 unsigned offset;
  const int idx =
-_mesa_get_uniform_location(ctx, shProg,
+_mesa_get_uniform_location(shProg,
block-Uniforms[i].IndexName,
offset);
 
diff --git a/src/mesa/main/uniforms.h b/src/mesa/main/uniforms.h
index e7a370e..6575a52 100644
--- a/src/mesa/main/uniforms.h
+++ b/src/mesa/main/uniforms.h
@@ -259,7 +259,7 @@ _mesa_parse_program_resource_name(const GLchar *name,
   const GLchar **out_base_name_end);
 
 unsigned
-_mesa_get_uniform_location(struct gl_context *ctx, struct gl_shader_program 
*shProg,
+_mesa_get_uniform_location(struct gl_shader_program *shProg,
   const GLchar *name, unsigned *offset);
 
 void

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


Mesa (master): mesa: Make _mesa_init_shader_program static

2014-10-24 Thread Ian Romanick
Module: Mesa
Branch: master
Commit: c76cc7bab09acec070117e432069ced04b4d6fa3
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c76cc7bab09acec070117e432069ced04b4d6fa3

Author: Ian Romanick ian.d.roman...@intel.com
Date:   Mon Oct 20 16:11:38 2014 -0700

mesa: Make _mesa_init_shader_program static

Since a couple commits ago, there is only one caller, and that caller is
in the same file.

Signed-off-by: Ian Romanick ian.d.roman...@intel.com
Reviewed-by: Brian Paul bri...@vmware.com
Reviewed-by: Matt Turner matts...@gmail.com
Reviewed-by: Kenneth Graunke kenn...@whitecape.org

---

 src/mesa/main/shaderobj.c |6 +++---
 src/mesa/main/shaderobj.h |3 ---
 2 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/src/mesa/main/shaderobj.c b/src/mesa/main/shaderobj.c
index e703d42..ce9aa09 100644
--- a/src/mesa/main/shaderobj.c
+++ b/src/mesa/main/shaderobj.c
@@ -235,8 +235,8 @@ _mesa_reference_shader_program(struct gl_context *ctx,
}
 }
 
-void
-_mesa_init_shader_program(struct gl_shader_program *prog)
+static void
+init_shader_program(struct gl_shader_program *prog)
 {
prog-Type = GL_SHADER_PROGRAM_MESA;
prog-RefCount = 1;
@@ -267,7 +267,7 @@ _mesa_new_shader_program(struct gl_context *ctx, GLuint 
name)
shProg = rzalloc(NULL, struct gl_shader_program);
if (shProg) {
   shProg-Name = name;
-  _mesa_init_shader_program(shProg);
+  init_shader_program(shProg);
}
return shProg;
 }
diff --git a/src/mesa/main/shaderobj.h b/src/mesa/main/shaderobj.h
index 6285941..05ddfeb 100644
--- a/src/mesa/main/shaderobj.h
+++ b/src/mesa/main/shaderobj.h
@@ -71,9 +71,6 @@ _mesa_init_shader(struct gl_context *ctx, struct gl_shader 
*shader);
 extern struct gl_shader *
 _mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum type);
 
-extern void
-_mesa_init_shader_program(struct gl_shader_program *prog);
-
 extern struct gl_shader_program *
 _mesa_lookup_shader_program(struct gl_context *ctx, GLuint name);
 

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


Mesa (master): glsl_to_tgsi: Remove st_new_shader

2014-10-24 Thread Ian Romanick
Module: Mesa
Branch: master
Commit: edcba62655635e0c1d355e5e3f7c24e895d34005
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=edcba62655635e0c1d355e5e3f7c24e895d34005

Author: Ian Romanick ian.d.roman...@intel.com
Date:   Mon Oct 20 15:35:46 2014 -0700

glsl_to_tgsi: Remove st_new_shader

It was identical to the default implementation in _mesa_new_shader.

Signed-off-by: Ian Romanick ian.d.roman...@intel.com
Reviewed-by: Brian Paul bri...@vmware.com
Reviewed-by: Matt Turner matts...@gmail.com
Reviewed-by: Kenneth Graunke kenn...@whitecape.org
Reviewed-by: Marek Olšák marek.ol...@amd.com
Cc: Dave Airlie airl...@redhat.com

---

 src/mesa/state_tracker/st_cb_program.c |1 -
 src/mesa/state_tracker/st_glsl_to_tgsi.cpp |   16 
 src/mesa/state_tracker/st_glsl_to_tgsi.h   |2 --
 3 files changed, 19 deletions(-)

diff --git a/src/mesa/state_tracker/st_cb_program.c 
b/src/mesa/state_tracker/st_cb_program.c
index 9992bbb..faff9c4 100644
--- a/src/mesa/state_tracker/st_cb_program.c
+++ b/src/mesa/state_tracker/st_cb_program.c
@@ -242,6 +242,5 @@ st_init_program_functions(struct dd_function_table 
*functions)
functions-IsProgramNative = st_is_program_native;
functions-ProgramStringNotify = st_program_string_notify;

-   functions-NewShader = st_new_shader;
functions-LinkShader = st_link_shader;
 }
diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp 
b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index b0cb171..a4e2c8d 100644
--- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
+++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
@@ -5331,22 +5331,6 @@ get_mesa_program(struct gl_context *ctx,
 
 extern C {
 
-struct gl_shader *
-st_new_shader(struct gl_context *ctx, GLuint name, GLuint type)
-{
-   struct gl_shader *shader;
-   assert(type == GL_FRAGMENT_SHADER || type == GL_VERTEX_SHADER ||
-  type == GL_GEOMETRY_SHADER_ARB);
-   shader = rzalloc(NULL, struct gl_shader);
-   if (shader) {
-  shader-Type = type;
-  shader-Stage = _mesa_shader_enum_to_shader_stage(type);
-  shader-Name = name;
-  _mesa_init_shader(ctx, shader);
-   }
-   return shader;
-}
-
 /**
  * Link a shader.
  * Called via ctx-Driver.LinkShader()
diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.h 
b/src/mesa/state_tracker/st_glsl_to_tgsi.h
index e3990d3..5ed6407 100644
--- a/src/mesa/state_tracker/st_glsl_to_tgsi.h
+++ b/src/mesa/state_tracker/st_glsl_to_tgsi.h
@@ -61,8 +61,6 @@ void get_bitmap_visitor(struct st_fragment_program *fp,
 struct glsl_to_tgsi_visitor *original,
 int samplerIndex);
 
-struct gl_shader *st_new_shader(struct gl_context *ctx, GLuint name, GLuint 
type);
-
 GLboolean st_link_shader(struct gl_context *ctx, struct gl_shader_program 
*prog);
 
 void

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


Mesa (master): i965: Remove brwIsProgramNative

2014-10-24 Thread Ian Romanick
Module: Mesa
Branch: master
Commit: 4939c2eced8834a448fea894785ba5bfdf1076fd
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4939c2eced8834a448fea894785ba5bfdf1076fd

Author: Ian Romanick ian.d.roman...@intel.com
Date:   Mon Oct 20 15:40:44 2014 -0700

i965: Remove brwIsProgramNative

Originally I just fixed some unused parameter warnings in this
function.  However, Ken pointed out:

You could instead remove this driver hook.  If the dd pointer is
NULL, arbprogram.c will return true.  I think I'd prefer that.

Way, way back in time, I think _mesa_GetProgramivARB had the opposite
behavior.  Given that it works the way it now works, I also prefer
removing the driver hook.

Signed-off-by: Ian Romanick ian.d.roman...@intel.com
Reviewed-by: Kenneth Graunke kenn...@whitecape.org

---

 src/mesa/drivers/dri/i965/brw_program.c |9 -
 1 file changed, 9 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_program.c 
b/src/mesa/drivers/dri/i965/brw_program.c
index e56ece0..ed117dd 100644
--- a/src/mesa/drivers/dri/i965/brw_program.c
+++ b/src/mesa/drivers/dri/i965/brw_program.c
@@ -120,14 +120,6 @@ static void brwDeleteProgram( struct gl_context *ctx,
 
 
 static GLboolean
-brwIsProgramNative(struct gl_context *ctx,
-  GLenum target,
-  struct gl_program *prog)
-{
-   return true;
-}
-
-static GLboolean
 brwProgramStringNotify(struct gl_context *ctx,
   GLenum target,
   struct gl_program *prog)
@@ -233,7 +225,6 @@ void brwInitFragProgFuncs( struct dd_function_table 
*functions )
 
functions-NewProgram = brwNewProgram;
functions-DeleteProgram = brwDeleteProgram;
-   functions-IsProgramNative = brwIsProgramNative;
functions-ProgramStringNotify = brwProgramStringNotify;
 
functions-NewShader = brw_new_shader;

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


Mesa (master): glsl_to_tgsi: Remove st_new_shader_program

2014-10-24 Thread Ian Romanick
Module: Mesa
Branch: master
Commit: deee3b0f9ec3128939c166120153a16eb1807396
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=deee3b0f9ec3128939c166120153a16eb1807396

Author: Ian Romanick ian.d.roman...@intel.com
Date:   Mon Oct 20 15:30:30 2014 -0700

glsl_to_tgsi: Remove st_new_shader_program

It was identical to the default implementation in
_mesa_new_shader_program.

Signed-off-by: Ian Romanick ian.d.roman...@intel.com
Reviewed-by: Brian Paul bri...@vmware.com
Reviewed-by: Matt Turner matts...@gmail.com
Reviewed-by: Kenneth Graunke kenn...@whitecape.org
Reviewed-by: Marek Olšák marek.ol...@amd.com
Cc: Dave Airlie airl...@redhat.com

---

 src/mesa/state_tracker/st_cb_program.c |1 -
 src/mesa/state_tracker/st_glsl_to_tgsi.cpp |   12 
 src/mesa/state_tracker/st_glsl_to_tgsi.h   |3 ---
 3 files changed, 16 deletions(-)

diff --git a/src/mesa/state_tracker/st_cb_program.c 
b/src/mesa/state_tracker/st_cb_program.c
index 82e1fd1..9992bbb 100644
--- a/src/mesa/state_tracker/st_cb_program.c
+++ b/src/mesa/state_tracker/st_cb_program.c
@@ -243,6 +243,5 @@ st_init_program_functions(struct dd_function_table 
*functions)
functions-ProgramStringNotify = st_program_string_notify;

functions-NewShader = st_new_shader;
-   functions-NewShaderProgram = st_new_shader_program;
functions-LinkShader = st_link_shader;
 }
diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp 
b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index a6ce033..b0cb171 100644
--- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
+++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
@@ -5347,18 +5347,6 @@ st_new_shader(struct gl_context *ctx, GLuint name, 
GLuint type)
return shader;
 }
 
-struct gl_shader_program *
-st_new_shader_program(struct gl_context *ctx, GLuint name)
-{
-   struct gl_shader_program *shProg;
-   shProg = rzalloc(NULL, struct gl_shader_program);
-   if (shProg) {
-  shProg-Name = name;
-  _mesa_init_shader_program(ctx, shProg);
-   }
-   return shProg;
-}
-
 /**
  * Link a shader.
  * Called via ctx-Driver.LinkShader()
diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.h 
b/src/mesa/state_tracker/st_glsl_to_tgsi.h
index 18f666f..e3990d3 100644
--- a/src/mesa/state_tracker/st_glsl_to_tgsi.h
+++ b/src/mesa/state_tracker/st_glsl_to_tgsi.h
@@ -63,9 +63,6 @@ void get_bitmap_visitor(struct st_fragment_program *fp,
 
 struct gl_shader *st_new_shader(struct gl_context *ctx, GLuint name, GLuint 
type);
 
-struct gl_shader_program *
-st_new_shader_program(struct gl_context *ctx, GLuint name);
-
 GLboolean st_link_shader(struct gl_context *ctx, struct gl_shader_program 
*prog);
 
 void

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


Mesa (master): mesa: Remove context parameter from dd_function_table:: NewShaderProgram

2014-10-24 Thread Ian Romanick
Module: Mesa
Branch: master
Commit: 99e8a3973f71d161eb4e9f51b038a5799945d2db
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=99e8a3973f71d161eb4e9f51b038a5799945d2db

Author: Ian Romanick ian.d.roman...@intel.com
Date:   Mon Oct 20 15:24:05 2014 -0700

mesa: Remove context parameter from dd_function_table::NewShaderProgram

This fixes some unused parameter warnings introduced by the previous
commit.

Signed-off-by: Ian Romanick ian.d.roman...@intel.com
Reviewed-by: Brian Paul bri...@vmware.com
Reviewed-by: Matt Turner matts...@gmail.com
Reviewed-by: Kenneth Graunke kenn...@whitecape.org

---

 src/mesa/main/dd.h   |3 +--
 src/mesa/main/ff_fragment_shader.cpp |2 +-
 src/mesa/main/shaderapi.c|2 +-
 src/mesa/main/shaderobj.c|2 +-
 4 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h
index c07e83a..2f40915 100644
--- a/src/mesa/main/dd.h
+++ b/src/mesa/main/dd.h
@@ -758,8 +758,7 @@ struct dd_function_table {
struct gl_shader *(*NewShader)(struct gl_context *ctx,
   GLuint name, GLenum type);
void (*DeleteShader)(struct gl_context *ctx, struct gl_shader *shader);
-   struct gl_shader_program *(*NewShaderProgram)(struct gl_context *ctx,
- GLuint name);
+   struct gl_shader_program *(*NewShaderProgram)(GLuint name);
void (*DeleteShaderProgram)(struct gl_context *ctx,
struct gl_shader_program *shProg);
void (*UseProgram)(struct gl_context *ctx, struct gl_shader_program 
*shProg);
diff --git a/src/mesa/main/ff_fragment_shader.cpp 
b/src/mesa/main/ff_fragment_shader.cpp
index e31a145..5591d57 100644
--- a/src/mesa/main/ff_fragment_shader.cpp
+++ b/src/mesa/main/ff_fragment_shader.cpp
@@ -1212,7 +1212,7 @@ create_new_program(struct gl_context *ctx, struct 
state_key *key)
p.top_instructions = p.shader-ir;
p.instructions = p.shader-ir;
p.state = key;
-   p.shader_program = ctx-Driver.NewShaderProgram(ctx, 0);
+   p.shader_program = ctx-Driver.NewShaderProgram(0);
 
/* Tell the linker to ignore the fact that we're building a
 * separate shader, in case we're in a GLES2 context that would
diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c
index 3e6f610..2be9092 100644
--- a/src/mesa/main/shaderapi.c
+++ b/src/mesa/main/shaderapi.c
@@ -316,7 +316,7 @@ create_shader_program(struct gl_context *ctx)
 
name = _mesa_HashFindFreeKeyBlock(ctx-Shared-ShaderObjects, 1);
 
-   shProg = ctx-Driver.NewShaderProgram(ctx, name);
+   shProg = ctx-Driver.NewShaderProgram(name);
 
_mesa_HashInsert(ctx-Shared-ShaderObjects, name, shProg);
 
diff --git a/src/mesa/main/shaderobj.c b/src/mesa/main/shaderobj.c
index ce9aa09..81bd782 100644
--- a/src/mesa/main/shaderobj.c
+++ b/src/mesa/main/shaderobj.c
@@ -261,7 +261,7 @@ init_shader_program(struct gl_shader_program *prog)
  * Called via ctx-Driver.NewShaderProgram()
  */
 static struct gl_shader_program *
-_mesa_new_shader_program(struct gl_context *ctx, GLuint name)
+_mesa_new_shader_program(GLuint name)
 {
struct gl_shader_program *shProg;
shProg = rzalloc(NULL, struct gl_shader_program);

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