<div dir="ltr"><div>Reviewed-by: Marek Olšák <<a href="mailto:marek.olsak@amd.com">marek.olsak@amd.com</a>><br><br></div>Marek<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 15, 2018 at 2:04 PM, Michel Dänzer <span dir="ltr"><<a href="mailto:michel@daenzer.net" target="_blank">michel@daenzer.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">From: Marek Olšák <<a href="mailto:marek.olsak@amd.com">marek.olsak@amd.com</a>><br>
<br>
(Ported from radeonsi commit f70f6baaa3bb0f8b280ac2eaea69bb<wbr>ffaf7de840)<br>
<br>
Allows cached BOs to be reused in more cases.<br>
<br>
Bugzilla: <a href="https://bugs.freedesktop.org/105171" rel="noreferrer" target="_blank">https://bugs.freedesktop.org/<wbr>105171</a><br>
Signed-off-by: Michel Dänzer <<a href="mailto:michel.daenzer@amd.com">michel.daenzer@amd.com</a>><br>
---<br>
 src/gallium/drivers/r600/r600_<wbr>buffer_common.c | 16 +++++-----------<br>
 src/gallium/drivers/r600/r600_<wbr>texture.c       |  4 ----<br>
 2 files changed, 5 insertions(+), 15 deletions(-)<br>
<br>
diff --git a/src/gallium/drivers/r600/<wbr>r600_buffer_common.c b/src/gallium/drivers/r600/<wbr>r600_buffer_common.c<br>
index 501b96fa0ba..88b0081abdb 100644<br>
--- a/src/gallium/drivers/r600/<wbr>r600_buffer_common.c<br>
+++ b/src/gallium/drivers/r600/<wbr>r600_buffer_common.c<br>
@@ -167,21 +167,15 @@ void r600_init_resource_fields(<wbr>struct r600_common_screen *rscreen,<br>
                         RADEON_FLAG_GTT_WC;<br>
        }<br>
<br>
-       /* Only displayable single-sample textures can be shared between<br>
-        * processes. */<br>
-       if (res->b.b.target == PIPE_BUFFER ||<br>
-           res->b.b.nr_samples >= 2 ||<br>
-           (rtex->surface.micro_tile_mode != RADEON_MICRO_MODE_DISPLAY &&<br>
-            /* Raven doesn't use display micro mode for 32bpp, so check this: */<br>
-            !(res->b.b.bind & PIPE_BIND_SCANOUT)))<br>
-               res->flags |= RADEON_FLAG_NO_INTERPROCESS_<wbr>SHARING;<br>
+       /* Displayable and shareable surfaces are not suballocated. */<br>
+       if (res->b.b.bind & (PIPE_BIND_SHARED | PIPE_BIND_SCANOUT))<br>
+               res->flags |= RADEON_FLAG_NO_SUBALLOC; /* shareable */<br>
+       else<br>
+               res->flags |= RADEON_FLAG_NO_INTERPROCESS_<wbr>SHARING;<br>
<br>
        if (rscreen->debug_flags & DBG_NO_WC)<br>
                res->flags &= ~RADEON_FLAG_GTT_WC;<br>
<br>
-       if (res->b.b.bind & PIPE_BIND_SHARED)<br>
-               res->flags |= RADEON_FLAG_NO_SUBALLOC;<br>
-<br>
        /* Set expected VRAM and GART usage for the buffer. */<br>
        res->vram_usage = 0;<br>
        res->gart_usage = 0;<br>
diff --git a/src/gallium/drivers/r600/<wbr>r600_texture.c b/src/gallium/drivers/r600/<wbr>r600_texture.c<br>
index fbcc878a247..806bc278b08 100644<br>
--- a/src/gallium/drivers/r600/<wbr>r600_texture.c<br>
+++ b/src/gallium/drivers/r600/<wbr>r600_texture.c<br>
@@ -953,10 +953,6 @@ r600_texture_create_object(<wbr>struct pipe_screen *screen,<br>
                r600_init_resource_fields(<wbr>rscreen, resource, rtex->size,<br>
                                          rtex->surface.surf_alignment);<br>
<br>
-               /* Displayable surfaces are not suballocated. */<br>
-               if (resource->b.b.bind & PIPE_BIND_SCANOUT)<br>
-                       resource->flags |= RADEON_FLAG_NO_SUBALLOC;<br>
-<br>
                if (!r600_alloc_resource(rscreen, resource)) {<br>
                        FREE(rtex);<br>
                        return NULL;<br>
<span class="HOEnZb"><font color="#888888">--<br>
2.16.2<br>
<br>
______________________________<wbr>_________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/mesa-dev</a><br>
</font></span></blockquote></div><br></div>