[Mesa-dev] Broadcom VC4 project

Marek Olšák maraeo at gmail.com
Wed Jun 18 12:42:47 PDT 2014

It would be more precise to say that i915 uses the Draw module, which
can do these per-vertex operations on the CPU (some of them use LLVM):
- vertex fetching
- vertex shader
- geometry shader
- culling and clipping
- viewport transformation
- translates all primitives to either point, line, or triangle lists
(if you can't do quads)
- line stippling by breaking lines into shorter lines
- converts triangles to points or lines if polygon mode is not "fill"
- generates point sprite coordinates
- ... and a bunch of other things I don't remember
A lot of these are optional.

It also optionally supports these per-fragment operations by plugging
itself into the driver, but you have to use the Draw module for vertex
- polygon stippling
- line smoothing
- point smoothing

A full software fallback by switching between the hw driver and
llvmpipe at run time would be possible if somebody did it. ;) The
failover module was one attempt at it, but it was never finished. I
briefly played with it during r300g development and it did work for
glxgears with some modifications:


On Wed, Jun 18, 2014 at 8:17 PM, Stéphane Marchesin
<stephane.marchesin at gmail.com> wrote:
> On Wed, Jun 18, 2014 at 10:47 AM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
>> On 18/06/14 08:28, Eric Anholt wrote:
>>> To those who have been curious what I was up to: I wasn't sure when I
>>> could announce my new projecct, I just got the ack day before yesterday,
>>> and I've been a little busy.
>>> I'm working toward building a Mesa driver for Broadcom VC4 (aka
>>> Raspberry Pi).  At the moment I'm still bringing up the DRM side of
>>> things, but I hope to be doing bits of userspace in the next few days.
>>> Current status is I have a skeleton DRM KMS driver that's going to talk
>>> to the firmware for modesetting, and now I'm starting on the execution
>>> side of things.
>>> I'm probably going to start out doing a gallium driver for simplicity,
>>> to avoid having to do all the DRI crap we've got in brw_context.c and
>>> texture miptree validation and getting user data into VBOs and all that
>>> other almost-boilerplate.  Long term I may end up switching to classic
>>> so I can get swrast fallbacks and the ability to implement single-copy
>>> manually-tiled TexImage uploads like.  For now I want to get to drawing
>>> triangles as soon as I can.
>> Hi Eric,
>> IIRC the i915 driver already uses softpipe/llvmpipe as a fallback for some
>> operations.
> It doesn't, that experiment went away a long time ago. Well, unless
> you consider "the vertex pipeline" as one of those operations, in
> which case yes it's always using a fallback to llvmpipe :)
> Stéphane
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev

More information about the mesa-dev mailing list