Open source driver for FIMG 3DSE (GPU of Galaxy 3)

Search This thread

tom3q

Senior Member
May 31, 2011
358
1,611
Warsaw
github.com
We have quite and old kernel.. would having a newer one 'help' to port these drivers?

Kernel isn't that important for this driver, because the only thing running on kernel level is a little kernel module for direct hardware access and it's the part that has to be adapted for i5800 and its kernel for sure.

The great majority of the project is an user space library, which implements the OpenGL ES API, accesses the hardware directly and communicates with the module only for things that can't be done in user context. Kernel version usually doesn't matter for user space code.
 

ajay.d96

Senior Member
Sep 22, 2011
411
372
People like him? Havent you downloaded a mp3 never ever in your life? I understand XDA but dont be hipocritical.

Sorry for the offtopic...

Sent from my GT-I5800 using XDA App



And I am sure we have all been to those illegal strip joints and downloaded pirated movies. :cool:

What everyone does outside of XDA is none of XDA's concerns.. but here, we will stick to the rules.

And now, lets get back on topic guys :)

Thanks!


im sure i wont ,.. thanks for understanding me guys...

---------- Post added at 03:17 PM ---------- Previous post was at 03:15 PM ----------

I know that it is a stupid question, but i ask :how far would you describe the progress? 50%?

this isn't stupid,.. its just curiosity,.. BTW,.. he would have finished 65%

---------- Post added at 03:18 PM ---------- Previous post was at 03:17 PM ----------

Kernel isn't that important for this driver, because the only thing running on kernel level is a little kernel module for direct hardware access and it's the part that has to be adapted for i5800 and its kernel for sure.

The great majority of the project is an user space library, which implements the OpenGL ES API, accesses the hardware directly and communicates with the module only for things that can't be done in user context. Kernel version usually doesn't matter for user space code.

does ours support opengl es 2.0 ???
 

unreal3000

Senior Member
Nov 27, 2010
617
152
im sure i wont ,.. thanks for understanding me guys...

---------- Post added at 03:17 PM ---------- Previous post was at 03:15 PM ----------



this isn't stupid,.. its just curiosity,.. BTW,.. he would have finished 65%

---------- Post added at 03:18 PM ---------- Previous post was at 03:17 PM ----------



does ours support opengl es 2.0 ???

yes it does support es 2.0 . here is some more advanced info on our gpu for devs-
http://www.glbenchmark.com/phonedet...ro11&D=Samsung+GT-I5800+Galaxy+3&testgroup=gl
 

tom3q

Senior Member
May 31, 2011
358
1,611
Warsaw
github.com
Last edited:

PersianSphinx

Senior Member
Aug 23, 2011
852
223
London
Samsung Galaxy S7 Edge
Kernel isn't that important for this driver, because the only thing running on kernel level is a little kernel module for direct hardware access and it's the part that has to be adapted for i5800 and its kernel for sure.

The great majority of the project is an user space library, which implements the OpenGL ES API, accesses the hardware directly and communicates with the module only for things that can't be done in user context. Kernel version usually doesn't matter for user space code.

hmmmm.... interesting...
im may be buying myself a new phone soon or when/if i go to uni (fingers crossed ^_^) in fall 2012, so i might send my ig5800 to you if i pull this thing off... fingers crossed ;)
thanx for all the help mate :)
 
  • Like
Reactions: brajesh.sharma87

ajay.d96

Senior Member
Sep 22, 2011
411
372
yes it does support es 2.0 . here is some more advanced info on our gpu for devs-
http://www.glbenchmark.com/phonedet...ro11&D=Samsung+GT-I5800+Galaxy+3&testgroup=gl

what a shame,... our phone gets only half-a-star in overall gpu performance,..

and it also says that many of the textures are not supported,.. if i use your driver,. is it possible that it gets atleast 4 stars out of 5 ?? if so im gonna praise ya ,. after that we wont need chainfire 3d ,right ?
 

Arakmar

Senior Member
Mar 10, 2011
213
765
Grenoble
@tom3q:

I have built the latest version of your driver (with DEBUG defined). I have a black screen but I think I have some interesting error messages :

In logcat :
Code:
E/libfimg ( 2902): Couldn't mmap FIMG registers (Invalid argument).
D/libsgl  ( 2902): EGL error EGL_BAD_ALLOC in void* eglCreateContext(void*, void*, void*, const EGLint*) in line 1261
E/libEGL  ( 2902): eglMakeCurrent:1229 error 3009 (EGL_BAD_MATCH)
E/libEGL  ( 2902): call to OpenGL ES API with no current context (logged once per thread)

In dmesg :
Code:
<6>s3cfb s3cfb.0: [fb1] video memory released
<6>s3c-fimc s3c-fimc.1: fimc_querycap: called
<4>here
<4>The size of G3D_SFR_SIZE mapping is too big!
<6>s3c-fimc s3c-fimc.1: fimc_release: successfully released

Let me know if I can help you in any way to debug that. :)
 

Attachments

  • dmesg2.txt
    70.4 KB · Views: 5
  • logcat.txt
    9.2 KB · Views: 4

PersianSphinx

Senior Member
Aug 23, 2011
852
223
London
Samsung Galaxy S7 Edge
Well, you can't expect it to run with samsung's g3d module. You have to use a module compatible with OpenFIMG and currently the there is only a module for Spica and my 3.0.x kernel available. It has to be ported for G3 and its kernel.

interesting....
i wonder, can you just port the kernel and write the driver more easily by using that kernel? or am i being very stupid? :confused:
it would be very nice if you could find someone that would help you... i will start searching for someone to help you in this project.
again, im sorry for my ignorance, but what set of programming skills would one have to possess to be able to help you in this project?
tnx for the help man :)
 

tom3q

Senior Member
May 31, 2011
358
1,611
Warsaw
github.com
interesting....
i wonder, can you just port the kernel and write the driver more easily by using that kernel? or am i being very stupid? :confused:
it would be very nice if you could find someone that would help you... i will start searching for someone to help you in this project.
again, im sorry for my ignorance, but what set of programming skills would one have to possess to be able to help you in this project?
tnx for the help man :)

OpenFIMG kernel module is pretty simple, it just manages things that can't be managed in user space by main parts of the project, low level libfimg and high level library implementing OpenGL ES API.

Porting it would mean basically replacing power management operations with something that is available on G3 kernels and adding appropriate platform device definition to board support code (mach-whatever.c). Some adjustments in PMEM configuration might be also needed to enable pmem_gpu1 with internal memory allocator. It has been already described several pages ago, but nobody succeeded in doing it properly.

For porting the kernel module alone you need to have some basic idea about Linux kernel internals, like platform drivers/devices, resources, clock and power domain management (which implies some ability to read and create C sources).

For helping in implementing the high level part good knowledge of C++ is required and also some idea about OpenGL, writing optimal code for given architecture (ARM) and KISS principle (http://en.wikipedia.org/wiki/KISS_principle).

Developing the low level part requires experience in C programming, knowledge about computer architecture and programming device drivers.
 

hillbeast

Inactive Recognized Developer
Feb 9, 2011
2,719
6,790
Dunedin
OpenFIMG kernel module is pretty simple, it just manages things that can't be managed in user space by main parts of the project, low level libfimg and high level library implementing OpenGL ES API.

Porting it would mean basically replacing power management operations with something that is available on G3 kernels and adding appropriate platform device definition to board support code (mach-whatever.c). Some adjustments in PMEM configuration might be also needed to enable pmem_gpu1 with internal memory allocator. It has been already described several pages ago, but nobody succeeded in doing it properly.

For porting the kernel module alone you need to have some basic idea about Linux kernel internals, like platform drivers/devices, resources, clock and power domain management (which implies some ability to read and create C sources).

For helping in implementing the high level part good knowledge of C++ is required and also some idea about OpenGL, writing optimal code for given architecture (ARM) and KISS principle (http://en.wikipedia.org/wiki/KISS_principle).

Developing the low level part requires experience in C programming, knowledge about computer architecture and programming device drivers.

Is there anything in the userspace libraries that would be hardware specific or would the only porting be in the kernel?
 

tom3q

Senior Member
May 31, 2011
358
1,611
Warsaw
github.com
Is there anything in the userspace libraries that would be hardware specific or would the only porting be in the kernel?

I suppose that there shouldn't be any major hardware differences in FIMG-3DSE, but it's possible that there can be some minor ones since revisions of GPUs in S3C6410 and S5P6442 are slightly different (1.5.0 vs 1.5.3).
 

Top Liked Posts

  • There are no posts matching your filters.
  • 70
    I am posting here as I am not allowed to do so in development subforum.

    Anyway, I am the developer of the OpenFIMG project (formerly GLES6410), which is aiming to provide proper OpenGL support on devices with FIMG 3DSE 3D engine, found in S3C6410, S5PC100 and probably also in S5P6442. The project is in a pretty advanced state as it is already capable of running Android 2.3 with hardware acceleration. Still many OpenGL extensions and some core features (like lighting) are still missing. More info can be found here: https://github.com/tom3q/openfimg/wiki.

    It is very likely (and almost confirmed) that the SoC used in Galaxy 3 (S5P6442) contains the same GPU as the one in S3C6410, which is the chip inside Galaxy Spica and similar phones, at least basing on what Quadrant and GLbenchmark show and on GL libraries supposed to be dumped from Galaxy 3.

    What I am trying to say is that my project may also be useful on Galaxy 3, but I am the only developer working on it and I am doing it in my free time, so it does not progress as fast as one may expect. In other words, I am looking for some other developers interested in this project.

    If you are interested, then do not hesitate to drop me a PM.

    Mod EDIT : moving this to development

    EDIT: Attached some documents about FIMG 3DSE (based on S3C6410 documentation and my reverse engineering)

    EDIT: The project has been successfully used on G3. Builds of ICS for G3 use OpenFIMG as primary graphics driver currently and there are update packages for CM7.
    32
    I was talking with my boss today regarding my personal open source contributions related to Samsung hardware and he told me that there shouldn't be any problems with OpenFIMG, although to be safe I will have to let him look through any changes and officially accept them before publication. Those which can potentially reveal any sensitive information will have to go through Korea, but there shouldn't be any problems.

    So basically the project is still alive.
    32
    I've got a G3 now (thanks to the donator, I'm not sure if he wants to be named), so I might be able to help with kernel porting and test OpenFIMG on G3 ROMs and do any necessary improvements.
    24
    I just wanted to get this thread back on top and aks if you're still busy tom ;)
    I'd love to see an update of this driver, really appreciate your work!

    Well, I'm now taking a break after the exams till the end of this week, then I'm going to finish my libcamera implementation for the 3.x kernel (for Spica currently and later also for G3) and will see what to do after that, 3.x kernel for G3 or something for OpenFIMG.
    23
    Very interesting .. I send you PM.