Log

Author Commit Date CI Message
Peter Kasting a1851e8f 2014-07-10T17:09:12 Fixes for re-enabling more MSVC level 4 warnings: angle/ edition This contains fixes for the following sorts of issues: * Signedness mismatch BUG=81439 TEST=none Change-Id: Ief116d4b79b63479641259119246bb1465bbfd1f Reviewed-on: https://chromium-review.googlesource.com/207418 Reviewed-by: Alok Priyadarshi <alokp@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Brandon Jones 6518fe24 2014-07-08T15:16:52 Moved TextureStorage and Image into d3d BUG=angle:688 Change-Id: I98ffa1082340a829a77fe5082958898b9c6ab1a2 Reviewed-on: https://chromium-review.googlesource.com/207054 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org>
Jamie Madill d4cfa57d 2014-07-08T10:00:32 Move more draw call validation to the API. The GL expects us to reject invalid draw calls before we start doing any work, so we can prevent internal unnecessary state changes. Also update the program binary's cached sampler data when we validate. The previous patch was breaking draw calls in Google Earth WebGL. BUG=angle:571 BUG=390412 Change-Id: I1c4e204ae2467afc36b76af975a3a49e26349639 Reviewed-on: https://chromium-review.googlesource.com/206482 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill f6d38b05 2014-07-14T11:54:41 Fix CollectVariablesTest GCC/Clang compile errors. BUG=angle:696 Change-Id: I193f6771d85f2b777e84dc4d650b50fb31875489 Reviewed-on: https://chromium-review.googlesource.com/207770 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill 4e1fd412 2014-07-10T17:50:10 Store a map of interface block registers. The shader translator can return the assigned register for a block via a new API. This will let us delete the member variable in interface blocks for the register -- a nice thing for GLSL. BUG=angle:466 Change-Id: I9bc38e0cd031e32f90787be42c2324fc7c79dbf9 Reviewed-on: https://chromium-review.googlesource.com/206828 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 829e89ef 2014-07-10T17:50:09 Add a default constructor to sh::ShaderVariable. This cleans up a few repeated lines of code in shadervars.h. BUG=angle:466 Change-Id: Ie77130e8420d28df790bf9bc036d52fd053b3ce9 Reviewed-on: https://chromium-review.googlesource.com/206827 Reviewed-by: Nicolas Capens <capn@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Jamie Madill d5512cd4 2014-07-10T17:50:08 Collect shader outputs and interface block information. This paves the way for returning ES3-specific info from the shader translator with the new query methods. BUG=angle:466 Change-Id: Ib13cdb604854cdf11e9dc00dd94f18eadc946561 Reviewed-on: https://chromium-review.googlesource.com/206770 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Geoff Lang 0b7e5d8c 2014-07-11T16:33:09 Fix 64-bit warnings. BUG=angle:631 Change-Id: I76439ca2549916d594a54a4a9a35387d80b023ba Reviewed-on: https://chromium-review.googlesource.com/207441 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang c0b9ef4b 2014-07-02T10:02:37 Split Caps into Caps, Extensions and TextureFormatCaps. Context now holds it's own Caps, Extensions and TextureFormat caps so that it can modify them based on client version or work-arounds. BUG=angle:658 Change-Id: Id71b6c89b7aa36e1f3dc42b0e4720eaed1851fb9 Reviewed-on: https://chromium-review.googlesource.com/206480 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 57f9b6d5 2014-06-04T16:46:37 Clean up generatemip.h. * Move "private" functions into generatemip.inl. * Use size_t for all dimensions. * Use uint8_t pointers instead of unsigned char pointers. BUG=angle:666 Change-Id: I8a1324802e4d670c042e0961c2b6f6fd53f4ebc7 Reviewed-on: https://chromium-review.googlesource.com/202503 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 86846e24 2014-06-03T15:48:54 Clean up the functions in loadimage.h/cpp. * Capitalize the function names to fit the style guide. * Use explicit sizes in the function names to avoid any confusion about input or output sizes. * Use explicit sized types in the functions to avoid potential issues on new platforms since a lot of bit-twiddling is used. * Use size_t for all sizes. * Use uint8_t for all binary data for input and output data so that pointer arithmetic is much easier. * Move templated function definitions into an .inl file so that loadimage.h looks as clean as possible. BUG=angle:665 Change-Id: Id7173ed66d9e1b7ee3261eea11e77d838cbd2951 Reviewed-on: https://chromium-review.googlesource.com/202590 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 2a6564eb 2014-07-11T09:53:19 Fix build errors in validationES.cpp. This was caused by a bad auto-merge with the Caps patch. BUG=angle:694 Change-Id: I589d4dafb7ed890d7c340c9ae98080dff945c69a Reviewed-on: https://chromium-review.googlesource.com/207540 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill e92a3546 2014-07-03T10:38:58 Remove redundant FBO query methods. Several query methods simply wrapped a NULL check with a default return value. Most of these safety checks were unnecessary. BUG=angle:660 Change-Id: I0ac6897f06be082c8efab8721920d1b51ba999ee Reviewed-on: https://chromium-review.googlesource.com/205606 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 55ec3b11 2014-07-03T10:38:57 Refactor common attachment validation to base method. Split the validation of FBO attachment binding to common methods and separate logic for layers and for 2D attachments. BUG=angle:571 Change-Id: I9a59055cca60dd853311751be355440ad1e5ead0 Reviewed-on: https://chromium-review.googlesource.com/205605 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 23a8a433 2014-07-09T13:27:42 Store compact and expanded shader variables. The current shader API ShGetVariableInfo relies on an expanded list of shader variables. That means that struct, or user-defined variables, are expanded into separate entries for the app to easily query struct members. The new API will preserve the struct layout, so we can store both to support both the old and new queries. BUG=angle:466 Change-Id: Id30a1d7d1bb49c7e745510e0d699f94ad3184b9c Reviewed-on: https://chromium-review.googlesource.com/206569 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Geoff Lang aae65a4e 2014-05-26T12:43:44 Add caps for texture size limits and other caps in the 6.28 table. BUG=angle:658 Change-Id: Ia265fe1d3713db7701b41e8430d6d186f352ab4a Reviewed-on: https://chromium-review.googlesource.com/201363 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 77f74853 2014-07-08T15:02:34 Add a GetVariableInfo helper method. This method replaces the similar logic in storing uniforms, varyings, and interface blocks when collecting variable info. We can also re-use this method for both GLSL and HLSL programs. BUG=angle:466 Change-Id: Ie6c13abe0f09f38b2f9b36e117caae4833eaccbf Reviewed-on: https://chromium-review.googlesource.com/206566 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill 93455ebe 2014-07-08T15:22:50 Add missing limits include to angleutils.h This missing include was breaking the build on Linux. BUG=angle:692 Change-Id: Id502f477d6e3373519b011e75c144782e9101944 Reviewed-on: https://chromium-review.googlesource.com/206633 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 4667c454 2014-07-08T15:02:36 Refactor style in VariableInfo.cpp. This patch simplifies the functionality change in a subsequent patch. BUG=angle:466 Change-Id: Ib1c360438fad74fb15cd6cbf983240229c0eee76 Reviewed-on: https://chromium-review.googlesource.com/206568 Reviewed-by: Nicolas Capens <capn@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 53cb14dc 2014-07-08T15:02:35 Share ArrayString and Str helper methods. Placing these string helper methods allows us to re-use them in the relevant place of the shader translator. BUG=angle:466 Change-Id: Idd638542027d3b1035bc79fc941e80bf436c82af Reviewed-on: https://chromium-review.googlesource.com/206567 Reviewed-by: Nicolas Capens <capn@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Brandon Jones b23375fe 2014-07-08T10:49:39 Fixed an issue with Streaming Vertex data overflowing it's buffer. Bug=angle:689 Change-Id: Ia0ee6f951822901560888ea300a3889601fa1d89 Reviewed-on: https://chromium-review.googlesource.com/207010 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org>
Ehsan Akhgari aa7e1660 2014-07-05T21:13:11 Improve the const correctness. This improvement to the const correctness makes ProgramBinary::save compile with clang-cl as well, which is more strict than MSVC. Change-Id: Iae091643fa1df7f094b89dbe7529c4e173f04a6d Reviewed-on: https://chromium-review.googlesource.com/206714 Tested-by: <ehsan@mozilla.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill b4472275 2014-07-03T10:38:55 Add a ValidateAttachmentTarget helper method. This helper returns the appropriate error with the user specifies an attachment that is invalid or out-of-range (for indexed color attachments). BUG=angle:571 Change-Id: I80ed347e3540579110e40e742fbacb0467cb85fd Reviewed-on: https://chromium-review.googlesource.com/205604 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 570f7c84 2014-07-03T10:38:54 Add helper methods for FBO attachment validation. Subsequent refactoring will eliminate duplicate code. BUG=angle:571 Change-Id: I086320beb5c432c326d29d047931575e6f2a1d64 Reviewed-on: https://chromium-review.googlesource.com/205603 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Brandon Jones a328d569 2014-07-01T13:52:40 Removed sampler state getters and setters from gl::Texture BUG=angle:688 Change-Id: I3f203e4d10059c12a0c00e967ad6c7d3b3a18074 Reviewed-on: https://chromium-review.googlesource.com/206335 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org>
Jamie Madill 787fc03f 2014-07-07T12:49:45 Fix HLSL compiler error with else-rewriting in functions. In functions with return types where we would use if-else rewriting, we would potentially generate a spurious HLSL error that warned of branches with no return value in the function. This was causing a maps regression where overlays would not draw in Earth mode. BUG=346463 BUG=391697 Change-Id: I9f4fa959057a3a2dab6cdd98f8381b5871cabf03 Reviewed-on: https://chromium-review.googlesource.com/206824 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill 4cfb1e89 2014-07-07T12:49:23 Add a new TIntermRaw node type to translator. This raw node stores text strings that we directly copy to the output. This allows for more tricky substitutions that don't fit in to the HLSL/GLSL shared parsing model. BUG=346463 BUG=391697 Change-Id: Ibbde6db4fc98ef6d892f219631ca1a258a902a86 Reviewed-on: https://chromium-review.googlesource.com/206823 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill ed3eef1f 2014-02-26T09:47:11 Fix not rewriting else-if blocks. We would miss expanding the else-if clauses in a chain of selection statements. BUG=346463 BUG=391697 Change-Id: Iee644b875cf68d0ed3dc0b73542efc49ecb23242 Reviewed-on: https://chromium-review.googlesource.com/206822 Reviewed-by: Nicolas Capens <capn@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Ehsan Akhgari 10530c34 2014-07-02T20:37:53 Add ANGLE_NO_EXCEPTIONS macro This macro allows us to hide angle's usage of try/catch so that we can properly hide them from compilers that do not support exceptions properly (such as clang-cl and gcc/clang with -fno-exceptions). Change-Id: I75f466a5322e5840e007711ea851f444bd6ca299 Reviewed-on: https://chromium-review.googlesource.com/206562 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: <ehsan@mozilla.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Ehsan Akhgari c1cc4c46 2014-07-02T13:09:07 Support building angle with clang-cl This works around http://llvm.org/PR20013. Change-Id: Ibbd8ab4678cf1caf39b329ea304bdbdc21075ddf Reviewed-on: https://chromium-review.googlesource.com/206481 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: <ehsan@mozilla.com>
Jamie Madill 47cdb2aa 2014-07-03T16:05:38 Allow ConvertPrecision to return undefined. The overly-restrictive check would fail on sampler types or other GL types with no defined precision. This fixes failures on the Debug GPU FYI bots. BUG=angle:691 Change-Id: I443b7038a7b7a05675898b9b21e6112b1ac4c5ca Reviewed-on: https://chromium-review.googlesource.com/206552 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 1da63af4 2014-07-03T15:00:53 Fix ConvertPrecision. This method had never been fully implemented, and was returning "highp" for every case value. This should fix problems with the GPU FYI bots. BUG=angle:691 Change-Id: Ie6ffa80cf2c063e506df06fb25d622227edeffa3 Reviewed-on: https://chromium-review.googlesource.com/206565 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 5079c880 2014-07-03T14:13:58 Fix GCC warning about initialization order. Shifting these fields was breaking the build in Linux GCC. BUG=angle:690 Change-Id: I34286753f7ab636900f25f880187dbb297e9c040 Reviewed-on: https://chromium-review.googlesource.com/206632 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill ed27c729 2014-07-02T15:31:23 Consolidate shader variable storage in Compiler. The Compiler base class now stores all the shader variables and interface block information, instead of duplicating the information in the HLSL translator. BUG=angle:466 Change-Id: Ia69079fde64fbd6b0cbfc66defd5e37d99ee3e6e Reviewed-on: https://chromium-review.googlesource.com/206020 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill a718c1e0 2014-07-02T15:31:22 Use shader variable types for variable collection. Retire the old TVariableInfoList structure, and use the new objects which we will expose more directly through the API. BUG=angle:466 Change-Id: I999a97369bfb67cf73cd659c4fe885b41429d304 Reviewed-on: https://chromium-review.googlesource.com/205839 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill 47149b13 2014-07-02T15:31:21 Add GLES 3 types to the VariablePacker test. These include the new sampler types, non-square matices, and unsigned int vectors. BUG=angle:466 Change-Id: I0d88fadfc3f81a2d9be604ee1dffefd5a4a343c5 Reviewed-on: https://chromium-review.googlesource.com/205838 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill 865d1451 2014-07-02T15:31:20 Consolidate varying packing sort order methods. We were using the same list in the shader varying sorting as well as in the varying packing validation in the translator. BUG=angle:466 Change-Id: Ic11758288e7a522d7c18a293de9e137e487e3978 Reviewed-on: https://chromium-review.googlesource.com/205595 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Jamie Madill aa72d782 2014-07-02T15:31:19 Remove duplicate SH and GL functions. In several places we were using variable query methods that were duplicated between the old SH enums and the corresponding GL enums. We can use the common GL enum versions now. BUG=angle:466 Change-Id: Ib8797fe6bc75828e05aed37b1f5fbd4b9ba03d22 Reviewed-on: https://chromium-review.googlesource.com/205594 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill 183bde55 2014-07-02T15:31:19 Return shader variable information using GLenum values. Instead of duplicating GL header define values, explictly return GLenum for variable queries in the shader inspection API. This reduces the duplicate defines in the shader compiler header. BUG=angle:466 Change-Id: Iddaaff597b188251fa2e546f352bf77ab3ac43bc Reviewed-on: https://chromium-review.googlesource.com/205860 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Geoff Lang 2b5f3b36 2014-06-18T18:07:49 Add support for EGL_EXT_client_extensions. BUG=angle:490 Change-Id: Iafc476cef7a3d11b3bb3640e673c28c6df3cf2a1 Reviewed-on: https://chromium-review.googlesource.com/204566 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Vincent Scheib 8747afee 2014-07-01T13:32:11 Fix d3dcompiler_46.dll case to be consistent, unblocks swarming. src/copy_compiler_dll.bat defines the case of the file copied to the build output directory. It is then referenced by build systems. The case must be consistent with the uses, in isolate files, and the .gypi file defining output. BUG=390210 Change-Id: I90c305a0c3663d46d2448e0adfa3103d0ce457d1 Reviewed-on: https://chromium-review.googlesource.com/206305 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Shannon Woods e8cda371 2014-07-01T16:13:18 Revert "Move more draw call validation to the API." BUG=390412 This reverts commit 9efa581d0e8f251b88f5a2f432ddb20655036c77. Conflicts: src/libGLESv2/validationES.cpp Change-Id: I78457e1dfec8b75fecef8dc40c549adbde680a2a Reviewed-on: https://chromium-review.googlesource.com/206340 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill ce505553 2014-06-26T14:56:33 Revert "Return variable type queries using GLenum values." Breaks the FYI bots until we get Chromium patched. BUG=angle:466 This reverts commit 53221f5a0382887155d90f7f286e41190d4f5bfb. Change-Id: Ib28548df5c10a6f76f46e4cf8f2013dca5cf0ee2 Reviewed-on: https://chromium-review.googlesource.com/205850 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 53221f5a 2014-06-25T16:04:59 Return variable type queries using GLenum values. Instead of duplicating GL header define values, explictly return GLenum for variable queries in the shader inspection API. This reduces the duplicate defines in the shader compiler header. BUG=angle:466 Change-Id: If631b20ce68747297a946e1371def7709027a613 Reviewed-on: https://chromium-review.googlesource.com/204937 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Shannon Woods 6dc7f360 2014-06-25T21:12:02 Fix null pointer dereference in glGetBufferPointerv BUG=angle:687 Change-Id: If8f215d4a86332b9e6e791263bdeeb44b23a42a2 Reviewed-on: https://chromium-review.googlesource.com/205711 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill 28bedaf8 2014-06-26T13:17:22 Fix double delete in Framebuffer.cpp. Depth-stencil buffers were using the same pointer for both attachments, which was causing a double-delete in the Framebuffer destructor. BUG=angle:686 Change-Id: I8b263e5a084c33b495ce18ef2a2a810918ef6540 Reviewed-on: https://chromium-review.googlesource.com/205639 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Brandon Jones d38f926a 2014-06-18T16:26:45 Refactoring Buffers BUG=angle:681 Change-Id: I6c3809e0b9468dfe38465c55759c2572c21485da Reviewed-on: https://chromium-review.googlesource.com/204896 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang e4a492be 2014-06-19T14:14:41 Remove the clientVersion parameter from the format utils. clientVersion was only useful for intitial validation of formats and not required for queries. Only use the client version and caps structure to validate if a format is available and then trust that it is supported past the validation layer. Fixed some inconsistancies between tables such as missing formats or incorrect load functions in the ES3 tables. BUG=angle:659 Change-Id: I8d33c902156ee6fb41efe937d93b0586191726e5 Reviewed-on: https://chromium-review.googlesource.com/201167 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 72f5b5ee 2014-06-23T15:13:02 Add the BUILD.gn file to the ANGLE source. The script currently lives in Chromium's build/secondary. BUG=angle:683 Change-Id: I3ce11913fd27e0a01a1763d6ed973b250cf101d8 Reviewed-on: https://chromium-review.googlesource.com/205244 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill f51639a4 2014-06-25T16:04:57 Use a common include for GL headers. A common place to define required GL includes gives us a nice point to centralize GL customizations. In the header currently are the basic GLES headers with extensions, and a define carried over from desktop GL. BUG=angle:466 Change-Id: I6fc61947b4514654ec21355a786904eac04656c0 Reviewed-on: https://chromium-review.googlesource.com/204936 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org>
Jamie Madill d4a3a317 2014-06-25T16:04:56 Rename ShHandle.h to Compiler.h. Since the above source file matches Compiler.cpp, more closely follow our standard naming convention. BUG=angle:466 Change-Id: Ib1422f87f16097f91f2bcdad550ec5bd940ce711 Reviewed-on: https://chromium-review.googlesource.com/204681 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Jamie Madill f2575989 2014-06-25T16:04:54 Use the sh namespace for shader variables. Since these types originate from the translator, use an appropriate namespace. Also rename some of the gl helper functions to be more specific to their functionality. BUG=angle:466 Change-Id: Idc29987b2053b3c40748dd46b581f3dbd8a6fd61 Reviewed-on: https://chromium-review.googlesource.com/204680 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Jamie Madill bb94f341 2014-06-23T15:23:02 Remove gl::IsInternalTextureTarget. This function was a duplicate of ValidTexture2DDestinationTarget. Also clean up a bit of the code in Framebuffer::completeness. BUG=angle:660 Change-Id: Iee8d011274bfb2e426346e3ccdde7342fbb7ef44 Reviewed-on: https://chromium-review.googlesource.com/202595 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill e261b44a 2014-06-25T12:42:21 Remove obsolete Renderbuffer types. RenderbufferProxySet and FramebufferTextureBindingPointer aren't necessary any more with our refactored renderbuffer classes and ownership of attachments by the Framebuffer. We can also consolidate the FramebufferAttachment and implementation to a single class, and no longer need to store ref counted objects in the Framebuffer class directly. BUG=angle:660 Change-Id: Idcc06dfb42b47242b33494e797a0ba06d6669511 Reviewed-on: https://chromium-review.googlesource.com/201838 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Brandon Jones c7a41049 2014-06-23T12:03:25 Moved D3D specific files and folders under the D3D folder. Change-Id: I8afd67e08ee558fe94532c377d079673357a7192 Reviewed-on: https://chromium-review.googlesource.com/205229 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 4fd75c1c 2014-06-23T10:53:54 Fix npot Texture level 0 validation. We were rejecting npot textures for level 0, even though it is valid in GLES 2 for non-mipped textures to have npot size. BUG=381495 Change-Id: Iacc3ab50d6487ecba804fd8963aa0a2ada2f1cae Reviewed-on: https://chromium-review.googlesource.com/205220 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org>
Shannon Woods e26c307a 2014-06-23T12:32:57 Regenerate project files Change-Id: I6d3cc10335686922c028f5fba4525f62c71c3e59 Reviewed-on: https://chromium-review.googlesource.com/204951 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang 2b31af29 2014-05-23T14:45:40 Remove the ES version check for buffer to texture copies in D3D11. With PBOs being exposed through an extension in ES2 now, this check is uneccessary. Change-Id: I609a4bcd944194d104e0774e5f6ea34e072c8d9c Reviewed-on: https://chromium-review.googlesource.com/201320 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 13f7d7dc 2014-06-20T13:21:27 Move FBO check from applyRenderTarget to the API. We would traverse the applyRenderTarget path from several entry points, which could then trigger a GL error. In-line with our validation refactoring, move all error checks prior to executing any state logic. BUG=angle:571 Change-Id: I51f5bcfa41be7cdba7771eb87d5a831fa622f984 Reviewed-on: https://chromium-review.googlesource.com/203772 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill 1aeb1314 2014-06-20T13:21:25 Move draw call primitive type check to the API. A part of a larger refactoring to clean up the draw call validation. BUG=angle:571 Change-Id: I0b220d68c04524a81ca11dc58e10c90e458cabde Reviewed-on: https://chromium-review.googlesource.com/203771 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill 9efa581d 2014-06-20T13:21:24 Move more draw call validation to the API. The GL expects us to reject invalid draw calls before we start doing any work, so we can prevent internal unnecessary state changes. BUG=angle:571 Change-Id: Ic71218b3c2d5dc310280d3738bb1387753a10e03 Reviewed-on: https://chromium-review.googlesource.com/203770 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill ac528015 2014-06-20T13:21:23 Move stencil mask validation to before the draw. ANGLE (and WebGL) restrict the back and front stencil masks on draw, due to D3D restrictions. We would previously only validate this if the stencil was enabled in D3D9. In D3D11 we would validate the stencil masks even if the stencil is disabled, which is the behaviour the spec suggests. Moving the error check to before the draw also prevents any issue with interrupting a draw call mid-way through. BUG=angle:571 BUG=378754 Change-Id: If7651c2be559eef64a872082e144dafa3b2c524b Reviewed-on: https://chromium-review.googlesource.com/203299 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang 21c05532 2014-06-18T11:50:49 Clean up libEGL.def. BUG=angle:490 Change-Id: I6f0f707862066c9906aa38601aa6839b78a5cc39 Reviewed-on: https://chromium-review.googlesource.com/204565 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 42a73ad0 2014-06-18T11:12:06 Update to the latest EGL headers. BUG=angle:490 Change-Id: I205e680a40af18f2657096d4219bdac0f613fb11 Reviewed-on: https://chromium-review.googlesource.com/204563 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill febb7adc 2014-06-18T13:50:51 Refactor and unify HLSL varying signatures. We would use different code for all of our input and ouput stages in HLSL (vertex output, GS input, GS output, PS input). This was causing an HLSL error and some bugs in certain transform feedback instances. Fix this by using a helper method to use compatible code for each of the stages. BUG=angle:667 Change-Id: Idada969a775eccb5788723e0c7fa3ade9cb2d9ec Reviewed-on: https://chromium-review.googlesource.com/203778 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org>
Jamie Madill 961d5e98 2014-06-20T15:23:34 Use a const_iterator in structsHeader(). This was breaking the build for some compilers (GCC on android). Change-Id: Ibfe5603710961497b6c15aa2d9cb568096ca1dd4 Reviewed-on: https://chromium-review.googlesource.com/204897 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 9e5317f4 2014-06-20T14:56:37 Add end-of-file newline to StructureHLSL.cpp. BUG=angle:680 Change-Id: I37aee0d136021a1ce1c3c398d680cdbc4820e6d0 Reviewed-on: https://chromium-review.googlesource.com/204905 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 4ace423c 2014-06-18T19:12:48 Disable dynamic pixel shader generation. Always generate the same pixel shader no matter what framebuffer is bound. BUG=angle:670 Change-Id: I3fa91ff43363d49b38a19d3815ea523946c675d5 Reviewed-on: https://chromium-review.googlesource.com/204573 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill f91ce811 2014-06-13T10:04:34 Split OutputHLSL uniform code into new module. Refactoring patch only, should have no externally visible changes. BUG=angle:466 Change-Id: I01088a3b2979b96702d0a3c424d26928eb72b5b2 Reviewed-on: https://chromium-review.googlesource.com/203731 Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 8daaba15 2014-06-13T10:04:33 Split OutputHLSL structure code into new module. Refactoring patch only. BUG=angle:466 Change-Id: I2c57096e1e24574e7de3d35d608645fde3b0c681 Reviewed-on: https://chromium-review.googlesource.com/203730 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org>
Jamie Madill 033dae67 2014-06-18T12:56:28 Move OutputHLSL utility methods to other files. OutputHLSL was become a large, unweildy file. Some were also useful to other classes, even on the GL back-end, but were inacessible. Refactoring patch only. BUG=angle:466 Change-Id: Id216147122ca105c6ccdf0ba0c5f6c5038726965 Reviewed-on: https://chromium-review.googlesource.com/203459 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 05b05028 2014-06-11T15:31:45 Add support for EXT_sRGB. BUG=angle:672 Change-Id: I001ff3dde7a39e545a535a399c02f3a6d91634c8 Reviewed-on: https://chromium-review.googlesource.com/203460 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 66aaf723 2014-06-05T12:42:07 Always store GL_DEPTH_COMPONENT32_OES as a 24-bit depth format. Greatly simplifies the format utils by not having any internal format <-> DXGI format conversions depend on the client version. 32 bit floats and 24bit integers have very close precision in the [0,1] range so there should be no precision issues. BUG=angle:659 Change-Id: Ife64445ef35f77283fc4c70c98754f5e87b6fb19 Reviewed-on: https://chromium-review.googlesource.com/202507 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang cbb8412a 2014-06-11T15:30:32 Fix validation of LUMA formats in glGenerateMipmap. BUG=angle:673 Change-Id: I6c106962d8a50ed8f69d208c537166a30e4f92c6 Reviewed-on: https://chromium-review.googlesource.com/203292 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 6195ef87 2014-06-18T10:09:43 Fix transform feedback type. We were using the wrong enum for the varying type, as well as using the row count of the type. We should be using the column count, but for matrices we treat them as transposed. BUG=angle:679 Change-Id: I0eb7f68f629a4372c6822f65b2de51ecc88a03ed Reviewed-on: https://chromium-review.googlesource.com/204520 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill afa40f7d 2014-06-18T10:09:42 Fix buffer bugs affecting transform feedback. Running dEQP-GLES3.functional.transform_feedback would trigger a few assertion failures because of some regressions that crept into our code. Among the regressions is assuming we can't map a buffer that has no underlying storage object. This is valid since we sometimes allow setData without creating a native storage. Additionally we should free our existing data store on a new call to SetData, to prevent old but "new" data revisions from complicating our storage. BUG=angle:679 Change-Id: Icd96a8a55a2b957d29382d8b8bbd7e8a7ab0cf65 Reviewed-on: https://chromium-review.googlesource.com/204342 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 9c074a39 2014-06-16T10:34:02 Add queries for level and layer to FBO attachments. BUG=angle:660 Change-Id: I03e76dd7743267dc0b57cf53a4d27cd75a5d5adf Reviewed-on: https://chromium-review.googlesource.com/201837 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 218b6ede 2014-06-16T10:34:01 Add queries for object id and type to FBO attachments. BUG=angle:660 Change-Id: Id91f6f2ae84eaefd59f9d568736bd99e3a27ef5d Reviewed-on: https://chromium-review.googlesource.com/201836 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 2bf8b372 2014-06-16T17:18:51 Fix link error when using varyings with "dx_". Varyings beginning with "dx_" would not get decorated properly, or at all, which could cause potential internal variables and certainly caused link errors. Fix this by no longer treating the "dx_" prefix differently. Also fix our naming of "dx_Position" to be consistent with our other internal types. BUG=angle:678 Change-Id: I03da0494a3d934d82ae7b3f8f12a576ff9bc3869 Reviewed-on: https://chromium-review.googlesource.com/203777 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Nicolas Capens adfffe46 2014-06-17T02:13:36 Duplicate reused symbol table entries. BUG=angle:651 Change-Id: Ifce3c19d41a0a5a5ca5ee90ede528adf397d1da5 Reviewed-on: https://chromium-review.googlesource.com/204290 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang b9f240b1 2014-06-05T15:38:28 Split the ANGLE_platform_angle_d3d extension by adding child extensions. Renames the ANGLE_platform_angle_d3d extension to ANGLE_platform_angle which acts as an umbrella extension for all the angle display types but requires the sub-extensions (d3d, opengl, software) to be present for the enums to be valid (similar to the OES_framebuffer_object extension). BUG=angle:668 Change-Id: I2c00021558d8b781b20f948f5e0df03f734bd033 Reviewed-on: https://chromium-review.googlesource.com/202597 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill bae30a00 2014-06-17T10:45:02 Add a macro for unused trace variables. This fixes the standalone 64-bit Debug build. Change-Id: I348b71a96ada435867367e565bc84b570d2bfb67 Reviewed-on: https://chromium-review.googlesource.com/204292 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 1d4e38d3 2014-06-17T10:23:54 Fix compile warnings with attributes. BUG=angle:676 Change-Id: I291c0b618854179f726cb4c969fb65182d3b591e Reviewed-on: https://chromium-review.googlesource.com/204340 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Nicolas Capens 2a59292d 2014-06-11T16:22:57 Implement support for constructing a 2x2 matrix from a vector. BUG=380353 Change-Id: Ica0b94104e39f87b4a3439df40221b1f682fd678 Reviewed-on: https://chromium-review.googlesource.com/203293 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Brandon Jones 5bf98290 2014-06-06T17:19:38 Refactoring VertexArrays BUG=angle:676 Change-Id: If17b05ab667d79adcaacfbd1811ed92c0ce47fff Reviewed-on: https://chromium-review.googlesource.com/203294 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 1e3fa74d 2014-06-16T10:34:00 Remove Renderer pointer from FBO attachments. Removing the Renderer pointer is one step towards making FBO attachments a minimal state object. Eventually we will be able to store them as arrays instead of arrays of pointers. BUG=angle:660 Change-Id: Idce34e06c339ecb18c60fef12d2ed911d0c4e0f6 Reviewed-on: https://chromium-review.googlesource.com/201835 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill 6c7b4ada 2014-06-16T10:33:59 Add new ref-counted Renderbuffer class. Renderbuffers are a clear object type in GL, and this patch adds a more consistent state representation for them. They're managed by the ResourceManager, and have a storage implementation similar to Textures, but much simpler. BUG=angle:660 Change-Id: Ia17199bb8cb570d48db42e1f28ccbcc12a902fcf Reviewed-on: https://chromium-review.googlesource.com/201834 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill 4d632d8e 2014-06-16T13:20:17 Fix buffer overflow error on buffer resize. We were using the new, larger size for our buffer data copy step, instead of the old, smaller size. This bug was causing a crash on older nVidia drivers during normal browser usage. Reproducible with the index-validation-large-buffer WebGL test. BUG=angle:667 BUG=384420 Change-Id: I98ee893e0d8ba0bfc9adfe5a338da9b940248879 Reviewed-on: https://chromium-review.googlesource.com/203776 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shannon Woods f26ecc81 2014-06-16T13:36:28 Fix build warnings about unused private variables on clang BUG=angle:638,677 Change-Id: Id9e80f0b86d9c24633b2d353a409844c22441d21 Reviewed-on: https://chromium-review.googlesource.com/203429 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Shannon Woods 3dc8020a 2014-06-16T13:29:52 Fix dependent typename build error on non-MSVC compilers BUG=angle:677 Change-Id: Ic0d257ef41e8c80baeddd664eb6c2cc5db94ee43 Reviewed-on: https://chromium-review.googlesource.com/203428 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Shannon Woods fb839475 2014-06-16T13:21:41 Fix ifdef complaints in clang BUG=angle:677 Change-Id: Iee457dfc0990e5ffd61932b1f286f3c0208568bc Reviewed-on: https://chromium-review.googlesource.com/203427 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang a0dc219e 2014-06-09T15:37:55 Re-enable MRT on D3D 10 and 10.1 cards. BUG=angle:670 Change-Id: I88b4823f25ec28fa52831d856ff9fb836fdfc533 Reviewed-on: https://chromium-review.googlesource.com/203120 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 04fb89ad 2014-06-09T15:05:36 Generate pixel shader output to match the bound framebuffer. Only generate pixel shader output variables for render targets that are currently bound. Fixes some performance issues with D3D10 cards that were slow to discard unused outputs. Fixed memory leaks in ProgramBinary by refactoring the freeing of the current state into a reset function. BUG=angle:670 Change-Id: I40f83e15724fb9a1a9ae61363a056999f1fa26d2 Reviewed-on: https://chromium-review.googlesource.com/202977 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Nicolas Capens 16004fca 2014-06-11T11:29:11 Eliminate conversion operations. They've been replaced by using constructor nodes, so any code handling conversion operators can be removed. BUG=380353 Change-Id: I70413179e7443efccbf997a5dd0f053c23689589 Reviewed-on: https://chromium-review.googlesource.com/203453 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill fd716586 2014-06-06T17:09:04 Refactor draw validation functions. We use a significant amount of code duplication in our draw validation, that we can consolidate. BUG=angle:571 Change-Id: I96787cbddf00d9289e368456fb85079d8acec513 Reviewed-on: https://chromium-review.googlesource.com/202975 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 250d33fb 2014-06-06T17:09:03 Move draw call validation to new functions. Separate draw call validation functions will give us a flexible base for refactoring and cleaning up all draw call validation. BUG=angle:571 Change-Id: Ia8e3c83cfe48fedb8f2c7aef1fb282f646c66e82 Reviewed-on: https://chromium-review.googlesource.com/202974 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 3891fd27 2014-06-13T10:04:30 Add a std140 padding helper class. Using a helper class keeps our main parser stateless as we define std140 structs which need padding. The only functional change should be that we no longer use a global counter for struct padding hidden variables, but a local padding per-struct. BUG=angle:466 Change-Id: I8b92d65884b86571c8b2f052b0cba6150a4bbab0 Reviewed-on: https://chromium-review.googlesource.com/202911 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org>
Geoff Lang cec3590a 2014-04-16T10:52:36 Use a Caps structure to store extension and texture format support. Removes support for fallbacks in D3D9 texture formats. The fallback formats did not work properly anyways. BUG=angle:658 Change-Id: Idfa5183bf71fd8ebf4608f940f9d93177b9eff08 Reviewed-on: https://chromium-review.googlesource.com/200813 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 9c4b24a5 2014-06-12T13:41:17 Use commit_id.py on Windows, and handle missing git. This allows us to delete the Windows batch file. Changes the commit_id script to take the working directory so that it can be called from a different working directory than the angle repository is in. Renames the generated commit header to angle_commit.h. This is being written to the shared generated code directory for the entire build, and "commit.h" is insufficiently unique. BUG=angle:669 Change-Id: I35e80411a7e8ba1e02ce3f6a4fc54ed4dbc918f3 Reviewed-on: https://chromium-review.googlesource.com/202048 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill e09f1c82 2014-06-12T11:10:12 Fix crash on zero size but non-NULL bufferData. Could cause a crash when running the WebGL CTS with Firefox. BUG=angle:675 Change-Id: I58bf9eed622660d4702b775f368ff9cbd693197a Reviewed-on: https://chromium-review.googlesource.com/203456 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org>