[Mesa-dev] [PATCH 02/18] anv: Add a new block-based batch emit macro

Jason Ekstrand jason at jlekstrand.net
Tue Apr 19 16:49:02 UTC 2016


On Mon, Apr 18, 2016 at 11:53 PM, Michael Schellenberger Costa <
mschellenbergercosta at googlemail.com> wrote:

> Hi Jason,
>
> stupid optional nitpick , but could you go for anv_batch_emit_block?
> Normally abbreviations below 3 characters aren't really worth it.
>

Given that the last two patches delete the old one and rename the new one
to anv_batch_emit, I don't think it matters.


> Michael
>
> Am 19/04/2016 um 02:10 schrieb Jason Ekstrand:
> > This new macro uses a for loop to create an actual code block in which to
> > place the macro setup code.  One advantage of this is that you
> syntatically
> > use braces instead of parentheses.  Another is that the code in the block
> > doesn't even get executed if anv_batch_emit_dwords fails.
> > ---
> >  src/intel/vulkan/anv_private.h | 9 +++++++++
> >  1 file changed, 9 insertions(+)
> >
> > diff --git a/src/intel/vulkan/anv_private.h
> b/src/intel/vulkan/anv_private.h
> > index ae2e08d..d59b7ed 100644
> > --- a/src/intel/vulkan/anv_private.h
> > +++ b/src/intel/vulkan/anv_private.h
> > @@ -861,6 +861,15 @@ __gen_combine_address(struct anv_batch *batch, void
> *location,
> >        VG(VALGRIND_CHECK_MEM_IS_DEFINED(dw, ARRAY_SIZE(dwords0) * 4));\
> >     } while (0)
> >
> > +#define anv_batch_emit_blk(batch, cmd, name)
> \
> > +   for (struct cmd name = { __anv_cmd_header(cmd) },
> \
> > +        *_dst = anv_batch_emit_dwords(batch, __anv_cmd_length(cmd));
> \
> > +        __builtin_expect(_dst != NULL, 1);
> \
> > +        ({ __anv_cmd_pack(cmd)(batch, _dst, &name);
>  \
> > +           VG(VALGRIND_CHECK_MEM_IS_DEFINED(_dst, __anv_cmd_length(cmd)
> * 4)); \
> > +           _dst = NULL;
>  \
> > +         }))
> > +
> >  #define anv_state_pool_emit(pool, cmd, align, ...) ({
>  \
> >        const uint32_t __size = __anv_cmd_length(cmd) * 4;
> \
> >        struct anv_state __state =
> \
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160419/5c69c579/attachment.html>


More information about the mesa-dev mailing list