[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
Fri Jul 2 12:33:30 BST 2021


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

--- Comment #60 from vivekvpandya <vivekvpandya at gmail.com> ---
(In reply to Luke Kenneth Casson Leighton from comment #59)
> (In reply to vivekvpandya from comment #58)
> > Instead of writing LLVM based rasterizer from scratch I tried experimenting
> > with lavapipe (gallium + llvmpipe for vulkan).
> 
> that's a good intermediary (incremental) stage
>  
> > I tried running demos from
> > https://software.intel.com/content/www/us/en/develop/articles/api-without-
> > secrets-introduction-to-vulkan-part-1.html and all 7 runs fine with lavapipe.
> 
> that's fantastic!  that's definitely a milestone worth getting you some $
> for :)
> 
> > 
> > shaders can be downloaded with export GALLIVM_DEBUG="ir"
> > 
> > This seems more promising than writing everything from scratch. This allows
> > us to focus core part of this bug.
> 
> it's a brilliant idea, to be able to progress other areas, having something
> that works allows other areas of development / experimentation.
> 
> the only thing we found about gallium is: it has major design flaws, a
> single-threaded internal bottleneck, which was why we eliminated it right
> at the start.
Agreed but that is separate issue and can be improved if there are some low
hanging fruits.
> 
> for a low-performance *software* renderer (as a poor substitute so that
> people at least have "something working") gallium is perfect.
> 
> for a high-performance *hybrid* renderer where we want to have a minimum
> of 4 cores, working up over time to 64 cores, it will be a show-stopper.
> 
Again may be some low hanging fruits like
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4385

> that said if you've managed to get as far as you have, and opened up
> a new development path with it, that's fantastic, and a good call.

This particular path can get us started on LLVM side. I am thinking to modify
LLVM power-pc backend which will run a simple vectorizer pass (just before
Global ISEL)and create libre-soc specific LLVM intrinsics (can be added with
TD) and then updated Global Isel to generate libre-soc's textual assembly for
newly added llvm instrinsics. 

On other side it will take some time for someone like me (who don't have much
experience in mesa) and most of code inspiration will be through llvmpipe. So
that can be explored later.

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


More information about the libre-soc-bugs mailing list