[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