Commit Graph

8510 Commits

Author SHA1 Message Date
David Turner
dd37090d15 am 54c1aa4f: am be19b0fd: Merge "opengles emulator: Separate FramebufferData to header and source files"
* commit '54c1aa4fcbfefa572dfdf57aa6e9bb19c92ab539':
  opengles emulator: Separate FramebufferData to header and source files
2011-08-10 02:09:30 -07:00
David Turner
8bbc54f445 am d20186af: Merge "opengles emulator: GLES2 translator / codec"
* commit 'd20186af1b4c55b50278189ab29847f78b9f5576':
  opengles emulator: GLES2 translator / codec
2011-08-10 02:08:07 -07:00
David Turner
ef1e9fa020 am 490bb2af: Merge "opengles emulator: GLES fix memory leaks"
* commit '490bb2afed0cc94401749431ccbc5c952888a4f7':
  opengles emulator: GLES fix memory leaks
2011-08-10 02:08:05 -07:00
David Turner
0cc0cb1060 am 90d4ce08: Merge "opengles emulator: support glEGLImageTargetRenderbufferStorageOES"
* commit '90d4ce080c9f6683989e5bb8d66e07960fd29afc':
  opengles emulator: support glEGLImageTargetRenderbufferStorageOES
2011-08-10 02:08:03 -07:00
David Turner
e594f31faf am f3bb27a7: Merge "opengles emulator: filter-out non-RGB configs"
* commit 'f3bb27a78fd7e70b2669b55d46448d0335c47f05':
  opengles emulator: filter-out non-RGB configs
2011-08-10 02:08:01 -07:00
David Turner
3fa3021e55 am fb8c84d8: Merge "opengles emulator: Workaround Cordy (Unity) bug with intel driver."
* commit 'fb8c84d84cd21ad292af167a27e7a7f856294ca4':
  opengles emulator: Workaround Cordy (Unity) bug with intel driver.
2011-08-10 02:07:58 -07:00
David Turner
5d1dc7c981 am f7e07ec9: Merge "opengles emulator: make glFramebufferTexture2D work"
* commit 'f7e07ec9ea77ea6a589a4708df13f805998a6ba9':
  opengles emulator: make glFramebufferTexture2D work
2011-08-10 02:07:56 -07:00
David Turner
54c1aa4fcb am be19b0fd: Merge "opengles emulator: Separate FramebufferData to header and source files"
* commit 'be19b0fd5942729e95727ee7e879d7052cfa3ffa':
  opengles emulator: Separate FramebufferData to header and source files
2011-08-10 02:07:53 -07:00
David Turner
47dd884b5a Merge "opengles emulator: Support current value for attribute 0" 2011-08-10 02:05:11 -07:00
David Turner
1216e72aa5 Merge "opengles emulator: GLESv2: adding more params validation." 2011-08-10 02:04:57 -07:00
David Turner
364e99635f Merge "opengles emulator: check OES_standard_derivatives support" 2011-08-10 02:04:39 -07:00
David Turner
0a931f5580 Merge "opengles emulator: fix uniform name translation to apps" 2011-08-10 02:04:30 -07:00
Yochai Shefi Simchon
97fa8de7a2 opengles emulator: Support current value for attribute 0
In GLES, a vertex shader attribute can be at location 0 and have
a current value. In OpenGL, the spec is not clear, resulting in
absurdities like the ATI driver binding an attribute to location
0, does not give an erro when you set it, but gives an error when
you try to get it back. And it doesn't actually set the value in
the shader.

So, in this patch we:

  1. Track attribute 0 value internally, setting and getting it
     as necessary.

  2. Upon glDrawArrays and glDrawElements, if attribute 0 is not
     "array enabled" (that is, it should use a current value) we
     create a dummy array, fill it with the intended current value,
     and attach and enable it. After the draw, we disable it.

Change-Id: I35f3e8a924e6fba236f4f4d85423b04ae448dad4
2011-08-10 11:00:10 +02:00
Amit Feller
c9d192691e opengles emulator: GLESv2: adding more params validation.
adding more params validations to some GL functions
which the OpenGL layer below us should check , but using Intel
Graphic driver those checks are ignored

Change-Id: I3ca2a891f1d9f988a7b662d6bc32b81e12cc333d
2011-08-10 11:00:10 +02:00
Amit Feller
af777c27ef opengles emulator: check OES_standard_derivatives support
fixin a bug when we declared that our implementation supports
OES_standard_derivatives without checking that the
openGL layer below supports this extention

Change-Id: Ic74f18eb753f0cfe067e23c3bf83905e40b17665
2011-08-10 11:00:10 +02:00
Liran
2ec2fa1a68 opengles emulator: fix uniform name translation to apps
add special handling of locations smaller or equal to 0
do not translate location -1 (this location means the
uniform is not found)

location 0 does not need translation, it has no effect

Change-Id: Idbde51f08433ed70a5a1a2cf1ede51043f3cca76
2011-08-10 11:00:10 +02:00
David Turner
d20186af1b Merge "opengles emulator: GLES2 translator / codec" 2011-08-10 01:58:59 -07:00
David Turner
490bb2afed Merge "opengles emulator: GLES fix memory leaks" 2011-08-10 01:58:48 -07:00
David Turner
90d4ce080c Merge "opengles emulator: support glEGLImageTargetRenderbufferStorageOES" 2011-08-10 01:58:18 -07:00
David Turner
f3bb27a78f Merge "opengles emulator: filter-out non-RGB configs" 2011-08-10 01:58:06 -07:00
David Turner
fb8c84d84c Merge "opengles emulator: Workaround Cordy (Unity) bug with intel driver." 2011-08-10 01:57:51 -07:00
David Turner
a765e6e8c0 am b6a9f378: am 31978050: Merge "opengles emulator: GLESv2: glGetShaderPrecision"
* commit 'b6a9f37818fd4a4e1c670ad521d5e0b9176fec99':
  opengles emulator: GLESv2: glGetShaderPrecision
2011-08-10 01:55:38 -07:00
David Turner
0ee2955a59 am a68ff59e: am 63e88ce1: Merge "opengles emulator: fix initialization of vertex attribute"
* commit 'a68ff59e3c7d63f4767bd8af90d501417db1e53e':
  opengles emulator: fix initialization of vertex attribute
2011-08-10 01:55:36 -07:00
David Turner
04befcc927 am 2cd8a6d9: am dc84793a: Merge "opengles emulator: object name manager name generation"
* commit '2cd8a6d91614be6eae82c09d227610c0abcd8f23':
  opengles emulator: object name manager name generation
2011-08-10 01:55:34 -07:00
David Turner
b6a9f37818 am 31978050: Merge "opengles emulator: GLESv2: glGetShaderPrecision"
* commit '3197805013034b1bb4d9fde539fa9d307275bff4':
  opengles emulator: GLESv2: glGetShaderPrecision
2011-08-10 01:54:07 -07:00
David Turner
a68ff59e3c am 63e88ce1: Merge "opengles emulator: fix initialization of vertex attribute"
* commit '63e88ce1d4207b6a3fc11b1969a82f7eaeba8e5e':
  opengles emulator: fix initialization of vertex attribute
2011-08-10 01:54:05 -07:00
David Turner
2cd8a6d916 am dc84793a: Merge "opengles emulator: object name manager name generation"
* commit 'dc84793a6ac48d74fd02af6404367e3de76ef25a':
  opengles emulator: object name manager name generation
2011-08-10 01:54:03 -07:00
Liran
50c0fb0eff opengles emulator: GLES2 translator / codec
fix glGetAttachedShaders
NULL is allowed in count parameter
fix problem with nvidia driver which returned invalid count

Change-Id: Icfaa5688b04325de2890486eb87b163babaddf30
2011-08-10 10:53:06 +02:00
Liran
0fd3ee21c8 opengles emulator: GLES fix memory leaks
fix some memory leaks and potential risks
detected using valgrind

Change-Id: I0f69cf4d4b4ba5eeb9c735f6712c301bcd4d3d36
2011-08-10 10:53:06 +02:00
Guy Zadickario
f6b9241094 opengles emulator: support glEGLImageTargetRenderbufferStorageOES
needed changes to support glEGLImageTargetRenderbufferStorageOES,
added implementation in egl and added tokens to renderControl.

Also fixed function pointers returned by eglGetProcAddress to
return functions that works independant of the current context,
see system/egl/ClientAPIExts.cpp

That makes the egl_image conformance test to pass on the guest.

Change-Id: I580cda82ba0fb44f12b75aa0bbacf5cd9f15f744
2011-08-10 10:53:06 +02:00
Guy Zadickario
f1d98dd318 opengles emulator: filter-out non-RGB configs
some applications and conformance tests expects to have
non-zero bit counts for all red,green and blue channels.
The translator expose all EGL compliant configs, including
monochrome and RG configs.
We now filter those out and expose to the guest only the RGB
configs.

Change-Id: I9a293675359135a548ce1c089f31a48ea2b7f46e
2011-08-10 10:53:06 +02:00
Guy Zadickario
52829d82ab opengles emulator: Workaround Cordy (Unity) bug with intel driver.
Uniform locations are 32-bit values which the application queries
from the driver after a shader program is linked. It seems that Cordy
game (possibly all Unity based apps) store the returned location as
16-bit value. Intel driver returns location values in the upper 16-bit
range :(
This is a workaround for this issue, when a program is linked we check
the locations of all uniforms, if all locations are within the upper
16-bit range (as with Intel driver) we shift the location value before
returning to the application. Also override all functions which take
a location parameter and do the reverse shift before sending a location
value to the host.

Change-Id: I234aaafe3313774b5da79eb1dac713b89b10ad60
2011-08-10 10:53:06 +02:00
David Turner
f7e07ec9ea Merge "opengles emulator: make glFramebufferTexture2D work" 2011-08-10 01:52:34 -07:00
David Turner
be19b0fd59 Merge "opengles emulator: Separate FramebufferData to header and source files" 2011-08-10 01:52:22 -07:00
David Turner
997c4c2a62 am 2257c1fd: am 3127d80b: Merge "opengles emulator: handle window surface resize"
* commit '2257c1fd9f7f9d057bdc811208e342483c59c935':
  opengles emulator: handle window surface resize
2011-08-10 01:46:49 -07:00
David Turner
cf81212c67 am 705e64ef: am 3ba4f8b8: Merge "opengles emulator: fix bug in glTranslatex"
* commit '705e64ef2a8e57e98e449f6115ba9138d0c2b848':
  opengles emulator: fix bug in glTranslatex
2011-08-10 01:46:47 -07:00
David Turner
7c36194cf0 am 3bf1beed: am b1f4d3cb: Merge "opengles emulator: fix printf\'s"
* commit '3bf1beeda1e9793cc1c488af5c6011657980123f':
  opengles emulator: fix printf's
2011-08-10 01:46:45 -07:00
David Turner
2257c1fd9f am 3127d80b: Merge "opengles emulator: handle window surface resize"
* commit '3127d80bd8edaeeaa53663ab92e1e09825635527':
  opengles emulator: handle window surface resize
2011-08-10 01:44:17 -07:00
David Turner
705e64ef2a am 3ba4f8b8: Merge "opengles emulator: fix bug in glTranslatex"
* commit '3ba4f8b8018846ff167e3f7e4e465d91d6847c19':
  opengles emulator: fix bug in glTranslatex
2011-08-10 01:44:16 -07:00
David Turner
3bf1beeda1 am b1f4d3cb: Merge "opengles emulator: fix printf\'s"
* commit 'b1f4d3cb2c5048a980b67e0962dd76e7ddd3f202':
  opengles emulator: fix printf's
2011-08-10 01:44:13 -07:00
Yochai Shefi Simchon
29994cba1a opengles emulator: make glFramebufferTexture2D work
The GLES and OpenGL specs for glFramebufferTexture2D are different, which
caused valid GLES calls to fail when moved over to OpenGL. Specifically,
a framebuffer in OpenGL must have a color attachment in order to be valid
for draw, while in GLES it doesn't. So add a validate function, and call
it from each drawing API call.
This patch also contains a workaround for a bug in the ATI driver, where
changing the framebuffer attachments requires a rebind of the framebuffer.

Change-Id: I011fbe0e2b1c66564322268868a24a9d5958a434
2011-08-10 10:43:25 +02:00
Yochai Shefi Simchon
aac306dfbb opengles emulator: Separate FramebufferData to header and source files
Change-Id: I5baefa87fb086d6250c29fa55e58ad129bc8f02a
2011-08-10 10:43:25 +02:00
David Turner
3197805013 Merge "opengles emulator: GLESv2: glGetShaderPrecision" 2011-08-10 01:42:25 -07:00
David Turner
63e88ce1d4 Merge "opengles emulator: fix initialization of vertex attribute" 2011-08-10 01:42:16 -07:00
David Turner
dc84793a6a Merge "opengles emulator: object name manager name generation" 2011-08-10 01:42:06 -07:00
Yochai Shefi Simchon
14d40b879d opengles emulator: GLESv2: glGetShaderPrecision
to overcome a bug in intel driver which returnes incorrect precision
and range for integers. query the driver for precision format only
for floats. for integers, we return values defined in gles spec.

Change-Id: Idfec2826d811220873c18f301cf4268fc54dabee
2011-08-10 10:41:20 +02:00
Yochai Shefi Simchon
142ed5bf31 opengles emulator: fix initialization of vertex attribute
fix the default values of vertex attrib array to match gles spec
size should be initialized to 4, and type should be initialized to GL_FLOAT

Change-Id: If23b3aec574ca660181be2ef1c91de1de2b07a70
2011-08-10 10:41:20 +02:00
Yochai Shefi Simchon
aaac179eb5 opengles emulator: object name manager name generation
genName in the globalNameSpace now calls the glGen* function of opengl
to generate a global name instead of inventing one.
this is to overcome a bug in intel driver which raises glError when
binding a framebuffer/renderbuffer with a name that was not generated
by opengl.

Change-Id: Ia0c2fefbf3538c185c380ba62d74eb94f2b28254
2011-08-10 10:41:20 +02:00
David Turner
3127d80bd8 Merge "opengles emulator: handle window surface resize" 2011-08-10 01:34:58 -07:00
David Turner
3ba4f8b801 Merge "opengles emulator: fix bug in glTranslatex" 2011-08-10 01:34:48 -07:00