Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Trevor Woerner <twoerner@gmail.com>
Cc: Patches and discussions about the oe-core layer
	<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH] mesa: potentially enable texture float for gallium
Date: Tue, 30 May 2017 16:44:10 +0100	[thread overview]
Message-ID: <1496159050.6630.12.camel@linuxfoundation.org> (raw)
In-Reply-To: <20170530152738.GA24515@linux-uys3>

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.brain@gmail.com>
> 	Date: Sun, 20 Mar 2016 13:27:04 +0100
> 	Subject: [PATCH 2/4] hardware gloat
> 
> 	Signed-off-by: Igor Gnatenko <i.gnatenko.brain@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


  reply	other threads:[~2017-05-30 15:44 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-26 21:22 [PATCH] mesa: potentially enable texture float for gallium Trevor Woerner
2017-05-29 23:25 ` Richard Purdie
2017-05-30  5:28   ` Trevor Woerner
2017-05-30  7:47     ` Richard Purdie
2017-05-30 15:27       ` Trevor Woerner
2017-05-30 15:44         ` Richard Purdie [this message]
2017-05-30 16:00           ` Trevor Woerner
2017-05-30 16:19             ` Richard Purdie
2017-05-31  7:15               ` Jussi Kukkonen
2017-05-31 16:03                 ` Trevor Woerner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1496159050.6630.12.camel@linuxfoundation.org \
    --to=richard.purdie@linuxfoundation.org \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=twoerner@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox