summaryrefslogtreecommitdiff
path: root/legacy/evas/README.in
diff options
context:
space:
mode:
authorCarsten Haitzler <raster@rasterman.com>2010-08-31 04:38:24 +0000
committerCarsten Haitzler <raster@rasterman.com>2010-08-31 04:38:24 +0000
commitb8099eeb873199e4266e0c3bcc98a89be8f097cc (patch)
tree92572263a0d1db09a09bc0e18e6b490bc7b2e1cc /legacy/evas/README.in
parent4369e0f790c5fe547f07c5be739c59ec34611ad1 (diff)
add more docs in readme - probably a good idea since these magic env
vars are very useful at times SVN revision: 51771
Diffstat (limited to 'legacy/evas/README.in')
-rw-r--r--legacy/evas/README.in97
1 files changed, 94 insertions, 3 deletions
diff --git a/legacy/evas/README.in b/legacy/evas/README.in
index 1d861f7..e619697 100644
--- a/legacy/evas/README.in
+++ b/legacy/evas/README.in
@@ -189,6 +189,97 @@ more. it also supports opengl-es2.0 and is reliant on modern opengl2.0+
189shader support. this engine also supports the native surface api for 189shader support. this engine also supports the native surface api for
190adopting pixmaps directly to textures for compositing. 190adopting pixmaps directly to textures for compositing.
191 191
192some environment variables that control the opengl engine are as
193follows:
194
195export EVAS_GL_INFO=1
196 set this environment variable to enable output of opengl information
197such as vendor, version, extensions, maximum texture size etc. unset
198the environment variable to make the output quiet again.
199
200export EVAS_GL_MEMINFO=1
201 set this environment variable to enable dumping of debug output
202whenever textures are allocated or freed, giving the number of
203textures of each time and how many kb worth of pixel data are
204allocated for the textures. unset it again to stop this dumping of
205information.
206
207export EVAS_GL_WIN_RESURF=1
208 set this environment variable to enable the gl engine to try and
209ddelete the window surface, if it can, when told to "dump resources"
210to save memory, and re-allocate it when needed (when rendering
211occurs). unset it to not have this behavior.
212
213export EVAS_GL_CUTOUT_MAX=N
214 set this environment variable to the maximum number of rectangles
215applied to a rendering of a primitive that "cut away" parts of that
216primitive to render to avoid overdraw. default is 512. unset it to use
217defaults, otherwise set N to the max value desired or to -1 for
218"unlimited rectangles".
219
220export EVAS_GL_PIPES_MAX=N
221 set the maximum number of parallel pending pipelines to N. the
222default number is 32 (except on tegra2 where is it 1). evas keeps 1 (or more)
223pipelines of gl draw commands in parallel at any time, to allow for merging
224of non-overlapping draw commands to avoid texture binding and context
225changes which allows for more streamlining of the draw arrays that are
226filled and passed to gl per frame. the more pipelines exist, the more
227chance evas has of merging draw commands that have the same modes,
228texture source etc., but the more overhead there is in finding a
229pipeline slot for the draw command to merge into, so there is a
230compromise here between spare cpu resources and gpu pipelining. unset
231this environment variable to let evas use it's default value.
232
233export EVAS_GL_ATLAS_ALLOC_SIZE=N
234 set the size (width in pixels) of the evas texture atlas strips that
235are allocated. the default is 1024. unset this to let evas use its
236default. if this value is larger than the maximum texture size, then it
237is limited to that maximum size internally anyway. evas tries to
238store images together in "atlases". these are large single textures
239that contain multiple images within the same texture. to do this evas
240allocates a "wide strip" of pixels (that is a certain height) and then
241tries to fit all images loaded that need textures into an existing
242atlas texture before allocating a new one. evas tries a best fit
243policy to avoid too much wasting of texture memory. texture atlas
244textures are always allocated to be EVAS_GL_ATLAS_ALLOC_SIZE width,
245and a multiple of EVAS_GL_ATLAS_SLOT_SIZE pixels high (if possible -
246power of 2 limits are enforced if required).
247
248export EVAS_GL_ATLAS_ALLOC_ALPHA_SIZE=N
249 this is exactly the same as EVAS_GL_ATLAS_ALLOC_SIZE, but for
250"alpha" textures (texture used for font glyph data). it works exactly
251the same way as for images, but per font glyph being put in an atlas
252slot. the default value for this is 4096.
253
254export EVAS_GL_ATLAS_MAX_W=N
255 set this to limit the maximum image size (width) that will be
256allowed to go into a texture atlas. if an image exceeds this size, it
257gets allocated its own separate individual texture (this is to help
258minimize fragmentation). the default value for this is 512. if you set
259this environment variable it will be overridden by the value it is set
260to. the maximum value possible here is 512. you may set it to a
261smaller value.
262
263export EVAS_GL_ATLAS_MAX_H=N
264 this is the same as EVAS_GL_ATLAS_MAX_W, but sets the maximum height
265of an image that is allowed into an atlas texture.
266
267export EVAS_GL_ATLAS_SLOT_SIZE=N
268 this sets the height granularity for atlas strips. the default (and
269minimum) value is 16. this means texture atlas strips are always a
270multiple of 16 pixels high (16, 32, 48, 64, etc...). this allows you
271to change the granularity to another value to avoid having more
272textures allocated or try and consolidate allocations into fewer atlas
273strips etc.
274
275export EVAS_GL_NO_MAP_IMAGE_SEC=1
276 if this environment variable is set, it disabled support for the SEC
277map image extension (a zero copy direct-texture access extension that
278removes texture upload overhead). if you have problems with dynamic
279evas images, and this is detected by evas (see EVAS_GL_INFO above to
280find out if its detected), then setting this will allow it to be
281forcibly disabled. unset it to allow auto-detection to keep working.
282
192--enable-gl-flavor-gles 283--enable-gl-flavor-gles
193 284
194this enables the opengl-es 2.0 flavor of opengl (as opposed to desktop 285this enables the opengl-es 2.0 flavor of opengl (as opposed to desktop
@@ -293,13 +384,13 @@ actually can beat the c code (when compiled with all optimizations) in speed.
293--enable-cpu-neon 384--enable-cpu-neon
294 385
295This enables support for the Arm Cortex-A8 and later Neon register 386This enables support for the Arm Cortex-A8 and later Neon register
296set. In particular it will use neon optimised code for rotations and 387set. In particular it will use neon optimized code for rotations and
297drawing with the software engines. Open GL based renderers will gain 388drawing with the software engines. Open GL based renderers will gain
298nothing from the use of neon. 389nothing from the use of neon.
299 390
300To use neon with gcc-4.4 you need a post-2009 gcc and options 391To use neon with gcc-4.4 you need a post-2009 gcc and options
301something like: -mcpu=cortex-a8 -mfloat-abi=softfp -mfpu=neon 392something like: -mcpu=cortex-a8 -mfloat-abi=softfp -mfpu=neon
302Note that this slightly slows down non-optimised parts of evas but 393Note that this slightly slows down non-optimized parts of evas but
303the gains in drawing are more then worth it overall. 394the gains in drawing are more then worth it overall.
304 395
305This is enabled by default, and turns off if a small test program is 396This is enabled by default, and turns off if a small test program is
@@ -573,7 +664,7 @@ This has been tested on x86 desktop and laptop cpu's with 2 and 4
573cores and it works well, but there seem to be some issues on tested 664cores and it works well, but there seem to be some issues on tested
574multi-core ARM platforms like the nvidia tegra2. The source of issue is 665multi-core ARM platforms like the nvidia tegra2. The source of issue is
575unknown but you will notice rendering bugs with missing content or 666unknown but you will notice rendering bugs with missing content or
576incorectly drawn content. This requires you also set the environment 667incorrectly drawn content. This requires you also set the environment
577variable EVAS_RENDER_MODE to "non-blocking" to enable it at runtime, 668variable EVAS_RENDER_MODE to "non-blocking" to enable it at runtime,
578as the compile-time enable simply sets up the feature to be ready to 669as the compile-time enable simply sets up the feature to be ready to
579work. The runtime switch actually turns it on. If you don't plan to 670work. The runtime switch actually turns it on. If you don't plan to