[Mesa-stable] [PATCH] anv: Make sure state on primary is correct after CmdExecuteCommands
Alex Smith
asmith at feralinteractive.com
Tue Jan 9 17:22:27 UTC 2018
Thanks Jason. I take it you didn't find any other state that needed
resetting then?
Alex
On 9 January 2018 at 16:49, Jason Ekstrand <jason at jlekstrand.net> wrote:
> From: Alex Smith <asmith at feralinteractive.com>
>
> After executing a secondary command buffer, we need to update certain
> state on the primary command buffer to reflect changes by the secondary.
> Otherwise subsequent commands may not have the correct state set.
>
> This fixes various issues (rendering errors, GPU hangs) seen after
> executing secondary command buffers in some cases.
>
> v2 (Jason Ekstrand):
> - Reset to invalid values instead of pulling from the secondary
> - Change the comment to be more descriptive
>
> Signed-off-by: Alex Smith <asmith at feralinteractive.com>
> Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
> Cc: mesa-stable at lists.freedesktop.org
> ---
> src/intel/vulkan/genX_cmd_buffer.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/src/intel/vulkan/genX_cmd_buffer.c
> b/src/intel/vulkan/genX_cmd_buffer.c
> index b7253d5..4b73ac8 100644
> --- a/src/intel/vulkan/genX_cmd_buffer.c
> +++ b/src/intel/vulkan/genX_cmd_buffer.c
> @@ -1078,6 +1078,15 @@ genX(CmdExecuteCommands)(
> anv_cmd_buffer_add_secondary(primary, secondary);
> }
>
> + /* The secondary may have selected a different pipeline (3D or
> compute) and
> + * may have changed the current L3$ configuration. Reset our tracking
> + * variables to invalid values to ensure that we re-emit these in the
> case
> + * where we do any draws or compute dispatches from the primary after
> the
> + * secondary has returned.
> + */
> + primary->state.current_pipeline = UINT32_MAX;
> + primary->state.current_l3_config = NULL;
> +
> /* Each of the secondary command buffers will use its own state base
> * address. We need to re-emit state base address for the primary
> after
> * all of the secondaries are done.
> --
> 2.5.0.400.gff86faf
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-stable/attachments/20180109/ff91195d/attachment.html>
More information about the mesa-stable
mailing list