<div dir="ltr">If you can manage to get me a backtrace (bt full preferably), that would be fantastic!<br><div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jun 8, 2017 at 4:34 AM, Tapani Pälli <span dir="ltr"><<a href="mailto:tapani.palli@intel.com" target="_blank">tapani.palli@intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">FYI I bisected that starting from this commit (or maybe somewhere within this series) there are segfaults with systemui (using libhwui) in Android, it looks like below. Seems rather hard case to debug as it does not seem to always happen (!) but will try to figure out what is going wrong.<br>
<br>
---- 8< ----<br>
01-01 00:00:43.607  2926  2959 F libc    : Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 2959 (RenderThread)<br>
01-01 00:00:43.608  1532  1532 W         : debuggerd: handling request: pid=2926 uid=10013 gid=10013 tid=2959<br>
01-01 00:00:43.667  2975  2975 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***<br>
01-01 00:00:43.667  2975  2975 F DEBUG   : Build fingerprint: 'AndroidIA/androidia_64/androi<wbr>dia_64:7.1.1/NMF26Q/tpalli0606<wbr>0923:eng/test-keys'<br>
01-01 00:00:43.667  2975  2975 F DEBUG   : Revision: '0'<br>
01-01 00:00:43.667  2975  2975 F DEBUG   : ABI: 'x86_64'<br>
01-01 00:00:43.667  2975  2975 F DEBUG   : pid: 2926, tid: 2959, name: RenderThread  >>> com.android.systemui <<<<br>
01-01 00:00:43.667  2975  2975 F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0<br>
01-01 00:00:43.667  2975  2975 F DEBUG   :     rax 000070332c1ae400  rbx 000070332c13a070  rcx 0000000000000001  rdx 0000703329a27320<br>
01-01 00:00:43.667  2975  2975 F DEBUG   :     rsi 0000000000000000  rdi 0000000000000000<br>
01-01 00:00:43.667  2975  2975 F DEBUG   :     r8  0000000000000000  r9 00000000ffffffff  r10 0000703349b2ab50  r11 0000000000000246<br>
01-01 00:00:43.667  2975  2975 F DEBUG   :     r12 0000000000000000  r13 000070332d86ab1f  r14 000070332c15f0d8  r15 0000000000000001<br>
01-01 00:00:43.667  2975  2975 F DEBUG   :     cs  0000000000000033  ss 000000000000002b<br>
01-01 00:00:43.667  2975  2975 F DEBUG   :     rip 000070332c32416f  rbp 000070332c1fb800  rsp 000070332d86ab10  eflags 0000000000010246<br>
01-01 00:00:43.673  2975  2975 F DEBUG   :<br>
01-01 00:00:43.673  2975  2975 F DEBUG   : backtrace:<br>
01-01 00:00:43.673  2975  2975 F DEBUG   :     #00 pc 000000000006616f /system/lib64/dri/i965_dri.so (intel_update_state+463)<br>
01-01 00:00:43.673  2975  2975 F DEBUG   :     #01 pc 000000000031e753 /system/lib64/dri/i965_dri.so (_mesa_update_state_locked+155<wbr>5)<br>
01-01 00:00:43.673  2975  2975 F DEBUG   :     #02 pc 000000000031e790 /system/lib64/dri/i965_dri.so (_mesa_update_state+16)<br>
01-01 00:00:43.673  2975  2975 F DEBUG   :     #03 pc 000000000024577b /system/lib64/dri/i965_dri.so (_mesa_Clear+171)<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
<br>
On 05/27/2017 02:30 AM, Jason Ekstrand wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
---<br>
  src/mesa/drivers/dri/i965/brw_<wbr>context.c       | 9 +--------<br>
  src/mesa/drivers/dri/i965/inte<wbr>l_mipmap_tree.c | 9 +++++++++<br>
  src/mesa/drivers/dri/i965/inte<wbr>l_mipmap_tree.h | 3 +++<br>
  3 files changed, 13 insertions(+), 8 deletions(-)<br>
<br>
diff --git a/src/mesa/drivers/dri/i965/br<wbr>w_context.c b/src/mesa/drivers/dri/i965/br<wbr>w_context.c<br>
index 671af42..ed57012 100644<br>
--- a/src/mesa/drivers/dri/i965/br<wbr>w_context.c<br>
+++ b/src/mesa/drivers/dri/i965/br<wbr>w_context.c<br>
@@ -253,14 +253,7 @@ intel_update_state(struct gl_context * ctx, GLuint new_state)<br>
              tex_obj = intel_texture_object(u->TexObj<wbr>);<br>
                if (tex_obj && tex_obj->mt) {<br>
-               /* Access to images is implemented using indirect messages<br>
-                * against data port. Normal render target write understands<br>
-                * lossless compression but unfortunately the typed/untyped<br>
-                * read/write interface doesn't. Therefore even lossless<br>
-                * compressed surfaces need to be resolved prior to accessing<br>
-                * them. Hence skip setting INTEL_MIPTREE_IGNORE_CCS_E.<br>
-                */<br>
-               intel_miptree_all_slices_reso<wbr>lve_color(brw, tex_obj->mt, 0);<br>
+               intel_miptree_prepare_image(b<wbr>rw, tex_obj->mt);<br>
                   if (intel_miptree_is_lossless_com<wbr>pressed(brw, tex_obj->mt) &&<br>
                     intel_disable_rb_aux_buffer(b<wbr>rw, tex_obj->mt->bo)) {<br>
diff --git a/src/mesa/drivers/dri/i965/in<wbr>tel_mipmap_tree.c b/src/mesa/drivers/dri/i965/in<wbr>tel_mipmap_tree.c<br>
index 76fe8b8..5739508 100644<br>
--- a/src/mesa/drivers/dri/i965/in<wbr>tel_mipmap_tree.c<br>
+++ b/src/mesa/drivers/dri/i965/in<wbr>tel_mipmap_tree.c<br>
@@ -2439,6 +2439,15 @@ intel_miptree_prepare_texture(<wbr>struct brw_context *brw,<br>
  }<br>
    void<br>
+intel_miptree_prepare_image(s<wbr>truct brw_context *brw,<br>
+                            struct intel_mipmap_tree *mt)<br>
+{<br>
+   /* The data port doesn't understand any compression */<br>
+   intel_miptree_prepare_access(<wbr>brw, mt, 0, INTEL_REMAINING_LEVELS,<br>
+                                0, INTEL_REMAINING_LAYERS, false, false);<br>
+}<br>
+<br>
+void<br>
  intel_miptree_prepare_fb_fetch<wbr>(struct brw_context *brw,<br>
                                 struct intel_mipmap_tree *mt, uint32_t level,<br>
                                 uint32_t start_layer, uint32_t num_layers)<br>
diff --git a/src/mesa/drivers/dri/i965/in<wbr>tel_mipmap_tree.h b/src/mesa/drivers/dri/i965/in<wbr>tel_mipmap_tree.h<br>
index 9ab9039..2136eff 100644<br>
--- a/src/mesa/drivers/dri/i965/in<wbr>tel_mipmap_tree.h<br>
+++ b/src/mesa/drivers/dri/i965/in<wbr>tel_mipmap_tree.h<br>
@@ -1016,6 +1016,9 @@ intel_miptree_prepare_texture(<wbr>struct brw_context *brw,<br>
                                mesa_format view_format,<br>
                                bool *aux_supported_out);<br>
  void<br>
+intel_miptree_prepare_image(s<wbr>truct brw_context *brw,<br>
+                            struct intel_mipmap_tree *mt);<br>
+void<br>
  intel_miptree_prepare_fb_fetch<wbr>(struct brw_context *brw,<br>
                                 struct intel_mipmap_tree *mt, uint32_t level,<br>
                                 uint32_t start_layer, uint32_t num_layers);<br>
<br>
</blockquote>
</div></div></blockquote></div><br></div></div></div>