[Mesa-dev] [PATCH 2/2] i965: Guard GetBufferSubData's streaming memcpy load with USE_SSE41

Tapani Pälli tapani.palli at intel.com
Fri Aug 11 06:50:30 UTC 2017


I do wonder what the target machine is (I haven't seen one that would 
not have ARCH_X86_HAVE_SSE4_1 true, both 32bit and 64bit) but falling 
back to memcpy makes perfect sense without USE_SSE4_1;

Reviewed-by: Tapani Pälli <tapani.palli at intel.com>

On 08/11/2017 08:52 AM, Kenneth Graunke wrote:
> This should hopefully fix build issues on 32-bit Android-x86.
> 
> Cc: Mauro Rossi <issor.oruam at gmail.com>
> Cc: Tapani Pälli <tapani.palli at intel.com>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102050
> ---
>   src/mesa/drivers/dri/i965/intel_buffer_objects.c | 2 ++
>   1 file changed, 2 insertions(+)
> 
> Mauro, hopefully this helps?
> 
> diff --git a/src/mesa/drivers/dri/i965/intel_buffer_objects.c b/src/mesa/drivers/dri/i965/intel_buffer_objects.c
> index ee591168283..9afd98edb87 100644
> --- a/src/mesa/drivers/dri/i965/intel_buffer_objects.c
> +++ b/src/mesa/drivers/dri/i965/intel_buffer_objects.c
> @@ -342,6 +342,7 @@ brw_get_buffer_subdata(struct gl_context *ctx,
>   
>      unsigned int map_flags = MAP_READ;
>      mem_copy_fn memcpy_fn = memcpy;
> +#ifdef USE_SSE4_1
>      if (!intel_obj->buffer->cache_coherent && cpu_has_sse4_1) {
>         /* Rather than acquire a new WB mmaping of the buffer object and pull
>          * it into the CPU cache, keep using the WC mmap that we have for writes,
> @@ -350,6 +351,7 @@ brw_get_buffer_subdata(struct gl_context *ctx,
>         map_flags |= MAP_COHERENT;
>         memcpy_fn = (mem_copy_fn) _mesa_streaming_load_memcpy;
>      }
> +#endif
>   
>      void *map = brw_bo_map(brw, intel_obj->buffer, map_flags);
>      if (unlikely(!map)) {
> 


More information about the mesa-dev mailing list