Commit Graph

2327 Commits

Author SHA1 Message Date
David Turner
e91699fe21 am 43fa53c4: am 34f083b1: Merge "Fix mac build"
* commit '43fa53c42871bc565b40a19a1bc7761d30881ba6':
  Fix mac build
2011-04-16 10:50:49 -07:00
David Turner
427cb6c3b0 Fix mac build
Change-Id: Ic0ada31663beadbff06ac18ca4c5960c869b0ec8
2011-04-16 19:23:56 +02:00
David Turner
88048ffb53 am 5ecdcdfb: am a25b885e: am 218ccb4d: Merge "emulator opengl: small test app for the emulator renderer API."
* commit '5ecdcdfb91513f5698c1ca9649a1d3890a2fb561':
  emulator opengl: small test app for the emulator renderer API.
2011-04-16 07:05:01 -07:00
David Turner
a71b220f28 am e99ef4fa: am 89ea131e: am 36fc1bfe: Merge "emulator opengl: the host renderer executable."
* commit 'e99ef4fa07b1e3697bd31bca2cc1e07f3e1b21bc':
  emulator opengl: the host renderer executable.
2011-04-16 07:04:59 -07:00
David Turner
3020b9643d am b07b714a: am a8c91545: am bb45561f: Merge "emulatgor opengl: First commit of the host renderer library."
* commit 'b07b714a1d5a6ff20ffce2339c96f39f8879bc87':
  emulatgor opengl: First commit of the host renderer library.
2011-04-16 07:04:57 -07:00
David Turner
f8016c97b4 am a2192b8e: am ba19e88d: am c4721695: Merge "emulator opengl: add OpenglOsUtils library, a set of OS utils."
* commit 'a2192b8e17a7b8c9eb98ac4101ca09086949cb5b':
  emulator opengl: add OpenglOsUtils library, a set of OS utils.
2011-04-16 07:04:55 -07:00
David Turner
4c752a85d8 am 6504f70b: am 0a2bacf6: am b06b3c76: Merge changes If48f5ed6,Ic63a6f73
* commit '6504f70b744d4a396fe7a016f70e331afde53348':
  emulator opengl: first commit of gralloc implementation.
  emulator opengl: OpenglSystemCommon library shared between gralloc/EGL/GLES.
2011-04-16 07:03:11 -07:00
David Turner
5ecdcdfb91 am a25b885e: am 218ccb4d: Merge "emulator opengl: small test app for the emulator renderer API."
* commit 'a25b885eedb4f038c38a564101aef2ad6f7bdc89':
  emulator opengl: small test app for the emulator renderer API.
2011-04-16 06:54:28 -07:00
David Turner
e99ef4fa07 am 89ea131e: am 36fc1bfe: Merge "emulator opengl: the host renderer executable."
* commit '89ea131e33cfc7867149b0f792c77bdbe664a953':
  emulator opengl: the host renderer executable.
2011-04-16 06:54:23 -07:00
David Turner
b07b714a1d am a8c91545: am bb45561f: Merge "emulatgor opengl: First commit of the host renderer library."
* commit 'a8c91545a59a9675a1a63d41d700b2c4abd003f1':
  emulatgor opengl: First commit of the host renderer library.
2011-04-16 06:54:18 -07:00
David Turner
a2192b8e17 am ba19e88d: am c4721695: Merge "emulator opengl: add OpenglOsUtils library, a set of OS utils."
* commit 'ba19e88d5351ccbb545eda1ecf4baa8056dd926d':
  emulator opengl: add OpenglOsUtils library, a set of OS utils.
2011-04-16 06:54:14 -07:00
David Turner
6504f70b74 am 0a2bacf6: am b06b3c76: Merge changes If48f5ed6,Ic63a6f73
* commit '0a2bacf64ce7fc2aff7e06a547f5e9f6b67eeda7':
  emulator opengl: first commit of gralloc implementation.
  emulator opengl: OpenglSystemCommon library shared between gralloc/EGL/GLES.
2011-04-16 06:52:26 -07:00
Guy Zadikario
cca6a5fc0e emulator opengl: small test app for the emulator renderer API.
This sample program simulates the use of the renderer api as it should
be used from the emulator program. It opens a SDL window, initialize the
renderer, process events on the window and terminate the renderer when the
window is closed.

Change-Id: If983b4ce6465dee71f548e8edaf2b56b6443f7b0
2011-04-16 10:45:48 +03:00
Guy Zadikario
555d9bece7 emulator opengl: the host renderer executable.
This is the host renderer executable. It is a small process which
just calls into libOpenglRender library. The process is invoked
through the initOpenGLRenderer function of libOpenglRenderer.

Change-Id: I85af075b5eb751ffb9543ecbd8e7fc155054f146
2011-04-16 10:45:48 +03:00
Guy Zadikario
1f0d3939ed emulatgor opengl: First commit of the host renderer library.
This is a library which includes all the OpenGL renderer functionality,
it is packaged in a library so that both the renderer process and the emulator
program will be able to use that functionality.

NOTES:
   1) gl_proc.h and GLDispatch.{h,cpp} in this commit will be replaced
      with the decoder auto-generated dispatch in a later commit, the
      auto-generated dispatch is currently missing some extension functions
      required for the renderer.
   2) look at host/include/libOpenglRender/render_api.h for the external
      interface defined for this library (to be used by the emulator).

The following is a description of each component:

FrameBuffer - The main object which manages the framebuffer and color buffers.
              This is a singleton which get initialized through its initialize
              static function. It initializes the OpenGL renderer and must be
              called first. This initialization function is not thread safe so
              it must be called before any thread that is calling to this
              library is created.

FBConfig - Includes a static set of configs supported by the renderer which get
           initialized during FrameBuffer initialization phase. Also,
           an instance of this class includes the a description of one frame
           buffer configuration supported by the renderer.

RenderContext - encapsulate a rendering context state.

ColorBuffer - implements a color buffer object as a texture which can be bind
              as render target or source.

WindowSurface - implements the functionality of a native window which can be
                bound to a rendering context and its target ColorBuffer can
                be specified and replaced.

ThreadInfo - holds per-thread information.

EGLDispatch - loads the EGL plugin library, all egl calls are made through
              this dispatch table which get initialized during initialization
              phase.

GLDispatch - loads the GLES plugin library, all GLES calls are made through
             this dispatch table which get initialized during initialization
             phase - This will be replaced by the auto-generated code of the
             decoder ...

RenderThread - implements a thread that reads command tokens from an IOStream
               and decode it.

RenderControl - implements the host side implementation of the renderControl
                API, when a renderControl token is decoded from the stream
                it is dispatched to this implementation.

RenderServer - implements a TCP server which listens to port number and
               launcges a RenderThread for each new connection.

Change-Id: I9f34d17bdfcb715893a13cd30086c767f499df87
2011-04-16 10:45:39 +03:00
Guy Zadikario
20368d96e0 emulator opengl: add OpenglOsUtils library, a set of OS utils.
This is just a set of OS dependant functionality needed by the
emulator OpenGL host renderer. It currently has implementation for
Linux and Windows only.

osDynLibrary - dlopen/dlsym abstraction
osProcess    - interface to launch a new process, wait and kill it.
osThread     - abstraction interface for creating a thread.

Change-Id: Ib0264592d8c87e865da87acf5c94e2b331801ca4
2011-04-16 10:42:43 +03:00
Guy Zadikario
f7cd7ec421 emulator opengl: first commit of gralloc implementation.
This is the emulator opengl implementation of gralloc.

NOTE that it is currently build only if BUILD_EMULATOR_OPENGL_DRIVER
is defined, This is because the other driver peices (EGL/GLES) are
still missing.

Change-Id: If48f5ed619df6efb00cb4e590d99ce49d87875f6
2011-04-16 10:42:34 +03:00
Guy Zadikario
64db3f9a02 emulator opengl: OpenglSystemCommon library shared between gralloc/EGL/GLES.
This is a static library of utilities shared between the emulator opengl
system components, gralloc, EGL, GLES. In includes host connection functionality
and access to OpenGL TLS info.

Change-Id: Ic63a6f7384a2035308ca6d316c747f0e6c6f2ef3
2011-04-16 10:32:39 +03:00
David 'Digit' Turner
d85613f138 am 72974d6a: am 3cdf8eb7: am 2a384265: Merge "Fix Mac build"
* commit '72974d6a95e1508609f20370b46b4d7a33bccd80':
  Fix Mac build
2011-04-15 07:52:55 -07:00
David 'Digit' Turner
72974d6a95 am 3cdf8eb7: am 2a384265: Merge "Fix Mac build"
* commit '3cdf8eb7548bf165c7e202631107d2d7fe2af943':
  Fix Mac build
2011-04-15 07:51:23 -07:00
David Turner
5ab75d64a5 am 43b5d0e2: am d6ad2a63: am 23a491dc: Merge "emulator opengl: renderControl API encoder/decoder"
* commit '43b5d0e259edaaf244dd4948a85b2f1fce3b3f83':
  emulator opengl: renderControl API encoder/decoder
2011-04-15 07:51:09 -07:00
David Turner
9d360bc000 am eebc97b9: am c1491eb3: am 0f0732fe: Merge "emulator opengl: Added glUtilsPixelBitSize function to glUtils."
* commit 'eebc97b987e77fb238d8d65aae1e55f332011537':
  emulator opengl: Added glUtilsPixelBitSize function to glUtils.
2011-04-15 07:51:07 -07:00
David Turner
9a6cf4f0da am 658185c5: am 961949e0: am 2732ff2d: Merge "Moved IOStream.h to be used in external API for libOpenGLRender."
* commit '658185c5507bab4365bc88728fba893bdee8b3a8':
  Moved IOStream.h to be used in external API for libOpenGLRender.
2011-04-15 07:51:05 -07:00
David Turner
cc9c9838da am f0970841: am a95826fb: am 39062218: Merge " This is a common library for the EGL/GLES/GLES2 translator libraries."
* commit 'f0970841bc634e689962091cf86ad5c7becb5285':
  This is a common library for the EGL/GLES/GLES2 translator libraries.
2011-04-15 07:50:55 -07:00
David Turner
43b5d0e259 am d6ad2a63: am 23a491dc: Merge "emulator opengl: renderControl API encoder/decoder"
* commit 'd6ad2a63ca51f11c97042baa43eb33904e6aefb4':
  emulator opengl: renderControl API encoder/decoder
2011-04-15 07:39:15 -07:00
David Turner
eebc97b987 am c1491eb3: am 0f0732fe: Merge "emulator opengl: Added glUtilsPixelBitSize function to glUtils."
* commit 'c1491eb3b91f1e4d84b4e603d0d22d07502158a2':
  emulator opengl: Added glUtilsPixelBitSize function to glUtils.
2011-04-15 07:39:13 -07:00
David Turner
658185c550 am 961949e0: am 2732ff2d: Merge "Moved IOStream.h to be used in external API for libOpenGLRender."
* commit '961949e054c7bb99777848dd8d10ba933bd41817':
  Moved IOStream.h to be used in external API for libOpenGLRender.
2011-04-15 07:39:11 -07:00
David Turner
f0970841bc am a95826fb: am 39062218: Merge " This is a common library for the EGL/GLES/GLES2 translator libraries."
* commit 'a95826fb63f86064e0aff39290926da047e5b873':
  This is a common library for the EGL/GLES/GLES2 translator libraries.
2011-04-15 07:39:04 -07:00
David 'Digit' Turner
f85c358b27 Fix Mac build
Change-Id: I030c9903f073aced6c2778665f7961f3e9f9804d
2011-04-15 16:30:26 +02:00
David Turner
23a491dccd Merge "emulator opengl: renderControl API encoder/decoder" 2011-04-15 06:45:25 -07:00
David Turner
0f0732febf Merge "emulator opengl: Added glUtilsPixelBitSize function to glUtils." 2011-04-15 06:43:32 -07:00
David Turner
2732ff2db2 Merge "Moved IOStream.h to be used in external API for libOpenGLRender." 2011-04-15 06:42:28 -07:00
David Turner
39062218ff Merge " This is a common library for the EGL/GLES/GLES2 translator libraries." 2011-04-15 06:39:27 -07:00
David 'Digit' Turner
de830eddbc am 62b21b41: am 832388de: am 13a0b81c: Merge "Revert 776bd3e46c2fb5c003ecec4fee99f01943876644"
* commit '62b21b41467dd8ebc4ce7518de8f4418389cf436':
  Revert 776bd3e46c
2011-04-14 07:42:08 -07:00
David 'Digit' Turner
62b21b4146 am 832388de: am 13a0b81c: Merge "Revert 776bd3e46c2fb5c003ecec4fee99f01943876644"
* commit '832388de41c6b44d43bd1f1307b3386d0fcc376e':
  Revert 776bd3e46c
2011-04-14 07:39:04 -07:00
David 'Digit' Turner
a6e54e04a3 Revert 776bd3e46c
Unfortunately, we need to keep duplicate libraries under sdk/emulator/
to avoid breaking a few internal branches.

    commit 776bd3e46c
    Author: David 'Digit' Turner <digit@android.com>
    Date:   Thu Apr 7 10:58:07 2011 +0200

    emulator: Remove the global Make variable trick for emulator-specific system modules.

    Remove a sad trick that was used to smoothly move the platform-specific emulator
    modules from sdk/emulator/ to development/tools/emulator/system without creating
    build conflicts.

    Now that the sdk/ modules have been removed, we can get rid of the guard variable.

Change-Id: Id5c44a4160191d8ac9afcbbeeef7de0b9a5b0f6f
2011-04-14 14:06:05 +02:00
Guy Zadikario
32fc922316 emulator opengl: renderControl API encoder/decoder
That adds the renderControl API encoder/decoder which is used for
guest to host control commands. See system/renderControl_enc/README
for more info about the API itself.

Change-Id: I2c72803137889d646fbb3d2a56ecdcf94b088f40
2011-04-13 13:33:26 +03:00
Guy Zadikario
fc2d0b09ec emulator opengl: Added glUtilsPixelBitSize function to glUtils.
moved pixel size calculation from GLClientState to glUtils to be used
outside the client state scope. (needed for the renderControl encoder
which will follow in next commit).

Change-Id: I5adbc40b241537054c6743e2afc52ba44454664f
2011-04-13 13:33:26 +03:00
Guy Zadikario
caafd4df2e Moved IOStream.h to be used in external API for libOpenGLRender.
This change includes four changes:
1) moved IOStream.h into host/include/libOpenGLRender, this directory
   will include the api interface into the libOpenGLRender which will be
   used later by the emulator and we need this interface to use IOStream.h
2) Updated Andorid.mk files to include the new directory location of IOStream.h
   in the LOCAL_C_INCLUDE.
3) Added new function "read" to IOStream which reads a message without a givven
   size.
4) Updated TcpStream to use "cutils/sockets.h" instead of using directly the socket api for portability reasons. (It now compiles on windows as well).

Change-Id: I30eb40c8dcd5aacf0d993aff9cdb90b283b12dde
2011-04-13 13:33:05 +03:00
David Li
7ec777341e GLES2Dbg: code gen for frame
Also loading *.gles2dbg dump files.

Change-Id: I87e5ae6fda22b3cad920d2a06671efef5adb2e8a
Signed-off-by: David Li <davidxli@google.com>
2011-04-12 15:55:59 -07:00
David Li
1768bb7806 GLES2Dbg: organize calls into frames and contexts
Maintain a current state for each context updated by each call.
eglSwapBuffers Begins a new frame; clone current state.
Use clone to compute context for a call within that frame later on,
 in the context tree view.

Change-Id: I66658561f610025b203a991b5b9f545a9a2f9cd4
Signed-off-by: David Li <davidxli@google.com>
2011-04-12 15:55:59 -07:00
David Li
55fee09e0c GLES2Dbg: add more state tracking and snapshot of state per GL call
Use TreeView and Reflection to display the states per GL call.
Need to implement more state cloning and tacking.
Prepare to group calls by frame, and clone the context for each frame.

Change-Id: Ib1e5c175da779610204003e352cc1fcf66af969b
Signed-off-by: David Li <davidxli@google.com>
2011-04-12 15:55:59 -07:00
David Li
c93109f059 GLES2Dbg: use mesa glsl_compiler for syntax checking
Also switch to TabFolder for GUI

Change-Id: If7f5b7d8d826ada17579ca4d031f46d1238bba27
Signed-off-by: David Li <davidxli@google.com>
2011-04-12 15:55:59 -07:00
David Li
9c4ef35e35 GLES2Dbg: improve protocol and error check after shader upload
Change-Id: I0bd3867e0532e1c64c62db816be31ba0102c7e49
Signed-off-by: David Li <davidxli@google.com>
2011-04-12 15:55:59 -07:00
David Li
a60b6e69bf GLES2Dbg: implemented shader tracking and editing
Next commit is improving the protocol and
 checking errors after shader upload

Change-Id: I6afe3b63a68e00cd395885fd26cd6fcb311cfbec
Signed-off-by: David Li <davidxli@google.com>
2011-04-12 15:55:59 -07:00
David Li
766c4e5a44 GLES2Dbg: use 256KB chunks for lzf compression
Data format is u32 totalDecompressedSize, then repeat:
u32 chunkDecompressedSize, u32 chunkCompressedSize, chunk data.
If chunkCompressedSize == 0, then chunk is not compressed.

Also start fixing integer sizes on server.
On client, set endianness to match server.

Change-Id: I70c8203037ad7165968ca0d02d0da5f7cc14b7e0
Signed-off-by: David Li <davidxli@google.com>
2011-04-12 15:55:59 -07:00
David Li
067eefee5a GLES2Dbg: implemented MessageParser
To allow user to input GL function call

Change-Id: I5e19c11d74ed7a6bf6c5cafcbd58a0da952b0b46
Signed-off-by: David Li <davidxli@google.com>
2011-04-12 15:55:59 -07:00
David Li
5089368bc7 GLES2Dbg: added SETPROP expectResponse
To allow "stepping" in functions.
Also fix bug in reference frame.
Use reference frame for CopyTex(Sub)Image2D.

Change-Id: I70083200a1e911aaeb74ca85cb10bae16bd4db18
Signed-off-by: David Li <davidxli@google.com>
2011-04-12 15:55:59 -07:00
David Li
7bc448f9d5 GLES2Dbg: change TableViewer to ListViewer
For much faster scrolling

Change-Id: I72d91581c52038c090d21cc9307327d5e774c4cd
Signed-off-by: David Li <davidxli@google.com>
2011-04-12 15:55:59 -07:00
David Li
0ad029674b GLES2Dbg: added reference frame for glReadPixels
Change-Id: I7d6900e3101be61fb7801b3ca2eaea603d917e6b
Signed-off-by: David Li <davidxli@google.com>
2011-04-12 15:55:59 -07:00