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