[Mesa-dev] [PATCH 12/22] anv/gpu_memcpy: Add a lighter-weight memcpy path
Nanley Chery
nanleychery at gmail.com
Thu May 11 16:40:26 UTC 2017
On Tue, May 02, 2017 at 04:58:15PM -0700, Jason Ekstrand wrote:
> On Thu, Apr 27, 2017 at 11:32 AM, Nanley Chery <nanleychery at gmail.com>
> wrote:
>
> > We're now performing a GPU memcpy in more places to copy small amounts
> > of data. Add a path to thrash less state.
> >
> > Signed-off-by: Nanley Chery <nanley.g.chery at intel.com>
> > ---
> > src/intel/vulkan/genX_gpu_memcpy.c | 38 ++++++++++++++++++++++++++++++
> > ++++++++
> > 1 file changed, 38 insertions(+)
> >
> > diff --git a/src/intel/vulkan/genX_gpu_memcpy.c
> > b/src/intel/vulkan/genX_gpu_memcpy.c
> > index 3cbc7235cf..f15c2a5f72 100644
> > --- a/src/intel/vulkan/genX_gpu_memcpy.c
> > +++ b/src/intel/vulkan/genX_gpu_memcpy.c
> > @@ -28,6 +28,8 @@
> >
> > #include "common/gen_l3_config.h"
> >
> > +#define MI_PREDICATE_SRC0 0x2400
> > +
> > /**
> > * This file implements some lightweight memcpy/memset operations on the
> > GPU
> > * using a vertex buffer and streamout.
> > @@ -63,6 +65,42 @@ genX(cmd_buffer_gpu_memcpy)(struct anv_cmd_buffer
> > *cmd_buffer,
> > assert(dst_offset + size <= dst->size);
> > assert(src_offset + size <= src->size);
> >
> > + /* This memcpy expects DWord aligned memory. */
> > + assert(size % 4 == 0);
> > + assert(dst_offset % 4 == 0);
> > + assert(src_offset % 4 == 0);
> > +
> > + /* Use a simpler memcpy operation when copying 16 bytes or less of
> > data.
> > + * This is the size of a surface state's clear value on SKL+.
> > + */
> >
>
> I think I would rather just have a separate function. Why? Because these
> two methods have very different characteristics in terms of what state they
> trash (quite a bit vs. none) and how they perform. I'd rather we be
> explicit about which method we use. Feel free to rename
> cmd_buffer_gpu_memcpy to cmd_buffer_streamout_copy and then you can name
> the other cmd_buffer_mem_mem_copy or similar.
>
>
Fixed in local v2.
More information about the mesa-dev
mailing list