Monday, December 10, 2012


Another quick update, since it has been a while.  I've been working for the last month or so on a gallium driver for freedreno, and now it is finally showing signs of life with es2gears:

There are still a lot of little missing pieces (textures, not translating a lot of tgsi shader opcodes, and it won't work for anything that isn't glClear()ing the color/depth/stencil buffers each frame.  Although these shouldn't be too hard to add, just takes time.

The work-in-progress mesa code is on github


  1. Replies
    1. around 110fps.. there are a few things I can optimize a bit to emit a bit less state for each draw call (namely not re-emitting vertex buffer state.. which might be clobbering vertex cache?). The main issue is w/ current hacky dri2/gem setup on qcom kernel driver, I need to wait for render to complete before issuing swapbuffers because I can't properly synchronize the presentation blit on xserver side. But so far, performance hasn't been the main concern, as much as functionality.

    2. hmm.. but ~180fps if I run es2gears while doing a build.. so I guess some freq scaling issues :-P

      meanwhile, a few of the glmark2 (or glmark2-es) tests are now running

  2. Nice! Can't wait for "desktop GL" gears ;)

    1. I suppose glxgears should be doable.. I had a quick look the other day. I would need to implement support for some TGSI opcodes that don't map directly to adreno shader instructions (like LIT).. which should be doable, but a bit more work. I'll probably try to get some of the glmark2-es2 tests working first.

  3. I'm sorry I don't quite understand most of your work but I'd like to. These are standard tests you're showing us and the driver can actually run them? That's quite an accomplishment. By the way can you point me at some resources which can help me start understanding your work?
    Thanks in advance.

  4. you could probably start at and look under 'Documentation/Information'.. I've started putting up some wiki pages a while back. The Shader ISA page is somewhat out of date, since I've discovered a bit more since then and haven't had time to update the page.

    Probably, as far as reading code, maybe in freedreno.git look at the code in the fdre directory. That should be easier to grok then trying to read the entire mesa driver (unless you are already familiar with gallium)

  5. Great work, this project has already made my Touchpad more usable with just the xf86-video driver, thanks for that! Can't wait to see how it progresses!

    Cool, I see you were working on the TGSI opcodes just now. Looking forward to the next blog update!