[Mesa-stable] [Mesa-dev] [PATCH] anv/cmd_buffer: Apply flush operations prior to executing secondaries

Jason Ekstrand jason at jlekstrand.net
Sun Mar 26 01:59:03 UTC 2017


On March 25, 2017 2:54:41 PM Lionel Landwerlin 
<lionel.g.landwerlin at intel.com> wrote:

> Hey Jason,
>
> I'm wondering whether we're missing flushing some dynamic state here too.

Nope, the client is required to re-emit it all at the top of the secondary.

> Regardless, the flushing you're adding here is definitely required :
>
> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>

Thanks!  This has been on my radar for a while but it wasn't until Skia 
started getting ported that someone actually hit it.

--Jason

> Thanks!
>
> On 24/03/17 23:31, Jason Ekstrand wrote:
>> Cc: "13.0 17.0" <mesa-stable at lists.freedesktop.org>
>> ---
>>   src/intel/vulkan/genX_cmd_buffer.c | 5 +++++
>>   1 file changed, 5 insertions(+)
>>
>> diff --git a/src/intel/vulkan/genX_cmd_buffer.c 
>> b/src/intel/vulkan/genX_cmd_buffer.c
>> index e2364db..8ec882e 100644
>> --- a/src/intel/vulkan/genX_cmd_buffer.c
>> +++ b/src/intel/vulkan/genX_cmd_buffer.c
>> @@ -654,6 +654,11 @@ genX(CmdExecuteCommands)(
>>       */
>>      genX(cmd_buffer_enable_pma_fix)(primary, false);
>>
>> +   /* The secondary command buffer doesn't know which textures etc. have been
>> +    * flushed prior to their execution.  Apply those flushes now.
>> +    */
>> +   genX(cmd_buffer_apply_pipe_flushes)(primary);
>> +
>>      for (uint32_t i = 0; i < commandBufferCount; i++) {
>>         ANV_FROM_HANDLE(anv_cmd_buffer, secondary, pCmdBuffers[i]);
>>
>
>




More information about the mesa-stable mailing list