On Tue, 2017-05-30 at 11:27 -0400, Trevor Woerner wrote:
> Here is the relevant part of Fedora's mesa.spec file for Fedora 25
> (with line
> numbers):
> 
>        400 %configure \
>        401     %{?asm_flags} \
>        402     --enable-libglvnd \
>        403     --enable-selinux \
>        404     --enable-gallium-osmesa \
>        405     --with-dri-driverdir=%{_libdir}/dri \
>        406     --enable-egl \
>        407     --disable-gles1 \
>        408     --enable-gles2 \
>        409     --disable-xvmc \
>        410     %{?with_vdpau:--enable-vdpau} \
>        411     %{?with_vaapi:--enable-va} \
>        412     --with-egl-
> platforms=x11,drm,surfaceless%{?with_wayland:,wayland} \
>        413     --enable-shared-glapi \
>        414     --enable-gbm \
>        415     %{?with_omx:--enable-omx} \
>        416     %{?with_opencl:--enable-opencl --enable-opencl-icd}
> %{!?with_opencl:--disable-opencl} \
>        417     --enable-glx-tls \
>        418     --enable-texture-float=yes \
>        419 %if %{with_vulkan}
>        420     %{?vulkan_drivers} \
>        421 %endif
>        422     %{?with_llvm:--enable-gallium-llvm} \
>        423     %{?with_llvm:--enable-llvm-shared-libs} \
>        424     --enable-dri \
>        425 %if %{with_hardware}
>        426     %{?with_xa:--enable-xa} \
>        427     %{?with_nine:--enable-nine} \
>        428     --with-gallium-
> drivers=%{?with_vmware:svga,}%{?with_radeonsi:radeonsi,}%{?with_llvm:
> swrast,r600,}%{?with_freedreno:freedreno,}%{?with_etnaviv:etnaviv,}%{
> ?with_vc4:vc4,}%{?with_ilo:ilo,}virgl,r300,nouveau \
>        429 %else
>        430     --with-gallium-drivers=%{?with_llvm:swrast,}virgl \
>        431 %endif
>        432     %{?dri_drivers}
> 
> --enable-texture-float (line 418) is always, unconditionally enabled.
> However,
> mesa itself is then patched (for Fedora) so that the --enable-
> texture-float
> configuration option doesn't have any effect on llvm and swrast. I.e.
> it is
> easier to do this optional check in code than on the ./configure
> line:
> 
>       From 00bcd599310dc7fce4fe336ffd85902429051a0c Mon Sep 17
> 00:00:00 2001
>       From: Igor Gnatenko <i.gnatenko.br...@gmail.com>
>       Date: Sun, 20 Mar 2016 13:27:04 +0100
>       Subject: [PATCH 2/4] hardware gloat
> 
>       Signed-off-by: Igor Gnatenko <i.gnatenko.br...@gmail.com>
>       ---
>        src/gallium/drivers/llvmpipe/lp_screen.c | 7 +++++++
>        src/gallium/drivers/softpipe/sp_screen.c | 7 +++++++
>        2 files changed, 14 insertions(+)
> 
>       diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c
> b/src/gallium/drivers/llvmpipe/lp_screen.c
>       index 4f61de8..3b0ec77 100644
>       --- a/src/gallium/drivers/llvmpipe/lp_screen.c
>       +++ b/src/gallium/drivers/llvmpipe/lp_screen.c
>       @@ -411,6 +411,13 @@ llvmpipe_is_format_supported( struct
> pipe_screen *_screen,
>           if (!format_desc)
>              return FALSE;
>        
>       +   if ((bind & PIPE_BIND_RENDER_TARGET) &&
>       +       format != PIPE_FORMAT_R9G9B9E5_FLOAT &&
>       +       format != PIPE_FORMAT_R11G11B10_FLOAT &&
>       +       util_format_is_float(format)) {
>       +      return FALSE;
>       +   }
>       +
>           assert(target == PIPE_BUFFER ||
>                  target == PIPE_TEXTURE_1D ||
>                  target == PIPE_TEXTURE_1D_ARRAY ||
>       diff --git a/src/gallium/drivers/softpipe/sp_screen.c
> b/src/gallium/drivers/softpipe/sp_screen.c
>       index 031602b..c279120 100644
>       --- a/src/gallium/drivers/softpipe/sp_screen.c
>       +++ b/src/gallium/drivers/softpipe/sp_screen.c
>       @@ -358,6 +358,13 @@ softpipe_is_format_supported( struct
> pipe_screen *screen,
>           if (!format_desc)
>              return FALSE;
>        
>       +   if ((bind & PIPE_BIND_RENDER_TARGET) &&
>       +       format != PIPE_FORMAT_R9G9B9E5_FLOAT &&
>       +       format != PIPE_FORMAT_R11G11B10_FLOAT &&
>       +       util_format_is_float(format)) {
>       +      return FALSE;
>       +   }
>       +
>           if (sample_count > 1)
>              return FALSE;
>        
>       -- 
>       2.7.4
> 
> 
> Maybe this would be a better way forward? Enable it, always, in
> ./configure,
> add the patch to check for it in the code itself, then you can build
> for all
> the gallium targets (including swrast) and know that the patented
> code will
> only kick in where it's supported in hardware (and thus patent-safe)?

That sounds like exactly what we need to do!

Cheers,

Richard
-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to