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 processing: - 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: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0a22fb6a5d519ca26d423fa4a9404697dca56cbf Marek On Wed, Jun 18, 2014 at 8:17 PM, Stéphane Marchesin <stephane.marche...@gmail.com> wrote: > On Wed, Jun 18, 2014 at 10:47 AM, Emil Velikov <emil.l.veli...@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@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev