Commit Graph

48 Commits

Author SHA1 Message Date
Mathias Agopian
bb0628d9de remove copybit hack from software opengl (libagl)
h/w acceleration is not supported through software gl + copybit anylonger,
instead, h/w opengl must be used. in the system compositor, a new h/w
composition api will be introduced to allow h/w accelerated composition with
overlays and/or 2D blocks.

Change-Id: I04949cb074ba8c4d637319ace23497c16a58d5bf
2010-07-29 23:28:03 -07:00
Dianne Hackborn
4b5e91e482 Introduce official public NativeWindow type.
Not yet hooked up to anything in the NDK, but requires renaming
the existing android_native_window_t type everywhere.

Change-Id: Iffee6ea39c93b8b34e20fb69e4d2c7c837e5ea2e
2010-06-30 15:32:04 -07:00
Mathias Agopian
04aed2149d fix a crasher in our EGL wrapper when attrib_list is NULL in eglChooseConfig
the EGL specification states that this should be treated as though it was
an empty list terminated with EGL_NONE.

Change-Id: I294104370a86b5e5c34c7bcf15c5459eab464631
2010-05-17 14:45:43 -07:00
Mathias Agopian
8dccb26901 Proper EGLImageKHR error handling
Validate EGLImageKHR format and return an error for unsupported ones.
Also make sure to return an error when binding EGL_NO_IMAGE_KHR to a texture
2010-02-04 17:04:53 -08:00
Mathias Agopian
c656e03674 am 66b5d902: am 27407208: Merge change Icf335098 into eclair
Merge commit '66b5d902a29e08237f16be53a84f9c2472df8493' into eclair-mr2-plus-aosp

* commit '66b5d902a29e08237f16be53a84f9c2472df8493':
  fix [2236865] STOPSHIP: bump soft gl and egl minor version number
2009-11-13 09:26:24 -08:00
Mathias Agopian
1eeffc6814 fix [2236865] STOPSHIP: bump soft gl and egl minor version number 2009-11-12 15:19:42 -08:00
Jean-Baptiste Queru
ff230a51f5 merge from open-source master 2009-11-09 11:00:18 -08:00
Mathias Agopian
8b6b95abae part of fix [2186418] switch passion to 24-bits framebuffer
add support for RGBX_8888 EGLConfigs in the software renderer
(since that's what we're using in the MDP case)
2009-11-04 14:51:18 -08:00
Mathias Agopian
bc4929117d fix [2236832] software OpenGL ES driver doesn't work on sholes
make sure to not pass our fake handles to the real gralloc
2009-11-03 21:08:06 -08:00
Mathias Agopian
6fee064809 fix[2228133] pixelflinger ignores the "vertical stride" leading to artifacts when playing back video
we lost the concept of vertical stride when moving video playback to EGLImage.
Here we bring it back in a somewhat hacky-way that will work only for the
softgl/mdp backend.
2009-11-02 17:48:33 -08:00
Mathias Agopian
0985f6a4ea fix [2153873] EGL-1.4 software implementation misses surface attributes 2009-10-19 14:46:27 -07:00
Christoffer Gurell
97640b9320 Fix obvious typo bug in egl.cpp
can (and does sometimes) lead to accessing array with -1 as index
2009-10-12 11:57:27 +02:00
Mathias Agopian
56fa27572a fix [2147737] Pixel Flinger needs to set EGL_RENDERABLE_TYPE to EGL_OPENGL_ES_BIT
Also set max swap interval to 1, which is the only supported value currently.
2009-09-27 20:18:16 -07:00
Mathias Agopian
0696a57229 better error handling in EGL 2009-08-20 00:12:56 -07:00
Mathias Agopian
5221271375 second take, hopefully this time it doesn't break one of the builds: "SurfaceFlinger will now allocate buffers based on the usage specified by the clients. This allows to allocate the right kind of buffer automatically, without having the user to specify anything." 2009-08-11 23:32:29 -07:00
Fred Quintana
b2fd4665e6 Revert "SurfaceFlinger will now allocate buffers based on the usage specified by the clients. This allows to allocate the right kind of buffer automatically, without having the user to specify anything."
This reverts commit 8b76a0ac6fbf07254629ed1ea86af014d5abe050.
2009-08-11 20:49:35 -07:00
Mathias Agopian
df37b62c62 SurfaceFlinger will now allocate buffers based on the usage specified by the clients. This allows to allocate the right kind of buffer automatically, without having the user to specify anything.
This change makes SurfaceHolder.setType(GPU) obsolete (it's now ignored).
Added an API to android_native_window_t to allow extending the functionality without ever breaking binary compatibility. This is used to implement the new set_usage() API. This API needs to be called by software renderers because the default is to use usage flags suitable for h/w.
2009-08-11 16:12:56 -07:00
Mathias Agopian
cf81c84e43 be more robust when errors occur upon EGL surface creation (ie: don't crash) 2009-07-31 14:47:00 -07:00
Mathias Agopian
cb6b904164 fixed some issues with the software renderer when surfaces are made current.
there was several issues:
- when a surface was made non-current, the last frame wasn't shown and the buffer could stay locked
- when a surface was made current the 2nd time, it would not dequeue a new buffer

now, queue/dequeue are done when the surface is made current.

for this to work, a new query() hook had to be added on android_native_window_t, it allows to retrieve some attributes of a window (currently only width and height).
2009-07-30 18:14:56 -07:00
Jean-Baptiste Queru
02f54246f5 donut snapshot 2009-07-29 14:25:07 -07:00
Mathias Agopian
f13901eaa9 remove libagl's dependency on gralloc_priv.h 2009-07-15 18:53:32 -07:00
Android (Google) Code Review
2521f47c4d am 46e28db8: Merge change 6713 into donut
Merge commit '46e28db8818332e3cda4cc410cc89a1ed7ce4db6'

* commit '46e28db8818332e3cda4cc410cc89a1ed7ce4db6':
  fix for [1969185] valgrind errors in new gl stuff
2009-07-09 17:35:26 -07:00
Mathias Agopian
dacd7a33c4 fix for [1969185] valgrind errors in new gl stuff 2009-07-09 17:33:15 -07:00
Mathias Agopian
240c9fe59e use copybit for eglSwapBuffers() copy-back operations 2009-06-25 15:39:25 -07:00
Mathias Agopian
8d2e83b9f4 Add eglGetRenderBufferANDROID() extension, which returns the current render buffer as an android_native_buffer_t* 2009-06-25 00:02:44 -07:00
Mathias Agopian
0a3139a21e fix a bug where copybit only renders in the first buffer when used with s/w GL 2009-06-10 16:15:32 -07:00
Mathias Agopian
9648c1a2b9 make sure clear the draw and read EGLSurface when eglMakeCurrent() is called for unbinding from the thread 2009-06-03 19:00:53 -07:00
Jean-Baptiste Queru
9660d304ae donut snapshot 2009-05-20 11:28:04 -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
58a79f4745 move android_native_buffer_t declaration into its own private/ui/android_native_priv.h header, since user code should never have access to it. 2009-05-05 18:21:32 -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
21c59d0070 get rid of android_native_buffer_t::getHandle() and replace it with an handle field
this abstraction was not necessary. things are easier now.
2009-05-05 00:59:23 -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
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
53238bddea integrate some OpenGL ES changes back from master_gl in preparation of opening GLES to the NDK. 2009-04-23 13:45:48 -07:00
Mathias Agopian
8b765b7f5e more debugging tools around BufferMapper 2009-04-10 20:34:46 -07:00
Mathias Agopian
076b1cc3a9 Integrate from //sandbox/mathias/donut/...@145728
SurfaceFlinger rework for new EGL driver model support.
2009-04-10 14:24:30 -07:00
Jack Palevich
749c63dbff Automated import from //branches/master/...@142578,142578 2009-03-25 15:12:17 -07:00
Jack Palevich
87d80228cc Automated import from //branches/donutburger/...@142484,142484 2009-03-24 22:48:26 -07:00
Jack Palevich
df351ba573 Automated import from //branches/cupcake/...@142481,142481 2009-03-24 20:18:08 -07:00
The Android Open Source Project
edbf3b6af7 auto import from //depot/cupcake/@135843 2009-03-03 19:31:44 -08:00
The Android Open Source Project
d5193d9394 auto import from //depot/cupcake/@135843 2009-03-03 18:28:45 -08:00
The Android Open Source Project
43aa2b1cbf auto import from //depot/cupcake/@132589 2009-03-03 14:04:24 -08:00
The Android Open Source Project
0bb03408de auto import from //depot/cupcake/@137055 2009-03-02 22:54:33 -08:00
The Android Open Source Project
a6938bab1f auto import from //branches/cupcake/...@130745 2009-02-10 15:44:00 -08:00
The Android Open Source Project
e09fd9e819 Code drop from //branches/cupcake/...@124589 2008-12-17 18:05:43 -08:00
The Android Open Source Project
7c1b96a165 Initial Contribution 2008-10-21 07:00:00 -07:00