[libre-riscv-dev] NLNet Funded development of a software/hardware MESA driver for the Libre GPGPU

Luke Kenneth Casson Leighton lkcl at lkcl.net
Thu Jan 9 00:34:48 GMT 2020


(if responding on mesa-dev please do cc me to help preserve the thread, i
am subscribed in digest mode, thanks)

the NLNet funding application documented here was successful:
https://libre-riscv.org/nlnet_2019_amdvlk_port/

we therefore have money (direct payment of tax free, tax deductible
donations from the NLNet Foundation into your bank account [1]) available
for anyone, anywhere in the world, to help create a 3D MESA Vulkan
compliant driver for a hybrid hard-soft GPU.

we considered starting from SwiftShader because it is, on initial
inspection, close to what we want. we could hypothetically have added deep
SIMD instructions, and the project would be 90% complete.

however when it comes to predication and to vector types such as vec2, vec3
and vec4, the infrastructure in SwiftShader is unable to cope. thus, if we
add custom hardware opcodes which can accelerate vector-vector operations,
SwiftShader would have been an extremely bad decision as it would be
incapable of using such hardware without a drastic redesign.

hence the reason for choosing MESA, because NIR can retain that critical
type information right up until it hits the hardware.

as you know, a hybrid CPU/GPU does not have a separate CPU and a separate
GPU, they are *one and the same*.  therefore if starting from the Intel
MESA driver or RADV, the initial work needed is to make the chosen base
actually a *software* renderer, just like SwiftShader.

this is a desirable goal and it will be important to have the code be
portable, unaccelerated, and run on at the minimum x86, and (later) the
Libre SoC.

once that phase is completed, *then* we may move to adding custom
accelerated opcodes (Transcendentals, YUV2RGB etc). bear in mind that these
will be added *to the CPU*... because the CPU *is* the GPU.

to be absolutely clear: there will be no marshalling of GPU data or
instructions, to be sent over to kernelspace IPC. the CPU will execute the
accelerated opcode (e.g atan2) directly and immediately.

this is significantly simpler than standard GPUs, saving on power
consumption and drastically simplifying debugging and application
developnent.

if this is of interest please do get in touch, and feel free to ask
questions.

best,

l.

[1] your accountant, with assistance from Bob Goudriaans, an International
Tax Law Specialist and Director of NLNet, can help confirm that the
payments from NLNet are considered charitable tax deductible donations...
*to you*.  all the International Tax Agreements are in place and the
documents available for inspection by your accountant.



-- 
---
crowd-funded eco-conscious hardware: https://www.crowdsupply.com/eoma68


More information about the libre-riscv-dev mailing list