For VC5 last week I pushed to get first triangle on V3D 4.1. That involved:
- Updating the build system to build components of the driver for 3.3 and 4.1
- Encoding of new instructions and signals
- Updating the compiler to emit the new VPM load/store instructions
- Porting the RCL for the new TLB load/store commands
- Porting the drawing commands and shader state packets
- Porting the simulator wrapper
By Friday I had the simulator running through to the end of a fragment shader, at which point it complained that I hadn’t done the threading right. On this chip, you only get 2 or 4-way threaded programs, while I only had support for single-threaded programs. Given how important multithreading is for latency hiding, next week I’ll be going back to add it to V3D 3.3 and then port it forward to 4.1.