<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Nov 3, 2016 at 10:42 AM, Chad Versace <span dir="ltr"><<a href="mailto:chadversary@chromium.org" target="_blank">chadversary@chromium.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Wed 02 Nov 2016, Jason Ekstrand wrote:<br>
> ---<br>
>  src/intel/vulkan/gen8_cmd_<wbr>buffer.c | 29 +++++++++++++++++++++++++++++<br>
>  1 file changed, 29 insertions(+)<br>
><br>
> diff --git a/src/intel/vulkan/gen8_cmd_<wbr>buffer.c b/src/intel/vulkan/gen8_cmd_<wbr>buffer.c<br>
> index 0548a5e..5df2e50 100644<br>
> --- a/src/intel/vulkan/gen8_cmd_<wbr>buffer.c<br>
> +++ b/src/intel/vulkan/gen8_cmd_<wbr>buffer.c<br>
> @@ -513,6 +513,25 @@ genX(cmd_buffer_emit_hz_op)(<wbr>struct anv_cmd_buffer *cmd_buffer,<br>
>     }<br>
>  }<br>
><br>
> +/* Set of stage bits for which are pipelined, i.e. they get queued by the<br>
> + * command streamer for later execution.<br>
> + */<br>
> +#define PIPELINE_STAGE_PIPELINED_BITS \<br>
<br>
</span>Small nit. Please prefix this with ANV_. Otherwise, where it's used<br>
below, it looks like a genxml-defined token instead of an anvil-defined token.<br><div><div class="h5"></div></div></blockquote><div><br></div><div>Done.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
> +   (VK_PIPELINE_STAGE_VERTEX_<wbr>INPUT_BIT | \<br>
> +    VK_PIPELINE_STAGE_VERTEX_<wbr>SHADER_BIT | \<br>
> +    VK_PIPELINE_STAGE_<wbr>TESSELLATION_CONTROL_SHADER_<wbr>BIT | \<br>
> +    VK_PIPELINE_STAGE_<wbr>TESSELLATION_EVALUATION_<wbr>SHADER_BIT | \<br>
> +    VK_PIPELINE_STAGE_GEOMETRY_<wbr>SHADER_BIT | \<br>
> +    VK_PIPELINE_STAGE_FRAGMENT_<wbr>SHADER_BIT | \<br>
> +    VK_PIPELINE_STAGE_EARLY_<wbr>FRAGMENT_TESTS_BIT | \<br>
> +    VK_PIPELINE_STAGE_LATE_<wbr>FRAGMENT_TESTS_BIT | \<br>
> +    VK_PIPELINE_STAGE_COLOR_<wbr>ATTACHMENT_OUTPUT_BIT | \<br>
> +    VK_PIPELINE_STAGE_COMPUTE_<wbr>SHADER_BIT | \<br>
> +    VK_PIPELINE_STAGE_TRANSFER_BIT | \<br>
> +    VK_PIPELINE_STAGE_BOTTOM_OF_<wbr>PIPE_BIT | \<br>
> +    VK_PIPELINE_STAGE_ALL_<wbr>GRAPHICS_BIT | \<br>
> +    VK_PIPELINE_STAGE_ALL_<wbr>COMMANDS_BIT)<br>
> +<br>
>  void genX(CmdSetEvent)(<br>
>      VkCommandBuffer                             commandBuffer,<br>
>      VkEvent                                     _event,<br>
> @@ -522,6 +541,11 @@ void genX(CmdSetEvent)(<br>
>     ANV_FROM_HANDLE(anv_event, event, _event);<br>
><br>
>     anv_batch_emit(&cmd_buffer-><wbr>batch, GENX(PIPE_CONTROL), pc) {<br>
> +      if (stageMask & PIPELINE_STAGE_PIPELINED_BITS) {<br>
> +         pc.StallAtPixelScoreboard = true;<br>
> +         pc.CommandStreamerStallEnable = true;<br>
> +      }<br>
> +<br>
>        pc.DestinationAddressType  = DAT_PPGTT,<br>
>        pc.PostSyncOperation       = WriteImmediateData,<br>
>        pc.Address = (struct anv_address) {<br>
> @@ -541,6 +565,11 @@ void genX(CmdResetEvent)(<br>
>     ANV_FROM_HANDLE(anv_event, event, _event);<br>
><br>
>     anv_batch_emit(&cmd_buffer-><wbr>batch, GENX(PIPE_CONTROL), pc) {<br>
> +      if (stageMask & PIPELINE_STAGE_PIPELINED_BITS) {<br>
> +         pc.StallAtPixelScoreboard = true;<br>
> +         pc.CommandStreamerStallEnable = true;<br>
> +      }<br>
> +<br>
>        pc.DestinationAddressType  = DAT_PPGTT;<br>
>        pc.PostSyncOperation       = WriteImmediateData;<br>
>        pc.Address = (struct anv_address) {<br>
<br>
</div></div>Either way,<br>
Reviewed-by: Chad Versace <<a href="mailto:chadversary@chromium.org">chadversary@chromium.org</a>><br>
<br>
</blockquote></div><br></div><div class="gmail_extra">Thanks!<br></div></div>