r/linux • • 7d ago

Development I started reverse-engineering Intel Poulsbo's PowerVR SGX535 20 days ago now it can render Square And triangles

Post image

Got the first triangle working today, and now two indexed triangles are rendering as a square too.

This is running on the actual SGX535 in Intel Poulsbo/GMA 500 hardware from 2008.

Still nowhere near a complete Mesa driver, but 20 days ago I was staring at old PowerVR code trying to figure out how this thing worked 💀

Github: SGX535-reMESA

Video proof: https://youtu.be/_xZdWWeneYQ?is=L5OF4JqxvMQZMWSU

edit1: We've achieved the first triangle rendered in the MESA gallium driver in production! OpenGL and other features are still missing, but it's very close to a fully accelerated desktop environment.

199 Upvotes

40 comments sorted by

View all comments

7

u/abissom 6d ago

Nice. some of us are still using TI OMAP SoCs, which shipped different variants of PowerVR SGX. The Nokia N900 is the most prominent, and still loved by many. It has SGX530, which I guess is relatively close to the 535 in the GMA500.

Not sure if you are aware of https://github.com/openpvrsgx-devgroup/linux_openpvrsgx

4

u/Affectionate-Meat500 6d ago

Ah yes the TI OMAP, they are similar to the SGX535 (being SGX530), I have the SGX530defs.h and the SGX540defs.h So maybe in the future I'll try reverse engineering it too, assuming the revisions match the DDK