Project Home
Project Home
Documents
Documents
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - Graphics Driver DDK: (8 Items)
   
Graphics Driver DDK  
Hi,

before I spend hours of searching in the labyrinth of F27, I try asking here. :-) A potential QNX partner (hardware 
vendor) wants to develop a graphics driver for Photon. I guess he will do it for 6.3.2 and 6.4.

- Where is the Graphics DDK for 6.3.2? I guess it is 'somewhere' in the old Download Center?
- Where is the Graphics DDK for 6.4? It's not under 'Project Downloads' of this project...


Malte
RE: Graphics Driver DDK  
a very general reply ...

Yes, for 6.3.2, 'somewhere' in the old Download Center

http://www.qnx.com/download/group.html?programid=9380

There is no DDK for 6.4 per se, all the source relevant to build a devg will be posted to Foundry27.  I suppose Wiki 
pages will need to be created if there is not already a document on how to use the source.

-Derek

 
________________________________

From: Malte Mundt [mailto:community-noreply@qnx.com]
Sent: Tue 07/04/2009 4:39 AM
To: photon-graphics
Subject: Graphics Driver DDK



Hi,

before I spend hours of searching in the labyrinth of F27, I try asking here. :-) A potential QNX partner (hardware 
vendor) wants to develop a graphics driver for Photon. I guess he will do it for 6.3.2 and 6.4.

- Where is the Graphics DDK for 6.3.2? I guess it is 'somewhere' in the old Download Center?
- Where is the Graphics DDK for 6.4? It's not under 'Project Downloads' of this project...

Malte


_______________________________________________
Photon microGUI
http://community.qnx.com/sf/go/post26168



Attachment: Text winmail.dat 3.8 KB
Re: RE: Graphics Driver DDK  
BSP&drivers project have released sources of some graphics drivers and updated headers to build 6.4 graphics drivers, 
recently I finish porting one of the my graphics driver to 6.4 graphics DDK framework. There is no source for libffb 
only, but it is needed for me only :), since I prefer to recompile it with very aggressive optimization options, this 
trick could speed up unaccelerated fallback functions almost twice comparing to default libffb.
RE: RE: Graphics Driver DDK  
How did you optimize the libffb, was it with assembler, or "smarter" C routines?

________________________________

From: Mike Gorchak [mailto:community-noreply@qnx.com]
Sent: Tue 07/04/2009 4:59 AM
To: photon-graphics
Subject: Re: RE: Graphics Driver DDK



BSP&drivers project have released sources of some graphics drivers and updated headers to build 6.4 graphics drivers, 
recently I finish porting one of the my graphics driver to 6.4 graphics DDK framework. There is no source for libffb 
only, but it is needed for me only :), since I prefer to recompile it with very aggressive optimization options, this 
trick could speed up unaccelerated fallback functions almost twice comparing to default libffb.


_______________________________________________
Photon microGUI
http://community.qnx.com/sf/go/post26171



Attachment: Text winmail.dat 3.45 KB
Re: RE: RE: Graphics Driver DDK  
> How did you optimize the libffb, was it with assembler, or "smarter" C 
> routines?

No, there is no any assembly optimizations, often GCC generates much faster code, than I could write. Some functions has
 been completely rewritten, especially alpha-blending routines, ROPs, blitters, etc... to minimize data reading from 
video memory, using larger memory blocks. And I use -O3 -funroll-all-loops with a lot of other specific gcc's 
optimization options. One unfinished thing is rest: I can't touch MTRR registers under QNX to enable write-combine 
caching of video memory region - this could speed up all graphics stuff.
RE: RE: RE: Graphics Driver DDK  
Ah, in simple terms, for the memory block you do one 'large read' from the video memory, then use that memory block for 
obtain/apply the alpha information, or even ROPs, then you do one 'large write' back to video memory, correct?

________________________________

From: Mike Gorchak [mailto:community-noreply@qnx.com]
Sent: Tue 07/04/2009 5:09 AM
To: photon-graphics
Subject: Re: RE: RE: Graphics Driver DDK



> How did you optimize the libffb, was it with assembler, or "smarter" C
> routines?

No, there is no any assembly optimizations, often GCC generates much faster code, than I could write. Some functions has
 been completely rewritten, especially alpha-blending routines, ROPs, blitters, etc... to minimize data reading from 
video memory, using larger memory blocks. And I use -O3 -funroll-all-loops with a lot of other specific gcc's 
optimization options. One unfinished thing is rest: I can't touch MTRR registers under QNX to enable write-combine 
caching of video memory region - this could speed up all graphics stuff.


_______________________________________________
Photon microGUI
http://community.qnx.com/sf/go/post26173



Attachment: Text winmail.dat 3.71 KB
Re: RE: RE: RE: Graphics Driver DDK  
> Ah, in simple terms, for the memory block you do one 'large read' from the 
> video memory, then use that memory block for obtain/apply the alpha 
> information, or even ROPs, then you do one 'large write' back to video memory,
>  correct?

In simple terms, yes, it is correct :) But I tried also to get rid of "universal" code, which could handle all 
conditions and states in one function, like this done in libffb. One function for simple alpha blended rectangle, one 
function for alpha+ROP, one for alpha+source/destination key, etc.

I did this in my Geode LX800 graphics driver, at 500MHz CPU clock SBC could play HDTV video content + additional complex
 graphics output without any slowness.
RE: RE: RE: RE: Graphics Driver DDK  
very cool, very cool :)

________________________________

From: Mike Gorchak [mailto:community-noreply@qnx.com]
Sent: Tue 07/04/2009 5:20 AM
To: photon-graphics
Subject: Re: RE: RE: RE: Graphics Driver DDK



> Ah, in simple terms, for the memory block you do one 'large read' from the
> video memory, then use that memory block for obtain/apply the alpha
> information, or even ROPs, then you do one 'large write' back to video memory,
>  correct?

In simple terms, yes, it is correct :) But I tried also to get rid of "universal" code, which could handle all 
conditions and states in one function, like this done in libffb. One function for simple alpha blended rectangle, one 
function for alpha+ROP, one for alpha+source/destination key, etc.

I did this in my Geode LX800 graphics driver, at 500MHz CPU clock SBC could play HDTV video content + additional complex
 graphics output without any slowness.


_______________________________________________
Photon microGUI
http://community.qnx.com/sf/go/post26175



Attachment: Text winmail.dat 3.67 KB