Sunday, July 29, 2012

freedreno update: first renders shader assembler!

For the last month or so, I've been working on deciphering the adreno shader instruction set and creating a disassembler, and now assembler.  I've hooked it up in fdre and now I can run all the test apps with shaders assembled from the fdasm assembler syntax, rather than requiring pre-compiled shaders from the adreno binary blob!  This means now I can run 3d tests with no dependency on the binary blob!


No new pictures, everything looks the same as before, including the spinning cube.  I've updated the cube test with some comments in the shader assembly to make it a bit easier to follow.  

4 comments:

  1. Brilliant work.

    Could you outline how you are performing the test? I understand your LD_PRELOAD approach for the RE side but I'd be interested to see how you test the result - is that what the fdre thing is about?

    Cheers,
    John

    ReplyDelete
    Replies
    1. yeah, in the freedreno tree, the fdre directory is the stuff where I drive the GPU w/ my own test apps and now where the shader assembler (used by the test apps) lives. Sort of in a similar way as limare in lima tree.

      Unfortunately the documentation is all rather RTFS at this point. I really need to put up some wiki pages to better document what I've learned so far, but gitorious wiki is just too painful to deal with.

      Delete
  2. Cool. Love the work you are doing here, and we surely need some opensource work for graphics drivers. Hopefully the graphics vendors will eventually follow, but that might be a bit optimistic.

    ReplyDelete
  3. Absolutely awesome. Thank you so much for spending the time and energy to help a free software stack thrive on these types of embedded devices.

    Your work will likely be very important for all of us! :D

    ReplyDelete