Note: this help the driver to know that we don't it
to swizzle back the pixel from GPU format, because we
are going to replace all pixels.
SVN revision: 63201
Subject: [E-devel] [Review] [Patch] Evas_GL bug fixes/updates
I've fixed some minor issues that I've been pushing off for later.
The patch does the following:
1. Evas_GL and Evas had an issue where the viewport parameters were
being reset in the wrong context. Previously, this issue was temporarily
patched by flushing evas' pipeline and setting
evas_gl_common_context_use(NULL) in EvasGL's
make current. I know, it was pretty hacky. It turns out that in
evas_engine,
there was a code evas_gl_common_context_resize(NULL) without doing
eng_window_use() first. So i've added that part and problem went was
resolved properly. :-)
2. Naturally, I've taken out the temporary patch from 1.
3. I've added code that took care of glBindFramebuffer(..., fbo) where
the
fbo had to be saved and restored in case the user wanted to use his
own fbo.
Also, I've had to take care of the case when fbo is 0 since 0 need to
point
to evas_gl surface.
4. I've updated make_current a little as well.
SVN revision: 62780
Subject: [E-devel] [Patch] evas gl engine's texture creation
Hello.
1. _pool_tex_dynamic_new function, it didnt set pt to NULL when secsym_eglCreateImage function failed.
In this case, it returns wrong pt pointer and it has possibility to make crash.
So I add free pt code and return NULL code into _pool_tex_dynamic_new function.
2. I modified eng_image_data_get of gl engine.
If Evas_GL_Image's texture creation failed and evas_gl_image's cache image was droped,
Im->im can be NULL. So I add check code.
Example: evas_gl_common_image_content_hint_set
1) EVAS_IMAGE_CONTENT_HINT_DYNAMIC , it drop cache image
2) if evas_gl_common_texture_dynamic_new failed
3) then, im->im =NULL, im->tex=NULL
In this situation, if application call's evas_object_image_data_get function,
It make crash in evas_cache_image_load_data function.
3. I think function's related with evas_object's engine data have to be return NULL if it failed.
If function's returns null, evas object code can handle error more easily.
But evas object's code was implemented differently each case. Does my suggestion right?
I add engine data null check code to evas_object_image based on upper consumtion.
If it is wrong , the patch code related with evas object image have to be removed.
If it is right , I will survey other evas object type also.
SVN revision: 62775
Sometimes, gif loader can miss some previous frame.
In that case, display can be dirty.
If frame N loaded without N-1 make these problem.
I fixed this problem.
And I modified wrong document.
SVN revision: 62712
buffer depth. Fix typo in error message. Add a missing
cache_image_drop call. When doing mask_set, use the proper variable
for the _create_gc function.
SVN revision: 62603
Subject: [E-devel] [Patch] Map/Unmap image for zero-copy texture
this modifies the zero copy texture feature to map and unmap on get and put
data to allow the put to "flush gpu caches".
SVN revision: 62493
Subject: RE: [E-devel] [Patch] Animation gif feature patch
Animated gif suport in evas and api's to handle animated images and
frame flipping. from jy.
SVN revision: 62331
eina_file.... and that SOMEONE didnt check to see if libjpeg always
calls the term func... lkike when decoding headers... when it DOESNT.
force the term func to be called whenever destroying the compress
anyway (and if its already done it'll savely just return and not free
anything)
SVN revision: 61914
Add missing Asyn Push code (tho it's disabled anyway).
Use shmget like xlib did and create with 0777 permissions.
Add a Sync call if try_shm == 2.
Add checks for frame_queuing & low libext version safety.
SVN revision: 61895
Dear all,
eng_image_stride_get() of gl backend get fault stride value.
In case of using dynamic image, it get from dyn.w*4.
But, dyn.stride was already got from secsym_eglGetImageAttribSEC() in _pool_tex_dynamic_new().
dyn.stride can be changed according to DDK.
So, the stride needs to get from dyn.stride.
Please find enclosed file.
Thanks.
SVN revision: 61463
from gl77.lee@samsung.com
Dear all,
I attached a patch of evas_gl_shader.
I've removed a comment which is creating dummy shader when using GL_OES_get_program_binary extension.
Mr. Haegeun Park who is in charge of GPU driver fixed get_program_binary bug in the SGX driver.
There's no need to create dummy shaders any longer.
And I've added link status checking code to validate the binary object.
Please review this patch.
Thanks.
SVN revision: 61309
Dear all,
There is a below issue.
Problem : Evas gl engine call eglWaitNative() and eglWaitGL() before/after eglSwapBuffers().
The sync APIs are not call only in case of SGX_DDK.
Resolution : It is necessary to check MALI string too.
So, I fixed it.
Please find enclosed file.
Thanks.
SVN revision: 61226
If file was corrupted , the size value of app frame is bigger than real file
size.
For example, if somebody change file using editor, the file start with (FF
D8 FF E0 FF DB ..).
But real file size can be small than (FF DB).
In that case, _evas_jpeg_membuf_src_skip set src->pub.bytes_in_buffer to
negative value, it make crash later.
Signed-off-by: Jiyoun Park <jy0703.park@samsung.com>
SVN revision: 61222
NB: XCB Engine is currently disabled by default as it's not considered
'complete' yet and is of little use to users/devs at the moment
without the needed ecore_x & E changes.
SVN revision: 61139
Subject: [E-devel] [Patch] Evas_image_load_gif bug fix
I found if gif file didn't have colormap, evas make segmentation fault.
So I add null check code of the gif color map .
SVN revision: 60337
Added Evas_Font_Instance and Evas_Font_Set which correspond to
RGBA_Font_Int and RGBA_Font. This is very important for strict type
checking which we now finally have.
This commit does not include logic changes, only casting and changing
types of pointers to the opaque pointer types.
SVN revision: 59782
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).
SVN revision: 59167
Subject: evas_gl_api_get patch.
Here's a patch that simply overrides the GL functions for Evas_GL
except for two functions that I provide on my own. It may have some symbol
resolving warnings but that'll all go away eventually when we do everything
via dlsym or getProcAddress.
You can apply the patch to the latest revision of evas. (I've just
updated them) I'm also attaching a sample GLES program that uses
evas_gl_api_get. You don't need to link it to -lGL.
SVN revision: 59092
more. making a loader is a matter of a binary of a specific name and
evas passes certain input on the cmd-line and your binary produces
output on stdout (and also optionally additionally in a shm or tmp
file).
SVN revision: 58914
Subject: [E-devel] [Review] [Patch] Evas - OpenGL on Evas: surface
texture creation patch
I'm attaching a patch that addresses the awkward usage case. It's something
that didn't bother me initially but the more I look at it, i think
it's a little off. :-)
The initial version of the evas_gl that I've submitted had the
following use case.
evasgl = evas_gl_new(e);
sfc = evas_gl_surface_create(...);
ctx = evas_gl_context_create(...);
// Make current triggers surface texture and FBO to be created
evas_gl_make_current(evasgl, sfc, ctx);
// Then you can do a surface_get to retrieve the proper texture and set it
evas_gl_native_surface_get(evasgl, sfc, &ns);
evas_object_image_native_surface_set(img_obj, &ns);
The unnatural thing about this use case is that you have to call the make_current
one time in order for evas_gl to generate a surface texture. This is because
you need a context to create a texture. Unfortunately, this makes the usage
case really awkward.
So, instead, I've decided to get rid of the need for calling the make_current
by generating a surface texture when evas_gl_surface_create() is called
by using the evas' gl context. This works because the newly created context
shares resources with evas. in fact, this is what i'm currently doing with surface
deletion anyway so I thought this solution was reasonable.
Here's how it looks after you get rid of the make_current:
evasgl = evas_gl_new(e);
sfc = evas_gl_surface_create(...);
ctx = evas_gl_context_create(...);
evas_gl_native_surface_get(evasgl, sfc, &ns);
evas_object_image_native_surface_set(img_obj, &ns);
The patch is pretty small and straightforward.
SVN revision: 58892
Patch from Thierry el Borgi with some rework of myself.
NOTE: I don't have much file to test, so if some don't
contact us with those file and we will fix the loader
if needed.
SVN revision: 58873
(part of the evas-gl work)
the patch basically checks to see if the current context is evas' gl context
and if it is, it'll call evas_gl_common_context_flush(). I think this
is the proper
SVN revision: 58786