aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* emulator/opengl: Remove compiler warnings.David 'Digit' Turner2014-10-303-2/+4
| | | | | | | | | | This patch ensures that the auto-generated client_context.h headers do not generate compiler warnings in the setError() function. + Remove tiny warning for NativeLinuxSubWindow.cpp Change-Id: Ibab92ab3332fd284589435732b52c011ae21c15f
* emulator/opengl/emugen: Small cleanup of autogenerated sources.David 'Digit' Turner2014-10-307-52/+49
| | | | | | | | | | | | This patch ensures the generated sources are cleaned up a little bit, more specifically: - Add proper end-ifdef-guard comments. - Use anonymous C++ namespaces to avoid name conflicts in the encoder. - Remove extra spaces / empty lines / indent. - Use 'const' when defining constant tables. Change-Id: Ib11fd06adb9075d472d1dd2fd6defb0760aaa2c2
* emulator/opengl: Add emugen test suite.David 'Digit' Turner2014-10-3022-0/+629
| | | | | | | | | | | | | | | | | | | | | | | | | This adds a small test suite to check the output of the 'emugen' program. This serves two purposes: 1) To more easily check that modifications to 'emugen' do not break stuff liberally. 2) To better document how the changes in the generator actually modify the output. To run it, simply call the 'run-tests.sh' script with 'emugen' in your path, or use --emugen=<program> otherwise. See --help for more details. NOTE: The test suite currently doesn't check that the generated sources compile properly, or that they even work as expected. See the following external/qemu patch to call run-tests.sh during each android-rebuild.sh run: https://android-review.googlesource.com/112541 Change-Id: I9abc3f9ae63b0bb753f0f8e07c1b3f0b11a3252f
* Merge "Update Guava 15.0 -> 17.0" into studio-1.0-dev automerge: ffe2a60Siva Velusamy2014-10-275-13/+30
|\ | | | | | | | | | | | | automerge: 4996c7e * commit '4996c7ef8ea7eb7c0aace6348052db0dc0aee42d': Update Guava 15.0 -> 17.0
| * Merge "Update Guava 15.0 -> 17.0" into studio-1.0-devSiva Velusamy2014-10-275-13/+30
| |\ | | | | | | | | | | | | | | | | | | automerge: ffe2a60 * commit 'ffe2a60cb0ac24d073fb46d50a9cedfd82da4a91': Update Guava 15.0 -> 17.0
| | * Merge "Update Guava 15.0 -> 17.0" into studio-1.0-devSiva Velusamy2014-10-275-13/+30
| | |\
| | | * Update Guava 15.0 -> 17.0Siva Velusamy2014-10-275-13/+30
| | |/ | | | | | | | | | Change-Id: If666053e03e67b49c3337129be869ebe996ec58d
* | | Merge "Handle empty data parameter in glTexSubImage2D"bohu2014-10-211-1/+1
|\ \ \
| * | | Handle empty data parameter in glTexSubImage2Dbohu2014-10-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit handles empty data parameter in decoder side to avoid crashing emultor. Change-Id: I1605c328506d1fa1506023ca7b261d210b944d12
* | | | Merge "Handle empty length parameter on decoder side"bohu2014-10-211-0/+1
|\ \ \ \
| * | | | Handle empty length parameter on decoder sidebohu2014-10-171-0/+1
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | OpenGL standard allows empty length parameter and we should handle it properly to avoid crashing emulator. Change-Id: I3bd5da19461da0c1f84138a197ae770091458b57
* | | | Merge "Properly reset source code buffer"bohu2014-10-211-0/+1
|\ \ \ \ | |/ / / |/| | |
| * | | Properly reset source code bufferbohu2014-10-171-0/+1
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | This commit clears m_src of ShaderParser in setSrc() method before reading new shader source code so that any previous source code won't be prefixed to new shader source code. Change-Id: Iacc98b32aea380d1e4503c37b86f5db55263e667
* | | Merge "find_java: new method to search in a custom path" into studio-1.0-dev ↵David Herman2014-10-140-0/+0
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | automerge: 411ca61 automerge: 861b64f * commit '861b64f7465dead2238a1ee78c4d4329892e7b01':
| * | Merge "find_java: new method to search in a custom path" into studio-1.0-devDavid Herman2014-10-142-1/+17
| |\ \ | | |/ | | | | | | | | | | | | | | | automerge: 411ca61 * commit '411ca610db2c1b2e4ba677819c38b39c41bc9979': find_java: new method to search in a custom path
* | | Merge "find_java.sln (and related project files) updated" into ↵David Herman2014-10-140-0/+0
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | studio-1.0-dev automerge: cccb108 automerge: e7b6099 * commit 'e7b6099673b212a34a812286c3b1d5ff1c3bf8c6':
| * | Merge "find_java.sln (and related project files) updated" into studio-1.0-devDavid Herman2014-10-1414-803/+508
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | automerge: cccb108 * commit 'cccb1081d19d74649a06bf66ddf4cf43312daeeb': find_java.sln (and related project files) updated
* | \ \ Merge "find_java: new method to search in a custom path" into studio-1.0-devDavid Herman2014-10-102-1/+17
|\ \ \ \ | | |_|/ | |/| | | | | | | | | | | | | | | | | | automerge: 411ca61 * commit '411ca610db2c1b2e4ba677819c38b39c41bc9979': find_java: new method to search in a custom path
| * | | Merge "find_java: new method to search in a custom path" into studio-1.0-devDavid Herman2014-10-102-1/+17
| |\ \ \ | | |_|/ | |/| |
| | * | find_java: new method to search in a custom pathDavid Herman2014-10-102-1/+17
| | | | | | | | | | | | | | | | Change-Id: I081871bbff9c6e714eda3e47ee16e8b486e2355b
* | | | Merge "find_java.sln (and related project files) updated" into studio-1.0-devDavid Herman2014-10-1014-803/+508
|\ \ \ \ | |/ / / | | | / | |_|/ |/| | | | | | | | automerge: cccb108 * commit 'cccb1081d19d74649a06bf66ddf4cf43312daeeb': find_java.sln (and related project files) updated
| * | Merge "find_java.sln (and related project files) updated" into studio-1.0-devDavid Herman2014-10-1014-803/+508
| |\ \ | | |/
| | * find_java.sln (and related project files) updatedDavid Herman2014-10-1014-803/+508
| |/ | | | | | | | | | | | | | | - Paths needed to be updated from find_java to find_java/src/source - Some projects weren't compiling and needed to include references to various .cpp files Change-Id: I495905ef37a693d25cf34410dc395c9ae074b1da
* | Merge changes Ifa8c73ee,If0002fe1,I6659fe69,I15f4caacDavid 'Digit' Turner2014-09-294-178/+192
|\ \ | | | | | | | | | | | | | | | | | | | | | * changes: emulator/opengl/emugen: Use local variables for parameters. emulator/opengl/emugen: Move pointer increment out of case statements. emulator/opengl/emugen: Introduce helper macros. emulator/opengl/emugen: Remove accessor functions.
| * | emulator/opengl/emugen: Use local variables for parameters.David 'Digit' Turner2014-09-251-83/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Modify the generated decoder to extract paramters from the stream into local variables, the rules are: - non-pointer parameters are extracted into local variables named "var_<name>", where <name> is the parameter name as it appears in the protocol specification for the entry. - for input pointers, use "inptr_<name>", as well as "size_<name>" for the corresponding size in bytes. - for output pointers, use "outptr_<name>" and "size_<name>" This makes the generated code easier to understand, for example the following: case OP_glBindAttribLocation: { size_t tmpPtr2Size = (size_t)*(uint32_t *)(ptr + 8 + 4 + 4); InputBuffer tmpPtr2(ptr + 8 + 4 + 4 + 4, tmpPtr2Size); DEBUG("gl2(%p): glBindAttribLocation(%u %u %p(%u) )\n", stream,Unpack<GLuint,uint32_t>(ptr + 8), Unpack<GLuint,uint32_t>(ptr + 8 + 4), (const GLchar*)(tmpPtr2.get()), (uint32_t)tmpPtr2Size); this->glBindAttribLocation(Unpack<GLuint,uint32_t>(ptr + 8), Unpack<GLuint,uint32_t>(ptr + 8 + 4), (const GLchar*)(tmpPtr2.get())); SET_LASTCALL("glBindAttribLocation"); break; } becomes: case OP_glBindAttribLocation: { GLuint var_program = Unpack<GLuint,uint32_t>(ptr + 8); GLuint var_index = Unpack<GLuint,uint32_t>(ptr + 8 + 4); uint32_t size_name = Unpack<uint32_t,uint32_t>(ptr + 8 + 4 + 4); InputBuffer inptr_name(ptr + 8 + 4 + 4 + 4, size_name); DEBUG("gl2(%p): glBindAttribLocation(%u %u %p(%u) )\n", stream,var_program, var_index, (const GLchar*)(inptr_name.get()), size_name); this->glBindAttribLocation(var_program, var_index, (const GLchar*)(inptr_name.get())); SET_LASTCALL("glBindAttribLocation"); break; } Change-Id: Ifa8c73eec85b818d6d8b6371587da9fdfa57de8e
| * | emulator/opengl/emugen: Move pointer increment out of case statements.David 'Digit' Turner2014-09-251-8/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Minor patch that ensures that the pointer/position increment all happen at one place, instead of being replicated in each case statement. In other words, the generated code used to look like: switch (opcode) { case OP_someOperation1: { ... ptr += *(uint32_t)(ptr + 4); pos += *(uint32_t)(ptr + 4); break; } case OP_someOperation2: { ... ptr += *(uint32_t)(ptr + 4); pos += *(uint32_t)(ptr + 4); break; } ... default: { unknownOpcode = true; } Now it looks like: switch (opcode) { case OP_someOperation1: { ... break; } case OP_someOperation2: { ... break; } ... default: { unknownOpcode = true; } if (!unknownOpcode) { ptr += packetLen; pos += packetLen; } Which is cleaner. Also change the type of |opcode| and |packetLen| to uint32_t and size_t respectively. + Minor formatting changes to indentation. Change-Id: If0002fe18a24b9ce6691e3e3cd3e102d1e00d4c9
| * | emulator/opengl/emugen: Introduce helper macros.David 'Digit' Turner2014-09-251-8/+17
| | | | | | | | | | | | | | | | | | | | | | | | This patch introduces two helper macros in the generated decoder to make its source code slightly more readable (DEBUG and SET_LASCALL). Change-Id: I6659fe69a5533e5194d8db5f1882abaf1a5daee5
| * | emulator/opengl/emugen: Remove accessor functions.David 'Digit' Turner2014-09-254-79/+66
|/ / | | | | | | | | | | | | | | This patch simplifies the generated encoders and decoders by getting rid of the accessor functions (e.g. set_glDrawElementsData) given that all fields are public and can be written to directly. Change-Id: I15f4caac95e4d5f1e24a1a5838622600c6bc3207
* | Merge "emulator/opengl/emugen: Ensure correct buffer alignment."David 'Digit' Turner2014-09-252-4/+149
|\ \
| * | emulator/opengl/emugen: Ensure correct buffer alignment.David 'Digit' Turner2014-09-242-4/+149
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The decoders generated by emugen pass addresses that come directly from the stream to EGL/GL functions. Sometimes, these addresses are not properly padded with regards to the type of data being transfered and this can crash some implementations (e.g. OSMesa being compiled with -msse by default, and doesn't build without it). This patch introduces two helper classes in ProtocolUtils.h, named InputBuffer and OutputBuffer, which are used to auto-align buffer pointers, then make the generated decoder code use them. Change-Id: I345c7eecc230f62310ced5378b6344f419647e06
* | | Merge "Adjust ADT to new ITestRunListener changes." into studio-1.0-devSiva Velusamy2014-09-232-10/+33
|\ \ \ | | |/ | |/| | | | | | | | | | | | | automerge: dab9b08 * commit 'dab9b085d43cf1ae40b87ecb3a404be4bb8c695a': Adjust ADT to new ITestRunListener changes.
| * | Merge "Adjust ADT to new ITestRunListener changes." into studio-1.0-devSiva Velusamy2014-09-232-10/+33
| |\ \
| | * | Adjust ADT to new ITestRunListener changes.Brett Chabot2014-09-232-10/+33
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes ADT so it compiles against the ITestRunListener changes made to support new JUnit4 states. It does not change ADT to truly support junit4: eg use the junit4.runtime plugin, pass assumptionfailure and ignored test states back to eclipse UI, etc Bug: 16684768 Change-Id: I16ee8d6d863a17fe061446f4ced6ce0ec3780600
* | | Merge "FindJava2+WinLauncher2 MFC app for Windows." into idea133Raphael Moll2014-09-1928-0/+2741
|\ \ \ | |/ / | | / | |/ |/| | | | | automerge: b8e3092 * commit 'b8e3092201033e73bf0f74cc8a3c287f535a6ede': FindJava2+WinLauncher2 MFC app for Windows.
| * Merge "FindJava2+WinLauncher2 MFC app for Windows." into idea133Raphael Moll2014-09-1928-0/+2741
| |\
| | * FindJava2+WinLauncher2 MFC app for Windows.Raphael Moll2014-09-1628-0/+2741
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the code base we have a "find_java" directory that compiles using mingw32 + an Android.mk; it is used to create the find_java.dll used by the NSIS installer, the find_java.exe that is used by android.bat to locate java before executing the SDK/AVD Manager and finally also used by the Android Studio WinLauncher. This reworks find_java to create 2 new MFC apps: - FindJava2 is a straight replacement for the previous find_java.exe. - WinLauncher2 will be a replacement for the Studio launcher. The main change is that the new app has a UI so it lists all the Java.exe paths and let the user add his/her own. Then it remembers the selected path using a registry key and reuses the next time if it's available. The app is built using VS2013 and MFC and there's no Android.mk for it. The goal is to just make prebuilts (that's how find_java.exe/dll and WinLauncher are actually used right now.) The FindJava2 part is final. What's left to do: - Merge the code of WinLauncher into WinLauncher2 to actually run Studio (they will be a need for both a 32-bit version and 64-bit version support.) - Create a new FindJava2.dll for NSIS once we decide how we want to use this in the new installer (e.g. do we just want to make sure there is "some" version of Java or do we want to include the select-and-register functionality too so that the user doesn't have to be asked again later?) Change-Id: I814ed46711ac17a66cd63b9e7c7d485632169ff1
* | Merge "emulator/opengl/emgen: Fix debug output of floating point values."David 'Digit' Turner2014-09-171-7/+2
|\ \
| * | emulator/opengl/emgen: Fix debug output of floating point values.David 'Digit' Turner2014-09-171-7/+2
|/ / | | | | | | | | | | | | | | | | | | | | | | When calling printf() with a "%f", the value passed must be a double, not a float, which means we can't just pass a 32-bit value in the stack and assume printf() will cast it to a float properly. This results in bogus values printed whenever a GLfloat is used in a function signature, due to invalid stack offsets used by the printf(). Fix the problem by using Unpack<>() template. Change-Id: I282d9c07af68457f32af477435e5dc1999267d39
* | Merge "emulator/opengl: Add UniqueIntegerMap class."David 'Digit' Turner2014-09-163-0/+329
|\ \
| * | emulator/opengl: Add UniqueIntegerMap class.David 'Digit' Turner2014-09-163-0/+329
|/ / | | | | | | | | | | | | | | This helper class will be used by future patches to map arbitraty opaque 'void*' values (e.g. EGLImage values) to 32-bit unique values that can be sent through the wire protocol. Change-Id: I5b17a1f230e5f9f8b905af66ba79b312f3f01e55
* | Merge "emulator/opengl/emugen: Use templates to read values from stream."David 'Digit' Turner2014-09-162-73/+249
|\ \
| * | emulator/opengl/emugen: Use templates to read values from stream.David 'Digit' Turner2014-09-162-73/+249
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The decoder didn't properly handle GLsizeiptr and GLintptr values, which are always 32-bit on the wire, but can be 64-bit on the host. I.e. it did something like that to read them from the stream: *(GLsizeiptr*)(ptr + offset) This fixes the issue by using templates to generate host-type-specific functions that properly read data from the stream and convert it to the appropriate host type. Change-Id: I75749bd715456ca143eb1713498f7cf635918801
* | | Merge changes If8f42a73,Idbba469aDavid 'Digit' Turner2014-09-165-167/+146
|\ \ \ | |/ / | | / | |/ |/| | | * changes: emulator/opengl/emugl: Remove ispointer field from types definitions. emulator/opengl/emugen: Get rid of VarConverter.
| * emulator/opengl/emugl: Remove ispointer field from types definitions.David 'Digit' Turner2014-09-134-95/+101
| | | | | | | | Change-Id: If8f42a739dce6d1ac4d737ee50c7d2d569004153
| * emulator/opengl/emugen: Get rid of VarConverter.David 'Digit' Turner2014-09-132-72/+45
| | | | | | | | | | | | | | | | This patch simplifies VarType.h a bit, since there is no point in having a specialized class like VarConverter to essentially hold what is a size in bytes! Change-Id: Idbba469a8594d1e964bbe79bbbea65934c42c033
* | Merge "Track lint API changes in the Eclipse lint integration" into idea133Tor Norbye2014-09-1510-26/+34
|\ \ | |/ |/|
| * Track lint API changes in the Eclipse lint integrationTor Norbye2014-09-1510-26/+34
|/ | | | Change-Id: If9c6843f0b9231a2b629e61ab7b8c3a401485f1f
* Merge "Update tools to revision 23.0.4" into idea133Siva Velusamy2014-09-051-1/+1
|\
| * Update tools to revision 23.0.4Raphael Moll2014-09-051-1/+1
|/ | | | | | Manually cherry picked from Change-Id: I16fff6eacb891750346272b0ab56beccf3772289 Change-Id: I008450ccb305ed05c7bbdea2e75094ba1f6ba21c
* Merge "Update ADT version to 23.0.4" into idea133Raphael Moll2014-09-0353-77/+77
|\