Mesa (master): virgl: add support for passing render condition flags to host.

2016-02-29 Thread Dave Airlie
Module: Mesa
Branch: master
Commit: ac222626adfc7a03bf537deba66bad5e57b2c91d
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ac222626adfc7a03bf537deba66bad5e57b2c91d

Author: Dave Airlie 
Date:   Tue Mar  1 15:48:44 2016 +1000

virgl: add support for passing render condition flags to host.

This just passes the extra blit info to fix the render condition
tests.

Cc: "11.2" 
Signed-off-by: Dave Airlie 

---

 src/gallium/drivers/virgl/virgl_encode.c   | 4 +++-
 src/gallium/drivers/virgl/virgl_protocol.h | 2 ++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/virgl/virgl_encode.c 
b/src/gallium/drivers/virgl/virgl_encode.c
index 22fb529..1a1c40b 100644
--- a/src/gallium/drivers/virgl/virgl_encode.c
+++ b/src/gallium/drivers/virgl/virgl_encode.c
@@ -741,7 +741,9 @@ int virgl_encode_blit(struct virgl_context *ctx,
virgl_encoder_write_cmd_dword(ctx, VIRGL_CMD0(VIRGL_CCMD_BLIT, 0, 
VIRGL_CMD_BLIT_SIZE));
tmp = VIRGL_CMD_BLIT_S0_MASK(blit->mask) |
   VIRGL_CMD_BLIT_S0_FILTER(blit->filter) |
-  VIRGL_CMD_BLIT_S0_SCISSOR_ENABLE(blit->scissor_enable);
+  VIRGL_CMD_BLIT_S0_SCISSOR_ENABLE(blit->scissor_enable) |
+  VIRGL_CMD_BLIT_S0_RENDER_CONDITION_ENABLE(blit->render_condition_enable) 
|
+  VIRGL_CMD_BLIT_S0_ALPHA_BLEND(blit->alpha_blend);
virgl_encoder_write_dword(ctx->cbuf, tmp);
virgl_encoder_write_dword(ctx->cbuf, (blit->scissor.minx | 
blit->scissor.miny << 16));
virgl_encoder_write_dword(ctx->cbuf, (blit->scissor.maxx | 
blit->scissor.maxy << 16));
diff --git a/src/gallium/drivers/virgl/virgl_protocol.h 
b/src/gallium/drivers/virgl/virgl_protocol.h
index ca3142f..a2f1e81 100644
--- a/src/gallium/drivers/virgl/virgl_protocol.h
+++ b/src/gallium/drivers/virgl/virgl_protocol.h
@@ -388,6 +388,8 @@ enum virgl_context_cmd {
 #define VIRGL_CMD_BLIT_S0_MASK(x) (((x) & 0xff) << 0)
 #define VIRGL_CMD_BLIT_S0_FILTER(x) (((x) & 0x3) << 8)
 #define VIRGL_CMD_BLIT_S0_SCISSOR_ENABLE(x) (((x) & 0x1) << 10)
+#define VIRGL_CMD_BLIT_S0_RENDER_CONDITION_ENABLE(x) (((x) & 0x1) << 11)
+#define VIRGL_CMD_BLIT_S0_ALPHA_BLEND(x) (((x) & 0x1) << 12)
 #define VIRGL_CMD_BLIT_SCISSOR_MINX_MINY 2
 #define VIRGL_CMD_BLIT_SCISSOR_MAXX_MAXY 3
 #define VIRGL_CMD_BLIT_DST_RES_HANDLE 4

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


Mesa (master): i965: Push most TES inputs in vec4 mode.

2016-02-29 Thread Kenneth Graunke
Module: Mesa
Branch: master
Commit: 24994ae926629ac8521df3cab4a02eb81de15907
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=24994ae926629ac8521df3cab4a02eb81de15907

Author: Kenneth Graunke 
Date:   Wed Feb 17 00:37:04 2016 -0800

i965: Push most TES inputs in vec4 mode.

(This is commit 4a1c8a3037cd29938b2a6e2c680c341e9903cfbe for vec4 mode.)

Using the push model for inputs is much more efficient than pulling
inputs - the hardware can simply copy a large chunk into URB registers
at thread creation time, rather than having the thread send messages to
request data from the L3 cache.  Unfortunately, it's possible to have
more TES inputs than fit in registers, so we have to fall back to the
pull model in some cases.

However, it turns out that most tessellation evaluation shaders are
fairly simple, and don't use many inputs.  An arbitrary cut-off of
24 vec4 slots (12 registers) should suffice.  (I chose this instead of
the 32 vec4 slots used in the scalar backend to avoid regressing a few
Piglit tests due to the vec4 register allocator being too stupid to
figure out what to do.  We probably ought to fix that, but it's a
separate issue.)

Improves performance in GPUTest's tessmark_x64 microbenchmark by
41.5394% +/- 0.288519% (n = 115) at 1024x768 on my Clevo W740SU
(with Iris Pro 5200).

Improves performance in Synmark's Gl40TerrainFlyTess microbenchmark by
38.3576% +/- 0.759748% (n = 42).

v2: Simplify abs/negate handling, as requested by Matt.

Signed-off-by: Kenneth Graunke 
Reviewed-by: Chris Forbes 
Reviewed-by: Matt Turner 

---

 src/mesa/drivers/dri/i965/brw_vec4_nir.cpp |  4 +-
 src/mesa/drivers/dri/i965/brw_vec4_tes.cpp | 84 +++---
 2 files changed, 54 insertions(+), 34 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp 
b/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp
index 74ec4f0..9b721e5 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp
@@ -685,9 +685,7 @@ vec4_visitor::nir_emit_intrinsic(nir_intrinsic_instr *instr)
case nir_intrinsic_load_instance_id:
case nir_intrinsic_load_base_instance:
case nir_intrinsic_load_draw_id:
-   case nir_intrinsic_load_invocation_id:
-   case nir_intrinsic_load_tess_level_inner:
-   case nir_intrinsic_load_tess_level_outer: {
+   case nir_intrinsic_load_invocation_id: {
   gl_system_value sv = nir_system_value_from_intrinsic(instr->intrinsic);
   src_reg val = src_reg(nir_system_values[sv]);
   assert(val.file != BAD_FILE);
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_tes.cpp 
b/src/mesa/drivers/dri/i965/brw_vec4_tes.cpp
index ce5fefc..e3c23f1 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_tes.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_tes.cpp
@@ -28,6 +28,7 @@
  */
 
 #include "brw_vec4_tes.h"
+#include "brw_cfg.h"
 
 namespace brw {
 
@@ -53,39 +54,10 @@ vec4_tes_visitor::make_reg_for_system_value(int location, 
const glsl_type *type)
 void
 vec4_tes_visitor::nir_setup_system_value_intrinsic(nir_intrinsic_instr *instr)
 {
-   const struct brw_tes_prog_data *tes_prog_data =
-  (const struct brw_tes_prog_data *) prog_data;
-
switch (instr->intrinsic) {
-   case nir_intrinsic_load_tess_level_outer: {
-  dst_reg dst(this, glsl_type::vec4_type);
-  nir_system_values[SYSTEM_VALUE_TESS_LEVEL_OUTER] = dst;
-
-  dst_reg temp(this, glsl_type::vec4_type);
-  vec4_instruction *read =
- emit(VEC4_OPCODE_URB_READ, temp, input_read_header);
-  read->offset = 1;
-  read->urb_write_flags = BRW_URB_WRITE_PER_SLOT_OFFSET;
-  emit(MOV(dst, swizzle(src_reg(temp), BRW_SWIZZLE_WZYX)));
-  break;
-   }
-   case nir_intrinsic_load_tess_level_inner: {
-  dst_reg dst(this, glsl_type::vec2_type);
-  nir_system_values[SYSTEM_VALUE_TESS_LEVEL_INNER] = dst;
-
-  /* Set up the message header to reference the proper parts of the URB */
-  dst_reg temp(this, glsl_type::vec4_type);
-  vec4_instruction *read =
- emit(VEC4_OPCODE_URB_READ, temp, input_read_header);
-  read->urb_write_flags = BRW_URB_WRITE_PER_SLOT_OFFSET;
-  if (tes_prog_data->domain == BRW_TESS_DOMAIN_QUAD) {
- emit(MOV(dst, swizzle(src_reg(temp), BRW_SWIZZLE_WZYX)));
-  } else {
- read->offset = 1;
- emit(MOV(dst, src_reg(temp)));
-  }
+   case nir_intrinsic_load_tess_level_outer:
+   case nir_intrinsic_load_tess_level_inner:
   break;
-   }
default:
   vec4_visitor::nir_setup_system_value_intrinsic(instr);
}
@@ -105,6 +77,25 @@ vec4_tes_visitor::setup_payload()
 
reg = setup_uniforms(reg);
 
+   foreach_block_and_inst(block, vec4_instruction, inst, cfg) {
+  for (int i = 0; i < 3; i++) {
+ if (inst->src[i].file != ATTR)
+continue;
+
+ struct brw_reg grf =
+brw_vec4_grf(reg + inst->src[i].nr / 2, 4 * (inst->src[i].nr % 2));
+ grf = stride(grf, 0, 4, 1);
+ grf.swizzle = inst->src[i].swizzle;
+ grf.

Mesa (master): tgsi/scan: count memory instructions

2016-02-29 Thread Marek Olšák
Module: Mesa
Branch: master
Commit: 09bfbd43a0818c67cb0a6dd4437cc4946e0af5dc
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=09bfbd43a0818c67cb0a6dd4437cc4946e0af5dc

Author: Marek Olšák 
Date:   Mon Feb 22 00:23:10 2016 +0100

tgsi/scan: count memory instructions

for radeonsi

Reviewed-by: Brian Paul 

---

 src/gallium/auxiliary/tgsi/tgsi_scan.c | 19 +++
 src/gallium/auxiliary/tgsi/tgsi_scan.h |  1 +
 2 files changed, 20 insertions(+)

diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.c 
b/src/gallium/auxiliary/tgsi/tgsi_scan.c
index 4f85d2f..8e24cc6 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_scan.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_scan.c
@@ -43,6 +43,15 @@
 #include "tgsi/tgsi_scan.h"
 
 
+static bool
+is_memory_file(unsigned file)
+{
+   return file == TGSI_FILE_SAMPLER ||
+  file == TGSI_FILE_SAMPLER_VIEW ||
+  file == TGSI_FILE_IMAGE ||
+  file == TGSI_FILE_BUFFER;
+}
+
 
 static void
 scan_instruction(struct tgsi_shader_info *info,
@@ -50,6 +59,7 @@ scan_instruction(struct tgsi_shader_info *info,
  unsigned *current_depth)
 {
unsigned i;
+   bool is_mem_inst = false;
 
assert(fullinst->Instruction.Opcode < TGSI_OPCODE_LAST);
info->opcode_count[fullinst->Instruction.Opcode]++;
@@ -181,6 +191,9 @@ scan_instruction(struct tgsi_shader_info *info,
 info->is_msaa_sampler[src->Register.Index] = TRUE;
  }
   }
+
+  if (is_memory_file(src->Register.File))
+ is_mem_inst = true;
}
 
/* check for indirect register writes */
@@ -190,8 +203,14 @@ scan_instruction(struct tgsi_shader_info *info,
  info->indirect_files |= (1 << dst->Register.File);
  info->indirect_files_written |= (1 << dst->Register.File);
   }
+
+  if (is_memory_file(dst->Register.File))
+ is_mem_inst = true;
}
 
+   if (is_mem_inst)
+  info->num_memory_instructions++;
+
info->num_instructions++;
 }
  
diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.h 
b/src/gallium/auxiliary/tgsi/tgsi_scan.h
index 0541255..d65dec7 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_scan.h
+++ b/src/gallium/auxiliary/tgsi/tgsi_scan.h
@@ -74,6 +74,7 @@ struct tgsi_shader_info
 
uint immediate_count; /**< number of immediates declared */
uint num_instructions;
+   uint num_memory_instructions; /**< sampler, buffer, and image instructions 
*/
 
uint opcode_count[TGSI_OPCODE_LAST];  /**< opcode histogram */
 

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


Mesa (master): r600g: remove support for DRM < 2.12.0

2016-02-29 Thread Marek Olšák
Module: Mesa
Branch: master
Commit: c54f38494cb58f13a9a6cc6d0e2d75a7603ba105
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c54f38494cb58f13a9a6cc6d0e2d75a7603ba105

Author: Marek Olšák 
Date:   Tue Feb 23 23:32:44 2016 +0100

r600g: remove support for DRM < 2.12.0

---

 src/gallium/drivers/r600/evergreen_compute.c | 21 -
 src/gallium/drivers/r600/evergreen_state.c   | 44 +---
 src/gallium/drivers/r600/r600_hw_context.c   |  4 +--
 src/gallium/drivers/r600/r600_pipe.c |  3 +-
 src/gallium/drivers/r600/r600_pipe.h |  1 -
 src/gallium/drivers/r600/r600_state_common.c | 11 ---
 6 files changed, 16 insertions(+), 68 deletions(-)

diff --git a/src/gallium/drivers/r600/evergreen_compute.c 
b/src/gallium/drivers/r600/evergreen_compute.c
index 997e5f0..2a1b251 100644
--- a/src/gallium/drivers/r600/evergreen_compute.c
+++ b/src/gallium/drivers/r600/evergreen_compute.c
@@ -447,24 +447,15 @@ static void compute_emit_cs(struct r600_context *ctx, 
const uint *block_layout,
radeon_emit(cs, PKT3(PKT3_NOP, 0, 0)); /* 
R_028C60_CB_COLOR0_BASE */
radeon_emit(cs, reloc);
 
-   if (!ctx->keep_tiling_flags) {
-   radeon_emit(cs, PKT3(PKT3_NOP, 0, 0)); /* 
R_028C70_CB_COLOR0_INFO */
-   radeon_emit(cs, reloc);
-   }
-
radeon_emit(cs, PKT3(PKT3_NOP, 0, 0)); /* 
R_028C74_CB_COLOR0_ATTRIB */
radeon_emit(cs, reloc);
}
-   if (ctx->keep_tiling_flags) {
-   for (; i < 8 ; i++) {
-   radeon_compute_set_context_reg(cs, 
R_028C70_CB_COLOR0_INFO + i * 0x3C,
-  
S_028C70_FORMAT(V_028C70_COLOR_INVALID));
-   }
-   for (; i < 12; i++) {
-   radeon_compute_set_context_reg(cs, 
R_028E50_CB_COLOR8_INFO + (i - 8) * 0x1C,
-  
S_028C70_FORMAT(V_028C70_COLOR_INVALID));
-   }
-   }
+   for (; i < 8 ; i++)
+   radeon_compute_set_context_reg(cs, R_028C70_CB_COLOR0_INFO + i 
* 0x3C,
+  
S_028C70_FORMAT(V_028C70_COLOR_INVALID));
+   for (; i < 12; i++)
+   radeon_compute_set_context_reg(cs, R_028E50_CB_COLOR8_INFO + (i 
- 8) * 0x1C,
+  
S_028C70_FORMAT(V_028C70_COLOR_INVALID));
 
/* Set CB_TARGET_MASK  XXX: Use cb_misc_state */
radeon_compute_set_context_reg(cs, R_028238_CB_TARGET_MASK,
diff --git a/src/gallium/drivers/r600/evergreen_state.c 
b/src/gallium/drivers/r600/evergreen_state.c
index 61d32c0..a12638a 100644
--- a/src/gallium/drivers/r600/evergreen_state.c
+++ b/src/gallium/drivers/r600/evergreen_state.c
@@ -1466,15 +1466,13 @@ static void evergreen_set_framebuffer_state(struct 
pipe_context *ctx,
 
/* Colorbuffers. */
rctx->framebuffer.atom.num_dw += state->nr_cbufs * 23;
-   if (rctx->keep_tiling_flags)
-   rctx->framebuffer.atom.num_dw += state->nr_cbufs * 2;
+   rctx->framebuffer.atom.num_dw += state->nr_cbufs * 2;
rctx->framebuffer.atom.num_dw += (12 - state->nr_cbufs) * 3;
 
/* ZS buffer. */
if (state->zsbuf) {
rctx->framebuffer.atom.num_dw += 24;
-   if (rctx->keep_tiling_flags)
-   rctx->framebuffer.atom.num_dw += 2;
+   rctx->framebuffer.atom.num_dw += 2;
} else if (rctx->screen->b.info.drm_minor >= 18) {
rctx->framebuffer.atom.num_dw += 4;
}
@@ -1656,11 +1654,6 @@ static void evergreen_emit_framebuffer_state(struct 
r600_context *rctx, struct r
radeon_emit(cs, PKT3(PKT3_NOP, 0, 0)); /* 
R_028C60_CB_COLOR0_BASE */
radeon_emit(cs, reloc);
 
-   if (!rctx->keep_tiling_flags) {
-   radeon_emit(cs, PKT3(PKT3_NOP, 0, 0)); /* 
R_028C70_CB_COLOR0_INFO */
-   radeon_emit(cs, reloc);
-   }
-
radeon_emit(cs, PKT3(PKT3_NOP, 0, 0)); /* 
R_028C74_CB_COLOR0_ATTRIB */
radeon_emit(cs, reloc);
 
@@ -1674,27 +1667,12 @@ static void evergreen_emit_framebuffer_state(struct 
r600_context *rctx, struct r
if (i == 1 && state->cbufs[0]) {
radeon_set_context_reg(cs, R_028C70_CB_COLOR0_INFO + 1 * 0x3C,
   cb->cb_color_info | tex->cb_color_info);
-
-   if (!rctx->keep_tiling_flags) {
-   unsigned reloc = radeon_add_to_buffer_list(&rctx->b,
-  &rctx->b.gfx,
-  (struct 
r600_resource*)state->cbufs[0]->texture,
-  
RADEON_USAGE_READWRITE,
-   

Mesa (master): winsys/radeon: drop support for DRM 2.12.0 (kernel < 3.2)

2016-02-29 Thread Marek Olšák
Module: Mesa
Branch: master
Commit: a5e2a173ddd6766650afe779de08b4585f132c18
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a5e2a173ddd6766650afe779de08b4585f132c18

Author: Marek Olšák 
Date:   Tue Feb 23 23:24:12 2016 +0100

winsys/radeon: drop support for DRM 2.12.0 (kernel < 3.2)

in order to make some winsys interface changes easier

This distros should use new DRM if they want to use new Mesa:
  Distrokernel  mesaeol
  SLES 10   2.6.16  6.4.2   2016-07
  SLED 11   3.0 9.0.3   2022-03
  RHEL 52.6.18  6.5.1   2017-03
  RHEL 62.6.32  10.4.3  2020-11
  Debian 6  2.6.32  7.7.1   2016-02

Reviewed-by: Michel Dänzer 

---

 src/gallium/drivers/radeon/radeon_winsys.h| 16 +
 src/gallium/winsys/radeon/drm/radeon_drm_winsys.c | 42 +--
 2 files changed, 18 insertions(+), 40 deletions(-)

diff --git a/src/gallium/drivers/radeon/radeon_winsys.h 
b/src/gallium/drivers/radeon/radeon_winsys.h
index 7329cee..1160d23 100644
--- a/src/gallium/drivers/radeon/radeon_winsys.h
+++ b/src/gallium/drivers/radeon/radeon_winsys.h
@@ -26,24 +26,10 @@
 
 /* The public winsys interface header for the radeon driver. */
 
-/* R300 features in DRM.
- *
- * 2.6.0:
- * - Hyper-Z
- * - GB_Z_PEQ_CONFIG on rv350->r4xx
- * - R500 FG_ALPHA_VALUE
- *
- * 2.8.0:
- * - R500 US_FORMAT regs
- * - R500 ARGB2101010 colorbuffer
- * - CMask and AA regs
- * - R16F/RG16F
- */
-
 #include "pipebuffer/pb_buffer.h"
 
 #define RADEON_FLUSH_ASYNC (1 << 0)
-#define RADEON_FLUSH_KEEP_TILING_FLAGS (1 << 1) /* needs DRM 2.12.0 */
+#define RADEON_FLUSH_KEEP_TILING_FLAGS (1 << 1)
 #define RADEON_FLUSH_END_OF_FRAME   (1 << 2)
 
 /* Tiling flags. */
diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c 
b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
index 8151c44..1accc6a 100644
--- a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
+++ b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
@@ -174,9 +174,9 @@ static boolean do_winsys_init(struct radeon_drm_winsys *ws)
 /* Get DRM version. */
 version = drmGetVersion(ws->fd);
 if (version->version_major != 2 ||
-version->version_minor < 3) {
+version->version_minor < 12) {
 fprintf(stderr, "%s: DRM version is %d.%d.%d but this driver is "
-"only compatible with 2.3.x (kernel 2.6.34) or later.\n",
+"only compatible with 2.12.0 (kernel 3.2) or later.\n",
 __FUNCTION__,
 version->version_major,
 version->version_minor,
@@ -374,8 +374,7 @@ static boolean do_winsys_init(struct radeon_drm_winsys *ws)
 else if (ws->gen >= DRV_R600) {
 uint32_t tiling_config = 0;
 
-if (ws->info.drm_minor >= 9 &&
-!radeon_get_drm_value(ws->fd, RADEON_INFO_NUM_BACKENDS,
+if (!radeon_get_drm_value(ws->fd, RADEON_INFO_NUM_BACKENDS,
   "num backends",
   &ws->info.num_render_backends))
 return FALSE;
@@ -401,27 +400,20 @@ static boolean do_winsys_init(struct radeon_drm_winsys 
*ws)
 ws->info.pipe_interleave_bytes =
 ws->info.chip_class >= EVERGREEN ? 512 : 256;
 
-if (ws->info.drm_minor >= 11) {
-radeon_get_drm_value(ws->fd, RADEON_INFO_NUM_TILE_PIPES, NULL,
- &ws->info.num_tile_pipes);
-
-/* "num_tiles_pipes" must be equal to the number of pipes (Px) in 
the
- * pipe config field of the GB_TILE_MODE array. Only one card 
(Tahiti)
- * reports a different value (12). Fix it by setting what's in the
- * GB_TILE_MODE array (8).
- */
-if (ws->gen == DRV_SI && ws->info.num_tile_pipes == 12)
-ws->info.num_tile_pipes = 8;
-
-if (radeon_get_drm_value(ws->fd, RADEON_INFO_BACKEND_MAP, NULL,
-  &ws->info.r600_gb_backend_map))
-ws->info.r600_gb_backend_map_valid = TRUE;
-} else {
-ws->info.num_tile_pipes =
-ws->info.chip_class >= EVERGREEN ?
-1 << (tiling_config & 0xf) :
-1 << ((tiling_config & 0xe) >> 1);
-}
+radeon_get_drm_value(ws->fd, RADEON_INFO_NUM_TILE_PIPES, NULL,
+ &ws->info.num_tile_pipes);
+
+/* "num_tiles_pipes" must be equal to the number of pipes (Px) in the
+ * pipe config field of the GB_TILE_MODE array. Only one card (Tahiti)
+ * reports a different value (12). Fix it by setting what's in the
+ * GB_TILE_MODE array (8).
+ */
+if (ws->gen == DRV_SI && ws->info.num_tile_pipes == 12)
+ws->info.num_tile_pipes = 8;
+
+if (radeon_get_drm_value(ws->fd, RADEON_INFO_BACKEND_MAP, NULL,
+  &ws->info.r600_gb_backend_map))
+ws->info.r600_gb_backend_map_valid = TRUE;
 
   

Mesa (master): radeonsi: dump full shader disassemblies into ddebug logs

2016-02-29 Thread Marek Olšák
Module: Mesa
Branch: master
Commit: 18df72b50b6adc0290d1f3f04a2b209dd12bf41b
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=18df72b50b6adc0290d1f3f04a2b209dd12bf41b

Author: Marek Olšák 
Date:   Thu Feb 25 17:12:15 2016 +0100

radeonsi: dump full shader disassemblies into ddebug logs

including prolog and epilog disassemblies

Reviewed-by: Michel Dänzer 

---

 src/gallium/drivers/radeonsi/si_debug.c | 18 +-
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_debug.c 
b/src/gallium/drivers/radeonsi/si_debug.c
index e16ebbd..7c2b745 100644
--- a/src/gallium/drivers/radeonsi/si_debug.c
+++ b/src/gallium/drivers/radeonsi/si_debug.c
@@ -34,15 +34,15 @@
 
 DEBUG_GET_ONCE_OPTION(replace_shaders, "RADEON_REPLACE_SHADERS", NULL)
 
-static void si_dump_shader(struct si_shader_ctx_state *state, const char *name,
-  FILE *f)
+static void si_dump_shader(struct si_screen *sscreen,
+  struct si_shader_ctx_state *state, FILE *f)
 {
if (!state->cso || !state->current)
return;
 
-   fprintf(f, "%s shader disassembly:\n", name);
si_dump_shader_key(state->cso->type, &state->current->key, f);
-   fprintf(f, "%s\n\n", state->current->binary.disasm_string);
+   si_shader_dump(sscreen, state->current, NULL,
+  state->cso->info.processor, f);
 }
 
 /**
@@ -670,11 +670,11 @@ static void si_dump_debug_state(struct pipe_context *ctx, 
FILE *f,
si_dump_debug_registers(sctx, f);
 
si_dump_framebuffer(sctx, f);
-   si_dump_shader(&sctx->vs_shader, "Vertex", f);
-   si_dump_shader(&sctx->tcs_shader, "Tessellation control", f);
-   si_dump_shader(&sctx->tes_shader, "Tessellation evaluation", f);
-   si_dump_shader(&sctx->gs_shader, "Geometry", f);
-   si_dump_shader(&sctx->ps_shader, "Fragment", f);
+   si_dump_shader(sctx->screen, &sctx->vs_shader, f);
+   si_dump_shader(sctx->screen, &sctx->tcs_shader, f);
+   si_dump_shader(sctx->screen, &sctx->tes_shader, f);
+   si_dump_shader(sctx->screen, &sctx->gs_shader, f);
+   si_dump_shader(sctx->screen, &sctx->ps_shader, f);
 
si_dump_last_bo_list(sctx, f);
si_dump_last_ib(sctx, f);

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


Mesa (master): radeonsi: use re-Z

2016-02-29 Thread Marek Olšák
Module: Mesa
Branch: master
Commit: d0f3b524cdb8489a6872ba3639a13813de221fc2
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d0f3b524cdb8489a6872ba3639a13813de221fc2

Author: Marek Olšák 
Date:   Mon Feb 22 00:40:04 2016 +0100

radeonsi: use re-Z

This can increase perf for shaders that kill pixels (kill, alpha-test,
alpha-to-coverage).

v2: add comments

Reviewed-by: Michel Dänzer 

---

 src/gallium/drivers/radeonsi/si_shader.h|  1 +
 src/gallium/drivers/radeonsi/si_state.c |  6 +++---
 src/gallium/drivers/radeonsi/si_state_shaders.c | 20 +---
 3 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_shader.h 
b/src/gallium/drivers/radeonsi/si_shader.h
index ff5c24d..637d264 100644
--- a/src/gallium/drivers/radeonsi/si_shader.h
+++ b/src/gallium/drivers/radeonsi/si_shader.h
@@ -365,6 +365,7 @@ struct si_shader {
struct r600_resource*scratch_bo;
union si_shader_key key;
boolis_binary_shared;
+   unsignedz_order;
 
/* The following data is all that's needed for binary shaders. */
struct radeon_shader_binary binary;
diff --git a/src/gallium/drivers/radeonsi/si_state.c 
b/src/gallium/drivers/radeonsi/si_state.c
index 2dfdbeb..b23b17a 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -1339,10 +1339,10 @@ static void si_emit_db_render_state(struct si_context 
*sctx, struct r600_atom *s
sctx->ps_db_shader_control;
 
/* Bug workaround for smoothing (overrasterization) on SI. */
-   if (sctx->b.chip_class == SI && sctx->smoothing_enabled)
+   if (sctx->b.chip_class == SI && sctx->smoothing_enabled) {
+   db_shader_control &= C_02880C_Z_ORDER;
db_shader_control |= S_02880C_Z_ORDER(V_02880C_LATE_Z);
-   else
-   db_shader_control |= 
S_02880C_Z_ORDER(V_02880C_EARLY_Z_THEN_LATE_Z);
+   }
 
/* Disable the gl_SampleMask fragment shader output if MSAA is 
disabled. */
if (sctx->framebuffer.nr_samples <= 1 || (rs && 
!rs->multisample_enable))
diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c 
b/src/gallium/drivers/radeonsi/si_state_shaders.c
index a6753a7..321b87d 100644
--- a/src/gallium/drivers/radeonsi/si_state_shaders.c
+++ b/src/gallium/drivers/radeonsi/si_state_shaders.c
@@ -789,6 +789,17 @@ static void si_shader_ps(struct si_shader *shader)
   S_00B02C_EXTRA_LDS_SIZE(shader->config.lds_size) |
   S_00B02C_USER_SGPR(num_user_sgprs) |
   
S_00B32C_SCRATCH_EN(shader->config.scratch_bytes_per_wave > 0));
+
+   /* Prefer RE_Z if the shader is complex enough. The requirement is 
either:
+* - the shader uses at least 2 VMEM instructions, or
+* - the code size is at least 50 2-dword instructions or 100 1-dword
+*   instructions.
+*/
+   if (info->num_memory_instructions >= 2 ||
+   shader->binary.code_size > 100*4)
+   shader->z_order = V_02880C_EARLY_Z_THEN_RE_Z;
+   else
+   shader->z_order = V_02880C_EARLY_Z_THEN_LATE_Z;
 }
 
 static void si_shader_init_pm4_state(struct si_shader *shader)
@@ -1985,15 +1996,18 @@ bool si_update_shaders(struct si_context *sctx)
si_update_vgt_shader_config(sctx);
 
if (sctx->ps_shader.cso) {
-   unsigned db_shader_control =
-   sctx->ps_shader.cso->db_shader_control |
-   S_02880C_KILL_ENABLE(si_get_alpha_test_func(sctx) != 
PIPE_FUNC_ALWAYS);
+   unsigned db_shader_control;
 
r = si_shader_select(ctx, &sctx->ps_shader);
if (r)
return false;
si_pm4_bind_state(sctx, ps, sctx->ps_shader.current->pm4);
 
+   db_shader_control =
+   sctx->ps_shader.cso->db_shader_control |
+   S_02880C_KILL_ENABLE(si_get_alpha_test_func(sctx) != 
PIPE_FUNC_ALWAYS) |
+   S_02880C_Z_ORDER(sctx->ps_shader.current->z_order);
+
if (si_pm4_state_changed(sctx, ps) || 
si_pm4_state_changed(sctx, vs) ||
sctx->sprite_coord_enable != rs->sprite_coord_enable ||
sctx->flatshade != rs->flatshade) {

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


Mesa (master): r300g: remove support for DRM < 2.12.0

2016-02-29 Thread Marek Olšák
Module: Mesa
Branch: master
Commit: b7da8fa11d5c6ec71113350eed1959191a7d5990
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b7da8fa11d5c6ec71113350eed1959191a7d5990

Author: Marek Olšák 
Date:   Tue Feb 23 23:32:44 2016 +0100

r300g: remove support for DRM < 2.12.0

---

 src/gallium/drivers/r300/r300_context.c |  9 +++
 src/gallium/drivers/r300/r300_emit.c|  3 +--
 src/gallium/drivers/r300/r300_flush.c   |  6 ++---
 src/gallium/drivers/r300/r300_screen.c  | 19 +-
 src/gallium/drivers/r300/r300_state.c   | 46 -
 5 files changed, 7 insertions(+), 76 deletions(-)

diff --git a/src/gallium/drivers/r300/r300_context.c 
b/src/gallium/drivers/r300/r300_context.c
index 82ba043..6fa8920 100644
--- a/src/gallium/drivers/r300/r300_context.c
+++ b/src/gallium/drivers/r300/r300_context.c
@@ -156,7 +156,6 @@ static boolean r300_setup_atoms(struct r300_context* r300)
 boolean is_rv350 = r300->screen->caps.is_rv350;
 boolean is_r500 = r300->screen->caps.is_r500;
 boolean has_tcl = r300->screen->caps.has_tcl;
-boolean drm_2_6_0 = r300->screen->info.drm_minor >= 6;
 
 /* Create the actual atom list.
  *
@@ -175,11 +174,11 @@ static boolean r300_setup_atoms(struct r300_context* r300)
 R300_INIT_ATOM(gpu_flush, 9);
 R300_INIT_ATOM(aa_state, 4);
 R300_INIT_ATOM(fb_state, 0);
-R300_INIT_ATOM(hyperz_state, is_r500 || (is_rv350 && drm_2_6_0) ? 10 : 8);
+R300_INIT_ATOM(hyperz_state, is_r500 || is_rv350 ? 10 : 8);
 /* ZB (unpipelined), SC. */
 R300_INIT_ATOM(ztop_state, 2);
 /* ZB, FG. */
-R300_INIT_ATOM(dsa_state, is_r500 ? (drm_2_6_0 ? 10 : 8) : 6);
+R300_INIT_ATOM(dsa_state, is_r500 ? 10 : 6);
 /* RB3D. */
 R300_INIT_ATOM(blend_state, 8);
 R300_INIT_ATOM(blend_color_state, is_r500 ? 3 : 2);
@@ -353,9 +352,7 @@ static void r300_init_states(struct pipe_context *pipe)
 OUT_CB_REG(R300_ZB_DEPTHCLEARVALUE, 0);
 OUT_CB_REG(R300_SC_HYPERZ, R300_SC_HYPERZ_ADJ_2);
 
-if (r300->screen->caps.is_r500 ||
-(r300->screen->caps.is_rv350 &&
- r300->screen->info.drm_minor >= 6)) {
+if (r300->screen->caps.is_r500 || r300->screen->caps.is_rv350) {
 OUT_CB_REG(R300_GB_Z_PEQ_CONFIG, 0);
 }
 END_CB;
diff --git a/src/gallium/drivers/r300/r300_emit.c 
b/src/gallium/drivers/r300/r300_emit.c
index 9eb9c17..95971de 100644
--- a/src/gallium/drivers/r300/r300_emit.c
+++ b/src/gallium/drivers/r300/r300_emit.c
@@ -1434,8 +1434,7 @@ unsigned r300_get_num_cs_end_dwords(struct r300_context 
*r300)
 dwords += r300->hyperz_state.size + 2; /* emit_hyperz_end + zcache flush */
 if (r300->screen->caps.is_r500)
 dwords += 2; /* emit_index_bias */
-if (r300->screen->info.drm_minor >= 6)
-dwords += 3; /* MSPOS */
+dwords += 3; /* MSPOS */
 
 return dwords;
 }
diff --git a/src/gallium/drivers/r300/r300_flush.c 
b/src/gallium/drivers/r300/r300_flush.c
index 46b2366..7a75b43 100644
--- a/src/gallium/drivers/r300/r300_flush.c
+++ b/src/gallium/drivers/r300/r300_flush.c
@@ -45,7 +45,7 @@ static void r300_flush_and_cleanup(struct r300_context *r300, 
unsigned flags,
 r500_emit_index_bias(r300, 0);
 
 /* The DDX doesn't set these regs. */
-if (r300->screen->info.drm_minor >= 6) {
+{
 CS_LOCALS(r300);
 OUT_CS_REG_SEQ(R300_GB_MSPOS0, 2);
 OUT_CS(0x);
@@ -78,9 +78,7 @@ void r300_flush(struct pipe_context *pipe,
 {
 struct r300_context *r300 = r300_context(pipe);
 
-if (r300->screen->info.drm_minor >= 12) {
-flags |= RADEON_FLUSH_KEEP_TILING_FLAGS;
-}
+flags |= RADEON_FLUSH_KEEP_TILING_FLAGS;
 
 if (r300->dirty_hw) {
 r300_flush_and_cleanup(r300, flags, fence);
diff --git a/src/gallium/drivers/r300/r300_screen.c 
b/src/gallium/drivers/r300/r300_screen.c
index 15a94d9..7fad7ad 100644
--- a/src/gallium/drivers/r300/r300_screen.c
+++ b/src/gallium/drivers/r300/r300_screen.c
@@ -529,7 +529,6 @@ static boolean r300_is_format_supported(struct pipe_screen* 
screen,
 unsigned usage)
 {
 uint32_t retval = 0;
-boolean drm_2_8_0 = r300_screen(screen)->info.drm_minor >= 8;
 boolean is_r500 = r300_screen(screen)->caps.is_r500;
 boolean is_r400 = r300_screen(screen)->caps.is_r400;
 boolean is_color2101010 = format == PIPE_FORMAT_R10G10B10A2_UNORM ||
@@ -545,13 +544,6 @@ static boolean r300_is_format_supported(struct 
pipe_screen* screen,
format == PIPE_FORMAT_RGTC2_SNORM ||
format == PIPE_FORMAT_LATC2_UNORM ||
format == PIPE_FORMAT_LATC2_SNORM;
-boolean is_x16f_xy16f = format == PIPE_FORMAT_R16_FLOAT ||
-format == PIPE_FORMAT_R16G16_FLOAT ||
-format == PIPE_FORMAT_A16_FLOAT ||
-format == PIPE_FORMAT_L16_FLOAT ||
- 

Mesa (master): radeonsi: allow dumping shader disassemblies to a file

2016-02-29 Thread Marek Olšák
Module: Mesa
Branch: master
Commit: 74b4ce81fbbb513198b8d2cae0460aa779574964
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=74b4ce81fbbb513198b8d2cae0460aa779574964

Author: Marek Olšák 
Date:   Thu Feb 25 17:11:20 2016 +0100

radeonsi: allow dumping shader disassemblies to a file

Reviewed-by: Michel Dänzer 

---

 src/gallium/drivers/radeonsi/si_compute.c |  2 +-
 src/gallium/drivers/radeonsi/si_shader.c  | 46 +--
 src/gallium/drivers/radeonsi/si_shader.h  |  3 +-
 3 files changed, 29 insertions(+), 22 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_compute.c 
b/src/gallium/drivers/radeonsi/si_compute.c
index 9f5f4c6..1ec695e 100644
--- a/src/gallium/drivers/radeonsi/si_compute.c
+++ b/src/gallium/drivers/radeonsi/si_compute.c
@@ -115,7 +115,7 @@ static void *si_create_compute_state(
si_shader_binary_read_config(&program->shader.binary,
 &program->shader.config, 0);
si_shader_dump(sctx->screen, &program->shader, &sctx->b.debug,
-  TGSI_PROCESSOR_COMPUTE);
+  TGSI_PROCESSOR_COMPUTE, stderr);
si_shader_binary_upload(sctx->screen, &program->shader);
 
program->input_buffer = si_resource_create_custom(sctx->b.b.screen,
diff --git a/src/gallium/drivers/radeonsi/si_shader.c 
b/src/gallium/drivers/radeonsi/si_shader.c
index 57458ae..8c1151a 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -4406,14 +4406,14 @@ int si_shader_binary_upload(struct si_screen *sscreen, 
struct si_shader *shader)
 
 static void si_shader_dump_disassembly(const struct radeon_shader_binary 
*binary,
   struct pipe_debug_callback *debug,
-  const char *name)
+  const char *name, FILE *file)
 {
char *line, *p;
unsigned i, count;
 
if (binary->disasm_string) {
-   fprintf(stderr, "Shader %s disassembly:\n", name);
-   fprintf(stderr, "%s", binary->disasm_string);
+   fprintf(file, "Shader %s disassembly:\n", name);
+   fprintf(file, "%s", binary->disasm_string);
 
if (debug && debug->debug_message) {
/* Very long debug messages are cut off, so send the
@@ -4443,9 +4443,9 @@ static void si_shader_dump_disassembly(const struct 
radeon_shader_binary *binary
   "Shader Disassembly End");
}
} else {
-   fprintf(stderr, "Shader %s binary:\n", name);
+   fprintf(file, "Shader %s binary:\n", name);
for (i = 0; i < binary->code_size; i += 4) {
-   fprintf(stderr, "@0x%x: %02x%02x%02x%02x\n", i,
+   fprintf(file, "@0x%x: %02x%02x%02x%02x\n", i,
binary->code[i + 3], binary->code[i + 2],
binary->code[i + 1], binary->code[i]);
}
@@ -4457,7 +4457,8 @@ static void si_shader_dump_stats(struct si_screen 
*sscreen,
 unsigned num_inputs,
 unsigned code_size,
 struct pipe_debug_callback *debug,
-unsigned processor)
+unsigned processor,
+FILE *file)
 {
unsigned lds_increment = sscreen->b.chip_class >= CIK ? 512 : 256;
unsigned lds_per_wave = 0;
@@ -4493,15 +4494,16 @@ static void si_shader_dump_stats(struct si_screen 
*sscreen,
if (lds_per_wave)
max_simd_waves = MIN2(max_simd_waves, 16384 / lds_per_wave);
 
-   if (r600_can_dump_shader(&sscreen->b, processor)) {
+   if (file != stderr ||
+   r600_can_dump_shader(&sscreen->b, processor)) {
if (processor == TGSI_PROCESSOR_FRAGMENT) {
-   fprintf(stderr, "*** SHADER CONFIG ***\n"
+   fprintf(file, "*** SHADER CONFIG ***\n"
"SPI_PS_INPUT_ADDR = 0x%04x\n"
"SPI_PS_INPUT_ENA  = 0x%04x\n",
conf->spi_ps_input_addr, 
conf->spi_ps_input_ena);
}
 
-   fprintf(stderr, "*** SHADER STATS ***\n"
+   fprintf(file, "*** SHADER STATS ***\n"
"SGPRS: %d\n"
"VGPRS: %d\n"
"Code Size: %d bytes\n"
@@ -4555,27 +4557,30 @@ static const char *si_get_shader_name(struct si_shader 
*shader,
 }
 
 void si_shader_dump(struct si_screen *sscreen, struct si_shader *shader,
-   struct pipe_debug_callback *debug, unsigned processor)
+   struct pipe_debug_callback *debug, unsigned processor,
+   FILE *file)
 {
-   if (r600_can_dump_shader(&sscreen->b,

Mesa (master): radeonsi: also dump shaders on a VM fault

2016-02-29 Thread Marek Olšák
Module: Mesa
Branch: master
Commit: 69a8e435ce2615a77e721b26117b43e408b9ed5d
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=69a8e435ce2615a77e721b26117b43e408b9ed5d

Author: Marek Olšák 
Date:   Thu Feb 25 17:54:01 2016 +0100

radeonsi: also dump shaders on a VM fault

Reviewed-by: Christian König 

---

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

diff --git a/src/gallium/drivers/radeonsi/si_debug.c 
b/src/gallium/drivers/radeonsi/si_debug.c
index 7c2b745..eb0cabb 100644
--- a/src/gallium/drivers/radeonsi/si_debug.c
+++ b/src/gallium/drivers/radeonsi/si_debug.c
@@ -781,8 +781,7 @@ void si_check_vm_faults(struct si_context *sctx)
fprintf(f, "Device name: %s\n\n", screen->get_name(screen));
fprintf(f, "Failing VM page: 0x%08x\n\n", addr);
 
-   si_dump_last_bo_list(sctx, f);
-   si_dump_last_ib(sctx, f);
+   si_dump_debug_state(&sctx->b.b, f, 0);
fclose(f);
 
fprintf(stderr, "Detected a VM fault, exiting...\n");

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


Mesa (vulkan): anv/cmd_buffer: Dirty push constants when changing pipelines.

2016-02-29 Thread Jason Ekstrand
Module: Mesa
Branch: vulkan
Commit: 097564bb8e30e3c13674a2aa113c373657628eb1
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=097564bb8e30e3c13674a2aa113c373657628eb1

Author: Jason Ekstrand 
Date:   Mon Feb 29 14:27:34 2016 -0800

anv/cmd_buffer: Dirty push constants when changing pipelines.

---

 src/intel/vulkan/gen7_cmd_buffer.c | 11 +++
 src/intel/vulkan/gen8_cmd_buffer.c | 11 +++
 2 files changed, 22 insertions(+)

diff --git a/src/intel/vulkan/gen7_cmd_buffer.c 
b/src/intel/vulkan/gen7_cmd_buffer.c
index b0456ae..d2c4297 100644
--- a/src/intel/vulkan/gen7_cmd_buffer.c
+++ b/src/intel/vulkan/gen7_cmd_buffer.c
@@ -470,6 +470,17 @@ genX(cmd_buffer_flush_state)(struct anv_cmd_buffer 
*cmd_buffer)
  gen7_cmd_buffer_emit_state_base_address(cmd_buffer);
 
   anv_batch_emit_batch(&cmd_buffer->batch, &pipeline->batch);
+
+  /* From the BDW PRM for 3DSTATE_PUSH_CONSTANT_ALLOC_VS:
+   *
+   *"The 3DSTATE_CONSTANT_VS must be reprogrammed prior to
+   *the next 3DPRIMITIVE command after programming the
+   *3DSTATE_PUSH_CONSTANT_ALLOC_VS"
+   *
+   * Since 3DSTATE_PUSH_CONSTANT_ALLOC_VS is programmed as part of
+   * pipeline setup, we need to dirty push constants.
+   */
+  cmd_buffer->state.push_constants_dirty |= VK_SHADER_STAGE_ALL_GRAPHICS;
}
 
if (cmd_buffer->state.descriptors_dirty & VK_SHADER_STAGE_VERTEX_BIT ||
diff --git a/src/intel/vulkan/gen8_cmd_buffer.c 
b/src/intel/vulkan/gen8_cmd_buffer.c
index 2e979d9..9dc2abd 100644
--- a/src/intel/vulkan/gen8_cmd_buffer.c
+++ b/src/intel/vulkan/gen8_cmd_buffer.c
@@ -286,6 +286,17 @@ genX(cmd_buffer_flush_state)(struct anv_cmd_buffer 
*cmd_buffer)
  anv_cmd_buffer_emit_state_base_address(cmd_buffer);
 
   anv_batch_emit_batch(&cmd_buffer->batch, &pipeline->batch);
+
+  /* From the BDW PRM for 3DSTATE_PUSH_CONSTANT_ALLOC_VS:
+   *
+   *"The 3DSTATE_CONSTANT_VS must be reprogrammed prior to
+   *the next 3DPRIMITIVE command after programming the
+   *3DSTATE_PUSH_CONSTANT_ALLOC_VS"
+   *
+   * Since 3DSTATE_PUSH_CONSTANT_ALLOC_VS is programmed as part of
+   * pipeline setup, we need to dirty push constants.
+   */
+  cmd_buffer->state.push_constants_dirty |= VK_SHADER_STAGE_ALL_GRAPHICS;
}
 
/* We emit the binding tables and sampler tables first, then emit push

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


Mesa (vulkan): anv/pipeline: Use dynamic checks for max push constants

2016-02-29 Thread Jason Ekstrand
Module: Mesa
Branch: vulkan
Commit: 51b618285d846295ef90fa49364d39eea4843801
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=51b618285d846295ef90fa49364d39eea4843801

Author: Jason Ekstrand 
Date:   Fri Feb 26 22:47:59 2016 -0800

anv/pipeline: Use dynamic checks for max push constants

The GEN_GEN macros aren't available in anv_pipeline since it only gets
compiled once for the whold driver.

---

 src/intel/vulkan/anv_pipeline.c | 15 ---
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c
index 81d0d9c..df26584 100644
--- a/src/intel/vulkan/anv_pipeline.c
+++ b/src/intel/vulkan/anv_pipeline.c
@@ -783,13 +783,14 @@ gen7_compute_urb_partition(struct anv_pipeline *pipeline)
unsigned urb_chunks = devinfo->urb.size * 1024 / chunk_size_bytes;
 
/* Reserve space for push constants */
-#if GEN_GEN >= 8
-   unsigned push_constant_kb = 32;
-#elif GEN_IS_HASWELL
-   unsigned push_constant_kb = pipeline->device->info.gt == 3 ? 32 : 16;
-#else
-   unsigned push_constant_kb = 16;
-#endif
+   unsigned push_constant_kb;
+   if (pipeline->device->info.gen >= 8)
+  push_constant_kb = 32;
+   else if (pipeline->device->info.is_haswell)
+  push_constant_kb = pipeline->device->info.gt == 3 ? 32 : 16;
+   else
+  push_constant_kb = 16;
+
unsigned push_constant_bytes = push_constant_kb * 1024;
unsigned push_constant_chunks =
   push_constant_bytes / chunk_size_bytes;

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


Mesa (vulkan): anv/cmd_buffer: Re-emit push constants packets for all stages

2016-02-29 Thread Jason Ekstrand
Module: Mesa
Branch: vulkan
Commit: d29fd1c7cba7775298fb5a5e23d2c5026b3997af
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d29fd1c7cba7775298fb5a5e23d2c5026b3997af

Author: Jason Ekstrand 
Date:   Mon Feb 29 14:27:10 2016 -0800

anv/cmd_buffer: Re-emit push constants packets for all stages

---

 src/intel/vulkan/gen7_cmd_buffer.c | 24 
 src/intel/vulkan/gen8_cmd_buffer.c | 24 
 2 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/src/intel/vulkan/gen7_cmd_buffer.c 
b/src/intel/vulkan/gen7_cmd_buffer.c
index 26339bb..b0456ae 100644
--- a/src/intel/vulkan/gen7_cmd_buffer.c
+++ b/src/intel/vulkan/gen7_cmd_buffer.c
@@ -52,20 +52,20 @@ cmd_buffer_flush_push_constants(struct anv_cmd_buffer 
*cmd_buffer)
 
   struct anv_state state = anv_cmd_buffer_push_constants(cmd_buffer, 
stage);
 
-  if (state.offset == 0)
- continue;
-
-  anv_batch_emit(&cmd_buffer->batch, GENX(3DSTATE_CONSTANT_VS),
- ._3DCommandSubOpcode = push_constant_opcodes[stage],
- .ConstantBody = {
-.PointerToConstantBuffer0 = { .offset = state.offset },
-.ConstantBuffer0ReadLength = 
DIV_ROUND_UP(state.alloc_size, 32),
- });
-
-  flushed |= mesa_to_vk_shader_stage(stage);
+  if (state.offset == 0) {
+ anv_batch_emit(&cmd_buffer->batch, GENX(3DSTATE_CONSTANT_VS),
+._3DCommandSubOpcode = push_constant_opcodes[stage]);
+  } else {
+ anv_batch_emit(&cmd_buffer->batch, GENX(3DSTATE_CONSTANT_VS),
+._3DCommandSubOpcode = push_constant_opcodes[stage],
+.ConstantBody = {
+   .PointerToConstantBuffer0 = { .offset = 
state.offset },
+   .ConstantBuffer0ReadLength = 
DIV_ROUND_UP(state.alloc_size, 32),
+});
+  }
}
 
-   cmd_buffer->state.push_constants_dirty &= ~flushed;
+   cmd_buffer->state.push_constants_dirty &= ~VK_SHADER_STAGE_ALL_GRAPHICS;
 
return flushed;
 }
diff --git a/src/intel/vulkan/gen8_cmd_buffer.c 
b/src/intel/vulkan/gen8_cmd_buffer.c
index 3221f5e..2e979d9 100644
--- a/src/intel/vulkan/gen8_cmd_buffer.c
+++ b/src/intel/vulkan/gen8_cmd_buffer.c
@@ -52,20 +52,20 @@ cmd_buffer_flush_push_constants(struct anv_cmd_buffer 
*cmd_buffer)
 
   struct anv_state state = anv_cmd_buffer_push_constants(cmd_buffer, 
stage);
 
-  if (state.offset == 0)
- continue;
-
-  anv_batch_emit(&cmd_buffer->batch, GENX(3DSTATE_CONSTANT_VS),
- ._3DCommandSubOpcode = push_constant_opcodes[stage],
- .ConstantBody = {
-.PointerToConstantBuffer2 = { 
&cmd_buffer->device->dynamic_state_block_pool.bo, state.offset },
-.ConstantBuffer2ReadLength = 
DIV_ROUND_UP(state.alloc_size, 32),
- });
-
-  flushed |= mesa_to_vk_shader_stage(stage);
+  if (state.offset == 0) {
+ anv_batch_emit(&cmd_buffer->batch, GENX(3DSTATE_CONSTANT_VS),
+._3DCommandSubOpcode = push_constant_opcodes[stage]);
+  } else {
+ anv_batch_emit(&cmd_buffer->batch, GENX(3DSTATE_CONSTANT_VS),
+._3DCommandSubOpcode = push_constant_opcodes[stage],
+.ConstantBody = {
+   .PointerToConstantBuffer2 = { 
&cmd_buffer->device->dynamic_state_block_pool.bo, state.offset },
+   .ConstantBuffer2ReadLength = 
DIV_ROUND_UP(state.alloc_size, 32),
+});
+  }
}
 
-   cmd_buffer->state.push_constants_dirty &= ~flushed;
+   cmd_buffer->state.push_constants_dirty &= ~VK_SHADER_STAGE_ALL_GRAPHICS;
 
return flushed;
 }

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


Mesa (vulkan): anv/pipeline: Avoid a division by zero

2016-02-29 Thread Jason Ekstrand
Module: Mesa
Branch: vulkan
Commit: 6986ae35adbd83ff4f3c84946e998db488416b72
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6986ae35adbd83ff4f3c84946e998db488416b72

Author: Jason Ekstrand 
Date:   Mon Feb 29 14:13:07 2016 -0800

anv/pipeline: Avoid a division by zero

---

 src/intel/vulkan/anv_pipeline.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c
index df26584..cbd3a21 100644
--- a/src/intel/vulkan/anv_pipeline.c
+++ b/src/intel/vulkan/anv_pipeline.c
@@ -894,7 +894,7 @@ gen7_compute_urb_partition(struct anv_pipeline *pipeline)
 
const unsigned stages =
   _mesa_bitcount(pipeline->active_stages & VK_SHADER_STAGE_ALL_GRAPHICS);
-   const unsigned size_per_stage = push_constant_kb / stages;
+   const unsigned size_per_stage = stages ? (push_constant_kb / stages) : 0;
unsigned used_kb = 0;
 
for (int i = MESA_SHADER_VERTEX; i < MESA_SHADER_FRAGMENT; i++) {

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


Mesa (vulkan): anv/pipeline: Follow push constant alignment restrictions on BDW+ and HSW gt3

2016-02-29 Thread Jason Ekstrand
Module: Mesa
Branch: vulkan
Commit: 9715724015b49278fa3d110221ab39e1ed00c8c2
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=9715724015b49278fa3d110221ab39e1ed00c8c2

Author: Jason Ekstrand 
Date:   Mon Feb 29 14:13:56 2016 -0800

anv/pipeline: Follow push constant alignment restrictions on BDW+ and HSW gt3

---

 src/intel/vulkan/anv_pipeline.c | 9 -
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c
index cbd3a21..3dab205 100644
--- a/src/intel/vulkan/anv_pipeline.c
+++ b/src/intel/vulkan/anv_pipeline.c
@@ -894,9 +894,16 @@ gen7_compute_urb_partition(struct anv_pipeline *pipeline)
 
const unsigned stages =
   _mesa_bitcount(pipeline->active_stages & VK_SHADER_STAGE_ALL_GRAPHICS);
-   const unsigned size_per_stage = stages ? (push_constant_kb / stages) : 0;
+   unsigned size_per_stage = stages ? (push_constant_kb / stages) : 0;
unsigned used_kb = 0;
 
+   /* Broadwell+ and Haswell gt3 require that the push constant sizes be in
+* units of 2KB.  Incidentally, these are the same platforms that have
+* 32KB worth of push constant space.
+*/
+   if (push_constant_kb == 32)
+  size_per_stage &= ~1u;
+
for (int i = MESA_SHADER_VERTEX; i < MESA_SHADER_FRAGMENT; i++) {
   pipeline->urb.push_size[i] =
  (pipeline->active_stages & (1 << i)) ? size_per_stage : 0;

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


Mesa (master): mesa/fbobject: propogate Layered when reusing attachments.

2016-02-29 Thread Dave Airlie
Module: Mesa
Branch: master
Commit: 35859d5bbba998aa41ec87bc53d946add4662dea
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=35859d5bbba998aa41ec87bc53d946add4662dea

Author: Dave Airlie 
Date:   Mon Feb 29 17:16:10 2016 +1000

mesa/fbobject: propogate Layered when reusing attachments.

When reusing a depth attachment as a stencil, we need to propogate
the layered bit, otherwise we fail to complete the framebuffer.

discovered running ./bin/fbo-depth-array depth-layered-clear
on virgl on haswell.

Reviewed-by: Marek Olšák 
Cc: "11.1 11.2" 
Signed-off-by: Dave Airlie 

---

 src/mesa/main/fbobject.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
index 1f10050..621f84f 100644
--- a/src/mesa/main/fbobject.c
+++ b/src/mesa/main/fbobject.c
@@ -2815,6 +2815,7 @@ reuse_framebuffer_texture_attachment(struct 
gl_framebuffer *fb,
dst_att->Complete = src_att->Complete;
dst_att->TextureLevel = src_att->TextureLevel;
dst_att->Zoffset = src_att->Zoffset;
+   dst_att->Layered = src_att->Layered;
 }
 
 

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


Mesa (vulkan): isl/surface_state: Fix array spacing on Gen7

2016-02-29 Thread Nanley Chery
Module: Mesa
Branch: vulkan
Commit: 74b7b59db5d3ce986f92599b14feaaade63f7b12
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=74b7b59db5d3ce986f92599b14feaaade63f7b12

Author: Nanley Chery 
Date:   Mon Feb 29 11:24:34 2016 -0800

isl/surface_state: Fix array spacing on Gen7

v2: Don't cast the enum to a boolean (Jason)

Signed-off-by: Nanley Chery 
Reviewed-by: Jason Ekstrand 

---

 src/intel/isl/isl_surface_state.c | 5 +
 1 file changed, 5 insertions(+)

diff --git a/src/intel/isl/isl_surface_state.c 
b/src/intel/isl/isl_surface_state.c
index 12f4fb6..0f45100 100644
--- a/src/intel/isl/isl_surface_state.c
+++ b/src/intel/isl/isl_surface_state.c
@@ -227,6 +227,11 @@ isl_genX(surf_fill_state_s)(const struct isl_device *dev, 
void *state,
   .VerticalLineStride = 0,
   .VerticalLineStrideOffset = 0,
 
+#if (GEN_GEN == 7)
+  .SurfaceArraySpacing = info->surf->array_pitch_span ==
+ ISL_ARRAY_PITCH_SPAN_COMPACT,
+#endif
+
 #if GEN_GEN >= 8
   .SamplerL2BypassModeDisable = true,
 #endif

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


Mesa (vulkan): anv: Don't advertise pipelineStatisticsQuery

2016-02-29 Thread Kristian Høgsberg
Module: Mesa
Branch: vulkan
Commit: 9d8bae613779e0cc7382c9252ccd7f5e7cd5cada
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=9d8bae613779e0cc7382c9252ccd7f5e7cd5cada

Author: Kristian Høgsberg Kristensen 
Date:   Mon Feb 29 10:55:39 2016 -0800

anv: Don't advertise pipelineStatisticsQuery

We don't support that just yet.

Reported-by: Jacek Konieczny 

---

 src/intel/vulkan/anv_device.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c
index 857c4b1..c68280f 100644
--- a/src/intel/vulkan/anv_device.c
+++ b/src/intel/vulkan/anv_device.c
@@ -373,7 +373,7 @@ void anv_GetPhysicalDeviceFeatures(
   .textureCompressionASTC_LDR   = true,
   .textureCompressionBC = true,
   .occlusionQueryPrecise= true,
-  .pipelineStatisticsQuery  = true,
+  .pipelineStatisticsQuery  = false,
   .vertexPipelineStoresAndAtomics   = pdevice->info->gen >= 8,
   .fragmentStoresAndAtomics = true,
   .shaderTessellationAndGeometryPointSize   = true,

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


Mesa (master): st/nine: Use Position input helper for ps3 declared inputs

2016-02-29 Thread Axel Davy
Module: Mesa
Branch: master
Commit: 8a8affdfdace486f4e416e66e2dd0ed122505a90
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8a8affdfdace486f4e416e66e2dd0ed122505a90

Author: Axel Davy 
Date:   Sun Feb 21 16:35:31 2016 +0100

st/nine: Use Position input helper for ps3 declared inputs

When the semantic is Position (which can happen with index 0 only),
use the helper to get Position input.

Cc: "11.2" 

Signed-off-by: Axel Davy 

---

 src/gallium/state_trackers/nine/nine_shader.c | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/src/gallium/state_trackers/nine/nine_shader.c 
b/src/gallium/state_trackers/nine/nine_shader.c
index f0c5236..eb6479b 100644
--- a/src/gallium/state_trackers/nine/nine_shader.c
+++ b/src/gallium/state_trackers/nine/nine_shader.c
@@ -2052,9 +2052,16 @@ DECL_SPECIAL(DCL)
 unsigned interp_location = 0;
 /* SM3 only, SM2 input semantic determined by file */
 assert(sem.reg.idx < Elements(tx->regs.v));
+
+if (tgsi.Name == TGSI_SEMANTIC_POSITION) {
+tx->regs.v[sem.reg.idx] = nine_get_position_input(tx);
+return D3D_OK;
+}
+
 if (sem.reg.mod & NINED3DSPDM_CENTROID ||
 (tgsi.Name == TGSI_SEMANTIC_COLOR && 
tx->info->force_color_in_centroid))
 interp_location = TGSI_INTERPOLATE_LOC_CENTROID;
+
 tx->regs.v[sem.reg.idx] = ureg_DECL_fs_input_cyl_centroid(
 ureg, tgsi.Name, tgsi.Index,
 nine_tgsi_to_interp_mode(&tgsi),

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


Mesa (master): st/nine: Handle READONLY for buffer MANAGED pool

2016-02-29 Thread Axel Davy
Module: Mesa
Branch: master
Commit: 35c858c42c818d5bf5b4bfee03a342df52acface
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=35c858c42c818d5bf5b4bfee03a342df52acface

Author: Axel Davy 
Date:   Wed Feb 24 23:44:40 2016 +0100

st/nine: Handle READONLY for buffer MANAGED pool

READONLY won't trigger an upload.

Cc: "11.2" 

Signed-off-by: Axel Davy 

---

 src/gallium/state_trackers/nine/buffer9.c | 17 ++---
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/src/gallium/state_trackers/nine/buffer9.c 
b/src/gallium/state_trackers/nine/buffer9.c
index e066fc5..8efb4ce 100644
--- a/src/gallium/state_trackers/nine/buffer9.c
+++ b/src/gallium/state_trackers/nine/buffer9.c
@@ -174,13 +174,16 @@ NineBuffer9_Lock( struct NineBuffer9 *This,
 u_box_1d(OffsetToLock, SizeToLock, &box);
 
 if (This->base.pool == D3DPOOL_MANAGED) {
-if (!This->managed.dirty) {
-assert(LIST_IS_EMPTY(&This->managed.list));
-list_add(&This->managed.list, 
&This->base.base.device->update_buffers);
-This->managed.dirty = TRUE;
-This->managed.dirty_box = box;
-} else {
-u_box_union_2d(&This->managed.dirty_box, &This->managed.dirty_box, 
&box);
+/* READONLY doesn't dirty the buffer */
+if (!(Flags & D3DLOCK_READONLY)) {
+if (!This->managed.dirty) {
+assert(LIST_IS_EMPTY(&This->managed.list));
+list_add(&This->managed.list, 
&This->base.base.device->update_buffers);
+This->managed.dirty = TRUE;
+This->managed.dirty_box = box;
+} else {
+u_box_union_2d(&This->managed.dirty_box, 
&This->managed.dirty_box, &box);
+}
 }
 *ppbData = (char *)This->managed.data + OffsetToLock;
 DBG("returning pointer %p\n", *ppbData);

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


Mesa (master): st/nine: Fix second Multithreading issue with MANAGED buffers

2016-02-29 Thread Axel Davy
Module: Mesa
Branch: master
Commit: 83bc2acfe90fd2e503bab4b5a586c1e2822863f5
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=83bc2acfe90fd2e503bab4b5a586c1e2822863f5

Author: Axel Davy 
Date:   Sat Feb 27 11:02:21 2016 +0100

st/nine: Fix second Multithreading issue with MANAGED buffers

Here is another threading issue with MANAGED buffers:

Thread 1: buffer creation
Thread 1: buffer lock
Thread 2: Draw call
Thread 1: writes data
Thread 1: Unlock

Without this patch, the buffer is initially dirty
and in the list of things to upload after its creation.
The draw call will then upload the data and unset the dirty flag,
and the Unlock won't trigger a second upload.

Fixes regression introduced by cc0114f30b587a10766ec212afb3ad356099ef23:
"st/nine: Implement Managed vertex/index buffers"

Cc: "11.2" 

Signed-off-by: Axel Davy 

---

 src/gallium/state_trackers/nine/buffer9.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/gallium/state_trackers/nine/buffer9.c 
b/src/gallium/state_trackers/nine/buffer9.c
index 6d5d9d6..1103741 100644
--- a/src/gallium/state_trackers/nine/buffer9.c
+++ b/src/gallium/state_trackers/nine/buffer9.c
@@ -182,6 +182,9 @@ NineBuffer9_Lock( struct NineBuffer9 *This,
 This->managed.dirty_box = box;
 } else {
 u_box_union_2d(&This->managed.dirty_box, 
&This->managed.dirty_box, &box);
+/* Do not upload while we are locking, we'll add it back later 
*/
+if (!LIST_IS_EMPTY(&This->managed.list))
+list_delinit(&This->managed.list);
 }
 }
 *ppbData = (char *)This->managed.data + OffsetToLock;

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


Mesa (master): st/nine: Introduce helper for Position shader input

2016-02-29 Thread Axel Davy
Module: Mesa
Branch: master
Commit: f08c990af53e91114257b19e5679e2dbbc277e45
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f08c990af53e91114257b19e5679e2dbbc277e45

Author: Axel Davy 
Date:   Sun Feb 21 16:30:15 2016 +0100

st/nine: Introduce helper for Position shader input

Cc: "11.2" 

Signed-off-by: Axel Davy 

---

 src/gallium/state_trackers/nine/nine_shader.c | 31 +--
 1 file changed, 15 insertions(+), 16 deletions(-)

diff --git a/src/gallium/state_trackers/nine/nine_shader.c 
b/src/gallium/state_trackers/nine/nine_shader.c
index a7a7da2..f0c5236 100644
--- a/src/gallium/state_trackers/nine/nine_shader.c
+++ b/src/gallium/state_trackers/nine/nine_shader.c
@@ -830,6 +830,18 @@ nine_ureg_dst_register(unsigned file, int index)
 return ureg_dst(ureg_src_register(file, index));
 }
 
+static inline struct ureg_src
+nine_get_position_input(struct shader_translator *tx)
+{
+struct ureg_program *ureg = tx->ureg;
+
+if (tx->wpos_is_sysval)
+return ureg_DECL_system_value(ureg, TGSI_SEMANTIC_POSITION, 0);
+else
+return ureg_DECL_fs_input(ureg, TGSI_SEMANTIC_POSITION,
+  0, TGSI_INTERPOLATE_LINEAR);
+}
+
 static struct ureg_src
 tx_src_param(struct shader_translator *tx, const struct sm1_src_param *param)
 {
@@ -955,16 +967,8 @@ tx_src_param(struct shader_translator *tx, const struct 
sm1_src_param *param)
 case D3DSPR_MISCTYPE:
 switch (param->idx) {
 case D3DSMO_POSITION:
-   if (ureg_src_is_undef(tx->regs.vPos)) {
-  if (tx->wpos_is_sysval) {
-  tx->regs.vPos =
-  ureg_DECL_system_value(ureg, TGSI_SEMANTIC_POSITION, 0);
-  } else {
-  tx->regs.vPos =
-  ureg_DECL_fs_input(ureg, TGSI_SEMANTIC_POSITION, 0,
- TGSI_INTERPOLATE_LINEAR);
-  }
-   }
+   if (ureg_src_is_undef(tx->regs.vPos))
+  tx->regs.vPos = nine_get_position_input(tx);
if (tx->shift_wpos) {
/* TODO: do this only once */
struct ureg_dst wpos = tx_scratch(tx);
@@ -3269,12 +3273,7 @@ shader_add_ps_fog_stage(struct shader_translator *tx, 
struct ureg_src src_col)
 }
 
 if (tx->info->fog_mode != D3DFOG_NONE) {
-if (tx->wpos_is_sysval) {
-depth = ureg_DECL_system_value(ureg, TGSI_SEMANTIC_POSITION, 0);
-} else {
-depth = ureg_DECL_fs_input(ureg, TGSI_SEMANTIC_POSITION, 0,
-   TGSI_INTERPOLATE_LINEAR);
-}
+depth = nine_get_position_input(tx);
 depth = ureg_scalar(depth, TGSI_SWIZZLE_Z);
 }
 

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


Mesa (master): st/nine: Fix Multithreading issue with MANAGED buffers

2016-02-29 Thread Axel Davy
Module: Mesa
Branch: master
Commit: 44246fe99d4c880b70a58043624bf023237009f5
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=44246fe99d4c880b70a58043624bf023237009f5

Author: Axel Davy 
Date:   Thu Feb 25 19:07:37 2016 +0100

st/nine: Fix Multithreading issue with MANAGED buffers

d3d calls are protected by mutexes, however if app is doing in
two threads:

Thread 1: buffer Lock
Thread 2: Draw call
Thread 1: writes data
Thread 1: Unlock

Then before this patch, the Draw call would begin to upload
the buffer.

Solves this by moving the moment we add the buffer to the queue
of things to upload (We move it from Lock time to Unlock time).

Cc: "11.2" 

Signed-off-by: Axel Davy 

---

 src/gallium/state_trackers/nine/buffer9.c | 8 ++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/gallium/state_trackers/nine/buffer9.c 
b/src/gallium/state_trackers/nine/buffer9.c
index 8efb4ce..6d5d9d6 100644
--- a/src/gallium/state_trackers/nine/buffer9.c
+++ b/src/gallium/state_trackers/nine/buffer9.c
@@ -178,7 +178,6 @@ NineBuffer9_Lock( struct NineBuffer9 *This,
 if (!(Flags & D3DLOCK_READONLY)) {
 if (!This->managed.dirty) {
 assert(LIST_IS_EMPTY(&This->managed.list));
-list_add(&This->managed.list, 
&This->base.base.device->update_buffers);
 This->managed.dirty = TRUE;
 This->managed.dirty_box = box;
 } else {
@@ -232,8 +231,13 @@ NineBuffer9_Unlock( struct NineBuffer9 *This )
 user_assert(This->nmaps > 0, D3DERR_INVALIDCALL);
 if (This->base.pool != D3DPOOL_MANAGED)
 This->pipe->transfer_unmap(This->pipe, This->maps[--(This->nmaps)]);
-else
+else {
 This->nmaps--;
+/* TODO: Fix this to upload at the first draw call needing the data,
+ * instead of at the next draw call */
+if (!This->nmaps && This->managed.dirty && 
LIST_IS_EMPTY(&This->managed.list))
+list_add(&This->managed.list, 
&This->base.base.device->update_buffers);
+}
 return D3D_OK;
 }
 

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


Mesa: tag mesa-11.2.0-rc2: Mesa 11.2.0-rc2 release candidate

2016-02-29 Thread Emil Velikov
Module: Mesa
Branch: refs/tags/mesa-11.2.0-rc2
Tag:7f513a3380a569399de8bc0ab6a956035eaa5730
URL:
http://cgit.freedesktop.org/mesa/mesa/tag/?id=7f513a3380a569399de8bc0ab6a956035eaa5730

Tagger: Emil Velikov 
Date:   Mon Feb 29 12:37:55 2016 +

Mesa 11.2.0-rc2 release candidate
___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (11.2): 30 new commits

2016-02-29 Thread Emil Velikov
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=33b045688ddf70f69243e1b792b81b0f4180be0f
Author: Emil Velikov 
Date:   Mon Feb 29 11:46:35 2016 +

Update version to 11.2.0-rc2

Signed-off-by: Emil Velikov 

URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=7d056d2ec9b3717cad09d6694d920033fa30edad
Author: Thomas Hindoe Paaboel Andersen 
Date:   Mon Feb 22 15:58:00 2016 -0700

mesa: use sizeof on the correct type

Before the luminance stride was based on the size of GL_FLOAT
which is just the type constant (0x1406). Change it to use the
size of GLfloat.

Reviewed-by: Brian Paul 
(cherry picked from commit 1807806add36327ba1e713c49554b61b2855d5f9)
Nominated-by: Emil Velikov 

URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=188e698e1a6f0d7c822e13e67ff6c1ea973c3ec4
Author: Marc-André Lureau 
Date:   Fri Feb 12 22:11:05 2016 +0100

virtio_gpu: Add virtio 1.0 PCI ID to driver map

Add the virtio-gpu PCI ID for virtio 1.0 (according to the
specification, "the PCI Device ID is calculated by adding 0x1040 to the
Virtio Device ID")

Support for virtio 1.0 was added in qemu 2.4 (same time virtio-gpu
landed).

Cc: "11.1 11.2" 
Signed-off-by: Marc-André Lureau 
Reviewed-by: Emil Velikov 
(cherry picked from commit f1d12e7392896f45a76df87b6ad0bf18647922df)

URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6f561c535db35e4895d72e155e391a9fc7824e7f
Author: Koop Mast 
Date:   Mon Dec 28 20:26:48 2015 +0100

st/clover: Add libelf cflags to the build

Otherwise the build will fail, when the library is in a non default
location.

v2 [Emil Velikov]
 - drop the unneeded cflags from targets/opencl.

Cc: "11.1 11.2" 
Fixes: 7f585a6a98d "configure.ac: use pkg-config for libelf"
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93524
Signed-off-by: Emil Velikov 
(cherry picked from commit 04bc09fdf9e353fbb1303635236da551785373c9)

URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5fb53ff66adc05500057543868cc0da33003591f
Author: Emil Velikov 
Date:   Wed Sep 2 17:36:22 2015 +0100

mesa; add get-extra-pick-list.sh script into bin/

This is a very rudimentary script that checks if any of the applied
cherry-picks have been referenced (fixed?) by another patch. With the
latter either missing the stable tag or hasn't yet been picked.

Cc: "11.1 11.2" 
Signed-off-by: Emil Velikov 
(cherry picked from commit c212a70cd9d5f5731841e4194c57e8a77e0b4e41)

URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=aeacc8633652879063e3079a8d90607b8df0f05b
Author: Emil Velikov 
Date:   Thu Feb 25 15:20:04 2016 +

automake: add more missing options for make distcheck

Namely - opencl, osmesa (only the gallium flavour as it conflicts with
the classic one), surfaceless egl platform and a couple gallium drivers
(virgl and vc4).

Cc: "11.1 11.2" 
Signed-off-by: Emil Velikov 
(cherry picked from commit 325bc6fb4a045b4643f284a6b76c336e418064c2)

URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=06bc8e251555b5aa38eccaeded9f625c8394164e
Author: Emil Velikov 
Date:   Thu Feb 25 16:53:06 2016 +

install-gallium-links: port changes from install-lib-links

Namely:
b662d5282f7 mesa: Add clean-local rule to remove .lib links.
5c1aac17adf install-lib-links: don't depend on .libs directory
fece147be53 install-lib-links: remove the .install-lib-links file

With these in place, make distcheck now passes and a race condition has
been avoided.

Cc: "11.1 11.2" 
Signed-off-by: Emil Velikov 
(cherry picked from commit 0b6157e9713c662a6635fc0d79a393d95550c4ad)

URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c1e82fcf967dddcb8cc7f737fae7bdd674292bc1
Author: Rob Herring 
Date:   Wed Feb 24 12:56:31 2016 -0600

r600: Make enum alu_op_flags unsigned

In builds with clang, there are several errors related to the enum
alu_op_flags like this:

src/gallium/drivers/r600/sb/sb_expr.cpp:887:8:
error: case value evaluates to -1610612736, which cannot be narrowed to
type 'unsigned int' [-Wc++11-narrowing]

These are due to the MSB being set in the enum. Fix these errors by
making the enum values unsigned as needed. The flags field that stores
this enum also needs to be unsigned.

Cc: "11.1 11.2" 
Cc: Marek Olšák 
Signed-off-by: Rob Herring 
Reviewed-by: Michel Dänzer 
(cherry picked from commit 51b22bd46888c972eb8c80ee5524d94f6f0b8996)

URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c00a89eb16b1e3b7ad866ad9e9641dc61f424acf
Author: Rob Herring 
Date:   Wed Feb 24 12:56:30 2016 -0600

gallium/radeon: Add space between string literal and identifier

Fix compiles with clang that have this C++11 error:

src/gallium/drivers/radeon/r600_pipe_c

Mesa (master): virtio_gpu: Add virtio 1.0 PCI ID to driver map

2016-02-29 Thread Emil Velikov
Module: Mesa
Branch: master
Commit: f1d12e7392896f45a76df87b6ad0bf18647922df
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f1d12e7392896f45a76df87b6ad0bf18647922df

Author: Marc-André Lureau 
Date:   Fri Feb 12 22:11:05 2016 +0100

virtio_gpu: Add virtio 1.0 PCI ID to driver map

Add the virtio-gpu PCI ID for virtio 1.0 (according to the
specification, "the PCI Device ID is calculated by adding 0x1040 to the
Virtio Device ID")

Support for virtio 1.0 was added in qemu 2.4 (same time virtio-gpu
landed).

Cc: "11.1 11.2" 
Signed-off-by: Marc-André Lureau 
Reviewed-by: Emil Velikov 

---

 include/pci_ids/virtio_gpu_pci_ids.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/pci_ids/virtio_gpu_pci_ids.h 
b/include/pci_ids/virtio_gpu_pci_ids.h
index 2e6ecaf..9232cd2 100644
--- a/include/pci_ids/virtio_gpu_pci_ids.h
+++ b/include/pci_ids/virtio_gpu_pci_ids.h
@@ -1 +1,2 @@
 CHIPSET(0x0010, VIRTGL, VIRTGL)
+CHIPSET(0x1050, VIRTGL, VIRTGL)

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


Mesa (master): mesa; add get-extra-pick-list.sh script into bin/

2016-02-29 Thread Emil Velikov
Module: Mesa
Branch: master
Commit: c212a70cd9d5f5731841e4194c57e8a77e0b4e41
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c212a70cd9d5f5731841e4194c57e8a77e0b4e41

Author: Emil Velikov 
Date:   Wed Sep  2 17:36:22 2015 +0100

mesa; add get-extra-pick-list.sh script into bin/

This is a very rudimentary script that checks if any of the applied
cherry-picks have been referenced (fixed?) by another patch. With the
latter either missing the stable tag or hasn't yet been picked.

Cc: "11.1 11.2" 
Signed-off-by: Emil Velikov 

---

 bin/get-extra-pick-list.sh | 35 +++
 1 file changed, 35 insertions(+)

diff --git a/bin/get-extra-pick-list.sh b/bin/get-extra-pick-list.sh
new file mode 100755
index 000..a9d25b9
--- /dev/null
+++ b/bin/get-extra-pick-list.sh
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+# Script for generating a list of candidates which fix commits that have been
+# previously cherry-picked to a stable branch.
+#
+# Usage examples:
+#
+# $ bin/get-extra-pick-list.sh
+# $ bin/get-extra-pick-list.sh > picklist
+# $ bin/get-extra-pick-list.sh | tee picklist
+
+# Use the last branchpoint as our limit for the search
+# XXX: there should be a better way for this
+latest_branchpoint=`git branch | grep \* | cut -c 3-`-branchpoint
+
+# Grep for commits with "cherry picked from commit" in the commit message.
+git log --reverse --grep="cherry picked from commit" $latest_branchpoint..HEAD 
|\
+   grep "cherry picked from commit" |\
+   sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 
's/)//' |\
+   cut -c -8 |\
+while read sha
+do
+   # Check if the original commit is referenced in master
+   git log -n1 --pretty=oneline --grep=$sha 
$latest_branchpoint..origin/master |\
+   cut -c -8 |\
+   while read candidate
+   do
+   # Check if the potential fix, hasn't landed in branch yet.
+   found=`git log -n1 --pretty=oneline --reverse --grep=$candidate 
$latest_branchpoint..HEAD |wc -l`
+   if test $found = 0
+   then
+   echo Commit $candidate might need to be picked, as it 
references $sha
+   fi
+   done
+done

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


Mesa (master): st/clover: Add libelf cflags to the build

2016-02-29 Thread Emil Velikov
Module: Mesa
Branch: master
Commit: 04bc09fdf9e353fbb1303635236da551785373c9
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=04bc09fdf9e353fbb1303635236da551785373c9

Author: Koop Mast 
Date:   Mon Dec 28 20:26:48 2015 +0100

st/clover: Add libelf cflags to the build

Otherwise the build will fail, when the library is in a non default
location.

v2 [Emil Velikov]
 - drop the unneeded cflags from targets/opencl.

Cc: "11.1 11.2" 
Fixes: 7f585a6a98d "configure.ac: use pkg-config for libelf"
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93524
Signed-off-by: Emil Velikov 

---

 src/gallium/state_trackers/clover/Makefile.am | 1 +
 src/gallium/targets/opencl/Makefile.am| 3 ---
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/gallium/state_trackers/clover/Makefile.am 
b/src/gallium/state_trackers/clover/Makefile.am
index 3c94216..4c9d7d9 100644
--- a/src/gallium/state_trackers/clover/Makefile.am
+++ b/src/gallium/state_trackers/clover/Makefile.am
@@ -41,6 +41,7 @@ libclllvm_la_CXXFLAGS = \
$(VISIBILITY_CXXFLAGS) \
$(LLVM_CXXFLAGS) \
$(DEFINES) \
+   $(LIBELF_CFLAGS) \
-DLIBCLC_INCLUDEDIR=\"$(LIBCLC_INCLUDEDIR)/\" \
-DLIBCLC_LIBEXECDIR=\"$(LIBCLC_LIBEXECDIR)/\" \
-DCLANG_RESOURCE_DIR=\"$(CLANG_RESOURCE_DIR)\"
diff --git a/src/gallium/targets/opencl/Makefile.am 
b/src/gallium/targets/opencl/Makefile.am
index f3ba1e3..99532f0 100644
--- a/src/gallium/targets/opencl/Makefile.am
+++ b/src/gallium/targets/opencl/Makefile.am
@@ -2,9 +2,6 @@ include $(top_srcdir)/src/gallium/Automake.inc
 
 lib_LTLIBRARIES = lib@OPENCL_LIBNAME@.la
 
-AM_CPPFLAGS = \
-$(LIBELF_CFLAGS)
-
 lib@OPENCL_LIBNAME@_la_LDFLAGS = \
$(LLVM_LDFLAGS) \
-no-undefined \

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


Mesa (master): Android: remove dependence on .SECONDEXPANSION

2016-02-29 Thread Emil Velikov
Module: Mesa
Branch: master
Commit: 794221fbb7e9ecdd67cb209237c6f0f2c80e7a71
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=794221fbb7e9ecdd67cb209237c6f0f2c80e7a71

Author: Rob Herring 
Date:   Wed Feb 24 12:56:24 2016 -0600

Android: remove dependence on .SECONDEXPANSION

With the Android build system changes to ninja/kati, the use of
.SECONDEXPANSION is no longer supported. Fix this by avoiding rule specific
variables and using $(transform-generated-source).

Cc: "11.1 11.2" 
Signed-off-by: Rob Herring 
Reviewed-by: Emil Velikov 

---

 src/mesa/drivers/dri/common/Android.mk | 22 +-
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/src/mesa/drivers/dri/common/Android.mk 
b/src/mesa/drivers/dri/common/Android.mk
index f1a7330..8a21e63 100644
--- a/src/mesa/drivers/dri/common/Android.mk
+++ b/src/mesa/drivers/dri/common/Android.mk
@@ -74,20 +74,24 @@ $(intermediates)/xmlpool/%.po: $(LOCAL_PATH)/xmlpool/%.po 
$(POT)
sed -i -e 's/charset=.*\\n/charset=UTF-8\\n/' $@; \
fi
 
-$(intermediates)/xmlpool/%/LC_MESSAGES/options.mo: 
$(intermediates)/xmlpool/%.po
+PRIVATE_SCRIPT := $(LOCAL_PATH)/xmlpool/gen_xmlpool.py
+PRIVATE_LOCALEDIR := $(intermediates)/xmlpool
+PRIVATE_TEMPLATE_HEADER := $(LOCAL_PATH)/xmlpool/t_options.h
+PRIVATE_MO_FILES := 
$(MESA_DRI_OPTIONS_LANGS:%=$(intermediates)/xmlpool/%/LC_MESSAGES/options.mo)
+
+LOCAL_GENERATED_SOURCES += $(PRIVATE_MO_FILES)
+
+$(PRIVATE_MO_FILES): $(intermediates)/xmlpool/%/LC_MESSAGES/options.mo: 
$(intermediates)/xmlpool/%.po
mkdir -p $(dir $@)
msgfmt -o $@ $<
 
-$(MESA_DRI_OPTIONS_H): PRIVATE_SCRIPT := $(LOCAL_PATH)/xmlpool/gen_xmlpool.py
-$(MESA_DRI_OPTIONS_H): PRIVATE_LOCALEDIR := $(intermediates)/xmlpool
-$(MESA_DRI_OPTIONS_H): PRIVATE_TEMPLATE_HEADER := 
$(LOCAL_PATH)/xmlpool/t_options.h
-$(MESA_DRI_OPTIONS_H): PRIVATE_MO_FILES := 
$(MESA_DRI_OPTIONS_LANGS:%=$(intermediates)/xmlpool/%/LC_MESSAGES/options.mo)
-.SECONDEXPANSION:
-$(MESA_DRI_OPTIONS_H): $$(PRIVATE_SCRIPT) $$(PRIVATE_TEMPLATE_HEADER) 
$$(PRIVATE_MO_FILES)
-   @mkdir -p $(dir $@)
-   $(hide) $(MESA_PYTHON2) $(PRIVATE_SCRIPT) $(PRIVATE_TEMPLATE_HEADER) \
+$(LOCAL_GENERATED_SOURCES): PRIVATE_PYTHON := $(MESA_PYTHON2)
+$(LOCAL_GENERATED_SOURCES): PRIVATE_CUSTOM_TOOL = $(PRIVATE_PYTHON) $^ 
$(PRIVATE_TEMPLATE_HEADER) \
$(PRIVATE_LOCALEDIR) $(MESA_DRI_OPTIONS_LANGS) > $@
 
+$(MESA_DRI_OPTIONS_H): $(PRIVATE_SCRIPT) $(PRIVATE_TEMPLATE_HEADER) 
$(PRIVATE_MO_FILES)
+   $(transform-generated-source)
+
 include $(MESA_COMMON_MK)
 include $(BUILD_STATIC_LIBRARY)
 

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


Mesa (master): Android: add -Wno-date-time flag for clang

2016-02-29 Thread Emil Velikov
Module: Mesa
Branch: master
Commit: 6dae9176d60d12de61aa03906c44f81e20ef7622
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6dae9176d60d12de61aa03906c44f81e20ef7622

Author: Rob Herring 
Date:   Wed Feb 24 12:56:26 2016 -0600

Android: add -Wno-date-time flag for clang

clang complains about date/time macros:

src/mesa/main/context.c:403:25: error: expansion of date or time macro is not 
reproducible [-Werror,-Wdate-time]

Disable this warning.

Cc: "11.1 11.2" 
Signed-off-by: Rob Herring 
Reviewed-by: Emil Velikov 

---

 Android.common.mk | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Android.common.mk b/Android.common.mk
index c4823f7..7ca989c 100644
--- a/Android.common.mk
+++ b/Android.common.mk
@@ -33,6 +33,7 @@ MESA_VERSION := $(shell cat $(MESA_TOP)/VERSION)
 # define ANDROID_VERSION (e.g., 4.0.x => 0x0400)
 LOCAL_CFLAGS += \
-Wno-unused-parameter \
+   -Wno-date-time \
-DPACKAGE_VERSION=\"$(MESA_VERSION)\" \

-DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\"; 
\

-DANDROID_VERSION=0x0$(MESA_ANDROID_MAJOR_VERSION)0$(MESA_ANDROID_MINOR_VERSION)

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


Mesa (master): r600: Make enum alu_op_flags unsigned

2016-02-29 Thread Emil Velikov
Module: Mesa
Branch: master
Commit: 51b22bd46888c972eb8c80ee5524d94f6f0b8996
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=51b22bd46888c972eb8c80ee5524d94f6f0b8996

Author: Rob Herring 
Date:   Wed Feb 24 12:56:31 2016 -0600

r600: Make enum alu_op_flags unsigned

In builds with clang, there are several errors related to the enum
alu_op_flags like this:

src/gallium/drivers/r600/sb/sb_expr.cpp:887:8:
error: case value evaluates to -1610612736, which cannot be narrowed to
type 'unsigned int' [-Wc++11-narrowing]

These are due to the MSB being set in the enum. Fix these errors by
making the enum values unsigned as needed. The flags field that stores
this enum also needs to be unsigned.

Cc: "11.1 11.2" 
Cc: Marek Olšák 
Signed-off-by: Rob Herring 
Reviewed-by: Michel Dänzer 

---

 src/gallium/drivers/r600/r600_isa.h | 16 
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_isa.h 
b/src/gallium/drivers/r600/r600_isa.h
index 27fc1e8..b3f49bd 100644
--- a/src/gallium/drivers/r600/r600_isa.h
+++ b/src/gallium/drivers/r600/r600_isa.h
@@ -102,13 +102,13 @@ enum alu_op_flags
 
/* condition codes - 3 bits */
AF_CC_SHIFT = 29,
-   AF_CC_MASK  = (7 << AF_CC_SHIFT),
-   AF_CC_E = (0 << AF_CC_SHIFT),
-   AF_CC_GT= (1 << AF_CC_SHIFT),
-   AF_CC_GE= (2 << AF_CC_SHIFT),
-   AF_CC_NE= (3 << AF_CC_SHIFT),
-   AF_CC_LT= (4 << AF_CC_SHIFT),
-   AF_CC_LE= (5 << AF_CC_SHIFT),
+   AF_CC_MASK  = (7U << AF_CC_SHIFT),
+   AF_CC_E = (0U << AF_CC_SHIFT),
+   AF_CC_GT= (1U << AF_CC_SHIFT),
+   AF_CC_GE= (2U << AF_CC_SHIFT),
+   AF_CC_NE= (3U << AF_CC_SHIFT),
+   AF_CC_LT= (4U << AF_CC_SHIFT),
+   AF_CC_LE= (5U << AF_CC_SHIFT),
 };
 
 /* flags for FETCH instructions (TEX/VTX) */
@@ -165,7 +165,7 @@ struct alu_op_info
 * (0 if instruction doesn't exist for chip class) */
int slots[4];
/* flags (mostly autogenerated from instruction name) */
-   int flags;
+   unsigned int flags;
 };
 
 /* FETCH instruction info */

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


Mesa (master): install-gallium-links: port changes from install-lib-links

2016-02-29 Thread Emil Velikov
Module: Mesa
Branch: master
Commit: 0b6157e9713c662a6635fc0d79a393d95550c4ad
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0b6157e9713c662a6635fc0d79a393d95550c4ad

Author: Emil Velikov 
Date:   Thu Feb 25 16:53:06 2016 +

install-gallium-links: port changes from install-lib-links

Namely:
b662d5282f7 mesa: Add clean-local rule to remove .lib links.
5c1aac17adf install-lib-links: don't depend on .libs directory
fece147be53 install-lib-links: remove the .install-lib-links file

With these in place, make distcheck now passes and a race condition has
been avoided.

Cc: "11.1 11.2" 
Signed-off-by: Emil Velikov 

---

 install-gallium-links.mk | 15 +--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/install-gallium-links.mk b/install-gallium-links.mk
index f45f1b4..4010cad 100644
--- a/install-gallium-links.mk
+++ b/install-gallium-links.mk
@@ -3,9 +3,9 @@
 
 if BUILD_SHARED
 if HAVE_COMPAT_SYMLINKS
-all-local : .libs/install-gallium-links
+all-local : .install-gallium-links
 
-.libs/install-gallium-links : $(dri_LTLIBRARIES) $(egl_LTLIBRARIES) 
$(lib_LTLIBRARIES)
+.install-gallium-links : $(dri_LTLIBRARIES) $(egl_LTLIBRARIES) 
$(lib_LTLIBRARIES)
$(AM_V_GEN)$(MKDIR_P) $(top_builddir)/$(LIB_DIR);   \
link_dir=$(top_builddir)/$(LIB_DIR)/gallium;\
if test x$(egl_LTLIBRARIES) != x; then  \
@@ -23,4 +23,15 @@ all-local : .libs/install-gallium-links
fi; \
done && touch $@
 endif
+
+clean-local:
+   for f in $(notdir $(dri_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*)) \
+$(notdir $(egl_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*)) \
+$(notdir $(lib_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*)); do \
+   echo $$f; \
+   $(RM) $(top_builddir)/$(LIB_DIR)/gallium/$$f;   \
+   done;
+   rmdir $(top_builddir)/$(LIB_DIR)/gallium || true
+   $(RM) .install-gallium-links
+
 endif

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


Mesa (master): Android: fix build break from nir/glsl move to compiler/

2016-02-29 Thread Emil Velikov
Module: Mesa
Branch: master
Commit: 574a92b048ae2b482982c3f156182970d551ca94
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=574a92b048ae2b482982c3f156182970d551ca94

Author: Rob Herring 
Date:   Wed Feb 10 16:02:11 2016 -0600

Android: fix build break from nir/glsl move to compiler/

Commits a39a8fbbaa12 ("nir: move to compiler/") and eb63640c1d38
("glsl: move to compiler/") broke Android builds. Fix them.

There is also a missing dependency between generated NIR headers and
several libraries. This isn't a new issue, but seems to have been
exposed by the NIR move.

Built with i915, i965, freedreno, r300g, r600g, vc4, and virgl enabled.

Cc: "11.2" 
Cc: Mauro Rossi 
Signed-off-by: Rob Herring 
Reviewed-by: Emil Velikov 

---

 Android.mk   | 2 +-
 src/compiler/Android.gen.mk  | 4 
 src/compiler/glsl/Android.gen.mk | 2 +-
 src/compiler/glsl/Android.mk | 3 +--
 src/gallium/auxiliary/Android.mk | 6 --
 src/gallium/drivers/freedreno/Android.mk | 4 +++-
 src/gallium/drivers/r300/Android.mk  | 1 -
 src/gallium/drivers/vc4/Android.mk   | 6 --
 src/gallium/targets/dri/Android.mk   | 2 ++
 src/mesa/Android.libmesa_dricore.mk  | 1 -
 src/mesa/Android.libmesa_glsl_utils.mk   | 2 --
 src/mesa/Android.libmesa_st_mesa.mk  | 1 -
 src/mesa/Android.mesa_gen_matypes.mk | 3 +--
 src/mesa/drivers/dri/Android.mk  | 2 ++
 src/mesa/drivers/dri/i915/Android.mk | 3 ++-
 src/mesa/drivers/dri/i965/Android.mk | 3 ++-
 src/mesa/program/Android.mk  | 5 +++--
 17 files changed, 30 insertions(+), 20 deletions(-)

diff --git a/Android.mk b/Android.mk
index 908078a..2c56b73 100644
--- a/Android.mk
+++ b/Android.mk
@@ -87,7 +87,7 @@ SUBDIRS := \
src/loader \
src/mapi \
src/compiler \
-   src/glsl \
+   src/compiler/glsl \
src/mesa \
src/util \
src/egl \
diff --git a/src/compiler/Android.gen.mk b/src/compiler/Android.gen.mk
index fcd5f94..96fc750 100644
--- a/src/compiler/Android.gen.mk
+++ b/src/compiler/Android.gen.mk
@@ -42,6 +42,10 @@ LOCAL_EXPORT_C_INCLUDE_DIRS += \
 LOCAL_GENERATED_SOURCES += $(addprefix $(intermediates)/, \
$(NIR_GENERATED_FILES))
 
+# Modules using libmesa_nir must set LOCAL_GENERATED_SOURCES to this
+MESA_GEN_NIR_H := $(addprefix $(call local-generated-sources-dir)/, \
+   nir/nir_opcodes.h \
+   nir/nir_builder_opcodes.h)
 
 nir_builder_opcodes_gen := $(LOCAL_PATH)/nir/nir_builder_opcodes_h.py
 nir_builder_opcodes_deps := \
diff --git a/src/compiler/glsl/Android.gen.mk b/src/compiler/glsl/Android.gen.mk
index c5741b4..c0902b2 100644
--- a/src/compiler/glsl/Android.gen.mk
+++ b/src/compiler/glsl/Android.gen.mk
@@ -33,7 +33,7 @@ LOCAL_SRC_FILES := $(LOCAL_SRC_FILES)
 
 LOCAL_C_INCLUDES += \
$(intermediates)/glcpp \
-   $(MESA_TOP)/src/glsl/glcpp \
+   $(LOCAL_PATH)/glcpp \
 
 LOCAL_GENERATED_SOURCES += $(addprefix $(intermediates)/, \
$(LIBGLCPP_GENERATED_FILES) \
diff --git a/src/compiler/glsl/Android.mk b/src/compiler/glsl/Android.mk
index 9cbb9a3..f5d96b3 100644
--- a/src/compiler/glsl/Android.mk
+++ b/src/compiler/glsl/Android.mk
@@ -36,7 +36,6 @@ include $(CLEAR_VARS)
 LOCAL_SRC_FILES := \
$(LIBGLCPP_FILES) \
$(LIBGLSL_FILES) \
-   $(NIR_FILES)
 
 LOCAL_C_INCLUDES := \
$(MESA_TOP)/src/mapi \
@@ -67,7 +66,7 @@ LOCAL_C_INCLUDES := \
$(MESA_TOP)/src/gallium/include \
$(MESA_TOP)/src/gallium/auxiliary
 
-LOCAL_STATIC_LIBRARIES := libmesa_glsl libmesa_glsl_utils libmesa_util
+LOCAL_STATIC_LIBRARIES := libmesa_glsl libmesa_glsl_utils libmesa_util 
libmesa_compiler
 
 LOCAL_MODULE_TAGS := eng
 LOCAL_MODULE := glsl_compiler
diff --git a/src/gallium/auxiliary/Android.mk b/src/gallium/auxiliary/Android.mk
index 86430eb..f5b5a0c 100644
--- a/src/gallium/auxiliary/Android.mk
+++ b/src/gallium/auxiliary/Android.mk
@@ -44,9 +44,9 @@ LOCAL_SRC_FILES += \
 LOCAL_CPPFLAGS := -std=c++11
 endif
 
-# We need libmesa_glsl to get NIR's generated include directories.
+# We need libmesa_nir to get NIR's generated include directories.
 LOCAL_MODULE := libmesa_gallium
-LOCAL_STATIC_LIBRARIES += libmesa_glsl
+LOCAL_STATIC_LIBRARIES += libmesa_nir
 
 # generate sources
 LOCAL_MODULE_CLASS := STATIC_LIBRARIES
@@ -64,5 +64,7 @@ $(intermediates)/util/u_format_srgb.c: $(intermediates)/%.c: 
$(LOCAL_PATH)/%.py
 $(intermediates)/util/u_format_table.c: $(intermediates)/%.c: 
$(LOCAL_PATH)/%.py $(LOCAL_PATH)/util/u_format.csv
$(transform-generated-source)
 
+LOCAL_GENERATED_SOURCES += $(MESA_GEN_NIR_H)
+
 include $(GALLIUM_COMMON_MK)
 include $(BUILD_STATIC_LIBRARY)
diff --git a/src/gallium/drivers/freedreno/Android.mk 
b/src/gallium/drivers/freedreno/Android.mk
index ed51835..8c1ab08 100644
--- a/src/gallium/drivers/freedreno/Android.mk
+++ b/src/gallium/drivers/freedreno/Android.mk
@@ -38,8 +38,10 @@ LOCAL_CFLAGS := \
 LOCAL_C_INCLUDES := \
$(LOCAL_PATH

Mesa (master): gallium/radeon: Add space between string literal and identifier

2016-02-29 Thread Emil Velikov
Module: Mesa
Branch: master
Commit: 92dd38df5a25ca57a23500576169b190be3b26cb
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=92dd38df5a25ca57a23500576169b190be3b26cb

Author: Rob Herring 
Date:   Wed Feb 24 12:56:30 2016 -0600

gallium/radeon: Add space between string literal and identifier

Fix compiles with clang that have this C++11 error:

src/gallium/drivers/radeon/r600_pipe_common.h:662:34:
error: invalid suffix on literal; C++11 requires a space between literal
and identifier [-Wreserved-user-defined-literal]

Cc: "11.1 11.2" 
Cc: Marek Olšák 
Signed-off-by: Rob Herring 
Reviewed-by: Michel Dänzer 

---

 src/gallium/drivers/radeon/r600_pipe_common.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/drivers/radeon/r600_pipe_common.h 
b/src/gallium/drivers/radeon/r600_pipe_common.h
index 7df6177..b77b132 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.h
+++ b/src/gallium/drivers/radeon/r600_pipe_common.h
@@ -659,7 +659,7 @@ r600_get_sampler_view_priority(struct r600_resource *res)
} while (0);
 
 #define R600_ERR(fmt, args...) \
-   fprintf(stderr, "EE %s:%d %s - "fmt, __FILE__, __LINE__, __func__, 
##args)
+   fprintf(stderr, "EE %s:%d %s - " fmt, __FILE__, __LINE__, __func__, 
##args)
 
 /* For MSAA sample positions. */
 #define FILL_SREG(s0x, s0y, s1x, s1y, s2x, s2y, s3x, s3y)  \

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


Mesa (master): automake: explicitly set distcheck configure flags

2016-02-29 Thread Emil Velikov
Module: Mesa
Branch: master
Commit: 64500f21f3b11986a72822244ea83efb16af3fca
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=64500f21f3b11986a72822244ea83efb16af3fca

Author: Emil Velikov 
Date:   Thu Feb 25 15:48:41 2016 +

automake: explicitly set distcheck configure flags

Pretty much all of these are enabled by default. Considering the recent
updates (see previous commits) one might as well list most/all of these
here.

Signed-off-by: Emil Velikov 

---

 Makefile.am | 5 +
 1 file changed, 5 insertions(+)

diff --git a/Makefile.am b/Makefile.am
index 2c06e3a..f9bad14 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -22,15 +22,20 @@
 SUBDIRS = src
 
 AM_DISTCHECK_CONFIGURE_FLAGS = \
+   --enable-dri \
--enable-dri3 \
+   --enable-egl \
--enable-gallium-tests \
--enable-gallium-osmesa \
+   --enable-gallium-llvm \
--enable-gbm \
--enable-gles1 \
--enable-gles2 \
+   --enable-glx \
--enable-glx-tls \
--enable-nine \
--enable-opencl \
+   --enable-opengl \
--enable-va \
--enable-vdpau \
--enable-xa \

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


Mesa (master): automake: add more missing options for make distcheck

2016-02-29 Thread Emil Velikov
Module: Mesa
Branch: master
Commit: 325bc6fb4a045b4643f284a6b76c336e418064c2
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=325bc6fb4a045b4643f284a6b76c336e418064c2

Author: Emil Velikov 
Date:   Thu Feb 25 15:20:04 2016 +

automake: add more missing options for make distcheck

Namely - opencl, osmesa (only the gallium flavour as it conflicts with
the classic one), surfaceless egl platform and a couple gallium drivers
(virgl and vc4).

Cc: "11.1 11.2" 
Signed-off-by: Emil Velikov 

---

 Makefile.am | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 5df8bc3..2c06e3a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -24,19 +24,21 @@ SUBDIRS = src
 AM_DISTCHECK_CONFIGURE_FLAGS = \
--enable-dri3 \
--enable-gallium-tests \
+   --enable-gallium-osmesa \
--enable-gbm \
--enable-gles1 \
--enable-gles2 \
--enable-glx-tls \
--enable-nine \
+   --enable-opencl \
--enable-va \
--enable-vdpau \
--enable-xa \
--enable-xvmc \
--disable-llvm-shared-libs \
-   --with-egl-platforms=x11,wayland,drm \
+   --with-egl-platforms=x11,wayland,drm,surfaceless \
--with-dri-drivers=i915,i965,nouveau,radeon,r200,swrast \
-   
--with-gallium-drivers=i915,ilo,nouveau,r300,r600,radeonsi,freedreno,svga,swrast
+   
--with-gallium-drivers=i915,ilo,nouveau,r300,r600,radeonsi,freedreno,svga,swrast,vc4,virgl
 
 ACLOCAL_AMFLAGS = -I m4
 

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


Mesa (master): Android: clean-up and fix DRI module path handling

2016-02-29 Thread Emil Velikov
Module: Mesa
Branch: master
Commit: 8949edf01863ade9c87a02e1256bba083f14317a
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8949edf01863ade9c87a02e1256bba083f14317a

Author: Rob Herring 
Date:   Wed Feb 24 12:56:28 2016 -0600

Android: clean-up and fix DRI module path handling

MESA_DRI_MODULE_PATH is only getting set for classic DRI drivers and may or
may not be set correctly for gallium_dri.so depending on the makefile
include ordering. For Android 6 and earlier it is fine, but with build
system changes in AOSP master, it is not.

Move the path variables to a single place at the top level and introduce
MESA_DRI_MODULE_REL_PATH for Android 5 and later which require relative
paths. With this, there is a single variable to change.

Cc: "11.1 11.2" 
Signed-off-by: Rob Herring 
Reviewed-by: Emil Velikov 

---

 Android.mk   | 4 
 src/egl/Android.mk   | 6 +++---
 src/gallium/targets/dri/Android.mk   | 3 ++-
 src/mesa/drivers/dri/Android.mk  | 3 ---
 src/mesa/drivers/dri/i915/Android.mk | 2 +-
 src/mesa/drivers/dri/i965/Android.mk | 2 +-
 6 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/Android.mk b/Android.mk
index 2c56b73..67d894f 100644
--- a/Android.mk
+++ b/Android.mk
@@ -42,6 +42,10 @@ $(call local-intermediates-dir)
 endef
 endif
 
+MESA_DRI_MODULE_REL_PATH := dri
+MESA_DRI_MODULE_PATH := 
$(TARGET_OUT_SHARED_LIBRARIES)/$(MESA_DRI_MODULE_REL_PATH)
+MESA_DRI_MODULE_UNSTRIPPED_PATH := 
$(TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED)/$(MESA_DRI_MODULE_REL_PATH)
+
 MESA_COMMON_MK := $(MESA_TOP)/Android.common.mk
 MESA_PYTHON2 := python
 
diff --git a/src/egl/Android.mk b/src/egl/Android.mk
index cf71251..51a9202 100644
--- a/src/egl/Android.mk
+++ b/src/egl/Android.mk
@@ -44,10 +44,10 @@ LOCAL_CFLAGS := \
-DHAVE_ANDROID_PLATFORM
 
 ifeq ($(MESA_LOLLIPOP_BUILD),true)
-LOCAL_CFLAGS_32 := -DDEFAULT_DRIVER_DIR=\"/system/lib/dri\"
-LOCAL_CFLAGS_64 := -DDEFAULT_DRIVER_DIR=\"/system/lib64/dri\"
+LOCAL_CFLAGS_32 := 
-DDEFAULT_DRIVER_DIR=\"/system/lib/$(MESA_DRI_MODULE_REL_PATH)\"
+LOCAL_CFLAGS_64 := 
-DDEFAULT_DRIVER_DIR=\"/system/lib64/$(MESA_DRI_MODULE_REL_PATH)\"
 else
-LOCAL_CFLAGS += -DDEFAULT_DRIVER_DIR=\"/system/lib/dri\"
+LOCAL_CFLAGS += 
-DDEFAULT_DRIVER_DIR=\"/system/lib/$(MESA_DRI_MODULE_REL_PATH)\"
 endif
 
 LOCAL_C_INCLUDES := \
diff --git a/src/gallium/targets/dri/Android.mk 
b/src/gallium/targets/dri/Android.mk
index 4acd093..7da0e8a 100644
--- a/src/gallium/targets/dri/Android.mk
+++ b/src/gallium/targets/dri/Android.mk
@@ -28,9 +28,10 @@ include $(CLEAR_VARS)
 LOCAL_MODULE := gallium_dri
 
 ifeq ($(MESA_LOLLIPOP_BUILD),true)
-LOCAL_MODULE_RELATIVE_PATH := $(notdir $(MESA_DRI_MODULE_PATH))
+LOCAL_MODULE_RELATIVE_PATH := $(MESA_DRI_MODULE_REL_PATH)
 else
 LOCAL_MODULE_PATH := $(MESA_DRI_MODULE_PATH)
+LOCAL_UNSTRIPPED_PATH := $(MESA_DRI_MODULE_UNSTRIPPED_PATH)
 endif
 
 LOCAL_SRC_FILES := target.c
diff --git a/src/mesa/drivers/dri/Android.mk b/src/mesa/drivers/dri/Android.mk
index 1789762..7e7587b 100644
--- a/src/mesa/drivers/dri/Android.mk
+++ b/src/mesa/drivers/dri/Android.mk
@@ -28,9 +28,6 @@ include $(LOCAL_PATH)/common/Makefile.sources
 #---
 # Variables common to all DRI drivers
 
-MESA_DRI_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/dri
-MESA_DRI_MODULE_UNSTRIPPED_PATH := 
$(TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED)/dri
-
 MESA_DRI_CFLAGS := \
-DHAVE_ANDROID_PLATFORM
 
diff --git a/src/mesa/drivers/dri/i915/Android.mk 
b/src/mesa/drivers/dri/i915/Android.mk
index b95d5c1..97359fa 100644
--- a/src/mesa/drivers/dri/i915/Android.mk
+++ b/src/mesa/drivers/dri/i915/Android.mk
@@ -27,7 +27,7 @@ include $(CLEAR_VARS)
 
 LOCAL_MODULE := i915_dri
 ifeq ($(MESA_LOLLIPOP_BUILD),true)
-LOCAL_MODULE_RELATIVE_PATH := $(notdir $(MESA_DRI_MODULE_PATH))
+LOCAL_MODULE_RELATIVE_PATH := $(MESA_DRI_MODULE_REL_PATH)
 else
 LOCAL_MODULE_PATH := $(MESA_DRI_MODULE_PATH)
 LOCAL_UNSTRIPPED_PATH := $(MESA_DRI_MODULE_UNSTRIPPED_PATH)
diff --git a/src/mesa/drivers/dri/i965/Android.mk 
b/src/mesa/drivers/dri/i965/Android.mk
index 4f2e6db..056b223 100644
--- a/src/mesa/drivers/dri/i965/Android.mk
+++ b/src/mesa/drivers/dri/i965/Android.mk
@@ -27,7 +27,7 @@ include $(CLEAR_VARS)
 
 LOCAL_MODULE := i965_dri
 ifeq ($(MESA_LOLLIPOP_BUILD),true)
-LOCAL_MODULE_RELATIVE_PATH := $(notdir $(MESA_DRI_MODULE_PATH))
+LOCAL_MODULE_RELATIVE_PATH := $(MESA_DRI_MODULE_REL_PATH)
 else
 LOCAL_MODULE_PATH := $(MESA_DRI_MODULE_PATH)
 LOCAL_UNSTRIPPED_PATH := $(MESA_DRI_MODULE_UNSTRIPPED_PATH)

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


Mesa (master): freedreno: drop unnecessary -Wno-packed-bitfield-compat

2016-02-29 Thread Emil Velikov
Module: Mesa
Branch: master
Commit: 0156a33aa39db6ebe15666fce8f1e073cb737b34
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0156a33aa39db6ebe15666fce8f1e073cb737b34

Author: Rob Herring 
Date:   Wed Feb 24 12:56:29 2016 -0600

freedreno: drop unnecessary -Wno-packed-bitfield-compat

Enabling this warning doesn't generate any warnings with gcc, but is an
unknown option for clang, so drop it.

Signed-off-by: Rob Herring 
Acked-by: Rob Clark  (v1)

Cc: "11.1 11.2" 
v2: keep the warning around, commented out
Signed-off-by: Emil Velikov 

---

 src/gallium/drivers/freedreno/Android.mk | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/freedreno/Android.mk 
b/src/gallium/drivers/freedreno/Android.mk
index 8c1ab08..d25adb4 100644
--- a/src/gallium/drivers/freedreno/Android.mk
+++ b/src/gallium/drivers/freedreno/Android.mk
@@ -32,8 +32,8 @@ LOCAL_SRC_FILES := \
$(a4xx_SOURCES) \
$(ir3_SOURCES)
 
-LOCAL_CFLAGS := \
-   -Wno-packed-bitfield-compat
+#LOCAL_CFLAGS := \
+#  -Wno-packed-bitfield-compat
 
 LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/ir3

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


Mesa (master): Android: glsl: fix dependence on YACC_HEADER_SUFFIX from build system

2016-02-29 Thread Emil Velikov
Module: Mesa
Branch: master
Commit: a2f16db19b18bcb0e00702b17adc84483c17c590
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a2f16db19b18bcb0e00702b17adc84483c17c590

Author: Rob Herring 
Date:   Wed Feb 24 12:56:25 2016 -0600

Android: glsl: fix dependence on YACC_HEADER_SUFFIX from build system

The makefile was implicitly picking up YACC_HEADER_SUFFIX from the Android
build system, but this variable is now gone. Add it locally to fix the
build with AOSP master.

Cc: "11.1 11.2" 
Signed-off-by: Rob Herring 
Reviewed-by: Emil Velikov 

---

 src/compiler/glsl/Android.gen.mk | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/compiler/glsl/Android.gen.mk b/src/compiler/glsl/Android.gen.mk
index c0902b2..de5cd0f 100644
--- a/src/compiler/glsl/Android.gen.mk
+++ b/src/compiler/glsl/Android.gen.mk
@@ -51,6 +51,8 @@ define glsl_local-y-to-c-and-h
$(hide) $(YACC) -o $@ -p "glcpp_parser_" $<
 endef
 
+YACC_HEADER_SUFFIX := .hpp
+
 define local-yy-to-cpp-and-h
@mkdir -p $(dir $@)
@echo "Mesa Yacc: $(PRIVATE_MODULE) <= $<"

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


Mesa (master): Android: remove headers from LOCAL_SRC_FILES

2016-02-29 Thread Emil Velikov
Module: Mesa
Branch: master
Commit: 0663edf85b8e055dfecf290afab1a15c68da961a
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0663edf85b8e055dfecf290afab1a15c68da961a

Author: Rob Herring 
Date:   Wed Feb 24 12:56:27 2016 -0600

Android: remove headers from LOCAL_SRC_FILES

The Android build system now spits out warnings for header files listed in
LOCAL_SRC_FILES, so strip them out.

Cc: "11.1 11.2" 
Signed-off-by: Rob Herring 
Reviewed-by: Emil Velikov 

---

 Android.common.mk | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/Android.common.mk b/Android.common.mk
index 7ca989c..610b213 100644
--- a/Android.common.mk
+++ b/Android.common.mk
@@ -89,3 +89,6 @@ LOCAL_CPPFLAGS += \
 ifeq ($(strip $(LOCAL_MODULE_TAGS)),)
 LOCAL_MODULE_TAGS := optional
 endif
+
+# Quiet down the build system and remove any .h files from the sources
+LOCAL_SRC_FILES := $(patsubst %.h, , $(LOCAL_SRC_FILES))

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


Mesa (master): gallium/radeon: remove separate BE path in r600_translate_colorswap

2016-02-29 Thread Oded Gabbay
Module: Mesa
Branch: master
Commit: 9559071ed602e62c3619b8b8b02ac7e47a7eff8c
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=9559071ed602e62c3619b8b8b02ac7e47a7eff8c

Author: Oded Gabbay 
Date:   Thu Feb 25 22:35:00 2016 +0200

gallium/radeon: remove separate BE path in r600_translate_colorswap

After further testing, it appears there is no need for
separate BE path in r600_translate_colorswap()

The only fix remaining is the change of the last if statement, in the 4
channels case. Originally, it contained an invalid swizzle configuration
that never got hit, in LE or BE. So the fix is relevant for both systems.

This patch adds an additional 120 available visuals for LE and BE,
as seen in glxinfo

v2:
Tested for regressions by running piglit gpu.py with CAICOS (r600g) on
x86-64 machine. No regressions found.

Signed-off-by: Oded Gabbay 
Cc: "11.1 11.2" 
Reviewed-by: Marek Olšák 

---

 src/gallium/drivers/radeon/r600_texture.c | 13 +
 1 file changed, 1 insertion(+), 12 deletions(-)

diff --git a/src/gallium/drivers/radeon/r600_texture.c 
b/src/gallium/drivers/radeon/r600_texture.c
index 9a3ccb5..454d0f1 100644
--- a/src/gallium/drivers/radeon/r600_texture.c
+++ b/src/gallium/drivers/radeon/r600_texture.c
@@ -1293,25 +1293,14 @@ unsigned r600_translate_colorswap(enum pipe_format 
format)
break;
case 4:
/* check the middle channels, the 1st and 4th channel can be 
NONE */
-#ifdef PIPE_ARCH_LITTLE_ENDIAN
if (HAS_SWIZZLE(1,Y) && HAS_SWIZZLE(2,Z))
return V_0280A0_SWAP_STD; /* XYZW */
else if (HAS_SWIZZLE(1,Z) && HAS_SWIZZLE(2,Y))
return V_0280A0_SWAP_STD_REV; /* WZYX */
else if (HAS_SWIZZLE(1,Y) && HAS_SWIZZLE(2,X))
return V_0280A0_SWAP_ALT; /* ZYXW */
-   else if (HAS_SWIZZLE(1,X) && HAS_SWIZZLE(2,Y))
-   return V_0280A0_SWAP_ALT_REV; /* WXYZ */
-#else
-   if (HAS_SWIZZLE(1,W) && HAS_SWIZZLE(2,X))
-   return V_0280A0_SWAP_STD_REV; /* ZWXY */
-   else if (HAS_SWIZZLE(1,X) && HAS_SWIZZLE(2,W))
-   return V_0280A0_SWAP_STD; /* YXWZ */
-   else if (HAS_SWIZZLE(1,W) && HAS_SWIZZLE(2,Z))
-   return V_0280A0_SWAP_ALT_REV; /* XWZY */
else if (HAS_SWIZZLE(1,Z) && HAS_SWIZZLE(2,W))
-   return V_0280A0_SWAP_ALT; /* YZWX */
-#endif
+   return V_0280A0_SWAP_ALT_REV; /* YZWX */
break;
}
return ~0U;

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


Mesa (master): gallium/radeon: disable evergreen_do_fast_color_clear for BE

2016-02-29 Thread Oded Gabbay
Module: Mesa
Branch: master
Commit: a640ad15e1fff3eb51f42bf30c31eafe02a921e2
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a640ad15e1fff3eb51f42bf30c31eafe02a921e2

Author: Oded Gabbay 
Date:   Thu Feb 25 22:36:38 2016 +0200

gallium/radeon: disable evergreen_do_fast_color_clear for BE

This function is currently broken for BE. I assume it's because of
util_pack_color(). Until I fix this path, I prefer to disable it so users
would be able to see correct colors on their desktop and applications.

Together with the two following patches:
- gallium/r600: Don't let h/w do endian swap for colorformat
- gallium/radeon: remove separate BE path in r600_translate_colorswap

it fixes BZ#72877 and BZ#92039

Signed-off-by: Oded Gabbay 
Cc: "11.1 11.2" 
Reviewed-by: Marek Olšák 

---

 src/gallium/drivers/radeon/r600_texture.c | 5 +
 1 file changed, 5 insertions(+)

diff --git a/src/gallium/drivers/radeon/r600_texture.c 
b/src/gallium/drivers/radeon/r600_texture.c
index 454d0f1..0b31d0a 100644
--- a/src/gallium/drivers/radeon/r600_texture.c
+++ b/src/gallium/drivers/radeon/r600_texture.c
@@ -1408,6 +1408,11 @@ void evergreen_do_fast_color_clear(struct 
r600_common_context *rctx,
 {
int i;
 
+   /* This function is broken in BE, so just disable this path for now */
+#ifdef PIPE_ARCH_BIG_ENDIAN
+   return;
+#endif
+
if (rctx->render_cond)
return;
 

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


Mesa (master): gallium/r600: Don't let h/w do endian swap for colorformat

2016-02-29 Thread Oded Gabbay
Module: Mesa
Branch: master
Commit: e3dfc0e095bba74aaaea4d6f994c29fdf954cbad
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e3dfc0e095bba74aaaea4d6f994c29fdf954cbad

Author: Oded Gabbay 
Date:   Thu Feb 25 23:09:18 2016 +0200

gallium/r600: Don't let h/w do endian swap for colorformat

Since the rework on gallium pipe formats, there is no more need to do
endian swap of the colorformat in the h/w, because the conversion between
mesa format and gallium (pipe) format takes endianess into account (see
the big #if in p_format.h).

v2: return ENDIAN_NONE only for four 8-bits components
(V_0280A0_COLOR_8_8_8_8)

Signed-off-by: Oded Gabbay 
Cc: "11.1 11.2" 
Reviewed-by: Marek Olšák 

---

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

diff --git a/src/gallium/drivers/r600/r600_state_common.c 
b/src/gallium/drivers/r600/r600_state_common.c
index c3346f2..b231d1e 100644
--- a/src/gallium/drivers/r600/r600_state_common.c
+++ b/src/gallium/drivers/r600/r600_state_common.c
@@ -2721,6 +2721,13 @@ uint32_t r600_colorformat_endian_swap(uint32_t 
colorformat)
 
/* 32-bit buffers. */
case V_0280A0_COLOR_8_8_8_8:
+   /*
+* No need to do endian swaps on four 8-bits components,
+* as mesa<-->pipe formats conversion take into account
+* the endianess
+*/
+   return ENDIAN_NONE;
+
case V_0280A0_COLOR_2_10_10_10:
case V_0280A0_COLOR_8_24:
case V_0280A0_COLOR_24_8:

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