Mathias Agopian
0b3ad46a26
Attempt to fix [2152536] ANR in browser
...
The ANR is caused by SurfaceFlinger waiting for buffers of a removed surface to become availlable.
When it is removed from the current list, a Surface is marked as NO_INIT, which causes SF to return
immediately in the above case. For some reason, the surface here wasn't marked as NO_INIT.
This change makes the code more robust by always (irregadless or errors) setting the NO_INIT status
in all code paths where a surface is removed from the list.
Additionaly added more information in the logs, should this happen again.
2009-10-02 18:12:30 -07:00
Mathias Agopian
86f7329080
add basic time stats for surfaces lock time
2009-09-17 01:35:28 -07:00
Mathias Agopian
c7d5601081
make sure to update the tail pointer when undoing a dequeue
2009-09-14 15:48:42 -07:00
Mathias Agopian
48d819a131
fix [2112575] stuck on DequeueCondition for a surface that doesn't exist anymore
...
this also fixes part of [2111536] Device is soft rebooted after ending the call through voice dialer
2009-09-10 19:41:18 -07:00
Mathias Agopian
b58b5d72d6
make sure conditions will return when the status of a surface is not NO_ERROR
2009-09-10 16:55:13 -07:00
Mathias Agopian
cbb288bfe8
fix [2068105] implement queueBuffer/lockBuffer/dequeueBuffer properly
...
Rewrote SurfaceFlinger's buffer management from the ground-up.
The design now support an arbitrary number of buffers per surface, however the current implementation is limited to four. Currently only 2 buffers are used in practice.
The main new feature is to be able to dequeue all buffers at once (very important when there are only two).
A client can dequeue all buffers until there are none available, it can lock all buffers except the last one that is used for composition. The client will block then, until a new buffer is enqueued.
The current implementation requires that buffers are locked in the same order they are dequeued and enqueued in the same order they are locked. Only one buffer can be locked at a time.
eg. Allowed sequence: DQ, DQ, LOCK, Q, LOCK, Q
eg. Forbidden sequence: DQ, DQ, LOCK, LOCK, Q, Q
2009-09-07 16:32:45 -07:00
Martin Storsjo
e03eaa1551
Calculate specular lighting correctly
...
Since the lighting calculations are done in object space, the vector
from the object to the viewer also needs to be transformed to object
space.
2009-08-25 18:35:54 -07:00
Mathias Agopian
238a66e67b
be more friendly with C
2009-08-13 18:27:10 -07:00
Mathias Agopian
eb9fd685f8
add a ctor to Mutex to specify the type, which can be shared. This is used by sf and af an soon will allow some optimization in the kernel for non shared mutexes
2009-07-13 22:06:36 -07:00
Mathias Agopian
ec0f1f6720
implement Mutex and Condition with pthread instead of calling futex directly.
...
internally pthread uses futex. the implementation consists of simple inlines
there are no implementation files anymore.
2009-07-13 15:14:23 -07:00
Mathias Agopian
e7c4c28d0f
add a virtual destructor to region_rasterizer, to be on the safe side
2009-07-07 12:29:17 -07:00
Mathias Agopian
4c4b387afb
merge master in master_gl
2009-06-24 18:31:21 -07:00
Android (Google) Code Review
952663ef57
am 5277103d: Merge change 5035 into donut
...
Merge commit '5277103db9033226814edc8fcba6f4ba4e846678'
* commit '5277103db9033226814edc8fcba6f4ba4e846678':
add glTexParameteri() and fix glTexParameteriv()
2009-06-22 22:04:12 -07:00
Mathias Agopian
b12f99b315
add glTexParameteri() and fix glTexParameteriv()
2009-06-22 18:09:09 -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
7e2a937c4f
revive the copybit test.
2009-06-09 21:38:08 -07:00
Mathias Agopian
0c97ed3a2e
cleanup Debug.h a bit
2009-06-04 23:29:29 -07:00
Mathias Agopian
310f8da0c3
merge master to master_gl
2009-05-22 02:16:08 -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
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
f1d8e87b09
a brand new MessageQueue for SurfaceFlinger.
2009-04-24 16:22:36 -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
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
a6938bab1f
auto import from //branches/cupcake/...@130745
2009-02-10 15:44:00 -08:00
The Android Open Source Project
8a7a67538a
auto import from //branches/cupcake/...@126645
2009-01-15 16:12:10 -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