[Libre-soc-bugs] [Bug 251] Initial 3D MESA non-accelerated software-only driver is needed

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Tue Aug 11 16:30:57 BST 2020


https://bugs.libre-soc.org/show_bug.cgi?id=251

--- Comment #31 from vivekvpandya <vivekvpandya at gmail.com> ---
(In reply to Luke Kenneth Casson Leighton from comment #30)
> (In reply to vivekvpandya from comment #26)
> > Writing complete MESA driver which uses LLVM to codegen seems very large
> > effort. It is only worth if this driver is not just for experimental use.
> 
> can you expand on this insight a little?  the reason i ask is twofold
> 
This is due to my very little knowledge about Mesa sw structure.

When I said complete MESA driver what I mean is everything from scratch.
But I tried to get some information about MESA system.

Now to me it seems that if we want to use MESA based driver, we must use open
source code that gets upto NIR (or Gallium).

After that we have few options:

LLVMPipe (note official document claims to be multi-threaded and fastest, also
that it can generate code for ppc):
"The Gallium llvmpipe driver is a software rasterizer that uses LLVM to do
runtime code generation. Shaders, point/line/triangle rasterization and vertex
processing are implemented with LLVM IR which is translated to x86, x86-64, or
ppc64le machine code. Also, the driver is multi-threaded to take advantage of
multiple CPU cores (up to 8 at this time). It’s the fastest software rasterizer
for Mesa."

OpenSWR:
For OpenSWR its official FAQ page claims that to get it generate PPC code non
trivial amount of work is required.

Option3:
Write a NIR to LLVM IR translator (or we can use code from above two
components)
and use LLVM's JIT to run that code on x86/PPC.

So we must note limitations of LLVMPipe so that we have record for why not
choosing that.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the libre-soc-bugs mailing list