Reviewed-by: Marek Olšák <marek.ol...@amd.com> Marek
On Thu, Mar 15, 2018 at 2:04 PM, Michel Dänzer <mic...@daenzer.net> wrote: > From: Marek Olšák <marek.ol...@amd.com> > > (Ported from radeonsi commit f70f6baaa3bb0f8b280ac2eaea69bbffaf7de840) > > Allows cached BOs to be reused in more cases. > > Bugzilla: https://bugs.freedesktop.org/105171 > Signed-off-by: Michel Dänzer <michel.daen...@amd.com> > --- > src/gallium/drivers/r600/r600_buffer_common.c | 16 +++++----------- > src/gallium/drivers/r600/r600_texture.c | 4 ---- > 2 files changed, 5 insertions(+), 15 deletions(-) > > diff --git a/src/gallium/drivers/r600/r600_buffer_common.c > b/src/gallium/drivers/r600/r600_buffer_common.c > index 501b96fa0ba..88b0081abdb 100644 > --- a/src/gallium/drivers/r600/r600_buffer_common.c > +++ b/src/gallium/drivers/r600/r600_buffer_common.c > @@ -167,21 +167,15 @@ void r600_init_resource_fields(struct > r600_common_screen *rscreen, > RADEON_FLAG_GTT_WC; > } > > - /* Only displayable single-sample textures can be shared between > - * processes. */ > - if (res->b.b.target == PIPE_BUFFER || > - res->b.b.nr_samples >= 2 || > - (rtex->surface.micro_tile_mode != RADEON_MICRO_MODE_DISPLAY && > - /* Raven doesn't use display micro mode for 32bpp, so check > this: */ > - !(res->b.b.bind & PIPE_BIND_SCANOUT))) > - res->flags |= RADEON_FLAG_NO_INTERPROCESS_SHARING; > + /* Displayable and shareable surfaces are not suballocated. */ > + if (res->b.b.bind & (PIPE_BIND_SHARED | PIPE_BIND_SCANOUT)) > + res->flags |= RADEON_FLAG_NO_SUBALLOC; /* shareable */ > + else > + res->flags |= RADEON_FLAG_NO_INTERPROCESS_SHARING; > > if (rscreen->debug_flags & DBG_NO_WC) > res->flags &= ~RADEON_FLAG_GTT_WC; > > - if (res->b.b.bind & PIPE_BIND_SHARED) > - res->flags |= RADEON_FLAG_NO_SUBALLOC; > - > /* Set expected VRAM and GART usage for the buffer. */ > res->vram_usage = 0; > res->gart_usage = 0; > diff --git a/src/gallium/drivers/r600/r600_texture.c > b/src/gallium/drivers/r600/r600_texture.c > index fbcc878a247..806bc278b08 100644 > --- a/src/gallium/drivers/r600/r600_texture.c > +++ b/src/gallium/drivers/r600/r600_texture.c > @@ -953,10 +953,6 @@ r600_texture_create_object(struct pipe_screen > *screen, > r600_init_resource_fields(rscreen, resource, rtex->size, > rtex->surface.surf_alignment); > > - /* Displayable surfaces are not suballocated. */ > - if (resource->b.b.bind & PIPE_BIND_SCANOUT) > - resource->flags |= RADEON_FLAG_NO_SUBALLOC; > - > if (!r600_alloc_resource(rscreen, resource)) { > FREE(rtex); > return NULL; > -- > 2.16.2 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev