Implement OpenGL/ES to new CPU

Hi everyone, have a good time!

Firstly, I want to introduce myself, I’m studing at university of technology in Ho Chi Minh city. This term, I’m going to do my graduation thesis. My intent is porting/implement OpenGL/ES to T-engine board. T-engine is an old logic board used to mobile applications development.It has SH7760 CPU and have 64Mb RAM.

I’m quite new to OpenGL and computer graphics. So it’s a little hard to do this work. I’ve made some research and intended to use some available implements such as Vincent or Meisa or this here.

My question is:

  • How hard is implementation/porting OpenGL/ES to new board ?
  • Is it legal to use source code mentioned above in my work ( my project is only a graduation thesis, not comercial )?
    Thanks every one and sorry about my bad English :slight_smile:

gles-1.0c.tgz from Khronos is only a shim that sits above OpenGL on a desktop PC so it is not suitable for your porting effort.

I think mesa relies on a JIT compiler to compile loops at run-time according to the specified GL state. This means that it is quite complicated to port to CPUs not already supported.

Vincent may be your best starting point but note that (a) it is written in C++, (b) it is not particularly fast.

Creating an OpenGL ES 1.0 implementation from scratch is a substantial piece of work, especially one with a JIT compiler. OpenGL ES 2.0 is even more work because of the need to support shaders. A software implementation of ES 2.0 is impractical unless the hardware has an FPU because GLSL ES is entirely floating point.

Big thanks to markc for your help :slight_smile:

Beside above implementation, is there any other one available to porting ?

I have 6 months to complete my thesis, is this time enough for implement a new one or finding an implementation for porting. Some spec of my board:

  • CPU SH7760 run at 200Mhz and produce over 360MIPS
  • A FPU with 1,4GFLOPs performance.
  • Certainly no GPU
    I have some more subject to replace the OpenGL/ES porting, but I love this work very much. So anyone can give me an advice.

Have fun!

The jit doesn’t really matter in effort, it’s all implemented in C, so as long as you have a C compiler it’s not too bad. However the software stacks are quite large, so updating make files and build system can take a while. Windowing and any linux specifics will be other big part.

Mesa is designed to handle GLES2, so a lot of the porting effort would be a waste, so porting vincents soft gles1 implementation would definitely be the easiest. Fixed function stacks are much smaller and less complex.

It seems to be Mesa project implement OpenGL and OpenGL ES in one project. This project is quite big, a lot of code line. I got embarrassed with this stuff of source code :slight_smile:
So I think Vincent is a good choice,too. I should check out if g++ supported my SH7760. If the CPU was not supported complied by g++, maybe no way :frowning:

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.