[Mesa-dev] [PATCH] llvmpipe: Trivially advertise PIPE_CAP_BUFFER_MAP_PERSISTENT_COHERENT.
Jose Fonseca
jfonseca at vmware.com
Thu Feb 5 07:14:29 PST 2015
On 05/02/15 15:07, Roland Scheidegger wrote:
> Am 05.02.2015 um 15:33 schrieb Jose Fonseca:
>> Nothing special needs to be done.
>>
>> Even though llvmpipe copies constant (ie uniform) buffers internally, the
>> application is suppose to flush and sync, so all should work.
>>
>> All bufferstorage piglit tests pass.
>> ---
>> src/gallium/drivers/llvmpipe/lp_screen.c | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c
>> index 3b31656..507cfcf 100644
>> --- a/src/gallium/drivers/llvmpipe/lp_screen.c
>> +++ b/src/gallium/drivers/llvmpipe/lp_screen.c
>> @@ -246,9 +246,10 @@ llvmpipe_get_param(struct pipe_screen *screen, enum pipe_cap param)
>> return PIPE_ENDIAN_NATIVE;
>> case PIPE_CAP_TGSI_VS_LAYER_VIEWPORT:
>> return 1;
>> + case PIPE_CAP_BUFFER_MAP_PERSISTENT_COHERENT:
>> + return 1;
>> case PIPE_CAP_MAX_TEXTURE_GATHER_COMPONENTS:
>> case PIPE_CAP_TEXTURE_GATHER_SM5:
>> - case PIPE_CAP_BUFFER_MAP_PERSISTENT_COHERENT:
>> case PIPE_CAP_TEXTURE_QUERY_LOD:
>> case PIPE_CAP_SAMPLE_SHADING:
>> case PIPE_CAP_TEXTURE_GATHER_OFFSETS:
>>
>
> Looks good to me. I vaguely remember I didn't enable that because I
> wasn't sure if it would really always work (things like using buffers as
> render targets or as textures for instance). It's quite possible though
> this isn't a problem (and the former isn't possible in GL in any case).
>
> Roland
>
Thanks for the review.
Now that we don't swizzle textures/rendertargets it should be OK -- once
the fences are signalled all buffer and even texture contents should be
up to date.
My immediate interest is being able to run tests for apitrace and
coherent mappings [1] [2].
If there is some bug in some obscure corner case we can deal with it
when we come across it.
Jose
[1]
https://github.com/apitrace/apitrace-tests/blob/master/apps/gl/map_coherent.cpp
[2]
https://github.com/apitrace/apitrace/blob/master/docs/VMWX_map_buffer_debug.txt
More information about the mesa-dev
mailing list