From: Jiyoun Park <jy0703.park@samsung.com>
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 4 May 2011 06:15:00 +0000 (06:15 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 4 May 2011 06:15:00 +0000 (06:15 +0000)
commit0b68c45f5dea329f638362fdda488b4f084e28bd
treeb2a6b3bf19a40b3d512fcc10edc0743f8ba112ce
parentd5e8d9a37d71ae47ce4fed1c67abbd2fa7647279
From: Jiyoun Park <jy0703.park@samsung.com>
Subject: [E-devel] [Patch] Evas gl shader use binary shader

I make patch related with evas gl binary shader.

The concept of binary shader is  compile shader only once.

Some people want to use binary shader because of performance issue.

In current evas gl engine, every application have to compile shader each
time.

But I modify code , so only first running application need compile shader.

Other application use already compiled shader(binary shader)

The binary shader is made under HOME/.evas/gl_common_shaders directory.

Binary shader is created according to GL vendor,GL renderer, GL version and
Module_arch.

The basic flow is

1.     First running application which use gl engine check binary shader
directory, but it can't find binary shader.
2.     After compiling shader, It saves compiled shaders..
3.     Other application checks shader directory, it can use binary
shaders.

In mobile target, using binary shader, I can save 150ms. (that time, there
is 11 shaders).

If there is more shaders and more applications, this flow maybe save more
total time.

(the above is now in, changelog coming, with change to using ~/.cache,
some formatting fixes, make ity do the desktop gl one right with the
retrievable hint parameter ont he program etc. - doesn't break desktop
gl at least. yay. a,so fixes to mke it compile at all).

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@59167 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33
m4/evas_check_engine.m4
src/modules/engines/gl_common/Makefile.am
src/modules/engines/gl_common/evas_gl_common.h
src/modules/engines/gl_common/evas_gl_context.c
src/modules/engines/gl_common/evas_gl_shader.c
src/modules/engines/gl_x11/Makefile.am