[Mesa-dev] [PATCH 2/2] st/va: flush pipeline after post processing
Christian König
deathsimple at vodafone.de
Tue Nov 29 13:50:51 UTC 2016
Am 29.11.2016 um 14:46 schrieb Nicolai Hähnle:
> On 28.11.2016 15:51, Christian König wrote:
>> From: sguttula <suresh.guttula at amd.com>
>>
>> This will flush the pipeline,which will allow to share dma-buf based
>> buffers.
>>
>> Signed-off-by: Suresh Guttula <Suresh.Guttula at amd.com>
>> Reviewed-by: Christian König <christian.koenig at amd.com>
>
> Why is there no fence? Relying on the correctness of doing a flush
> without a fence seems very likely to be wrong... it might seemingly
> fix a sharing issue, but once the timing changes, the other side of a
> buffer sharing might still see wrong results if it isn't properly
> synchronized.
Well there is no facility to share a fence with another side, so the
kernel must make sure that the correct order is kept when the DMA-buf is
used by multiple processes that everything executes in the right order.
Regards,
Christian.
>
> Cheers,
> Nicolai
>
>> ---
>> src/gallium/state_trackers/va/postproc.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/src/gallium/state_trackers/va/postproc.c
>> b/src/gallium/state_trackers/va/postproc.c
>> index d06f016..01e240f 100644
>> --- a/src/gallium/state_trackers/va/postproc.c
>> +++ b/src/gallium/state_trackers/va/postproc.c
>> @@ -80,6 +80,7 @@ vlVaPostProcCompositor(vlVaDriver *drv, vlVaContext
>> *context,
>> vl_compositor_set_layer_dst_area(&drv->cstate, 0, &dst_rect);
>> vl_compositor_render(&drv->cstate, &drv->compositor, surfaces[0],
>> NULL, false);
>>
>> + drv->pipe->flush(drv->pipe, NULL, 0);
>> return VA_STATUS_SUCCESS;
>> }
>>
>>
More information about the mesa-dev
mailing list