Commit Graph

6850 Commits

Author SHA1 Message Date
David Turner
c89c5e8cc7 am 124babe3: am 8abaa9a0: Merge "opengles emulator: fix GL_EXT_packed_depth_stencil string"
* commit '124babe3b6e34170b82faee6783e0da9b08fb780':
  opengles emulator: fix GL_EXT_packed_depth_stencil string
2011-08-09 10:06:40 -07:00
David Turner
d30bb0b4b7 am 2b96b0fc: am 42dd982a: Merge "opengles emulator: 2.0: handle texture=0 on glFramebufferTexture2D"
* commit '2b96b0fc993914b3908dd103c05d50768fcbc0dd':
  opengles emulator: 2.0: handle texture=0 on glFramebufferTexture2D
2011-08-09 10:06:36 -07:00
David Turner
5dd949d29c am 42d5bd12: am ad3f4df3: Merge "opengles emulator: limit GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS"
* commit '42d5bd124b94dbcc684c8c3840891bbb54278071':
  opengles emulator: limit GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS
2011-08-09 10:06:32 -07:00
David Turner
6b445a641c am 9e0dba41: am 06524031: Merge "opengles emulator: Call XInitThreads on Linux."
* commit '9e0dba41bfa5f2029618958a7c2fcfa12e1723ad':
  opengles emulator: Call XInitThreads on Linux.
2011-08-09 10:06:28 -07:00
David Turner
984ccfa171 am c4e4ba87: am 0e0638e5: Merge "opengles emulator: fix glGetShaderSource"
* commit 'c4e4ba87bba41f414ba268a42c1751263480057a':
  opengles emulator: fix glGetShaderSource
2011-08-09 10:06:23 -07:00
David Turner
f0e93f9634 am 30dce171: am a75d7c69: Merge "opengles emulator: fix GLESv2 shader source packing"
* commit '30dce17194d9290ccac8dd1492ba6d9196eead38':
  opengles emulator: fix GLESv2 shader source packing
2011-08-09 10:06:19 -07:00
David Turner
5473c6ae99 am ad3166ad: am 9e883e8b: Merge "opengles emulator: fix eglGetProcAddress"
* commit 'ad3166add78dff8407466d271540bbfd20a06320':
  opengles emulator: fix eglGetProcAddress
2011-08-09 10:06:14 -07:00
David Turner
8c6d04a662 am 53dfd83d: am 23685f03: Merge "opengles emulator: fixed EGLContext and EGLSurface ref-counting."
* commit '53dfd83d48777e0196117322a498cea8cc29f863':
  opengles emulator: fixed EGLContext and EGLSurface ref-counting.
2011-08-09 10:06:09 -07:00
David Turner
87cbeada5c am 2ad48e99: am 54502698: Merge "opengles emulator: fix the mixing between pack/unpack alignments"
* commit '2ad48e99d267e1d03e27e8f49c95b753e2bcf41a':
  opengles emulator: fix the mixing between pack/unpack alignments
2011-08-09 10:06:03 -07:00
David Turner
4b3baea530 am 6b2470ef: am 450fb0a6: Merge "opengles emulator: cache all buffer on the guest"
* commit '6b2470ef2b1e9915ad6303607aefd8659ebc502c':
  opengles emulator: cache all buffer on the guest
2011-08-09 10:05:58 -07:00
David Turner
19fdd87fc6 am 8cfde07c: am a0045f20: Merge "opengles emulator: dynamicaly grow ReadBuffer"
* commit '8cfde07c61e9ab0b8b9d8815547124545f59f80d':
  opengles emulator: dynamicaly grow ReadBuffer
2011-08-09 10:05:52 -07:00
David Turner
8713e3858c am ecb7c06f: am 321714ab: Merge "opengles emulator: fix eglGetError"
* commit 'ecb7c06ff4a670ea473ac053aaa9c0f99f4e0bf6':
  opengles emulator: fix eglGetError
2011-08-09 10:05:46 -07:00
David Turner
1a30107ecc am 81e21789: am c1db962f: Merge "opengles emulator: inc/dec ref-count of buffer on SwapBuffers"
* commit '81e21789a87f530cec499694186885cbe059b7db':
  opengles emulator: inc/dec ref-count of buffer on SwapBuffers
2011-08-09 10:05:39 -07:00
David Turner
124babe3b6 am 8abaa9a0: Merge "opengles emulator: fix GL_EXT_packed_depth_stencil string"
* commit '8abaa9a0391079799f6a0458f05ecd073a778af3':
  opengles emulator: fix GL_EXT_packed_depth_stencil string
2011-08-09 08:44:26 -07:00
David Turner
2b96b0fc99 am 42dd982a: Merge "opengles emulator: 2.0: handle texture=0 on glFramebufferTexture2D"
* commit '42dd982af0a312c6fa25676b2cb0ff5911e198e6':
  opengles emulator: 2.0: handle texture=0 on glFramebufferTexture2D
2011-08-09 08:44:24 -07:00
David Turner
42d5bd124b am ad3f4df3: Merge "opengles emulator: limit GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS"
* commit 'ad3f4df38857f2c0a456d10bc6644f717693cfb2':
  opengles emulator: limit GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS
2011-08-09 08:44:21 -07:00
David Turner
9e0dba41bf am 06524031: Merge "opengles emulator: Call XInitThreads on Linux."
* commit '0652403155dd43f112d1de3de7171877d390be8e':
  opengles emulator: Call XInitThreads on Linux.
2011-08-09 08:44:18 -07:00
David Turner
c4e4ba87bb am 0e0638e5: Merge "opengles emulator: fix glGetShaderSource"
* commit '0e0638e5448f0fff5d71dacbb528faeda0702350':
  opengles emulator: fix glGetShaderSource
2011-08-09 08:44:13 -07:00
David Turner
30dce17194 am a75d7c69: Merge "opengles emulator: fix GLESv2 shader source packing"
* commit 'a75d7c694be060f9f88be30210f341c651549532':
  opengles emulator: fix GLESv2 shader source packing
2011-08-09 08:44:10 -07:00
David Turner
ad3166add7 am 9e883e8b: Merge "opengles emulator: fix eglGetProcAddress"
* commit '9e883e8b5fa510593ba43cbf3f77db39c34db015':
  opengles emulator: fix eglGetProcAddress
2011-08-09 08:36:08 -07:00
David Turner
53dfd83d48 am 23685f03: Merge "opengles emulator: fixed EGLContext and EGLSurface ref-counting."
* commit '23685f03992b3aca25fd087a468cf95fdb2b9282':
  opengles emulator: fixed EGLContext and EGLSurface ref-counting.
2011-08-09 08:35:56 -07:00
David Turner
2ad48e99d2 am 54502698: Merge "opengles emulator: fix the mixing between pack/unpack alignments"
* commit '54502698db433121bd200481aa6b8bba6de85310':
  opengles emulator: fix the mixing between pack/unpack alignments
2011-08-09 08:35:54 -07:00
David Turner
6b2470ef2b am 450fb0a6: Merge "opengles emulator: cache all buffer on the guest"
* commit '450fb0a600eba5e80ac703fd3ac7c71955ffcc15':
  opengles emulator: cache all buffer on the guest
2011-08-09 08:35:51 -07:00
David Turner
8cfde07c61 am a0045f20: Merge "opengles emulator: dynamicaly grow ReadBuffer"
* commit 'a0045f207807928ff6fa0a66d9e0ecf4de635782':
  opengles emulator: dynamicaly grow ReadBuffer
2011-08-09 08:35:40 -07:00
David Turner
ecb7c06ff4 am 321714ab: Merge "opengles emulator: fix eglGetError"
* commit '321714abd24dfcd5e222b2b7c21780f558d9e5c9':
  opengles emulator: fix eglGetError
2011-08-09 08:35:37 -07:00
David Turner
81e21789a8 am c1db962f: Merge "opengles emulator: inc/dec ref-count of buffer on SwapBuffers"
* commit 'c1db962fb79640ebcfb15b4ef3002a0193e634c1':
  opengles emulator: inc/dec ref-count of buffer on SwapBuffers
2011-08-09 08:35:35 -07:00
David Turner
8abaa9a039 Merge "opengles emulator: fix GL_EXT_packed_depth_stencil string" 2011-08-09 08:34:40 -07:00
David Turner
42dd982af0 Merge "opengles emulator: 2.0: handle texture=0 on glFramebufferTexture2D" 2011-08-09 08:34:31 -07:00
David Turner
ad3f4df388 Merge "opengles emulator: limit GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS" 2011-08-09 08:34:21 -07:00
Yochai Shefi Simchon
c8dfd865fc opengles emulator: fix GL_EXT_packed_depth_stencil string
It used to be a GL_NV_packed_depth_stencil string extension, but
now it's GL_EXT_packed_depth_stencil and implemented by everyone. on
nVidia drivers both are exported.

Change-Id: I1b4af8a776f9957838d466b24fe73fa873ea85e4
2011-08-09 17:33:04 +02:00
Yochai Shefi Simchon
70d6f3e2b9 opengles emulator: 2.0: handle texture=0 on glFramebufferTexture2D
texture=0 has a special meaning - detach texture. Therefore we should pass
it on as 0 rather than look for the global name in the name space.

Change-Id: If7d0174a7fd07fc13a75430312b605497653f01b
2011-08-09 17:33:04 +02:00
Yochai Shefi Simchon
a182a1a7e4 opengles emulator: limit GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS
A bug in the ATI OpenGL driver causes glGet(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS)
to return 32, although the driver supports only 16. The minimum required
by the spec is 2, so limit the number to 16.

Change-Id: Ife99dc5544f80ad872362414e9a5d9d2722d8a42
2011-08-09 17:33:03 +02:00
David Turner
0652403155 Merge "opengles emulator: Call XInitThreads on Linux." 2011-08-09 08:30:47 -07:00
David Turner
0e0638e544 Merge "opengles emulator: fix glGetShaderSource" 2011-08-09 08:30:37 -07:00
David Turner
a75d7c694b Merge "opengles emulator: fix GLESv2 shader source packing" 2011-08-09 08:30:22 -07:00
Liran
833ce70718 opengles emulator: Call XInitThreads on Linux.
All the X calls we do on linux are made from the FrameBuffer
object which is locked however OpenGL implementations may call
to Xlib during gl function calls. In order to be thread safe
we initialize Xlib to support multi-threading.

Change-Id: I3bc6a6378d7558fec44052bd67388beaf270c107
2011-08-09 17:29:17 +02:00
Liran
ca5e9825a4 opengles emulator: fix glGetShaderSource
added NullAllowed flag to length parameter of glGetShaderSource
calling glGetShaderSource with NULL length caused length data
from the host get left on the stream and get the stream out of sync

Change-Id: I45e8e523a67698c9b0cd003e2af7e15c76ed22b7
2011-08-09 17:29:17 +02:00
Liran
0a190be2bc opengles emulator: fix GLESv2 shader source packing
fix segfault when calling glShaderSouce with
empty shader string, length=NULL and count>0

Change-Id: I4c9738d7726fbce22d1e84420faa2bfd772943c5
2011-08-09 17:29:17 +02:00
David Turner
9e883e8b5f Merge "opengles emulator: fix eglGetProcAddress" 2011-08-09 08:27:43 -07:00
David Turner
23685f0399 Merge "opengles emulator: fixed EGLContext and EGLSurface ref-counting." 2011-08-09 08:27:29 -07:00
David Turner
54502698db Merge "opengles emulator: fix the mixing between pack/unpack alignments" 2011-08-09 08:27:15 -07:00
David Turner
450fb0a600 Merge "opengles emulator: cache all buffer on the guest" 2011-08-09 08:27:03 -07:00
David Turner
a0045f2078 Merge "opengles emulator: dynamicaly grow ReadBuffer" 2011-08-09 08:26:50 -07:00
David Turner
321714abd2 Merge "opengles emulator: fix eglGetError" 2011-08-09 08:26:40 -07:00
David Turner
c1db962fb7 Merge "opengles emulator: inc/dec ref-count of buffer on SwapBuffers" 2011-08-09 08:26:24 -07:00
Guy Zadickario
fb1868addc opengles emulator: fix eglGetProcAddress
eglGetProcAddress should return a function pointer that does not
depends on the current bounded context (if any), when the user
calls one of the function pointers returned from eglGetProcAddress
for one of the GLES extension functions, the GLESv1 or GLESv2
version of the extension function shold be called depending on
the current bounded context.

For this we have added a ClientAPI (GLES) extension dispatch
table in the EGL level which points to static functions in libEGL
where each function checks in runtime the current bound context and
calls down to the GLES_CM -or- GLESv2 library function.
See ClientAPIExts.cpp, when new GLES extension functions are added
to GLESv1 or GLESv2 its definition should be added to
ClientAPIExts.in as well.

This fixes the segfault in egl_image conformance test.

Change-Id: I8464d87c2fcbe57d67bd8b891b695a690dec89f3
2011-08-09 17:14:20 +02:00
Guy Zadickario
d8b376d76d opengles emulator: fixed EGLContext and EGLSurface ref-counting.
Handle EGL context and surfaces destrouction using ref counting
pointer (SmartPtr) rather then maintaining a "markForDeletion" flag.
This has required to re-arrange the ThreadInfo structure to be local
to EGL rather then in the GLcommon area so that we will be able to
place a ref-counted pointer to the current context in the TLS.

That fixes the crash during exit of covgl conformance test.

Change-Id: I6f0a2e49c6f21eb75b654cab4346c764715c449b
2011-08-09 17:14:20 +02:00
Stas Gurtovoy
0111043202 opengles emulator: fix the mixing between pack/unpack alignments
The was a bug in the calculation of the pixels data size, caused by wrong usage
of pack/unpack alignment.
Pack should be used for glReadPixels, while unpack should be used for glTexImage and such.
Also fixes crash in "Angry Birds" & "Angry Birds Rio"

Change-Id: I099308a57a1ea907d38c59bad056429bc107de98
2011-08-09 17:14:20 +02:00
Stas Gurtovoy
e99305dd9f opengles emulator: cache all buffer on the guest
This is needed to support the rare, but still legal scenario,
when glDrawElemets is used with some index array data is stored in VBO's
while the actual attributes (vertices) data is in immediate mode.
When in immediate mode, we need to process the incodes, in order to know
which vertex data to send, which was impossible without the caching.
This commit introduces a new class GLSharedGroup, which will hold all data
that can be shared by shared contexts (buffers are such data).
This also makes the "Jet Cars Stunts" app work properly.

Change-Id: Ic937080dae461bc8cdf4d10cf37066a6e847f464
2011-08-09 17:14:20 +02:00
Stas Gurtovoy
6208854726 opengles emulator: dynamicaly grow ReadBuffer
In case we're receiving packets larger then the initial size
of the read buffer, we dynamicaly grow (X2 steps) the size of
the buffer. An example for this large buffer is a 4MB texture
in JetCarStunts.

Change-Id: I167caddb731583811c009321d4f8fb2f7eea032c
2011-08-09 17:14:12 +02:00