Commit Graph

5657 Commits

Author SHA1 Message Date
David 'Digit' Turner
d9e0cdfda9 am 69f7c472: Merge "Remove obsolete comments"
* commit '69f7c472f660f2fe4c2e44e0a7446c8bf819fcd5':
  Remove obsolete comments
2011-08-24 09:20:18 -07:00
David 'Digit' Turner
69f7c472f6 Merge "Remove obsolete comments" 2011-08-24 08:16:36 -07:00
David 'Digit' Turner
503419ca75 Remove obsolete comments
Change-Id: Ibaeca7f3cd17305dd4cac042d6020455c5675e2d
2011-08-23 14:10:46 +02:00
David Turner
4b9e753fd5 am beda8a2f: Merge "opengles emulator- check framebuffer status fix"
* commit 'beda8a2ff919215f082833acc7265f0a5372f048':
  opengles emulator- check framebuffer status fix
2011-08-22 05:35:34 -07:00
David Turner
beda8a2ff9 Merge "opengles emulator- check framebuffer status fix" 2011-08-22 05:20:30 -07:00
Liran
f7e7e467ce opengles emulator- check framebuffer status fix
add drawValidate when calling glCheckFramebufferStatus
in the draw validate, a color attachement will be added to the
framebuffer if there is no target attached to COLOR_ATTACHMENT
of the framebuffer.
opengl does not allow framebuffer with no color attachement
so CheckFramebufferStatus would return INCOMPLETE status.

We already call drawValidate before any draw, the call was
missing at glCheckFramebufferStatus.

Change-Id: I94b930024c3076ac5fe0f8662d11884729c4f953
2011-08-22 14:11:45 +02:00
David Turner
0b21f4863b am b5588b2e: Merge "opengles emulator: fixes flashing effect on Mac"
* commit 'b5588b2e86ea7b2f19bed58f2e1078393c66fd6a':
  opengles emulator: fixes flashing effect on Mac
2011-08-22 04:11:15 -07:00
David Turner
d11fe07fed am 2b80fc12: Merge "opengles emulator: fixed EGL sharing context"
* commit '2b80fc12bb3385ac6d4a548343c359b855c56ece':
  opengles emulator: fixed EGL sharing context
2011-08-22 04:11:14 -07:00
David Turner
b5588b2e86 Merge "opengles emulator: fixes flashing effect on Mac" 2011-08-22 03:56:58 -07:00
David Turner
2b80fc12bb Merge "opengles emulator: fixed EGL sharing context" 2011-08-22 03:56:25 -07:00
Guy Zadickario
4629d2412b opengles emulator: fixes flashing effect on Mac
There is a flashing effect we see on Mac when switching between
drawables (pbuffer and a window) on the same context.
This change make the FrameBuffer object in the renderer to use
two different OpenGL contexts, one which is used while the pbuffer
drawable is bound and another which is used when the subwindow is
bounded during swap. The two contexts share textures so both contexts
have access to all allocated color buffers.

While this fixes the flashing effect on Mac, it should be more effective on
other platforms as well.

Change-Id: I63b49f0cdae8e2785765503750bbf5fbd4d963a1
2011-08-18 13:36:38 +03:00
Guy Zadickario
bdf4c1f436 opengles emulator: fixed EGL sharing context
Wrong share group was set up when two user contexts are sharing !
That means that shared context was not really worked before, now it does.

Change-Id: Ia4edbba0441e309902b2c48c44865342410bae3d
2011-08-18 13:36:38 +03:00
David Turner
dba6bd45f8 am ca7a7b05: Merge "opengles emulator: use bionic tls slot"
* commit 'ca7a7b0571701d5b552456bb1367ed50faf1c5ce':
  opengles emulator: use bionic tls slot
2011-08-16 07:53:23 -07:00
David Turner
ca7a7b0571 Merge "opengles emulator: use bionic tls slot" 2011-08-16 07:35:29 -07:00
David Turner
11064844ee am 8066f12a: Merge "opengles emulator: code cleanup removing dead code"
* commit '8066f12a07b050809c62fda1bdae5296e81a4c11':
  opengles emulator: code cleanup removing dead code
2011-08-16 06:53:37 -07:00
David Turner
8066f12a07 Merge "opengles emulator: code cleanup removing dead code" 2011-08-16 06:30:56 -07:00
Guy Zadickario
75094ee1ac opengles emulator: use bionic tls slot
This make the EGL/GLESv1/GLESv2 libraries on the guest to use
the OPENGL bionic tls slot for faster tls access.
Note that we still setting the slower tls in order to have the
tls destructor which allow us to close the host connection
when the thread exits.

Gives slightly performance improvement, the avg score for the
teapot test in 0xBench goes from 34 to 37 fps. (This test is
near immediate mode since it renders a lot of small primitives
so it is a good candicate to be improved).

Change-Id: I9060c75cc29c2e28721fa11d3f318b438edb5da9
2011-08-16 15:12:03 +03:00
David Turner
ca84c2cf37 am 2c68d0f3: Merge "opengles emulator: replace the readback at end of frame with blit"
* commit '2c68d0f347fa1c8a5bc51c34399173e4592dc831':
  opengles emulator: replace the readback at end of frame with blit
2011-08-16 03:35:39 -07:00
David Turner
2c68d0f347 Merge "opengles emulator: replace the readback at end of frame with blit" 2011-08-16 03:23:55 -07:00
Guy Zadickario
b9a5baf42b opengles emulator: code cleanup removing dead code
This change removes the 'blitFromPbuffer' path in the renderer
which uses binding pbuffer to texture. This path does not work
on all platforms and is not relavent any more. It simplifies
a lot the FBConfig filtering code.

Also, added a check to fail the renderer initialization if
the translator plugin does not support EGL_KHR_gl_texture_2d_image
and GL_OES_EGL_IMAGE (by both GLES implementations [1 and 2])
since our implementation requires it.

Change-Id: Ifd4c66943a8da56308cfb7e38914c962b4f5befe
2011-08-16 12:14:02 +03:00
Guy Zadickario
8c962dce6c opengles emulator: replace the readback at end of frame with blit
That replaces the readback to host we do at the end of each frame
with two blits on the GPU, one to copy the pixels into a texture
and another to render the texture to another in order to flip
the image.

Change-Id: I7e0e10493d38944d0b613e245023f34236d3dfc4
2011-08-16 10:52:19 +03:00
David Turner
e8026df0df am e16a448d: Merge "emulator opengles: improve TcpStream throughput"
* commit 'e16a448df04a66e36bc9e48cc1c322187f65ef46':
  emulator opengles: improve TcpStream throughput
2011-08-15 16:19:46 -07:00
David Turner
e16a448df0 Merge "emulator opengles: improve TcpStream throughput" 2011-08-15 15:58:42 -07:00
David Turner
3ae6928d8d emulator opengles: improve TcpStream throughput
This patch improves the performance of the TcpStream implementation
on the host by disabling the Nagle algorithm, thus improving the
bandwidth of small packets.

When used with the corresponding change in the emulator, this
significantly improves the speed of OpenGLES emulation for many
applications.

Change-Id: Ic09e51ecddf04bc7d667f46e1d260030d5fcad88
2011-08-16 00:55:43 +02:00
David Turner
698014ea6f am 36371ff3: Merge "opengles emulator: do single display connection for all subwindow"
* commit '36371ff3eb65acbac977f349514a49fc3ade4290':
  opengles emulator: do single display connection for all subwindow
2011-08-15 10:23:54 -07:00
David Turner
57e03b4cc5 am ec926484: Merge "EGL translator : fix windows egl for handling device contexts"
* commit 'ec926484c0c9f6f7597ef88767eb4d22190f23af':
  EGL translator : fix windows egl for handling device contexts
2011-08-15 10:23:52 -07:00
David Turner
36371ff3eb Merge "opengles emulator: do single display connection for all subwindow" 2011-08-15 10:04:52 -07:00
David Turner
ec926484c0 Merge "EGL translator : fix windows egl for handling device contexts" 2011-08-15 10:04:43 -07:00
Yochai Shefi Simchon
a6b033d19e opengles emulator: do single display connection for all subwindow
This is a workaround to a driver bug on Intel/Linux, when destroying
a subwindow do not close the X display connection, keep it for the
next call to createSubWindow. It happens that the intel/linux driver
caches the display connection for each window ID and use it during
swap or something similar. Using the same display connection for
all subwindows workaround the problem.

Also added a wait loop to wait until the window becomes mapped
instead of just calling XSync after calling XMapWindow. This
is more accurate and make sure we do not miss the first window
refresh.

Change-Id: I63c69d736df433666a8c79d71127afe72776e89f
2011-08-15 19:03:53 +02:00
Yochai Shefi Simchon
2a581c9cb2 EGL translator : fix windows egl for handling device contexts
on eglCreateContext the translator created a window for the
specified config with a matching pixelformat and saved it's
device context for future use.
however when the thread exited the window was destroyed by windows
and the handle saved became invalid.
the next call to wglCreateContext with the handle saved failed.

fixed the problem by creating windows per thread and not in a
global pool.
each thread will create its own window for each config when asked
the window will be destroyed when the thread exits.

Change-Id: I63668a20e8c30c42c4cfcaca664938683600b28e
2011-08-15 19:03:53 +02:00
David Turner
7d644a7468 am 0c245f6a: Merge "opengles emulator: do not publish support for setUpdateRect"
* commit '0c245f6a4abe8a5ad26e0f0939ee624bc4fcf3d3':
  opengles emulator: do not publish support for setUpdateRect
2011-08-15 09:56:34 -07:00
David Turner
0315d71017 am 06039b1e: Merge "opengles emulator: call XInitThreads in emulator_test_renderer"
* commit '06039b1e3be0ace898f28c3f4742a2879d9767b9':
  opengles emulator: call XInitThreads in emulator_test_renderer
2011-08-15 09:56:32 -07:00
David Turner
0c245f6a4a Merge "opengles emulator: do not publish support for setUpdateRect" 2011-08-15 09:21:39 -07:00
David Turner
06039b1e3b Merge "opengles emulator: call XInitThreads in emulator_test_renderer" 2011-08-15 09:20:45 -07:00
Guy Zadickario
22bb339abb opengles emulator: do not publish support for setUpdateRect
our framebuffer implementation in gralloc does not support
setUpdateRect but we erronously publish as we do. Reset
the setUpdateRect so that flinger will not try to use it.

Change-Id: I2e4f2ef7e5701aed69caa194426945bafd5ac4c9
2011-08-15 16:46:57 +03:00
Guy Zadickario
bdfb71562c opengles emulator: call XInitThreads in emulator_test_renderer
Now that we are not running the renderer as a seperate process
we need to have the XInitThreads call we put in the renderer process
inside emulator_test_renderer since the render server runs inside that
thread.
NOTE FOR INTEGRATION: this will need to be added to the emulator as
well.

Change-Id: I70592ad976d08c86e2c9e75b11b6ad57d6067606
2011-08-15 16:46:57 +03:00
David Turner
3d9ae4e7df am caf8eafb: Merge "opengles emulator: support display rotation and resize"
* commit 'caf8eafb1e54cadd2793a0382db9e8343eb247f7':
  opengles emulator: support display rotation and resize
2011-08-13 16:11:02 -07:00
David Turner
f8f0a7e93a am d33222df: Merge "opengles emulator: mac support binding context to pbuffer"
* commit 'd33222df9d7f85708f55d6abd45b0ea3a198d809':
  opengles emulator: mac support binding context to pbuffer
2011-08-13 16:11:00 -07:00
David Turner
b76d1f0a6b am 255bdd3f: Merge "opengles emulator: fix shader parser precision qualifiers"
* commit '255bdd3f1b68c98bdeeea7006132b61e9bade1cb':
  opengles emulator: fix shader parser precision qualifiers
2011-08-13 16:10:58 -07:00
David Turner
7014f05251 am dd7d29e0: Merge "opengles emulator: added FPS statistics printout"
* commit 'dd7d29e06aa9d8c2a68b68291d9343a88df62209':
  opengles emulator: added FPS statistics printout
2011-08-13 16:10:56 -07:00
David Turner
70cac15eac am d2c5f503: Merge "opengles emulator: fix the uniform location WAR for intel platforms"
* commit 'd2c5f50354052223348aa9acbdaeea407b28d8f9':
  opengles emulator: fix the uniform location WAR for intel platforms
2011-08-13 16:10:53 -07:00
David Turner
1639334c53 am f149b4f0: Merge "opengl emulator: fix windows build"
* commit 'f149b4f0650c1a96eb13c6c0db2b493ac57c75aa':
  opengl emulator: fix windows build
2011-08-13 16:10:51 -07:00
David Turner
34552f4cf8 am 584bcf8a: Merge "opengles emulator: fix shader/program info log functions"
* commit '584bcf8aea9270069fed1c4e87a48a2a9c7e4680':
  opengles emulator: fix shader/program info log functions
2011-08-13 16:10:48 -07:00
David Turner
caf8eafb1e Merge "opengles emulator: support display rotation and resize" 2011-08-13 15:47:13 -07:00
David Turner
d33222df9d Merge "opengles emulator: mac support binding context to pbuffer" 2011-08-13 15:45:20 -07:00
David Turner
255bdd3f1b Merge "opengles emulator: fix shader parser precision qualifiers" 2011-08-13 15:44:32 -07:00
David Turner
dd7d29e06a Merge "opengles emulator: added FPS statistics printout" 2011-08-13 15:43:11 -07:00
David Turner
d2c5f50354 Merge "opengles emulator: fix the uniform location WAR for intel platforms" 2011-08-13 15:42:41 -07:00
David Turner
f149b4f065 Merge "opengl emulator: fix windows build" 2011-08-13 15:40:50 -07:00
David Turner
584bcf8aea Merge "opengles emulator: fix shader/program info log functions" 2011-08-13 15:39:50 -07:00