src


Log

Author Commit Date CI Message
Jamie Madill b1a85f48 2014-08-19T15:23:24 Rename compiler intermediate source files. This prevents confusion between "TIntermediate" and "TIntermNode". BUG=angle:711 Change-Id: Ib7a086382a479db3f77bf2ab06ce321aa7b35d13 Reviewed-on: https://chromium-review.googlesource.com/212936 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Geoff Lang 299fcf29 2014-08-06T16:46:54 Fix swizzle formats being assigned incorrectly. * Non-4 component formats cannot be used as swizzle formats. * Unsized formats should not have swizzle formats. BUG=angle:721 Change-Id: Ic4e2642f5dc4c9811768961fbab00f6edd200ce1 Reviewed-on: https://chromium-review.googlesource.com/211241 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Shannon Woods b8c0a832 2014-08-15T16:41:12 Amend comment about nameless structs & layout qualifiers Change-Id: I1177c808bffd2beba7d52bd8f8869125a1624698 Reviewed-on: https://chromium-review.googlesource.com/212700 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Brandon Jones 3b579e36 2014-08-08T10:54:25 Minor cleanup to Query constructor to normalize it with other interfaces Change-Id: I562245cf6323edc7a127480e8de6ac16c6f97c03 Reviewed-on: https://chromium-review.googlesource.com/211641 Tested-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Shannon Woods 20ba154c 2014-08-11T17:14:44 Initialize TranslatedAttributes BUG=398337 Uninitialized TranslatedAttributes were causing false positives in checks for nonzero attrib divisor. Change-Id: I44655d3fbe4f5478ca3757e05db38799d014e4c7 Reviewed-on: https://chromium-review.googlesource.com/211931 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Shannon Woods 09cf736b 2014-08-08T15:41:01 Fix application of vertex divisor for non-instanced draws in D3D9 BUG=398337 *Re-land* ANGLE_instanced_arrays defines the behavior of the non-instanced draw calls (glDrawArrays, glDrawElements) such that they behave as single-instance draws, so the vertex divisor should still apply. We were handling this correctly in D3D11, but not D3D9. This fixes a new WebGL conformance test: https://www.khronos.org/registry/webgl/sdk/tests/conformance/extensions/angle-instanced-arrays.html Change-Id: I5ed09d41229c8996a78a3b55893c6a655a423644 Reviewed-on: https://chromium-review.googlesource.com/211930 Tested-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Shannon Woods bc75f36b 2014-08-11T14:08:19 Fix nameless struct handling. BUG=401296 The addition of layout qualifier handling in es3 development inadvertently broke handling of nameless structs. Change-Id: I805bab7a981d1f7f6227ae043720296fc3454662 Reviewed-on: https://chromium-review.googlesource.com/211860 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Shannon Woods 6f4423af 2014-08-10T13:54:45 Revert "Fix application of vertex divisor for non-instanced draws in D3D9" Other issues turn up on the FYI bots with this patch applied; reverting until this is investigated further. This reverts commit 9f6907bfdd4cf95d20408831b1776a6efd221ab3. Change-Id: Ib30c51b2c905e87973c73b06baa4b8ebba31d210 Reviewed-on: https://chromium-review.googlesource.com/211683 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Shannon Woods 9f6907bf 2014-08-08T15:41:01 Fix application of vertex divisor for non-instanced draws in D3D9 BUG=398337 ANGLE_instanced_arrays defines the behavior of the non-instanced draw calls (glDrawArrays, glDrawElements) such that they behave as single-instance draws, so the vertex divisor should still apply. We were handling this correctly in D3D11, but not D3D9. This fixes a new WebGL conformance test: https://www.khronos.org/registry/webgl/sdk/tests/conformance/extensions/angle-instanced-arrays.html Change-Id: Ib50e189d866d6dc97612e46460db4ca1723b3662 Reviewed-on: https://chromium-review.googlesource.com/211445 Tested-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Zhenyao Mo daf56572 2014-08-06T16:18:30 For SCALARIZE_VEC_AND_MAT_CONSTRUCTOR_ARGS, assign precision to temp variables. Otherwise on Windows or other platforms with GLES backend, using this workaround will trigger shader compile failure. For the moment, to simplify the workaround, for any missing precisions in float, we always assign the highest available precion to it. BUG=angle:695 TEST=webgl conformance tests Change-Id: I810579442bc7fc61d6a52b76aff31a779046fa22 Reviewed-on: https://chromium-review.googlesource.com/211253 Tested-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Brandon Jones cef06ff2 2014-08-05T13:27:48 Unifying the various texture interfaces where possible Also fixed diamond inheritance pattern that was causing trouble on Windows 8 BUG=angle:688, angle:720 Change-Id: I678826bd4f3927c68ca1eb2e018dbb5aad33a8cc Reviewed-on: https://chromium-review.googlesource.com/211037 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Zhenyao Mo e740addb 2014-07-18T17:01:01 Add compiler option SH_REGENERATE_STRUCT_NAMES. BUG=angle:701 TEST=webgl conformance tests Change-Id: I13b35900956e7d840d5891a5bab90a400347cd6f Reviewed-on: https://chromium-review.googlesource.com/209229 Tested-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Jamie Madill a2ad4e8a 2014-07-17T14:16:32 Export shader variables from the translator DLL. This will allow us to use these methods when compiling the translator as a DLL. BUG=angle:466,697 Change-Id: Ic9169fb7c69fe0bf5f98addfc128a30ee6b2159d Reviewed-on: https://chromium-review.googlesource.com/208752 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Jamie Madill d9ba4f73 2014-08-04T10:47:59 Move implementation of hasMappedBuffer to State. Refactoring patch only. BUG=angle:571 Change-Id: Ib9f3145eaa457d94e488fd42eb4c4b9133768996 Reviewed-on: https://chromium-review.googlesource.com/210643 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang baadf23a 2014-08-04T13:58:02 Fix incorrect validation of ES3 internal format/format/type combinations. * Fix wrong internal format being passed to ValidateTexImageFormatCombination. * Fix ValidateTexImageFormatCombination validating the format instead of internal format for general support. * Fix support checks for format and type comparing with wrong format and type fields. * Add an early-out in format and type check loop to reduce iterations. BUG=angle:658 Change-Id: I05e1b9f58b2e5ac4b5e1c0fa5a45cf37fb6a4ccd Reviewed-on: https://chromium-review.googlesource.com/210884 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 366ac1e3 2014-07-07T14:37:57 Remove the unusused Renderer::getSRGBSupport method. BUG=angle:658 Change-Id: I3c8331dfc9c1046b528e9c4a7da3411d84f8ae3c Reviewed-on: https://chromium-review.googlesource.com/207120 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill f049e804 2014-08-04T13:10:27 Fix wrong comparison in Buffer ASSERT. We were using >1 instead of <=1. Caused false errors in Debug. BUG=angle:716 Change-Id: I7072df99f208bd2e0a687143faeef6c9be79728e Reviewed-on: https://chromium-review.googlesource.com/210990 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 91fa9ce4 2014-07-04T17:30:27 Simplify formatutils9 by exposing the internal structures. BUG=angle:658 Change-Id: I8134cde4d72796c51613594e15aded86e83c4af7 Reviewed-on: https://chromium-review.googlesource.com/206837 Reviewed-by: Nicolas Capens <capn@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 6ba451ba 2014-08-04T11:59:23 Fix single buffer copies. In D3D11, the device doesn't allow overlapped buffer copies unless the D3D11_FEATURE_DATA_D3D11_OPTIONS::CopyWithOverlap feature is enabled. This isn't technically available until D3D11.1. Get around the restriction by using a different storage buffer as the source of the copy. Fixes funcional.buffer.copy.single_buffer.* in dEQP. BUG=angle:715 Change-Id: I03fea8a1c6180a29e07e05022e3454524e320803 Reviewed-on: https://chromium-review.googlesource.com/210902 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill 2c976a44 2014-08-04T11:37:53 Prettify HLSL compile retry error messages. We were inserting excess newlines in several places. Change-Id: I746334d3696e9e3be585ab02074384ae63535ea5 Reviewed-on: https://chromium-review.googlesource.com/210823 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Geoff Lang 9aa00bbc 2014-07-07T12:33:25 Simplify formatutils11 by exposing the internal structures. BUG=angle:658 Change-Id: I8a4ce5f45054a1fa829a9647a94cf2bd0ba93bc0 Reviewed-on: https://chromium-review.googlesource.com/206836 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 1c28e1f0 2014-08-04T11:37:54 Fix shaders with invariant keyword. We would trigger assertion failures in Debug mode, and fail to parse and translate correctly in Release. BUG=angle:711 Change-Id: Ibb7f33b288376617598578f48c7bbdbdec044279 Reviewed-on: https://chromium-review.googlesource.com/210822 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill f4e39bfd 2014-08-01T17:22:17 Fix non-square matrix-to-matrix constructors. This fixes some broken tests in dEQP: functional.shaders.conversions.matrix_to_matrix BUG=angle:712 Change-Id: I0538595f2913a2c1d4f0da901d65d608a6580d19 Reviewed-on: https://chromium-review.googlesource.com/210882 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill cf3af0bd 2014-08-01T17:22:16 Fix non-square scalar-to-matrix constructors. This fixes some broken tests in dEQP: functional.shaders.conversions.scalar_to_matrix BUG=angle:712 Change-Id: Ia01d720307ea6ca70da266b2085a878eaaab2412 Reviewed-on: https://chromium-review.googlesource.com/210881 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill aff8084b 2014-08-04T10:47:56 Fix VertexBuffer11::getSpaceRequired for instanced attribs. The computation could copy more data than needed. Although benign it could cause performance degredation compared to the D3D9 back end. Change-Id: I3cf1dc79085c33d44040fd55153e63a4e5e63cb1 Reviewed-on: https://chromium-review.googlesource.com/210640 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Geoff Lang 5d601382 2014-07-22T15:14:06 Simplify formatutils.h by exposing the info structures. Removed all the separate query functions and simply expose the internal info structures. This reduces the number of std::map/std::set operations that were hidden behind the API. Moved the validation tables for ES3 format combinations and effective internal formats into validationES3.cpp so that formatutils.h only has generic GL format queries. BUG=angle:658 Change-Id: Ieb60d42b8eafcdb4f21dcbec130b39478ce5f7c5 Reviewed-on: https://chromium-review.googlesource.com/206835 Reviewed-by: Nicolas Capens <capn@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 5c1e58d0 2014-08-04T10:47:58 Add missing cache clears to D3D buffer classes. BUG=angle:709 Change-Id: I93f92b916a0da26975cd459399cc2873cb4ab9f0 Reviewed-on: https://chromium-review.googlesource.com/210642 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill cfaaf72f 2014-07-31T10:47:54 Fix CopyBufferSubData. We were passing the arguments from the gl::Buffer stub to the implementation class, which was breaking the call. Also clean up a few comments. BUG=angle:709 Change-Id: Ib92a36d1c52d60d8929f567d0daf54e9d6a2d127 Reviewed-on: https://chromium-review.googlesource.com/210641 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill 7bf0c867 2014-08-01T10:04:09 Fix GN build for libEGL. Our build in GN differed slightly from our gyp build, causing the linker to complain about inconsistent linkage. Also remove some stray definitions of EGLAPI from our headers. Change-Id: I5d3a09ccb0cec528ead33944ce0996cceed32d86 Reviewed-on: https://chromium-review.googlesource.com/210821 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill e294bb87 2014-07-17T14:16:26 Add new shader inspection APIs. Each new entry point corresponds to one of the variable types: varyings, attributes, uniforms, output variables, and interface blocks. They return a pointer to the vector with all of the parsed variables, which then the app can copy to its own memory. Currently we do not support the staticUse field in the HLSL translator. BUG=angle:466 Change-Id: I7dc09e761ab070feef5360ad27740110c44853b3 Reviewed-on: https://chromium-review.googlesource.com/208750 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill 13cfd276 2014-07-17T14:16:28 Move shader variables header to include folder. This allows the API to query for clear type introspection into the parsed GL types from the translator. The returned types are not expanded and have properly nested fields. This patch uses the types from ShaderVars.h to return GL type information. The app must include this header to get access to the types structs. BUG=angle:466 Change-Id: I28ad0d6f11a964804dd234ef0d00651f665d1ae3 Reviewed-on: https://chromium-review.googlesource.com/208751 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Jamie Madill 6a72979f 2014-07-18T10:33:14 Move shadervars constructors to cpp files. This avoid unnecessary binary bloat from STL default constructors and assignment operators. BUG=angle:466,697 Change-Id: I679e524d3e3dbd0d3866fc30a5a01967d8769249 Reviewed-on: https://chromium-review.googlesource.com/208356 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: bratell at Opera <bratell@opera.com> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Jamie Madill a3fe2b4e 2014-07-18T10:33:13 Update non-default constructors in shadervars.h. Most of these constructors are unused. Remove the unused ones, and change the usage of existing constructors to be consistent. BUG=angle:466,697 Change-Id: I455dd314036e1dfcb8c4690bab577b81dd0e060c Reviewed-on: https://chromium-review.googlesource.com/208355 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill f8bdfebc 2014-07-31T18:31:28 Revert "Unifying the various texture interfaces where possible" This reverts commit 8c9038d6f57a4b53c97c4fb803259e7a50ab4cea. Change-Id: I29c25121870e6f8d12144d235029f46fff90be7c Reviewed-on: https://chromium-review.googlesource.com/210651 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Brandon Jones 8c9038d6 2014-07-21T09:43:22 Unifying the various texture interfaces where possible BUG=angle:688 Change-Id: I43be738e0a42f7a7e1448e1d9300b30d4bc54125 Reviewed-on: https://chromium-review.googlesource.com/209343 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org>
Jamie Madill 4fbd36ec 2014-07-29T15:20:48 Add a test for multisampled PBOs. We don't allow ReadPixels from multisampled targets in GL. Also update the assertions in Buffer11 to reflect our expectations. BUG=angle:511 Change-Id: Ia3d5f796f5405fbae1187f3d45b0080d7f24b6d9 Reviewed-on: https://chromium-review.googlesource.com/210053 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Geoff Lang 8e8bf555 2014-07-03T13:50:40 Remove the MajorShaderModel member from Context. BUG=angle:658 Change-Id: Iab7906309f6603d5364d891bb332af8c3bf457fe Reviewed-on: https://chromium-review.googlesource.com/206834 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 5f4c4636 2014-07-03T13:46:52 Use the FormatCaps for multisample validation and queries. BUG=angle:658 Change-Id: Ic9fa53fb62d7eff62f07b68d7ddada461ecad859 Reviewed-on: https://chromium-review.googlesource.com/206832 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Nicolas Capens 8d62bcc4 2014-07-25T15:08:21 Avoid D3D11 primitive restart index using 32-bit indices D3D11 interprets an index value of 0xFFFF in a 16-bit index buffer as a primitive restart marker. This behavior can't be toggled off. http://msdn.microsoft.com/en-us/library/windows/desktop/bb205124(v=vs.85).aspx We work around it by converting to 32-bit indices. BUG=angle:708 Change-Id: Ibc92d6ba98e5f11a98d76cae14f90ca050a19964 Reviewed-on: https://chromium-review.googlesource.com/209883 Tested-by: Nicolas Capens <capn@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Brandon Jones 6b19b002 2014-07-16T14:32:05 Removing D3D-isms from gl::Texture BUG=angle:688 Change-Id: I0cdc758000993f2d54240c69a84f5ae149306d9e Reviewed-on: https://chromium-review.googlesource.com/209332 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org>
Jamie Madill 07d49ef5 2014-07-25T11:52:38 Fix Clang warning with preloaded D3DCompiler string. Clang was complaining that we were casting a char* to a wchar_t*. BUG=angle:707 Change-Id: I063165e9add4e9b57d131181da30c05e5abbc1c2 Reviewed-on: https://chromium-review.googlesource.com/209618 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill a09403c0 2014-07-21T10:03:36 Fix masked ClearBuffer. We were not properly setting the masked channels for these APIs. Since we use a std::vector for tracking the render targets for a particular ClearBuffer call, we lose the indexing into the clear parameters. Fix this by storing the information in the std::vector along with the Render Target. BUG=angle:702 Change-Id: Ie3b1e870aa04054411c4f155682b86a340ec00cf Reviewed-on: https://chromium-review.googlesource.com/209103 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang bfdea66b 2014-07-23T14:16:32 Remove try-catch blocks from entry points. BUG=angle:700 Change-Id: I036901c397053a75677923304d7e1ed697c82aa2 Reviewed-on: https://chromium-review.googlesource.com/209570 Reviewed-by: <ehsan@mozilla.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill cafa2102 2014-07-23T16:43:22 Fix Clang warnings. MSVC's more permissing validator missed a dependent typename, and deleting a void pointer. BUG=angle:703,704 Change-Id: I227b94c9c1590973d7b11b0ed0bfda32f2a71cec Reviewed-on: https://chromium-review.googlesource.com/209613 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 5063f55a 2014-07-23T16:27:31 Add a MemoryBuffer type to safely allocate large user data buffers. MemoryBuffer has a similar interface to std::vector but returns a bool on resize to do error checking. BUG=angle:700 Change-Id: Ib201eeb91b07f5b7f970e153f5d1e110f9b2fa55 Reviewed-on: https://chromium-review.googlesource.com/209612 Reviewed-by: Nico Weber <thakis@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Brandon Jones 142ec426 2014-07-16T10:31:30 Refactored Texture2DArray, separated out D3D logic BUG=angle:688 Change-Id: Ie3e5ac2bedcffb816ef1537575f09afb3f5e7a35 Reviewed-on: https://chromium-review.googlesource.com/208381 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org>
Geoff Lang 493daf5a 2014-07-03T13:38:44 Update the format table to check support for filtering and rendering. Since filerability and renderability may depend on separate extensions, use functions to determine their support. Context now uses these functions to fill it's own TextureFormatCaps. BUG=angle:658 Change-Id: Ib4dc877ba7c24f84a3823fd5aa2e01a3b3621705 Reviewed-on: https://chromium-review.googlesource.com/206831 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 4836d22a 2014-07-24T06:55:51 Fix ASSERT when rewriting else-if blocks with no else. The code assumed an else-if would end in an else. We can also save a few allocations in the cases where there is no else. BUG=angle:699 Change-Id: I550857366775b4a34aea97e117ef732297d3f448 Reviewed-on: https://chromium-review.googlesource.com/208681 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill e04a5b7b 2014-07-18T10:33:12 Remove sh::InterfaceBlock member info. We can compute the interface block member info entirely on the API side. This will allow us to get rid of some un-necessary code in the compiler. BUG=angle:466 Change-Id: I664ffc82de5f2723156e51f4e9ffc07e4de162aa Reviewed-on: https://chromium-review.googlesource.com/207781 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill 28f70c3a 2014-07-18T10:33:10 Remove sh::Uniform::registerIndex and elementIndex. With the previous cleanups, these fields aren't needed any longer. We can also clean up some unused methods and simplify existing code. BUG=angle:466 Change-Id: I96df8d152324bda5e6868b5eccdf52bdc09155e9 Reviewed-on: https://chromium-review.googlesource.com/207256 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill bf9cce2e 2014-07-18T10:33:09 Use the block encoder class to store uniform offsets. This will allow us to use the same code path for assigning register information in all places. Because of this it fixes some long-broken dEQP struct uniform tests. BUG=angle:466 BUG=angle:505 Change-Id: I4161a388503aa09bbe2d21ff47bfb3352ec93881 Reviewed-on: https://chromium-review.googlesource.com/207255 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill 9fe25e9e 2014-07-18T10:33:08 Add a uniform register query to the translator. This returns the uniform index that we assigned for default uniforms. All the dependent structure offsets can be determined from the base register, so we won't have to store uniform information in the shader variable. BUG=angle:466 Change-Id: I0dd05251e8dba00c20d09fd865dfb150de56738e Reviewed-on: https://chromium-review.googlesource.com/207254 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Brandon Jones 18fe4294 2014-07-22T13:03:06 Added virtual destructors to VertexArrayImpl and BufferImpl Change-Id: Ib9d8b2fc85b63f0cd52a2b19129a88ba7acbc017 Reviewed-on: https://chromium-review.googlesource.com/209380 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Nico Weber <thakis@chromium.org> Tested-by: Nico Weber <thakis@chromium.org>
Geoff Lang 6cf8e1b9 2014-07-03T13:03:57 Reduce the number of TextureFormatCaps members. Since GL has no notion of texture formats that can be used for different types of textures, merge the TextureFormatCaps texture support members. Also merge the various renderability members since the texture type is enough to determine what type of renderable a format is. BUG=angle:658 Change-Id: I7cba50b147fcca8f3880d65c06c57df9c65ed19c Reviewed-on: https://chromium-review.googlesource.com/206830 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang ad8636ee 2014-07-09T12:10:03 Fix missing EGL extension function exports. BUG=angle:490 Change-Id: Ie4e7b0075f60676aa5f9fb51a0d6fb8f84b9ed90 Reviewed-on: https://chromium-review.googlesource.com/207140 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 591e6afe 2014-06-18T18:08:57 Add support for ANGLE_platform_angle. BUG=angle:490 Change-Id: If3c897a9ae3d27b96e4b9bf9475a9ac23a1090ba Reviewed-on: https://chromium-review.googlesource.com/185396 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Brandon Jones 78b1acdb 2014-07-15T15:33:07 Refactored Texture3D, separated out D3D logic BUG=angle:688 Change-Id: I6cda73c2e4c8a026b8c5222bc40cea93ad4e0ba3 Reviewed-on: https://chromium-review.googlesource.com/208102 Tested-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Brandon Jones 0511e808 2014-07-14T16:27:26 Refactored TextureCubeMap, separated out D3D logic BUG=angle:688 Change-Id: I2300aaad4fab25df484e0bc3613ac3b176addc93 Reviewed-on: https://chromium-review.googlesource.com/208191 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org>
Brett Wilson 04bac60c 2014-07-16T14:19:18 Explicitly list files for the build. Removes shelling out to enumerate_files for the main targets (tests and examples are currently unchanged) in favor of explicitly listing out the files in the build. There are a number of reasons. My immediate reason is that doing this allows the file lists to be shared with the GN build so the GYP and GN builds of angle should mostly automatically stay in sync now. In addition, I don't think we should be enumerating files in GYP. No other Chrome sub-projects do this, and Chrome engineers expect files to be listed in .gyp* files. It's also slower to shell out a bunch of times to get the file lists (this matters more in the GN build which runs very quickly). Updates the GN build to share these file lists. This unbreaks the Windows GN Angle build. BUG=angle:698 Change-Id: Iab8829628aeb7232bb64f4c247c35c6485bba3ee Reviewed-on: https://chromium-review.googlesource.com/208461 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Brett Wilson <brettw@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Zhenyao Mo e40d1e9c 2014-07-16T17:40:36 Fix style violations. BUG=angle:650 TEST=no behavior change Change-Id: I3096615a181b1ec2c18ce60566c3d6249975b84e Reviewed-on: https://chromium-review.googlesource.com/208569 Tested-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Andrew Knight 75ec7c5b 2014-07-17T15:00:38 Fix "error: extra qualification 'rx::ImageD3D::' on member 'makeImageD3D'" As reported by GCC 4.8.1/MinGW. Change-Id: If62d234074a0a9180f1f3c3619dbb2dd8047d0f3 Reviewed-on: https://chromium-review.googlesource.com/208670 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Andrew Knight <andrew.knight@digia.com>
Jamie Madill 5b130dcc 2014-07-11T17:02:05 Do not create dummy variables when linking uniforms. This cleanup prepares us for removing the uniform register info from the shader translator types. BUG=angle:466 Change-Id: I86f47970b793135f410a5ef698fc96d44219ee96 Reviewed-on: https://chromium-review.googlesource.com/207253 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Jamie Madill 66d43d24 2014-07-11T17:02:03 Refactor ProgramBinary uniform linking code. This prepares us for moving most of the register assignment to the ProgramBinary class itself, and cleans up the various methods. BUG=angle:466 Change-Id: Ie2965ed41ac50617584fd7a6d7b0ec2784e7dfaf Reviewed-on: https://chromium-review.googlesource.com/207252 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Zhenyao Mo cd68fe79 2014-07-11T10:45:44 Add a compiler option to rewrite vec/mat constructors If one of the parameters is a vec/mat, expand it into scalars. This is to work around Linux NVIDIA/AMD and Mac NVIDIA driver bugs. BUG=angle:695 TEST=webgl conformance test Change-Id: I35e1e25167d99f873dcb03bfb57a30e84b1aeed5 Reviewed-on: https://chromium-review.googlesource.com/207479 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Zhenyao Mo <zmo@chromium.org>
Jamie Madill fc43d273 2014-07-11T17:02:02 Remove the sh::InterfaceBlock::dataSize member. We can replace this by doing the same calculation in the HLSL-side code. BUG=angle:466 Change-Id: Iecae4a92e9037e851419ce73e6267094ee8071a2 Reviewed-on: https://chromium-review.googlesource.com/207251 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Jamie Madill d4116ff3 2014-07-11T17:02:01 Remove sh::InterfaceBlock::registerIndex. This value is HLSL-only and we can use the new query API to hide it from GLSL programs. BUG=angle:466 Change-Id: I75dc2fbbf1b29b1f6d561568174a15dea1f5b130 Reviewed-on: https://chromium-review.googlesource.com/207250 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Brandon Jones f47bebc4 2014-07-09T14:28:42 Refactored Texture2D, separated out D3D logic BUG=angle:688 Change-Id: I93c2ff0b125278234d61324844b79cc58135d4d8 Reviewed-on: https://chromium-review.googlesource.com/207675 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org>
Shannon Woods 53a94a82 2014-06-24T15:20:36 Refactors State to be a fully-qualified class BUG=angle:685 Change-Id: I36cff2da985a12c7180fe2850ccd471f4cebbaad Reviewed-on: https://chromium-review.googlesource.com/206634 Tested-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shannon Woods 1da3cf63 2014-06-27T15:32:23 Removes sub-entry-point Framebuffer validations BUG=angle:685 Change-Id: I2d630396a5971972f858cca9c39ceb6509492aa4 Reviewed-on: https://chromium-review.googlesource.com/205836 Tested-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shannon Woods aa2ab7d8 2014-06-24T17:51:51 Cache bound FBO and VAO objects themselves in State BUG=angle:685 Change-Id: I19ae6752d1a7490122dd9ca076efb08564e1901d Reviewed-on: https://chromium-review.googlesource.com/205835 Tested-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Jamie Madill <jmadill@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 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>