Commit Graph

99 Commits

Author SHA1 Message Date
Mathias Agopian
1df3bbb8d8 trying to fix the sim, I'm not even sure this syntaxe is valid, but my compilo doesn't complain 2009-07-06 19:04:55 -07:00
Mathias Agopian
af54ab9d88 don't need to link against libsgl 2009-07-02 19:04:39 -07:00
Mathias Agopian
7303c6bf1a get rid of references to MemoryDealer in SurfaceFlinger 2009-07-02 18:50:51 -07:00
Mathias Agopian
6b5513538a forgot to remove those files 2009-07-02 18:46:57 -07:00
Mathias Agopian
759fdb2ef7 free gralloc buffers as soon as possible (when a surface is not visible any longer), client who have the buffers still mapped won't crash, btu may see garbage data 2009-07-02 18:45:29 -07:00
Mathias Agopian
84d1f7a098 Merge commit 'goog/master' into merge_master 2009-07-01 18:33:18 -07:00
Mathias Agopian
78f1c1949f Allocate 16MB for surfaces on Firstone, since 8MB is way to small for our bigger screen. 2009-07-01 17:47:38 -07:00
Android (Google) Code Review
99da6dd7f2 am 58ebdcc0: Merge change 5625 into donut
Merge commit '58ebdcc06eca06741460a7db2be4b79e3865eb88'

* commit '58ebdcc06eca06741460a7db2be4b79e3865eb88':
  fix [1947273] the DimLayer causes the whole screen to update during transactions
2009-07-01 00:06:47 -07:00
Mathias Agopian
2dd6727c46 when there is a choice between UPDATE_ON_DEMAND and SWAP_BUFFER optimizations, choose UPDATE_ON_DEMAND which is often more efficient. 2009-06-29 18:57:42 -07:00
Mathias Agopian
29d06ac9a4 fix a bug that caused artifacts when SWAP_RECTANGLE was enabled 2009-06-29 18:49:56 -07:00
Mathias Agopian
446ff92038 don't use a 1/4th of the screen size texture for the dim layer
we can't use a texture of 1/4th of the screen for the dim layer, because the mdp internal input resultion is alwyas integers and for very small blits of a couple pixels the scale factor can get way out of range, for instance for a 7 pixels source, the scale factor would be either 7 (7/1) or 3.5 (7/2) instead of 4 (7/1.75). This caused the mdp to fail in some cases and revert to software. we now always use a texture of the actual screen size, so the problem will never happen. This burns 300KB of pmem instead of 21KB. On devices with a larger screen we might want to use a smaller texture and tile it by hand.
2009-06-29 17:32:20 -07:00
Mathias Agopian
a8d44f75e1 fix [1947273] the DimLayer causes the whole screen to update during transactions 2009-06-29 14:44:11 -07:00
Mathias Agopian
6b3287b5d4 fix [1947273] the DimLayer causes the whole screen to update during transactions 2009-06-28 02:54:16 -07:00
Mathias Agopian
b8a5560e13 fix an update bug with SHOW_UPDATE debug feature. Fix a problem with the debug binder codes too 2009-06-26 19:06:36 -07:00
Mathias Agopian
d512f238a6 add support for out-of-range copybit scaling. camera capture is in color again 2009-06-25 17:41:12 -07:00
Mathias Agopian
958b3cac99 use 1/16 the size (20KB) for the dim texture in the copybit/msm case 2009-06-25 16:21:32 -07:00
Mathias Agopian
240c9fe59e use copybit for eglSwapBuffers() copy-back operations 2009-06-25 15:39:25 -07:00
Mathias Agopian
2ab55a4e31 make use of new eglGetRenderBufferANDROID extension to clean-up a bit a few hacks added recently 2009-06-25 00:09:27 -07:00
Mathias Agopian
5911aa9510 copybit now uses a native_handle_t* instead of a fd/offset 2009-06-24 20:39:16 -07:00
Mathias Agopian
69029eb5ab hack copybit back in for video playback on msm7k. we have h/w accelerated video again 2009-06-24 20:39:16 -07:00
Mathias Agopian
2e12324581 fix a bug causing push-buffer surfaces' identity to be garbage, which resulted in some attributes (size/pos) to fail to be set 2009-06-23 20:06:46 -07:00
Mathias Agopian
1fed11c86a checkpoint. bring back video/camera 2009-06-23 18:08:22 -07:00
Mathias Agopian
cca6b4267d Merge commit 'goog/master' into merge_master 2009-06-19 17:41:14 -07:00
Mathias Agopian
f9d932774e fix a memory corruption where a SF Client could be used after it's been destroyed 2009-06-19 17:00:27 -07:00
Mathias Agopian
cd8c5e29c2 release the last reference to surfaces explicitely instead of letting it go implicitely when the message is destroyed 2009-06-19 16:24:02 -07:00
Android (Google) Code Review
05915a4d9d am c6282977: Merge change 4718 into donut
Merge commit 'c6282977180c220b1a68c23a328e7d75a11963ab'

* commit 'c6282977180c220b1a68c23a328e7d75a11963ab':
  Fix sim-eng build and simplify previous lcd-density related patch
2009-06-18 19:46:59 -07:00
David 'Digit' Turner
ae71accf63 Fix sim-eng build and simplify previous lcd-density related patch 2009-06-19 04:41:12 +02:00
Mathias Agopian
945ebbfd3d implement dimming with a texture on msm7k so it uses copybit 2009-06-18 18:48:39 -07:00
Android (Google) Code Review
e2095d0a1c am b1cdb648: Merge change 4565 into donut
Merge commit 'b1cdb64877ebd3b8c5182913ff02edd8b54a6982'

* commit 'b1cdb64877ebd3b8c5182913ff02edd8b54a6982':
  Allow the qemu.sf.lcd_density property to override the value of ro.sf.lcd_density
2009-06-18 15:43:28 -07:00
David 'Digit' Turner
694e10ba87 Allow the qemu.sf.lcd_density property to override the value of ro.sf.lcd_density
ro.sf.lcd_density is usually defined in the build.prop file which is parsed by init
before anything else. Since its name begins with "ro.", this property is write-once
and cannot later be modified, e.g. in /system/etc/init.goldfish.sh.

In other words, you cannot use "emulator -prop ro.sf.lcd_density=<value>", since
it is impossible to override the value defined in build.prop

This patch modifies the system to recognize "qemu.sf.lcd_density" as an override
value, which can be set with "emulator -prop qemu.sf.lcd_density=<value>", forcing
a specific density.

A later patch will allow the emulator to automatically set this property depending
on AVD hardware configuration settings.
2009-06-19 00:17:31 +02:00
Mathias Agopian
375f56363a new Permission class used to improve permission checks speed (by caching results) 2009-06-15 21:56:51 -07:00
Mathias Agopian
5e78e09651 protect ANDROID specific egl extension with #define 2009-06-11 17:19:54 -07:00
Mathias Agopian
3d57964a81 fix a bunch of problems with destroying surfaces.
now, all destruction path, go through the purgatory which is emptied when ~ISurface is called, but we also make sure to remove the surface from the current list from there (in case a client forgot to request the destruction explicitely).
2009-06-04 18:46:21 -07:00
Mathias Agopian
e92c713cb6 when looking for an EGLConfig always pick the first one that matches, not the last one 2009-06-03 14:49:08 -07:00
Android (Google) Code Review
c20e4ebef2 am b61ae351: Merge change 2747 into donut
Merge commit 'b61ae351256518add7bcb40e0bf18337dd87195c'

* commit 'b61ae351256518add7bcb40e0bf18337dd87195c':
  log the geomerty of surfaces causing an out of memory in SurfaceFlinger.
2009-05-29 14:57:33 -07:00
Mathias Agopian
3c4d8c83da log the geomerty of surfaces causing an out of memory in SurfaceFlinger. 2009-05-29 14:55:06 -07:00
Mathias Agopian
310f8da0c3 merge master to master_gl 2009-05-22 02:16:08 -07:00
Android (Google) Code Review
bdbf6b094d am 69a6c3eb: Merge change 2292 into donut
Merge commit '69a6c3ebd46a8de0e896747757f364322c12608d'

* commit '69a6c3ebd46a8de0e896747757f364322c12608d':
  split boot animation out of SurfaceFlinger
2009-05-21 19:36:53 -07:00
Mathias Agopian
a1ecca920e split boot animation out of SurfaceFlinger
Conflicts:

	data/etc/platform.xml
2009-05-21 19:21:59 -07:00
Mathias Agopian
c5b2c0bf80 move libbinder's header files under includes/binder 2009-05-20 12:55:03 -07:00
Mathias Agopian
208059f67e checkpoint: split libutils into libutils + libbinder 2009-05-20 12:55:02 -07:00
Mathias Agopian
20f68782a4 Region now has its own implementation instead of relying on SkRegion, which allows us to break libui's dependency on libcorecg. 2009-05-17 23:34:16 -07:00
Mathias Agopian
1e16b13857 add support for update-on-demand in SurfaceFlinger 2009-05-07 17:40:23 -07:00
Mathias Agopian
e6bf8b32b6 fix EGL extension string names 2009-05-07 15:07:52 -07:00
Mathias Agopian
df3ca30bf6 created an new EGL extension called ANDROID_swap_rectangle
ANDROID_swap_rectangle allows to specify the rectangle affected by eglSwapBuffers(), anything outside of this rectangle is unchanged. in particular EGL_BUFFER_DESTROYED only applies to that rectangle. This extension as well as EGL_BUFFER_PRESERVED allow major optimizations on surfaceflinger, which can redraw only the dirty area during compositing.

However, ANDROID_swap_rectangle allows further optimizations in EGL by reducing the amount of copy-back needed. ANDROID_swap_rectangle is particularily important for software implementations.
2009-05-07 15:07:33 -07:00
Mathias Agopian
7189c0054e move opengl/include/EGL/android_natives.h to include/ui/egl/android_natives.h and don't include it from egl.h
the android_native_ types are just forward declared in egl.h
2009-05-05 18:11:11 -07:00
Mathias Agopian
e71212ba53 removed the "bits" attribute from android_native_buffer_t.
"bits" can never be trusted now that we need to call lock() on the handle to get the virtual address of the buffer.
2009-05-05 00:37:46 -07:00
Mathias Agopian
b2dd686d06 minor clean-up in FramebufferNativeWindow 2009-05-04 19:38:43 -07:00
Mathias Agopian
0926f50664 update surfaceflinger, libui and libagl to the new gralloc api
- Currently the lock/unlock path is naive and is done for each drawing operation (glDrawElements and glDrawArrays). this should be improved eventually.
- factor all the lock/unlock code in SurfaceBuffer.
- fixed "showupdate" so it works even when we don't have preserving eglSwapBuffers().
- improved the situation with the dirty-region and fixed a problem that caused GL apps to not update.
- make use of LightRefBase() where needed, instead of duplicating its implementation
- add LightRefBase::getStrongCount()
- renamed EGLNativeWindowSurface.cpp to FramebufferNativeWindow.cpp

- disabled copybits test, since it clashes with the new gralloc api

- Camera/Video will be fixed later when we rework the overlay apis
2009-05-04 14:17:04 -07:00
Mathias Agopian
7be3e5d2d8 Merge commit 'goog/master' into merge_master
Conflicts:
	libs/surfaceflinger/Layer.cpp
	libs/surfaceflinger/SurfaceFlinger.cpp
	opengl/libagl/egl.cpp
	opengl/libs/EGL/egl.cpp
	opengl/libs/GLES_CM/gl.cpp
	opengl/libs/GLES_CM/gl_api.in
	opengl/libs/gl_entries.in
	opengl/libs/tools/glapigen
2009-04-30 14:43:18 -07:00