Mesa (master): uti/u_atomic: Don't test p_atomic_add with booleans.

2015-02-13 Thread Jose Fonseca
Module: Mesa
Branch: master
Commit: b09f25428ff5e908aefc03b8f9931599c3afd6d2
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b09f25428ff5e908aefc03b8f9931599c3afd6d2

Author: Jose Fonseca jfons...@vmware.com
Date:   Fri Feb 13 09:46:44 2015 +

uti/u_atomic: Don't test p_atomic_add with booleans.

Add another class of tests.

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=89112

I failed to spot this in my previous change, because bool was a typedef
for char on the system I tested.

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

---

 src/util/u_atomic_test.c |   25 +++--
 1 file changed, 19 insertions(+), 6 deletions(-)

diff --git a/src/util/u_atomic_test.c b/src/util/u_atomic_test.c
index 8bddf8d..939cfe4 100644
--- a/src/util/u_atomic_test.c
+++ b/src/util/u_atomic_test.c
@@ -37,9 +37,9 @@
 #include u_atomic.h
 
 
-/* Test operations that are supported for all types, including 8 bits types */
-#define test_atomic_8bits(type, ones) \
-   static void test_atomic_8bits_##type (void) { \
+/* Test only assignment-like operations, which are supported on all types */
+#define test_atomic_assign(type, ones) \
+   static void test_atomic_assign_##type (void) { \
   type v, r; \
   \
   p_atomic_set(v, ones); \
@@ -56,6 +56,19 @@
   assert(v == 0  p_atomic_cmpxchg); \
   assert(r == ones  p_atomic_cmpxchg); \
   \
+  (void) r; \
+   }
+
+
+/* Test arithmetic operations that are supported on 8 bits integer types */
+#define test_atomic_8bits(type, ones) \
+   test_atomic_assign(type, ones) \
+   \
+   static void test_atomic_8bits_##type (void) { \
+  type v, r; \
+  \
+  test_atomic_assign_##type(); \
+  \
   v = 23; \
   p_atomic_add(v, 42); \
   r = p_atomic_read(v); \
@@ -65,7 +78,7 @@
}
 
 
-/* Test operations that are not supported for 8 bits types */
+/* Test all operations */
 #define test_atomic(type, ones) \
test_atomic_8bits(type, ones) \
\
@@ -121,7 +134,7 @@ test_atomic(uint64_t, UINT64_C(0x))
 
 test_atomic_8bits(int8_t, INT8_C(-1))
 test_atomic_8bits(uint8_t, UINT8_C(0xff))
-test_atomic_8bits(bool, true)
+test_atomic_assign(bool, true)
 
 int
 main()
@@ -138,7 +151,7 @@ main()
 
test_atomic_8bits_int8_t();
test_atomic_8bits_uint8_t();
-   test_atomic_8bits_bool();
+   test_atomic_assign_bool();
 
return 0;
 }

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


Mesa (master): os,llvmpipe: Set rasterizer thread names on Linux.

2015-02-13 Thread Jose Fonseca
Module: Mesa
Branch: master
Commit: c944b91190048e370d2adc362f0860d9f58e58f2
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c944b91190048e370d2adc362f0860d9f58e58f2

Author: Jose Fonseca jfons...@vmware.com
Date:   Fri Feb 13 13:51:28 2015 +

os,llvmpipe: Set rasterizer thread names on Linux.

To help identify llvmpipe rasterizer threads -- especially when there
can be so many.

We can eventually generalize this to other OSes, but for that we must
restrict the function to be called from the current thread.  See also
http://stackoverflow.com/a/7989973

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

---

 src/gallium/auxiliary/os/os_thread.h   |   11 +++
 src/gallium/drivers/llvmpipe/lp_rast.c |8 +++-
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/src/gallium/auxiliary/os/os_thread.h 
b/src/gallium/auxiliary/os/os_thread.h
index ff46a89..e9da895 100644
--- a/src/gallium/auxiliary/os/os_thread.h
+++ b/src/gallium/auxiliary/os/os_thread.h
@@ -85,6 +85,17 @@ static INLINE int pipe_thread_destroy( pipe_thread thread )
return thrd_detach( thread );
 }
 
+static INLINE void pipe_thread_setname( const char *name )
+{
+#if defined(HAVE_PTHREAD)
+#  if defined(__GNU_LIBRARY__)  defined(__GLIBC__)  
defined(__GLIBC_MINOR__)  \
+  (__GLIBC__ = 3 || (__GLIBC__ == 2  __GLIBC_MINOR__ = 12))
+   pthread_setname_np(pthread_self(), name);
+#  endif
+#endif
+   (void)name;
+}
+
 
 /* pipe_mutex
  */
diff --git a/src/gallium/drivers/llvmpipe/lp_rast.c 
b/src/gallium/drivers/llvmpipe/lp_rast.c
index e168766..903e7c5 100644
--- a/src/gallium/drivers/llvmpipe/lp_rast.c
+++ b/src/gallium/drivers/llvmpipe/lp_rast.c
@@ -31,6 +31,7 @@
 #include util/u_rect.h
 #include util/u_surface.h
 #include util/u_pack_color.h
+#include util/u_string.h
 
 #include os/os_time.h
 
@@ -747,11 +748,16 @@ static PIPE_THREAD_ROUTINE( thread_function, init_data )
struct lp_rasterizer_task *task = (struct lp_rasterizer_task *) init_data;
struct lp_rasterizer *rast = task-rast;
boolean debug = false;
-   unsigned fpstate = util_fpstate_get();
+   char thread_name[16];
+   unsigned fpstate;
+
+   util_snprintf(thread_name, sizeof thread_name, llvmpipe-%u, 
task-thread_index);
+   pipe_thread_setname(thread_name);
 
/* Make sure that denorms are treated like zeros. This is 
 * the behavior required by D3D10. OpenGL doesn't care.
 */
+   fpstate = util_fpstate_get();
util_fpstate_set_denorms_to_zero(fpstate);
 
while (1) {

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


Mesa (master): ilo: fix rectlist length on Gen8

2015-02-13 Thread Chia-I Wu
Module: Mesa
Branch: master
Commit: 8b9446dbeb6bc146b92a17b8d44e39fcf2f96e97
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8b9446dbeb6bc146b92a17b8d44e39fcf2f96e97

Author: Chia-I Wu olva...@gmail.com
Date:   Fri Feb 13 03:59:45 2015 +0800

ilo: fix rectlist length on Gen8

5 PIPE_CONTROLs, 2 3DSTATE_WM_HZ_OP, and depth buffer setup require 65 DWords.

---

 src/gallium/drivers/ilo/ilo_render_gen8.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/drivers/ilo/ilo_render_gen8.c 
b/src/gallium/drivers/ilo/ilo_render_gen8.c
index 4e2887e..6b14373 100644
--- a/src/gallium/drivers/ilo/ilo_render_gen8.c
+++ b/src/gallium/drivers/ilo/ilo_render_gen8.c
@@ -399,7 +399,7 @@ ilo_render_get_rectlist_commands_len_gen8(const struct 
ilo_render *render,
 {
ILO_DEV_ASSERT(render-dev, 8, 8);
 
-   return 64;
+   return 96;
 }
 
 void

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


Mesa (master): ilo: prepare for 64-bit immediates decoding

2015-02-13 Thread Chia-I Wu
Module: Mesa
Branch: master
Commit: f8126fed954977604697f3c6485a6701618458cb
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f8126fed954977604697f3c6485a6701618458cb

Author: Chia-I Wu olva...@gmail.com
Date:   Sat Feb 14 03:05:47 2015 +0800

ilo: prepare for 64-bit immediates decoding

Replace imm32 by imm64.  Add more ways (UD, D, etc) to access the immediate.

---

 .../drivers/ilo/shader/toy_compiler_disasm.c   |   46 +---
 1 file changed, 31 insertions(+), 15 deletions(-)

diff --git a/src/gallium/drivers/ilo/shader/toy_compiler_disasm.c 
b/src/gallium/drivers/ilo/shader/toy_compiler_disasm.c
index 4c490f1..654a611 100644
--- a/src/gallium/drivers/ilo/shader/toy_compiler_disasm.c
+++ b/src/gallium/drivers/ilo/shader/toy_compiler_disasm.c
@@ -106,7 +106,18 @@ struct disasm_inst {
struct disasm_src_operand src1;
union {
   struct disasm_src_operand src2;
-  uint32_t imm32;
+  uint64_t imm64;
+
+  uint32_t ud;
+  int32_t d;
+  uint16_t uw;
+  int16_t w;
+  float f;
+
+  struct {
+ int16_t jip;
+ int16_t uip;
+  } ip16;
} u;
 };
 
@@ -382,7 +393,7 @@ disasm_inst_decode_dw1_gen6(struct disasm_inst *inst, 
uint32_t dw1)
   disasm_inst_decode_dw1_low_gen6(inst, dw1);
 
if (disasm_inst_jip_in_dw1_high_gen6(inst))
-  inst-u.imm32 = dw1  16;
+  inst-u.imm64 = dw1  16;
else
   disasm_inst_decode_dw1_high_gen6(inst, dw1);
 }
@@ -408,7 +419,7 @@ disasm_inst_decode_dw2_dw3_gen6(struct disasm_inst *inst,
inst-src1.base.file == GEN6_FILE_IMM) {
   count = 1;
   if (!disasm_inst_jip_in_dw1_high_gen6(inst))
- inst-u.imm32 = dw3;
+ inst-u.imm64 = dw3;
} else {
   count = 2;
}
@@ -913,9 +924,11 @@ disasm_inst_cmpt_ctrl(const struct disasm_inst *inst)
 static const char *
 disasm_inst_eot(const struct disasm_inst *inst)
 {
+   const uint32_t mdesc = inst-u.ud;
+
if (inst-opcode == GEN6_OPCODE_SEND ||
inst-opcode == GEN6_OPCODE_SENDC)
-  return (inst-u.imm32  GEN6_MSG_EOT) ?  EOT : ;
+  return (mdesc  GEN6_MSG_EOT) ?  EOT : ;
else
   return ;
 }
@@ -1460,28 +1473,28 @@ disasm_printer_add_operand(struct disasm_printer 
*printer,
if (operand-file == GEN6_FILE_IMM) {
   switch (operand-type) {
   case GEN6_TYPE_UD:
- disasm_printer_add(printer, 0x%08xUD, inst-u.imm32);
+ disasm_printer_add(printer, 0x%08xUD, inst-u.ud);
  break;
   case GEN6_TYPE_D:
- disasm_printer_add(printer, %dD, inst-u.imm32);
+ disasm_printer_add(printer, %dD, inst-u.d);
  break;
   case GEN6_TYPE_UW:
- disasm_printer_add(printer, 0x%04xUW, (uint16_t) inst-u.imm32);
+ disasm_printer_add(printer, 0x%04xUW, inst-u.uw);
  break;
   case GEN6_TYPE_W:
- disasm_printer_add(printer, %dW, (int16_t) inst-u.imm32);
+ disasm_printer_add(printer, %dW, inst-u.w);
  break;
   case GEN6_TYPE_UV_IMM:
- disasm_printer_add(printer, 0x%08xUV, inst-u.imm32);
+ disasm_printer_add(printer, 0x%08xUV, inst-u.ud);
  break;
   case GEN6_TYPE_VF_IMM:
  disasm_printer_add(printer, Vector Float);
  break;
   case GEN6_TYPE_V_IMM:
- disasm_printer_add(printer, 0x%08xV, inst-u.imm32);
+ disasm_printer_add(printer, 0x%08xV, inst-u.ud);
  break;
   case GEN6_TYPE_F:
- disasm_printer_add(printer, %-gF, uif(inst-u.imm32));
+ disasm_printer_add(printer, %-gF, uif(inst-u.f));
  break;
   default:
  disasm_printer_add(printer, BAD);
@@ -1794,7 +1807,7 @@ static void
 disasm_printer_add_mdesc(struct disasm_printer *printer,
  const struct disasm_inst *inst)
 {
-   const uint32_t mdesc = inst-u.imm32;
+   const uint32_t mdesc = inst-u.ud;
 
assert(inst-opcode == GEN6_OPCODE_SEND ||
   inst-opcode == GEN6_OPCODE_SENDC);
@@ -1848,14 +1861,17 @@ disasm_printer_print_inst(struct disasm_printer 
*printer,
 
if (inst-has_jip || inst-has_uip) {
   if (inst-has_jip) {
+ const int32_t jip = inst-u.ip16.jip;
+
  disasm_printer_column(printer, col++);
- disasm_printer_add(printer, JIP: %d, (int16_t) inst-u.imm32);
+ disasm_printer_add(printer, JIP: %d, jip);
   }
 
   if (inst-has_uip) {
+ const int32_t uip = inst-u.ip16.uip;
+
  disasm_printer_column(printer, col++);
- disasm_printer_add(printer, UIP: %d,
-   (int16_t) (inst-u.imm32  16));
+ disasm_printer_add(printer, UIP: %d, uip);
   }
} else {
   const int src_count = disasm_opcode_table[inst-opcode].src_count;

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


Mesa (master): ilo: cleanup ISA DW0 decoding

2015-02-13 Thread Chia-I Wu
Module: Mesa
Branch: master
Commit: db362983d17ea1403e6121ce80f05df141a11aa5
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=db362983d17ea1403e6121ce80f05df141a11aa5

Author: Chia-I Wu olva...@gmail.com
Date:   Sat Feb 14 02:18:55 2015 +0800

ilo: cleanup ISA DW0 decoding

Add disasm_inst_decode_dw0_opcode_gen6() to decode the opcode.  Simplify
branch_ctrl/acc_wr_ctrl decoding.

---

 .../drivers/ilo/shader/toy_compiler_disasm.c   |   26 
 1 file changed, 16 insertions(+), 10 deletions(-)

diff --git a/src/gallium/drivers/ilo/shader/toy_compiler_disasm.c 
b/src/gallium/drivers/ilo/shader/toy_compiler_disasm.c
index 1434736..76b2699 100644
--- a/src/gallium/drivers/ilo/shader/toy_compiler_disasm.c
+++ b/src/gallium/drivers/ilo/shader/toy_compiler_disasm.c
@@ -184,7 +184,7 @@ static const struct {
 };
 
 static void
-disasm_inst_decode_dw0_gen6(struct disasm_inst *inst, uint32_t dw0)
+disasm_inst_decode_dw0_opcode_gen6(struct disasm_inst *inst, uint32_t dw0)
 {
ILO_DEV_ASSERT(inst-dev, 6, 8);
 
@@ -218,6 +218,14 @@ disasm_inst_decode_dw0_gen6(struct disasm_inst *inst, 
uint32_t dw0)
default:
   break;
}
+}
+
+static void
+disasm_inst_decode_dw0_gen6(struct disasm_inst *inst, uint32_t dw0)
+{
+   ILO_DEV_ASSERT(inst-dev, 6, 8);
+
+   disasm_inst_decode_dw0_opcode_gen6(inst, dw0);
 
inst-access_mode = GEN_EXTRACT(dw0, GEN6_INST_ACCESSMODE);
 
@@ -250,19 +258,17 @@ disasm_inst_decode_dw0_gen6(struct disasm_inst *inst, 
uint32_t dw0)
   break;
}
 
-   if (ilo_dev_gen(inst-dev) = ILO_GEN(8)) {
-  switch (inst-opcode) {
-  case GEN6_OPCODE_IF:
-  case GEN6_OPCODE_ELSE:
-  case GEN8_OPCODE_GOTO:
+   switch (inst-opcode) {
+   case GEN6_OPCODE_IF:
+   case GEN6_OPCODE_ELSE:
+   case GEN8_OPCODE_GOTO:
+  if (ilo_dev_gen(inst-dev) = ILO_GEN(8)) {
  inst-branch_ctrl = (bool) (dw0  GEN8_INST_BRANCHCTRL);
  break;
-  default:
- inst-acc_wr_ctrl = (bool) (dw0  GEN6_INST_ACCWRCTRL);
- break;
   }
-   } else {
+   default:
   inst-acc_wr_ctrl = (bool) (dw0  GEN6_INST_ACCWRCTRL);
+  break;
}
 
inst-cmpt_ctrl = (bool) (dw0  GEN6_INST_CMPTCTRL);

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


Mesa (master): ilo: correct ISA UIP/JIP decoding for Gen8

2015-02-13 Thread Chia-I Wu
Module: Mesa
Branch: master
Commit: 7504b357d45d5c814bd8d4511bf42a8c04c8af63
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=7504b357d45d5c814bd8d4511bf42a8c04c8af63

Author: Chia-I Wu olva...@gmail.com
Date:   Sat Feb 14 03:07:51 2015 +0800

ilo: correct ISA UIP/JIP decoding for Gen8

JIP is int32_t and UIP is in DW2 on Gen8.

---

 .../drivers/ilo/shader/toy_compiler_disasm.c   |   57 +---
 1 file changed, 39 insertions(+), 18 deletions(-)

diff --git a/src/gallium/drivers/ilo/shader/toy_compiler_disasm.c 
b/src/gallium/drivers/ilo/shader/toy_compiler_disasm.c
index 654a611..8ec348b 100644
--- a/src/gallium/drivers/ilo/shader/toy_compiler_disasm.c
+++ b/src/gallium/drivers/ilo/shader/toy_compiler_disasm.c
@@ -118,6 +118,11 @@ struct disasm_inst {
  int16_t jip;
  int16_t uip;
   } ip16;
+
+  struct {
+ int32_t jip;
+ int32_t uip;
+  } ip32;
} u;
 };
 
@@ -287,13 +292,6 @@ disasm_inst_decode_dw0_gen6(struct disasm_inst *inst, 
uint32_t dw0)
inst-saturate = (bool) (dw0  GEN6_INST_SATURATE);
 }
 
-static bool
-disasm_inst_jip_in_dw1_high_gen6(const struct disasm_inst *inst)
-{
-   return (ilo_dev_gen(inst-dev) == ILO_GEN(6) 
-   inst-has_jip  !inst-has_uip);
-}
-
 static void
 disasm_inst_decode_dw1_low_gen6(struct disasm_inst *inst, uint32_t dw1)
 {
@@ -392,7 +390,8 @@ disasm_inst_decode_dw1_gen6(struct disasm_inst *inst, 
uint32_t dw1)
else
   disasm_inst_decode_dw1_low_gen6(inst, dw1);
 
-   if (disasm_inst_jip_in_dw1_high_gen6(inst))
+   if (ilo_dev_gen(inst-dev) == ILO_GEN(6) 
+   inst-has_jip  !inst-has_uip)
   inst-u.imm64 = dw1  16;
else
   disasm_inst_decode_dw1_high_gen6(inst, dw1);
@@ -402,26 +401,46 @@ static void
 disasm_inst_decode_dw2_dw3_gen6(struct disasm_inst *inst,
 uint32_t dw2, uint32_t dw3)
 {
-   int count, i;
+   int imm_bits = 0, count, i;
 
ILO_DEV_ASSERT(inst-dev, 6, 8);
 
if (ilo_dev_gen(inst-dev) = ILO_GEN(8)) {
-  inst-src1.base.file = GEN_EXTRACT(dw2, GEN8_INST_SRC1_FILE);
-  inst-src1.base.type = GEN_EXTRACT(dw2, GEN8_INST_SRC1_TYPE);
+  /* how about real 64-bit immediates? */
+  if (inst-has_uip) {
+ imm_bits = 64;
+ inst-src1.base.file = GEN6_FILE_IMM;
+ inst-src1.base.type = GEN6_TYPE_D;
+  } else {
+ inst-src1.base.file = GEN_EXTRACT(dw2, GEN8_INST_SRC1_FILE);
+ inst-src1.base.type = GEN_EXTRACT(dw2, GEN8_INST_SRC1_TYPE);
+
+ if (inst-src0.base.file == GEN6_FILE_IMM ||
+ inst-src1.base.file == GEN6_FILE_IMM)
+imm_bits = 32;
+  }
} else {
   if (ilo_dev_gen(inst-dev) = ILO_GEN(7))
  inst-flag_reg = GEN_EXTRACT(dw2, GEN7_INST_FLAG_REG);
   inst-flag_subreg = GEN_EXTRACT(dw2, GEN6_INST_FLAG_SUBREG);
+
+  if (inst-src0.base.file == GEN6_FILE_IMM ||
+  inst-src1.base.file == GEN6_FILE_IMM)
+ imm_bits = 32;
}
 
-   if (inst-src0.base.file == GEN6_FILE_IMM ||
-   inst-src1.base.file == GEN6_FILE_IMM) {
+   switch (imm_bits) {
+   case 32:
+  inst-u.imm64 = dw3;
   count = 1;
-  if (!disasm_inst_jip_in_dw1_high_gen6(inst))
- inst-u.imm64 = dw3;
-   } else {
+  break;
+   case 64:
+  inst-u.imm64 = (uint64_t) dw2  32 | dw3;
+  count = 0;
+  break;
+   default:
   count = 2;
+  break;
}
 
for (i = 0; i  count; i++) {
@@ -1861,14 +1880,16 @@ disasm_printer_print_inst(struct disasm_printer 
*printer,
 
if (inst-has_jip || inst-has_uip) {
   if (inst-has_jip) {
- const int32_t jip = inst-u.ip16.jip;
+ const int32_t jip = (ilo_dev_gen(inst-dev) = ILO_GEN(8)) ?
+inst-u.ip32.jip : inst-u.ip16.jip;
 
  disasm_printer_column(printer, col++);
  disasm_printer_add(printer, JIP: %d, jip);
   }
 
   if (inst-has_uip) {
- const int32_t uip = inst-u.ip16.uip;
+ const int32_t uip = (ilo_dev_gen(inst-dev) = ILO_GEN(8)) ?
+inst-u.ip32.uip : inst-u.ip16.uip;
 
  disasm_printer_column(printer, col++);
  disasm_printer_add(printer, UIP: %d, uip);

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


Mesa (master): ilo: cleanup ISA DW1 decoding

2015-02-13 Thread Chia-I Wu
Module: Mesa
Branch: master
Commit: 9ed376a76c37755f4408aa5cdb754178143f804f
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=9ed376a76c37755f4408aa5cdb754178143f804f

Author: Chia-I Wu olva...@gmail.com
Date:   Sat Feb 14 02:23:53 2015 +0800

ilo: cleanup ISA DW1 decoding

Decode the higher and lower 16 bits separately.

---

 .../drivers/ilo/shader/toy_compiler_disasm.c   |   89 
 1 file changed, 55 insertions(+), 34 deletions(-)

diff --git a/src/gallium/drivers/ilo/shader/toy_compiler_disasm.c 
b/src/gallium/drivers/ilo/shader/toy_compiler_disasm.c
index 76b2699..4c490f1 100644
--- a/src/gallium/drivers/ilo/shader/toy_compiler_disasm.c
+++ b/src/gallium/drivers/ilo/shader/toy_compiler_disasm.c
@@ -284,35 +284,43 @@ disasm_inst_jip_in_dw1_high_gen6(const struct disasm_inst 
*inst)
 }
 
 static void
-disasm_inst_decode_dw1_gen6(struct disasm_inst *inst, uint32_t dw1)
+disasm_inst_decode_dw1_low_gen6(struct disasm_inst *inst, uint32_t dw1)
 {
-   ILO_DEV_ASSERT(inst-dev, 6, 8);
+   ILO_DEV_ASSERT(inst-dev, 6, 7.5);
 
-   if (ilo_dev_gen(inst-dev) = ILO_GEN(8)) {
-  inst-flag_subreg = GEN_EXTRACT(dw1, GEN8_INST_FLAG_SUBREG);
-  inst-flag_reg = GEN_EXTRACT(dw1, GEN8_INST_FLAG_REG);
-  inst-mask_ctrl = GEN_EXTRACT(dw1, GEN8_INST_MASKCTRL);
-
-  inst-dst.base.file = GEN_EXTRACT(dw1, GEN8_INST_DST_FILE);
-  inst-dst.base.type = GEN_EXTRACT(dw1, GEN8_INST_DST_TYPE);
-  inst-src0.base.file = GEN_EXTRACT(dw1, GEN8_INST_SRC0_FILE);
-  inst-src0.base.type = GEN_EXTRACT(dw1, GEN8_INST_SRC0_TYPE);
-   } else {
-  inst-dst.base.file = GEN_EXTRACT(dw1, GEN6_INST_DST_FILE);
-  inst-dst.base.type = GEN_EXTRACT(dw1, GEN6_INST_DST_TYPE);
-  inst-src0.base.file = GEN_EXTRACT(dw1, GEN6_INST_SRC0_FILE);
-  inst-src0.base.type = GEN_EXTRACT(dw1, GEN6_INST_SRC0_TYPE);
-  inst-src1.base.file = GEN_EXTRACT(dw1, GEN6_INST_SRC1_FILE);
-  inst-src1.base.type = GEN_EXTRACT(dw1, GEN6_INST_SRC1_TYPE);
+   inst-dst.base.file = GEN_EXTRACT(dw1, GEN6_INST_DST_FILE);
+   inst-dst.base.type = GEN_EXTRACT(dw1, GEN6_INST_DST_TYPE);
+   inst-src0.base.file = GEN_EXTRACT(dw1, GEN6_INST_SRC0_FILE);
+   inst-src0.base.type = GEN_EXTRACT(dw1, GEN6_INST_SRC0_TYPE);
+   inst-src1.base.file = GEN_EXTRACT(dw1, GEN6_INST_SRC1_FILE);
+   inst-src1.base.type = GEN_EXTRACT(dw1, GEN6_INST_SRC1_TYPE);
 
-  if (ilo_dev_gen(inst-dev) = ILO_GEN(7))
- inst-nib_ctrl = (bool) (dw1  GEN7_INST_NIBCTRL);
-   }
+   if (ilo_dev_gen(inst-dev) = ILO_GEN(7))
+  inst-nib_ctrl = (bool) (dw1  GEN7_INST_NIBCTRL);
+}
 
-   if (disasm_inst_jip_in_dw1_high_gen6(inst)) {
-  inst-u.imm32 = dw1  16;
-  return;
-   }
+static void
+disasm_inst_decode_dw1_low_gen8(struct disasm_inst *inst, uint32_t dw1)
+{
+   ILO_DEV_ASSERT(inst-dev, 8, 8);
+
+   inst-flag_subreg = GEN_EXTRACT(dw1, GEN8_INST_FLAG_SUBREG);
+   inst-flag_reg = GEN_EXTRACT(dw1, GEN8_INST_FLAG_REG);
+   inst-mask_ctrl = GEN_EXTRACT(dw1, GEN8_INST_MASKCTRL);
+
+   inst-dst.base.file = GEN_EXTRACT(dw1, GEN8_INST_DST_FILE);
+   inst-dst.base.type = GEN_EXTRACT(dw1, GEN8_INST_DST_TYPE);
+   inst-src0.base.file = GEN_EXTRACT(dw1, GEN8_INST_SRC0_FILE);
+   inst-src0.base.type = GEN_EXTRACT(dw1, GEN8_INST_SRC0_TYPE);
+
+   inst-dst.base.addr_imm = GEN_EXTRACT(dw1, GEN8_INST_DST_ADDR_IMM_BIT9) 
+  GEN8_INST_DST_ADDR_IMM_BIT9__SHR;
+}
+
+static void
+disasm_inst_decode_dw1_high_gen6(struct disasm_inst *inst, uint32_t dw1)
+{
+   ILO_DEV_ASSERT(inst-dev, 6, 8);
 
inst-dst.base.addr_mode = GEN_EXTRACT(dw1, GEN6_INST_DST_ADDRMODE);
 
@@ -331,18 +339,15 @@ disasm_inst_decode_dw1_gen6(struct disasm_inst *inst, 
uint32_t dw1)
  inst-dst.base.addr_subreg =
 GEN_EXTRACT(dw1, GEN8_INST_DST_ADDR_SUBREG);
 
+ /* bit 9 is already set in disasm_inst_decode_dw1_low_gen8() */
  if (inst-access_mode == GEN6_ALIGN_1) {
-inst-dst.base.addr_imm =
+inst-dst.base.addr_imm |=
GEN_EXTRACT(dw1, GEN8_INST_DST_ADDR_IMM);
  } else {
-inst-dst.base.addr_imm = GEN_EXTRACT(dw1,
-  GEN8_INST_DST_ADDR_IMM_ALIGN16) 
+inst-dst.base.addr_imm |=
+   GEN_EXTRACT(dw1, GEN8_INST_DST_ADDR_IMM_ALIGN16) 
GEN8_INST_DST_ADDR_IMM_ALIGN16__SHR;
  }
-
- inst-dst.base.addr_imm |= GEN_EXTRACT(dw1,
-   GEN8_INST_DST_ADDR_IMM_BIT9) 
-GEN8_INST_DST_ADDR_IMM_BIT9__SHR;
   } else {
  inst-dst.base.addr_subreg =
 GEN_EXTRACT(dw1, GEN6_INST_DST_ADDR_SUBREG);
@@ -351,8 +356,8 @@ disasm_inst_decode_dw1_gen6(struct disasm_inst *inst, 
uint32_t dw1)
 inst-dst.base.addr_imm =
GEN_EXTRACT(dw1, GEN6_INST_DST_ADDR_IMM);
  } else {
-inst-dst.base.addr_imm = GEN_EXTRACT(dw1,
-  GEN6_INST_DST_ADDR_IMM_ALIGN16) 
+inst-dst.base.addr_imm =
+   GEN_EXTRACT(dw1, 

Mesa (master): ilo: do not set GEN6_THREADCTRL_SWITCH

2015-02-13 Thread Chia-I Wu
Module: Mesa
Branch: master
Commit: c62507f42cf7ea8ce3c3b843f488c6efd26f17dc
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c62507f42cf7ea8ce3c3b843f488c6efd26f17dc

Author: Chia-I Wu olva...@gmail.com
Date:   Sat Feb 14 06:25:27 2015 +0800

ilo: do not set GEN6_THREADCTRL_SWITCH

It is not needed on Gen6+, and it appears to be broken on Gen8.

---

 src/gallium/drivers/ilo/shader/toy_legalize.c |4 
 1 file changed, 4 deletions(-)

diff --git a/src/gallium/drivers/ilo/shader/toy_legalize.c 
b/src/gallium/drivers/ilo/shader/toy_legalize.c
index b949d35..f1bacbd 100644
--- a/src/gallium/drivers/ilo/shader/toy_legalize.c
+++ b/src/gallium/drivers/ilo/shader/toy_legalize.c
@@ -397,8 +397,6 @@ patch_if_else_jip(struct toy_compiler *tc, struct toy_inst 
*inst)
else {
   inst-dst = tdst_imm_w(jip);
}
-
-   inst-thread_ctrl = GEN6_THREADCTRL_SWITCH;
 }
 
 static void
@@ -437,8 +435,6 @@ patch_endif_jip(struct toy_compiler *tc, struct toy_inst 
*inst)
   inst-src[1] = tsrc_imm_w(dist * 2);
else
   inst-dst = tdst_imm_w(dist * 2);
-
-   inst-thread_ctrl = GEN6_THREADCTRL_SWITCH;
 }
 
 static void

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


Mesa (master): ilo: fix JIP/UIP on Gen8

2015-02-13 Thread Chia-I Wu
Module: Mesa
Branch: master
Commit: 8323796840a343ee39687cc8e8b424ee43d6fee7
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8323796840a343ee39687cc8e8b424ee43d6fee7

Author: Chia-I Wu olva...@gmail.com
Date:   Sat Feb 14 06:28:12 2015 +0800

ilo: fix JIP/UIP on Gen8

UIP is in DW2 and JIP is in DW3 on Gen8.  Also, the units are in bytes.

---

 src/gallium/drivers/ilo/shader/toy_compiler_asm.c |8 +--
 src/gallium/drivers/ilo/shader/toy_legalize.c |   26 +++--
 2 files changed, 25 insertions(+), 9 deletions(-)

diff --git a/src/gallium/drivers/ilo/shader/toy_compiler_asm.c 
b/src/gallium/drivers/ilo/shader/toy_compiler_asm.c
index 0977d60..1f465a3 100644
--- a/src/gallium/drivers/ilo/shader/toy_compiler_asm.c
+++ b/src/gallium/drivers/ilo/shader/toy_compiler_asm.c
@@ -444,8 +444,12 @@ translate_src_gen6(const struct codegen *cg, int idx)
/* special treatment may be needed if any of the operand is immediate */
if (cg-src[0].file == GEN6_FILE_IMM) {
   assert(!cg-src[0].absolute  !cg-src[0].negate);
-  /* only the last src operand can be an immediate */
-  assert(src_is_null(cg, 1));
+
+  /* only the last src operand can be an immediate unless it is Gen8+ */
+  assert(ilo_dev_gen(cg-dev) = ILO_GEN(8) || src_is_null(cg, 1));
+
+  if (!src_is_null(cg, 1))
+ return cg-src[idx].origin;
 
   if (idx == 0) {
  if (ilo_dev_gen(cg-dev) = ILO_GEN(8)) {
diff --git a/src/gallium/drivers/ilo/shader/toy_legalize.c 
b/src/gallium/drivers/ilo/shader/toy_legalize.c
index f1bacbd..4e573ca 100644
--- a/src/gallium/drivers/ilo/shader/toy_legalize.c
+++ b/src/gallium/drivers/ilo/shader/toy_legalize.c
@@ -335,7 +335,9 @@ patch_while_jip(struct toy_compiler *tc, struct toy_inst 
*inst)
   dist--;
}
 
-   if (ilo_dev_gen(tc-dev) = ILO_GEN(7))
+   if (ilo_dev_gen(tc-dev) = ILO_GEN(8))
+  inst-src[1] = tsrc_imm_d(dist * 16);
+   else if (ilo_dev_gen(tc-dev) = ILO_GEN(7))
   inst-src[1] = tsrc_imm_w(dist * 2);
else
   inst-dst = tdst_imm_w(dist * 2);
@@ -388,13 +390,16 @@ patch_if_else_jip(struct toy_compiler *tc, struct 
toy_inst *inst)
   dist++;
}
 
-   if (ilo_dev_gen(tc-dev) = ILO_GEN(7)) {
+   if (ilo_dev_gen(tc-dev) = ILO_GEN(8)) {
+  inst-dst.type = TOY_TYPE_D;
+  inst-src[0] = tsrc_imm_d(uip * 8);
+  inst-src[1] = tsrc_imm_d(jip * 8);
+   } else if (ilo_dev_gen(tc-dev) = ILO_GEN(7)) {
   /* what should the type be? */
   inst-dst.type = TOY_TYPE_D;
   inst-src[0].type = TOY_TYPE_D;
   inst-src[1] = tsrc_imm_d(uip  16 | jip);
-   }
-   else {
+   } else {
   inst-dst = tdst_imm_w(jip);
}
 }
@@ -431,7 +436,9 @@ patch_endif_jip(struct toy_compiler *tc, struct toy_inst 
*inst)
if (!found)
   dist = 1;
 
-   if (ilo_dev_gen(tc-dev) = ILO_GEN(7))
+   if (ilo_dev_gen(tc-dev) = ILO_GEN(8))
+  inst-src[1] = tsrc_imm_d(dist * 16);
+   else if (ilo_dev_gen(tc-dev) = ILO_GEN(7))
   inst-src[1] = tsrc_imm_w(dist * 2);
else
   inst-dst = tdst_imm_w(dist * 2);
@@ -495,8 +502,13 @@ patch_break_continue_jip(struct toy_compiler *tc, struct 
toy_inst *inst)
 
/* should the type be D or W? */
inst-dst.type = TOY_TYPE_D;
-   inst-src[0].type = TOY_TYPE_D;
-   inst-src[1] = tsrc_imm_d(uip  16 | jip);
+   if (ilo_dev_gen(tc-dev) = ILO_GEN(8)) {
+  inst-src[0] = tsrc_imm_d(uip * 8);
+  inst-src[1] = tsrc_imm_d(jip * 8);
+   } else {
+  inst-src[0].type = TOY_TYPE_D;
+  inst-src[1] = tsrc_imm_d(uip  16 | jip);
+   }
 }
 
 /**

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


Mesa (master): ilo: update some outdated gen checks

2015-02-13 Thread Chia-I Wu
Module: Mesa
Branch: master
Commit: 5fc0dd8953012c5f4864b40d89983f6d44985dc1
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5fc0dd8953012c5f4864b40d89983f6d44985dc1

Author: Chia-I Wu olva...@gmail.com
Date:   Fri Feb 13 04:04:18 2015 +0800

ilo: update some outdated gen checks

Update gen checks for 3DSTATE_POLY_STIPPLE_OFFSET,
3DSTATE_POLY_STIPPLE_PATTERN, 3DSTATE_LINE_STIPPLE, and
3DSTATE_AA_LINE_PARAMETERS.

---

 src/gallium/drivers/ilo/ilo_builder_3d_bottom.h |8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/gallium/drivers/ilo/ilo_builder_3d_bottom.h 
b/src/gallium/drivers/ilo/ilo_builder_3d_bottom.h
index a5cc789..20b23da 100644
--- a/src/gallium/drivers/ilo/ilo_builder_3d_bottom.h
+++ b/src/gallium/drivers/ilo/ilo_builder_3d_bottom.h
@@ -1070,7 +1070,7 @@ gen6_3DSTATE_POLY_STIPPLE_OFFSET(struct ilo_builder 
*builder,
const uint8_t cmd_len = 2;
uint32_t *dw;
 
-   ILO_DEV_ASSERT(builder-dev, 6, 7.5);
+   ILO_DEV_ASSERT(builder-dev, 6, 8);
 
assert(x_offset = 0  x_offset = 31);
assert(y_offset = 0  y_offset = 31);
@@ -1089,7 +1089,7 @@ gen6_3DSTATE_POLY_STIPPLE_PATTERN(struct ilo_builder 
*builder,
uint32_t *dw;
int i;
 
-   ILO_DEV_ASSERT(builder-dev, 6, 7.5);
+   ILO_DEV_ASSERT(builder-dev, 6, 8);
 
ilo_builder_batch_pointer(builder, cmd_len, dw);
 
@@ -1109,7 +1109,7 @@ gen6_3DSTATE_LINE_STIPPLE(struct ilo_builder *builder,
unsigned inverse;
uint32_t *dw;
 
-   ILO_DEV_ASSERT(builder-dev, 6, 7.5);
+   ILO_DEV_ASSERT(builder-dev, 6, 8);
 
assert((pattern  0x) == pattern);
assert(factor = 1  factor = 256);
@@ -1145,7 +1145,7 @@ gen6_3DSTATE_AA_LINE_PARAMETERS(struct ilo_builder 
*builder)
   0  GEN6_AA_LINE_DW2_CAP_BIAS__SHIFT | 0,
};
 
-   ILO_DEV_ASSERT(builder-dev, 6, 7.5);
+   ILO_DEV_ASSERT(builder-dev, 6, 8);
 
ilo_builder_batch_write(builder, cmd_len, dw);
 }

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


Mesa (master): ilo: fix 3DSTATE_VF_TOPOLOGY

2015-02-13 Thread Chia-I Wu
Module: Mesa
Branch: master
Commit: baba8b2745e0036dbac0350a344bb86278fdb673
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=baba8b2745e0036dbac0350a344bb86278fdb673

Author: Chia-I Wu olva...@gmail.com
Date:   Fri Feb 13 03:54:32 2015 +0800

ilo: fix 3DSTATE_VF_TOPOLOGY

The pipe primitive type was wrongly translated twice.

---

 src/gallium/drivers/ilo/ilo_render_gen8.c |3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/gallium/drivers/ilo/ilo_render_gen8.c 
b/src/gallium/drivers/ilo/ilo_render_gen8.c
index 54c0e20..4e2887e 100644
--- a/src/gallium/drivers/ilo/ilo_render_gen8.c
+++ b/src/gallium/drivers/ilo/ilo_render_gen8.c
@@ -257,7 +257,6 @@ gen8_draw_vf(struct ilo_render *r,
  const struct ilo_state_vector *vec,
  struct ilo_render_draw_session *session)
 {
-   const int prim = gen6_3d_translate_pipe_prim(vec-draw-mode);
int i;
 
/* 3DSTATE_INDEX_BUFFER */
@@ -278,7 +277,7 @@ gen8_draw_vf(struct ilo_render *r,
if (DIRTY(VE))
   gen6_3DSTATE_VERTEX_ELEMENTS(r-builder, vec-ve);
 
-   gen8_3DSTATE_VF_TOPOLOGY(r-builder, prim);
+   gen8_3DSTATE_VF_TOPOLOGY(r-builder, vec-draw-mode);
 
for (i = 0; i  vec-ve-vb_count; i++) {
   gen8_3DSTATE_VF_INSTANCING(r-builder, i,

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


Demos (master): line-sample: a new test that draws a sample of wide/ stipple/smooth lines

2015-02-13 Thread Brian Paul
Module: Demos
Branch: master
Commit: c8f52a8ea41264ae1963a89bd6f0ff2fd646d862
URL:
http://cgit.freedesktop.org/mesa/demos/commit/?id=c8f52a8ea41264ae1963a89bd6f0ff2fd646d862

Author: Brian Paul bri...@vmware.com
Date:   Fri Feb 13 17:59:40 2015 -0700

line-sample: a new test that draws a sample of wide/stipple/smooth lines

---

 src/tests/CMakeLists.txt |1 +
 src/tests/Makefile.am|1 +
 src/tests/line-sample.c  |  187 ++
 3 files changed, 189 insertions(+)

diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
index fe2c24b..5b4fb23 100644
--- a/src/tests/CMakeLists.txt
+++ b/src/tests/CMakeLists.txt
@@ -73,6 +73,7 @@ set (targets
invert
lineclip
linehacks
+   line-sample
manytex
mapbufrange
minmag
diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am
index 8f40799..678295a 100644
--- a/src/tests/Makefile.am
+++ b/src/tests/Makefile.am
@@ -103,6 +103,7 @@ noinst_PROGRAMS = \
jkrahntest \
lineclip \
linehacks \
+   line-sample \
manytex \
mapbufrange \
minmag \
diff --git a/src/tests/line-sample.c b/src/tests/line-sample.c
new file mode 100644
index 000..d577d23
--- /dev/null
+++ b/src/tests/line-sample.c
@@ -0,0 +1,187 @@
+/*
+ * Draw samples of wide lines, smooth lines and stippled lines in
+ * all combinations.
+ *
+ * Brian Paul
+ * 13 Feb 2015
+ */
+
+
+#include math.h
+#include stdio.h
+#include string.h
+#include stdlib.h
+#include glut_wrap.h
+
+
+static int w, h;
+static float g, lw = 3.0;
+
+
+static void
+draw_line_sample(GLboolean smooth, GLboolean stipple, GLfloat width)
+{
+   float r0 = 0.4;
+   float r1 = 0.8;
+   float r2 = 0.9;
+   float r3 = 0.95;
+   int i;
+
+   glLineWidth(width);
+
+   if (stipple) {
+  glEnable(GL_LINE_STIPPLE);
+   }
+   else {
+  glDisable(GL_LINE_STIPPLE);
+   }
+
+   if (smooth) {
+  glEnable(GL_LINE_SMOOTH);
+  glEnable(GL_BLEND);
+}
+   else {
+  glDisable(GL_LINE_SMOOTH);
+  glDisable(GL_BLEND);
+   }
+
+   /* spokes */
+   glBegin(GL_LINES);
+   for (i = 0; i  360; i += 10) {
+  float x0 = r0 * cos(i * M_PI / 180.0);
+  float y0 = r0 * sin(i * M_PI / 180.0);
+  float x1 = r1 * cos(i * M_PI / 180.0);
+  float y1 = r1 * sin(i * M_PI / 180.0);
+
+  glVertex2f(x0, y0);
+  glVertex2f(x1, y1);
+   }
+   glEnd();
+
+   /* circle */
+   glBegin(GL_LINE_LOOP);
+   for (i = 0; i  360; i += 10) {
+  float x = r2 * cos(i * M_PI / 180.0);
+  float y = r2 * sin(i * M_PI / 180.0);
+
+  glVertex2f(x, y);
+   }
+   glEnd();
+
+   /* box */
+   glBegin(GL_LINE_LOOP);
+   glVertex2f(-r3, -r3);
+   glVertex2f( r3, -r3);
+   glVertex2f( r3,  r3);
+   glVertex2f(-r3,  r3);
+   glEnd();
+}
+
+
+static void
+Init(void)
+{
+   GLfloat range[2];
+   char title[1000];
+
+   printf(GL_RENDERER = %s\n, (const char *) glGetString(GL_RENDERER));
+   printf(GL_VERSION = %s\n, (const char *) glGetString(GL_VERSION));
+
+   glGetFloatv(GL_ALIASED_LINE_WIDTH_RANGE, range);
+   printf(Aliased line width range %.5f .. %.5f\n, range[0], range[1]);
+   glGetFloatv(GL_LINE_WIDTH_RANGE, range);
+   printf(Smooth line width range %.5f .. %.5f\n, range[0], range[1]);
+   glGetFloatv(GL_LINE_WIDTH_GRANULARITY, g);
+   printf(line width granularity %f\n, g);
+   fflush(stdout);
+
+   glClearColor(0.0, 0.0, 0.0, 0.0);
+   glShadeModel(GL_FLAT);
+   glBlendFunc(GL_SRC_ALPHA, GL_ONE);
+   /* pattern: |- -- ---    | */
+   glLineStipple(2, 0x1eed);
+
+   sprintf(title, Line Sampler (%s), (const char *) 
glGetString(GL_RENDERER));
+   glutSetWindowTitle(title);
+}
+
+
+static void
+Draw(void)
+{
+   int i;
+
+   glClear(GL_COLOR_BUFFER_BIT);
+
+   for (i = 0; i  2; i++) {
+  float width = i ? lw : 1.0;
+  glViewport(0*w, i*h, w, h);
+  draw_line_sample(GL_FALSE, GL_FALSE, width);
+  glViewport(1*w, i*h, w, h);
+  draw_line_sample(GL_TRUE, GL_FALSE, width);
+  glViewport(2*w, i*h, w, h);
+  draw_line_sample(GL_FALSE, GL_TRUE, width);
+  glViewport(3*w, i*h, w, h);
+  draw_line_sample(GL_TRUE, GL_TRUE, width);
+   }
+
+glutSwapBuffers();
+}
+
+
+static void
+Reshape(int width, int height)
+{
+   w = width / 4;
+   h = height / 2;
+   glMatrixMode(GL_PROJECTION);
+   glLoadIdentity();
+   glMatrixMode(GL_MODELVIEW);
+   glLoadIdentity();
+}
+
+
+static void
+Key(unsigned char key, int x, int y)
+{
+   if (key == 'w') {
+  lw -= g;
+  if (lw  g)
+ lw = g;
+   }
+   else if (key == 'W') {
+  lw += g;
+   }
+   if (key == 27)
+  exit(0);
+
+   printf(line width %.5f\n, lw);
+   fflush(stdout);
+
+   glutPostRedisplay();
+}
+
+
+int
+main(int argc, char **argv)
+{
+   glutInit(argc, argv);
+
+   glutInitWindowPosition(0, 0);
+   glutInitWindowSize(1000, 500);
+
+   glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
+
+   if (!glutCreateWindow(Line Sampler)) {
+  exit(1);
+   }
+
+   Init();
+
+   

Mesa (master): clover: Use Legacy PassManager for LLVM trunk (3.7)

2015-02-13 Thread Tom Stellard
Module: Mesa
Branch: master
Commit: 7df256add2ae9fb916c3e0f80c879e42d1c8a7a0
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=7df256add2ae9fb916c3e0f80c879e42d1c8a7a0

Author: Shawn Starr shawn.st...@rogers.com
Date:   Fri Feb 13 21:16:17 2015 -0500

clover: Use Legacy PassManager for LLVM trunk (3.7)

Reviewed-by: Tom Stellard thomas.stell...@amd.com
Signed-off-by: Shawn Starr shawn.st...@rogers.com

---

 src/gallium/state_trackers/clover/llvm/invocation.cpp |9 +
 1 file changed, 9 insertions(+)

diff --git a/src/gallium/state_trackers/clover/llvm/invocation.cpp 
b/src/gallium/state_trackers/clover/llvm/invocation.cpp
index 0794e61..508979a 100644
--- a/src/gallium/state_trackers/clover/llvm/invocation.cpp
+++ b/src/gallium/state_trackers/clover/llvm/invocation.cpp
@@ -44,7 +44,11 @@
 #if HAVE_LLVM  0x0305
 #include llvm/ADT/OwningPtr.h
 #endif
+#if HAVE_LLVM = 0x0307
+#include llvm/IR/LegacyPassManager.h
+#else
 #include llvm/PassManager.h
+#endif
 #include llvm/Support/CodeGen.h
 #include llvm/Support/TargetSelect.h
 #include llvm/Support/MemoryBuffer.h
@@ -298,7 +302,12 @@ namespace {
optimize(llvm::Module *mod, unsigned optimization_level,
 const std::vectorllvm::Function * kernels) {
 
+#if HAVE_LLVM = 0x0307
+  llvm::legacy::PassManager PM;
+#else
   llvm::PassManager PM;
+#endif
+
   // Add a function internalizer pass.
   //
   // By default, the function internalizer pass will look for a function

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