GDC & Pandaboard/QEMU & Framebuffer

John A via Digitalmars-d digitalmars-d at puremagic.com
Tue Oct 21 23:26:56 PDT 2014


> Next step for me, is to create a small opengl test app:
> - does it cross-compile (on Ubunutu)?
> - does it run in QEMU?
> - does it run on a Pandaboard?

Here's the result:
DerelictGL3 and DerelictUtil cross-compiles ok with no gdc-arm 
failures.

On the other hand, a very simple app has linker errors:

import derelict.opengl3.gl3;
void main()
   {
   // DerelictGL3.load();
   // DerelictGL3.reload();
   printf("Start opengl: version %s\n", DerelictGL3.loadedVersion);
   }

I'm using -nophoboslib so there are linker errors related to 
phobos. If I don't use -nophoboslib I still get errors:

make testgl3
/home/arrizza/x-tools/arm-cortexa9_neon-linux-gnueabihf/bin/arm-cortexa9_neon-linux-gnueabihf-gdc 
-I./DerelictUtil/source -I./DerelictGL3/source -Llib  testgl3.d 
-o opengl3
/tmp/ccSSbl9j.o: In function `_Dmain':
testgl3.d:(.text+0x40): undefined reference to 
`_D8derelict7opengl33gl311DerelictGL3C8derelict7opengl33gl317DerelictGL3Loader'
testgl3.d:(.text+0x44): undefined reference to 
`_D8derelict7opengl33gl311DerelictGL3C8derelict7opengl33gl317DerelictGL3Loader'
testgl3.d:(.text+0x58): undefined reference to 
`_D8derelict7opengl33gl311DerelictGL3C8derelict7opengl33gl317DerelictGL3Loader'
testgl3.d:(.text+0x5c): undefined reference to 
`_D8derelict7opengl33gl311DerelictGL3C8derelict7opengl33gl317DerelictGL3Loader'
/tmp/ccSSbl9j.o:(.data+0xc): undefined reference to 
`_D8derelict7opengl33gl312__ModuleInfoZ'
collect2: error: ld returned 1 exit status
make: *** [testgl3] Error 1


I was stuck, so I started on a different front. I created a 
variant of the framebuffer test (in C for now) that sets every 
pixel in the framebuffer while I kept track of the time. The 
results are interesting. In QEMU:
  ./fbrate
  time 1140000 11ms 90 fps

on the Pandaboard:
  ./fbrate
  time 40000 4ms 250 fps

(that's with -03 btw).

The idea is that I can now convert this to D and see what the 
frame rate is then.

But before I did, I tried to see if mouse events could be 
captured in a D app. I found out the QEMU distro has mev in it 
and so that was an even simpler first step. If that works, I 
would then find the (open) source code for mev and convert that 
to D. Unfortunately, it didn't work. The mouse capture in my 
version of QEMU is not working like I expect and so I don't see 
any mouse events coming out of QEMU. Haven't tried mev on the 
Pandaboard yet.

Any advice?




More information about the Digitalmars-d mailing list