Friends of Linux

In past few days work on the interface was suspended. But that doesn't mean I abandoned it, I was just playing with different aspects than plain coding. As title suggests, it was about Linux.

So what exactly I did?

Day 1 - Installed brand new Ubuntu 11.10, configured it properly and read several tutorials on terminal stuff as I never worked with Linux before.

Day 2 - Installed official NVIDIA drivers.. BIG mistake.. Reinstalled Ubuntu, configured it anew (it was easier to reinstall fresh Linux than correcting mess that NVIDIA drivers done). Learned that my notebook is using Optimus technology (hybrid of internal and external GPU) and installed Bumblebee. Now I can run programs on my external GPU with optirun command.

Day 3 - Installed NetBeans IDE, installed GLEW and SFML2 with their dependencies and copied sources from Windows drives. With few changes (such as backward slashes instead of forward in paths and substituting #pragma comment(lib, .. ) with IDE settings) I was able to compile my sources and voila, using optirun to run programs worked flawlessly. So far simple GPGPU and Waves were ported. There was a little catch with simple GPGPU because I got an error when running application:
X Error of failed request:  BadValue (integer parameter out of range for operation)
Major opcode of failed request:  1 (X_CreateWindow)
Value in failed request:  0x0
Serial number of failed request:  7
Current serial number in output stream:  9

I think this might be SFML related as using window for the same job works great, but their forums are down for maintenance.

So that's it! This might be no big news but I believe all Linux enthusiasts appreciate it. For the others a quick status update. Cmake script is finished and creates correct visual studio project that can be compiled and I also tested produced libraries with sample program.. everything works! Now I'm going to do the same test with Linux and if it goes well, it will be just few more days before sources will appear on Git Hub!

Status update

As promissed, things are slowly getting shape. So what happend in past month?

Basicaly whole interface was redesigned from scratch (and even that design had to be changed once more due to bad decision). However, we've already restored functionality of interface prototype that has been arround for some time + introduced many new features. We are constantly debuging new features and during this process we managed to run some advanced shaders such as multiplying matrices and feedbacking result, using doubles in shader (whit openGL 4.2) and using large textureBuffers without any problems.

There is one important thing to note that we decided to make use of C++11 features such as shared pointers. We're thus breaking compatibility with older compilers but we consider this to be a good decision in long-run.

The work on new features for interface is from this day suspended as we accomplished our goals and now we must polish interface, create documentation and cmake script and commit all changes to GitHub. We've already set up repository for project and also you can find new Forum tab in menu. We're looking forward to know your opinion as feedback is always appreciated and it will further shape the interface.

Inteface redesign in progress!

After success that prototype of interface gained, I've decided that it would be proper to rebuild whole interface, keeping the basic idea and methods, but providing more objected oriented interface. Here is just a brief list of features I plan to introduce:

  • Fully object oriented interface with classes for templated buffer objects, attributes, uniforms and basically everything
  • Hiding OpenGL API - no need to know anything about OpenGL as there won't be direct contact with any of it's functions
  • Interface generalization - interface won't be tied only to GPGPU anymore. However, computational shader specialization will be provided and will have even broader functionality than current prototype.
  • Plugin system - objects will be designed for plugging into each other, allowing to create complex shader programs easily
  • Automatic signal system - shaders will get linked and compiled automatically at time they're needed
  • OpenGL fixes - observed artifacts in some OpenGL drivers will be corrected automaticaly or with minimal effort
  • Library design - once compiled, only header files need to be included along with libraries just like with other professional libraries
  • Git Hub repository - after finishing basics of new interface, project will be hosted on Git Hub to provide easy access to always fresh version
  • Proper and always updated documentation - with help of doxygen
  • Showcase programs adjustment and release of source codes as demos

The work on interface has already begun and first working version should be released in first half of march.