Branch :
| Author | Commit | Date | CI | Message |
|---|---|---|---|---|
| 5ade8459 | 2015-09-02 11:00:30 | Properly check for EGL_KHR_create_context before creating ES3 context. Mark EGL_KHR_create_context as supported in the DisplayGLs. BUG=angleproject:1149 Change-Id: I20671535680eb2c3b9c08205cee243b3aa5c5821 Reviewed-on: https://chromium-review.googlesource.com/297080 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| e4de307e | 2015-09-02 11:01:32 | Mark the pack and unpack buffer types as valid in ES3. dEQP resetState generates a GL error and exits when trying to reset the pixel buffers after a test. BUG=angleproject:1149 Change-Id: I133788c6c2f17074bf5bbf5cd17b63338352765f Reviewed-on: https://chromium-review.googlesource.com/297081 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| a7e1d9aa | 2015-09-01 12:41:47 | Only validate that color and alpha blend funcs are non-constant on D3D renderers. BUG=angleproject:1025 Change-Id: I9c6008cc2f268bda4afa2c67e0b3d3716e77ea31 Reviewed-on: https://chromium-review.googlesource.com/296681 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 814a54dd | 2015-08-27 16:23:09 | Force index/loop validation on the D3D9 backend D3D9 shader models have limited support for looping, so the Appendix A index/loop limitations are necessary. This is consistent with applying the limitations on D3D9_3 feature level and lower of the D3D11 backend too. Also, when the limitations are not in place, a workaround for dynamic indexing of vectors and matrices will be applied. This workaround does not work on the D3D9 backend, as demonstrated with some WebGL conformance failures caused by it in Chrome on D3D9. BUG=525188 TEST=angle_end2end_tests Change-Id: I6411594f067f2740f55d7560427026b23b15dac7 Reviewed-on: https://chromium-review.googlesource.com/296940 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com> | ||
| a0a9e12d | 2015-09-02 15:54:30 | translator: Add sh::OutputVariable type. This replaces the dual-use of sh::Attribute, which can be a bit confusing to people expecting a literal output variable. Currently not used in Chromium, so should be safe to land. BUG=angleproject:1146 Change-Id: I436f2bc9dc4ddc3709369cb2baa344c6b13a21a2 Reviewed-on: https://chromium-review.googlesource.com/296683 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| beb81589 | 2015-09-02 10:30:55 | Make the end2end tests compile in the GN build. BUG=angleproject:929 Change-Id: Ifc5ad03579c3e187721842f7585f3f06b69cbf45 Reviewed-on: https://chromium-review.googlesource.com/296682 Reviewed-by: Dirk Pranke <dpranke@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| 48705cad | 2015-09-02 20:40:51 | Revert "Move Uniform and UBO info to the gl::Program layer." Seems to be failing dEQP-GLES2.functional.uniform_api.value.unused_uniforms.* on Linux (possibly Win as well) BUG=angleproject:1123 This reverts commit 54f882c9167b1aff5b3700187a2048bd886e8b17. Change-Id: I7dbbf40aae8dd9ebd35895df0dd338a3b6b9cc96 Reviewed-on: https://chromium-review.googlesource.com/297051 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| 54f882c9 | 2015-09-02 14:33:48 | Move Uniform and UBO info to the gl::Program layer. This data was previously stored entirely in the Impl level. Move as much as possible to the GL level, using a read-only view in the Impl level. Some information in D3D-specific, and should be stored separately in the Impl. This patch has a lot of refactoring that splits the D3D and GL info, and moves as much validation as possible to the GL layer, where it is shared between the back-ends. BUG=angleproject:1123 TEST=end2end_tests,Canary WebGL (D3D11/GL), dEQP-GLES2+3.functional.uniform_api Change-Id: I8b7e1380a61590a46ccee646a47ffe9bda287f6b Reviewed-on: https://chromium-review.googlesource.com/295124 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| f5f4ad24 | 2015-09-02 18:32:38 | Revert "Revert "Clean up interface to ProgramImpl::link."" Should be fixed now with the fix the prior CL. BUG=angleproject:1123 This reverts commit 63069dfc20bc34fe6962dee694953893ee6fc663. Change-Id: Ie1826673820e3a24f9bb3e4ff5c723ac47570041 Reviewed-on: https://chromium-review.googlesource.com/297050 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| ca03b35c | 2015-09-02 12:38:13 | Re-land "Compute packed varyings in ProgramD3D only." Instead of storing varying information in the shader, use a temporary set when linking a D3D program. This also means we won't have to modify information in the Shader object when linking a D3D program. This completes the refactoring for PackedVaryings. Re-land with fix for missing init of PackedVarying::vertexOnly. BUG=angleproject:1123 Change-Id: If110809c3817d88b0370ac575d739d7385b067d9 Reviewed-on: https://chromium-review.googlesource.com/296731 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| 3a86ad38 | 2015-09-01 11:47:05 | Only validate that stencil refs and masks are the same on D3D renderers. BUG=angleproject:1025 Change-Id: If79046f9f81ad20c5f2f7296245b0cb74a4102aa Reviewed-on: https://chromium-review.googlesource.com/296680 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 93fc8f3e | 2015-09-02 11:26:06 | Add back a suppression for a bot specific dEQP GLES2 failure on Windows BUG=angleproject:1127 Change-Id: I749c2c39dfaf60d5e39a00bd7954fcb1d7e931ac Reviewed-on: https://chromium-review.googlesource.com/296960 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| efb6ac66 | 2015-09-02 08:10:09 | ProgramBinaryTest: fix an unreachable code warning This warning was found by the GN build on Windows: the FAIL macro contains a return which caused code after the FAIL to be unreachable. BUG=angleproject:929 Change-Id: Id4bda39ea9f76d2b59c44391cb2de8a3bfb6947c Reviewed-on: https://chromium-review.googlesource.com/296950 Tested-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| d4bcfa2c | 2015-09-01 10:32:30 | Make the unittests compile in the GN build. This changes angle_unittests.gypi to use a variable per list of files so that we can grab the list of files in conditions in BUILD.gn BUG=angleproject:929 Change-Id: I7fc73fd84d8efc1ea545fe672b1dba1c429b317f Reviewed-on: https://chromium-review.googlesource.com/296443 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| 94d099d0 | 2015-09-01 13:56:56 | BitSetIterator_unittest: fix an unreachable code warning Because gtest's FAIL macro does a return, MSVC complained that the update part of a range-based for loop was unreachable. Fixed this by having a boolean value set to true if we execute the loop body. BUG=angleproject:929 Change-Id: I6c1fec7ed6cf1a3aba6f02b68c1015bee2feebfd Reviewed-on: https://chromium-review.googlesource.com/296730 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| c437046f | 2015-09-01 17:27:40 | Revert "Compute packed varyings in ProgramD3D only." Likely the cause of Windows bot failures. BUG=angleproject:1123 This reverts commit 532061bbfb160586a06f0e47b6bbb5350e735203. Change-Id: Ia4f0161b97bfbf2adb4cafaa5fa5484f04fad245 Reviewed-on: https://chromium-review.googlesource.com/296710 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| 63069dfc | 2015-09-01 17:26:41 | Revert "Clean up interface to ProgramImpl::link." Probably causing bot failures in a prior dependent patch. BUG=angleproject:1123 This reverts commit b83592750d00ca96413575016b0e27bc9d861f58. Change-Id: I7642c4a66b190dda49cbb16611abc893f3eb6422 Reviewed-on: https://chromium-review.googlesource.com/296700 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| 477b243b | 2015-08-31 10:41:16 | Change the FLATTEN heuristic to "ifs with a loop with a gradient" This heuristic makes more sense than the previous "ifs with a discontinuous loop" as the reason we need to flatten is that we need gradients to be in branchless code. Change the UnrollFlatten test accordingly. Tested with: - the WebGL CTS - dev.miaumiau.cat/rayTracer "Skull Demo" - THe turbulenz engine GPU particle demo - Lots of ShaderToy Samples (inc. Volcanic, Metropolis and Hierarchical Voronoi) - Google Maps Earth mode - Lots of Chrome experiments - madebyevan.com/webgl-water BUG=524297 Change-Id: Iaa727036fffcfde3952716a1ef33b6ee0546b69d Reviewed-on: https://chromium-review.googlesource.com/296442 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| 12d59314 | 2015-08-31 13:33:00 | Prefer glDepthRangef and glClearDepthf to the double version. ES only has the float versions. BUG=angleproject:1145 Change-Id: I6c96b553d20e8aa160f68fe1b3fa0200d64108a3 Reviewed-on: https://chromium-review.googlesource.com/296361 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| f2ee0752 | 2015-09-01 10:14:36 | Fix wrongly formatted dEQP GLES2 expectations The formatting problem was introduced in 770f8f8658806b278f67e55ca195e022b683f9e0 and prevented the bots from running the dEQP tests. BUG=angleproject:1143 Change-Id: I427f6472625df19111ff56685b7e70b9e9aae866 Reviewed-on: https://chromium-review.googlesource.com/295199 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| 2728f992 | 2015-08-31 16:24:10 | Make unittest #includes start from src This is will help avoid adding many include directories for the GN build. BUG=angleproject:929 Change-Id: If8f7e98526df3560b8e410ec86271a2da0c6889d Reviewed-on: https://chromium-review.googlesource.com/296480 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| 89bb70e9 | 2015-08-31 14:18:39 | Mark TF Feedback array element capture as unsupported. According to dEQP this is an undefined section of the spec. Mark it as unsupported for now until we can investgate if it's possible on certain platforms. Noticed this when testing with the Program refactor. BUG=angleproject:1123 TEST=dEQP-GLES3.functional.transform_feedback.array_element.* Change-Id: I830dddf418e28fb4536f09500f4069def1d97b58 Reviewed-on: https://chromium-review.googlesource.com/295984 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| aa40feea | 2015-09-01 09:35:45 | Supress failures in RGB->L CopyTex[Sub]Image calls on Intel OpenGL. BUG=angleproject:1113 Change-Id: Ie16a28046546fad2ff1c1af35ca67c434b9f5216 Reviewed-on: https://chromium-review.googlesource.com/296481 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 47502236 | 2015-08-25 16:26:10 | Implement drawRangeElements in RendererGL. BUG=angleproject:1136 Change-Id: I8b84b845da09f60bfd5e8f400da47d759f0d8f1a Reviewed-on: https://chromium-review.googlesource.com/295234 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 846f107f | 2015-09-01 09:07:15 | Fix unsigned/signed comparison in VertexDataManager. Affects Debug/Win32 only. BUG=angleproject:1136 Change-Id: I29fbf06077014c313489be07ff983009afb652fd Reviewed-on: https://chromium-review.googlesource.com/296362 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| b8359275 | 2015-08-26 15:57:14 | Clean up interface to ProgramImpl::link. We no longer need to pass mutable shaders with the changed to packed varyings. BUG=angleproject:1123 Change-Id: I0a4bbf5d770ff48e10e3de2146840d8987b1e826 Reviewed-on: https://chromium-review.googlesource.com/295194 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| 532061bb | 2015-08-31 15:16:45 | Compute packed varyings in ProgramD3D only. Instead of storing varying information in the shader, use a temporary set when linking a D3D program. This also means we won't have to modify information in the Shader object when linking a D3D program. This completes the refactoring for PackedVaryings. BUG=angleproject:1123 Change-Id: I241610e87f7d14f3e18b0d8bd84f1a3509c05dfd Reviewed-on: https://chromium-review.googlesource.com/295193 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> | ||
| 0e06ea33 | 2015-08-31 10:35:46 | HLSLCompiler: fix an infinite loop when failing to compile When compiling shaders that produce errors X3531 or X4014 even when macros is nullptr, we would try the same permutation infinitely. BUG=524297 Change-Id: Id2a26ce2a5344bff4566440342adad5031368994 Reviewed-on: https://chromium-review.googlesource.com/296441 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| 3cf12ce6 | 2015-08-27 14:40:48 | Implement the instanced draw calls in RendererGL. BUG=angleproject:1136 Change-Id: I1167365618bdc3ca37ac0f4c60809de32c7a9d78 Reviewed-on: https://chromium-review.googlesource.com/295733 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 5b49bb83 | 2015-08-31 18:48:50 | Revert "Implement the instanced draw calls in RendererGL." Causing crashes in some dEQP tests. This reverts commit c1948415e52dbaefb0d3176b75a58a7b86bd091a. Change-Id: Idedb32484b4f2b09090346bc4228fe536190a621 Reviewed-on: https://chromium-review.googlesource.com/296440 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| c1948415 | 2015-08-27 14:40:48 | Implement the instanced draw calls in RendererGL. BUG=angleproject:1136 Change-Id: Id04e357b97c04b3843b25827f705fd802e6a68e3 Reviewed-on: https://chromium-review.googlesource.com/295233 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 2a592150 | 2015-08-31 10:10:33 | Fix Chromium compilation error in VariablePack_test.cpp BUG= Change-Id: I59c9716774df4615da6dd412795639e055f45034 Reviewed-on: https://chromium-review.googlesource.com/295732 Tested-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| a9bee1b8 | 2015-08-27 16:10:53 | Add row-sharing packing tests for VariablePacker_test.cpp Recent test failures leads to suspicion that our variable packing algorithm is buggy - turns out to be an underlying driver bug. With the added test cases, such suspicion shouldn't even arise. BUG=angleproject:1142 TEST=angle_unittests Change-Id: I1fb3c5c7798d9ad17668a3d633286e031da79cab Reviewed-on: https://chromium-review.googlesource.com/295901 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Zhenyao Mo <zmo@chromium.org> | ||
| 465e6f45 | 2015-08-28 16:01:53 | Fix missing copy rules for DEQP EGL test cases and expectations. BUG=angleproject:1139 Change-Id: I9d58b2c0b1e6465b58b2f3d4aad4b1d3517ae3ec Reviewed-on: https://chromium-review.googlesource.com/295147 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| 3caa6528 | 2015-08-27 14:38:52 | Only update the synced parts of mAppliedAttributes. Members such as divisor are not synced in VertexArrayGL::updateAttribPointer so assigning the whole attribute causes the divisor to not be synced. BUG=angleproject:1136 Change-Id: I947a144f81ae67953947e363debd1d1cff78207a Reviewed-on: https://chromium-review.googlesource.com/295145 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 770f8f86 | 2015-08-28 13:46:02 | Add back suppressions for bot-specific dEQP GLES2 failures on Linux BUG=angleproject:1143 Change-Id: I5bd1a7de7b147062f2e093a30efe4ed06eb80ec2 Reviewed-on: https://chromium-review.googlesource.com/295247 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| ad915e9b | 2015-08-27 14:34:47 | Update the Windows dEQP GLES2 test expectations BUG=angleproject:1127 Change-Id: I6f38e5441c4a288e9c1f55fefa31d5d2f10a700c Reviewed-on: https://chromium-review.googlesource.com/295246 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| 11865105 | 2015-08-27 17:55:17 | angle_unittests add forgotten VariablePacker test. Also add a warning on top of the UnrollFlatten test that it works only when HLSL is enabled. BUG=angleproject:1140 Change-Id: Ide961bbed70dc9ed2a604f13273e4209b1dec29b Reviewed-on: https://chromium-review.googlesource.com/295125 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| cf5a092f | 2015-08-27 14:30:40 | Add back one left out compiler test to angle_unittests VariablePacker_test.cpp The other one UnrollFlatten_test.cpp crashes. BUG= TEST=angle_unittests Change-Id: I78e6e81e9b61f2a1599a5a0601b5b76165b180de Reviewed-on: https://chromium-review.googlesource.com/295767 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Zhenyao Mo <zmo@chromium.org> | ||
| 7cb71880 | 2015-08-26 16:24:07 | Update the dEQP GLES2 test expectations for Linux BUG=angleproject:1127 Change-Id: Ia5f9442ef718625ed913fe3a76301a0edea00390 Reviewed-on: https://chromium-review.googlesource.com/295720 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| a65a4c7b | 2015-08-27 10:38:40 | Fix preprocessor failure in string concatenation. BUG=angleproject:1138 Change-Id: I20f3b542884fbaa2b2cccd65ceb45e54174bccc2 Reviewed-on: https://chromium-review.googlesource.com/295831 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| e453dd31 | 2015-08-27 10:38:07 | Fix warning about initialization order in BlitGL. BUG=angleproject:1113 Change-Id: I808d521ffc257c2f45badbbd462698f91def314f Reviewed-on: https://chromium-review.googlesource.com/295830 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 80ecac9e | 2015-08-25 15:37:48 | Remove unused mOptimize/mDebug flags from TIntermAggregate These flags were written but they were never read. TEST=compile BUG=angleproject:1116 Change-Id: I41e3e89f13861ebda4828c76c753ca17c74c4358 Reviewed-on: https://chromium-review.googlesource.com/294931 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com> | ||
| f6db098d | 2015-08-25 13:04:00 | Split the Context and Renderer draw* to one per entry point. BUG=angleproject:1136 Change-Id: Ic7ff9c23201e1fe03c5a2135be24d61cfe3d6268 Reviewed-on: https://chromium-review.googlesource.com/295232 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 384f1fdd | 2015-08-26 16:27:07 | Fix a warning on Linux BUG= Change-Id: I5c4f5df14321644d7ac42af6059400ae43d0fe4d Reviewed-on: https://chromium-review.googlesource.com/295721 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tryjob-Request: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| 3c192a78 | 2015-08-26 20:32:53 | Revert "Remove dynamic indexing of matrices and vectors in HLSL" Seems to be failing a WebGL/ES2 CTS test in D3D9: conformance/ogles/GL/mat3/mat3_001_to_006 BUG=angleproject:1116 BUG=525188 This reverts commit 83f3411da456faac8570892e3dd7d76edf4095e5. Change-Id: Ic186f51240dbdd96ccab3f5470329cdc9727c618 Reviewed-on: https://chromium-review.googlesource.com/295730 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| ff5d3dc6 | 2015-08-24 16:57:44 | gl::GetString check for a valid context glGetString() without a current context could cause a null dereference for some enums. Always return nullptr when no context is bound. BUG=angleproject:1106 Change-Id: Ic36f1adff8b2e3cd54a7b33b2e12899781feba82 Reviewed-on: https://chromium-review.googlesource.com/295142 Tested-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 80b2411a | 2015-08-25 16:41:57 | Context: directly delete the resource instead of also detaching Otherwise when detaching vertex array 0 and N the following would happen: - call Context::deleteVertexArray(0) - call Context::detachVertexArray(0) - call State::removeVertexArrayBinding(0) set mVertexArray to nullptr, returns true - call State::bindVertexArray(0) reset mVertexArray to its previous value - call Context::deleteVertexArray(n) - call Context::detachVertexArray(n) - call State::removeVertexArrayBinding(n) Incorrectly call mVertexArray->id() which is a use after free. BUG=angleproject:1137 Change-Id: I594044fee6c90b1775a61943b15df92bf323ff2a Reviewed-on: https://chromium-review.googlesource.com/295123 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| 5f57cc6e | 2015-08-26 13:41:37 | Add targets that run the EGL dEQP tests. Generates lots of assertion failures when run, expectations and assertion fixes to come. BUG=angleproject:1139 Change-Id: Ia55b4b2ca3a7844d8d9d05cb7043cd42d55b86ed Reviewed-on: https://chromium-review.googlesource.com/295243 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 5565936c | 2015-08-26 13:39:59 | Implement EGL_KHR_get_all_proc_addresses. BUG=angleproject:1138 Change-Id: I0dd4e1a092e889cdb9de4773162e5416ac9be65d Reviewed-on: https://chromium-review.googlesource.com/295242 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 53b8aec0 | 2015-08-24 10:33:25 | Work around deprecated LUMA formats in the core profile. Use R and RG textures with swizzle states to emulate them. A manual blit is required when calling CopyTex[Sub]Image from a RGB[A] framebuffer to an emulated L[A] texture so that the alpha channel ends up in the correct channel of the destination texture. Fixes the following tests when using the core profile: * conformance/extensions/oes-texture-float.html * conformance/extensions/oes-texture-half-float.html * conformance/textures/misc/tex-sub-image-2d.html * conformance/textures/misc/texture-formats-test.html * conformance/textures/misc/texture-npot.html BUG=angleproject:1113 Change-Id: If5540e66d9017596bd83d95ec3ede043cbcfe0d2 Reviewed-on: https://chromium-review.googlesource.com/293905 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 2c34a4b0 | 2015-08-25 16:26:02 | VertexArrayGL: fix an off by one error for indexRange for drawElements DrawElements' range was of the form [start, end] while DrawArrays' was of the form [start, end), which caused an out of bound array access in the client vertex pointers. This issue was detected while running angle_end2end_tests with AddressSanitizer. BUG=angleproject:1137 Change-Id: Id9abddf29eaf73bacfd08d1616a999be2fe616b8 Reviewed-on: https://chromium-review.googlesource.com/295122 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| 83f3411d | 2015-06-18 15:47:46 | Remove dynamic indexing of matrices and vectors in HLSL HLSL doesn't support dynamic indexing of matrices and vectors, so replace that with helper functions that unroll dynamic indexing into switch/case and static indexing. Both the indexed vector/matrix expression and the index may have side effects, and these will be evaluated correctly. If necessary, index expressions that have side effects will be written to a temporary variable that will replace the index. Besides dEQP tests, this change is tested by a WebGL 2 conformance test. In the case that a dynamic index is out-of-range, the base ESSL 3.00 spec allows undefined behavior. KHR_robust_buffer_access_behavior adds the requirement that program termination should not occur and that out-of-range reads must return either a value from the active program's memory or zero, and out-of-range writes should only affect the active program's memory or do nothing. This patch clamps out-of-range indices so that either the first or last item of the matrix/vector is accessed. The code is not transformed in case the it fits within the limited subset of ESSL 1.00 given in Appendix A of the spec. If the code isn't within the restricted subset, even ESSL 1.00 shaders may require this workaround. BUG=angleproject:1116 TEST=dEQP-GLES3.functional.shaders.indexing.* (all pass after change) WebGL 2 conformance tests (glsl3/vector-dynamic-indexing.html) Change-Id: I024722ef4ca1e14d5ad47fdc540397e18858bed6 Reviewed-on: https://chromium-review.googlesource.com/290515 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com> | ||
| 4cff2477 | 2015-08-21 16:53:18 | Make PackedVarying a D3D-only type. The register assignment stuff only applies to the D3D back-end. Cleans up the GL back-ends use of PackedVarying, and will lead to future cleanups relating to packing varyings. BUG=angleproject:1123 Change-Id: Iaaa5fc03577e5b61ea6ae76ee1e15ad608037f34 Reviewed-on: https://chromium-review.googlesource.com/295190 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| 401d9fe6 | 2015-08-26 10:19:59 | Fix debug build on Linux Compiling an assert in Program.cpp was failing at least on GCC 4.8 because it compared unsigned size_t to zero, a comparison that was always true. The C standard defines size_t as unsigned, so the assert shouldn't be necessary on other platforms either. There was already a commit on top of the patch that added the bug, so it is simpler to fix the problem by changing the assert rather than reverting. TEST=standalone debug build on Linux Change-Id: Ifd910332a770f7360a15c31706beca740d0f289d Reviewed-on: https://chromium-review.googlesource.com/294971 Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com> | ||
| d7a25243 | 2015-08-18 13:49:45 | Add deep copying support for typed AST nodes Resubmit with inconsistent override warnings fixed. Removing dynamic indexing of vectors and matrices will require copying the indexed nodes in case they are written. Any type of l-value node that doesn't have side effects may need to be copied. Add a copying function for all typed node classes so that this copying can be performed. Private copy constructors are used to implement the deepCopy function in order to make maintenance easier. With copy constructors, each subclass only needs to take care of copying its own members, and not the base class members, which reduces the possibility of errors. Copy constructors are disabled for all node classes that don't support deep copying by inheriting TIntermNode from angle::NonCopyable. Assignment operator is disabled for all node classes through inheriting angle::NonCopyable. This applies also to classes that now get the private copy constructor. Explicit copy constructor and assignment operator declarations are added to some classes which show up in node member variables to make code clearer. BUG=angleproject:1116 TEST=angle_unittests Change-Id: I7964976f5dac7dfd745b8c6612ca06fb01d271c4 Reviewed-on: https://chromium-review.googlesource.com/295080 Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> | ||
| 254fceac | 2015-08-25 15:11:07 | Fix two leaks and a delete vs delete[] reported by ASAN BUG=angleproject:1137 Change-Id: Ic654b79aa56ae0c0a24097b85ab48f5af53ca1f7 Reviewed-on: https://chromium-review.googlesource.com/295154 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| 47a878c6 | 2015-08-25 12:28:29 | Surface: do not leak the default framebuffer Due to the many merges and changes to 37c3979e47bf93958b426aaa31c1d65aef881b5f the default framebuffer deletion "disappeared". Add it back to the destructor of Surface. Update Surface_unittests and remove one of the two tests as they were equivalent. BUG=524495 BUG=angleproject:1137 Change-Id: I1309285ea00976ae2685628ea3f92731a9259718 Reviewed-on: https://chromium-review.googlesource.com/295153 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| 4d5362d0 | 2015-08-25 11:25:14 | VertexArrayGL: fix the streaming of offset non-packed strides When the packed stride and source stride were different, the streaming code path used a loop that added two times the offset for the start of the index range. BUG=angleproject:1135 Change-Id: I6d314a1a28abec4df22f7c798c1af87a18d8b7ec Reviewed-on: https://chromium-review.googlesource.com/295225 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| 80a6fc03 | 2015-08-21 16:53:16 | Make output variables part of Program's shared data. Also initialize this structure within Program instead of DynamicHLSL. This should have benefits for other back-ends. Also these variables weren't being serialized and de-serialized with the program binary, which could mess up WebGL apps that use MRT. BUG=angleproject:1123 Change-Id: Ic0dd4840f26441a1bee8527dfa178b24daf82f8a Reviewed-on: https://chromium-review.googlesource.com/294571 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| 63805b47 | 2015-08-25 13:17:39 | Make the Program's semantic index D3D-only. This concept isn't strictly necessary for GL-side validation. Instead we can use a bitset to track active attribs, and determine is a particular location is active. BUG=angleproject:1123 Change-Id: If7a920a3071672116bafffb3368671f721723b65 Reviewed-on: https://chromium-review.googlesource.com/294570 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| a53000b0 | 2015-05-26 10:50:35 | Try Sleep(1) instead of Sleep(0) while waiting for queries. On a loaded machine, Sleep(0) can be very slow (40+ms) while Sleep(1) is consistantly 1-2ms. BUG=488571 Change-Id: I71de0b4cfc334a2476b7c613c103e77fe759041d Reviewed-on: https://chromium-review.googlesource.com/273183 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 4dfe8094 | 2015-08-21 17:44:35 | Always collect variables when generating HLSL HLSL output needs uniform information generated by the collectVariables() step to be able to write uniform registers. Tested manually by compiling a shader with a uniform with shader_translator. BUG=angleproject:1132 Change-Id: I91d19b5fa789b7b33cf76a654ffbbd17d279db01 Reviewed-on: https://chromium-review.googlesource.com/294962 Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> | ||
| 4001e1da | 2015-08-12 14:08:25 | Support creating render targets of non-zero mip levels in TextureStorage9. BUG=angleproject:970 Change-Id: I02caf1a5d15a8e32e68b63362e86e3a689dbdb5a Reviewed-on: https://chromium-review.googlesource.com/293221 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 025e76a0 | 2015-08-12 13:59:49 | When possible, create RenderTarget9s from textures. Unless the RenderTarget9 is backed by a texture, it's not possible to sample from it. This is required to sample from D3D9 renderbuffers when they are bound to texture targets. BUG=angleproject:970 Change-Id: Id667a5e44c1f959609bc653a974ede5b93ec9a3e Reviewed-on: https://chromium-review.googlesource.com/293290 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 1528e56b | 2015-08-24 15:10:58 | Bind native GL attributes to match the locations in gl::Program. Simplifies a lot of logic when we don't have to maintain mappings between the driver and gl-layer locations. BUG=angleproject:882 BUG=angleproject:1123 Change-Id: Ia94257a322f768fdfa3167000a46a0715820ef4d Reviewed-on: https://chromium-review.googlesource.com/295231 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| a5ef8d89 | 2015-08-19 14:52:21 | Enabled loop indexing validation for fragment shaders compiled using renderers configured for FL9_3 and below. BUG=angleproject:1130 Change-Id: I2b5d7091c394565354b14fbf9297276dce8d92a5 Reviewed-on: https://chromium-review.googlesource.com/294733 Tested-by: Cooper Partin <coopp@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| cc16c913 | 2015-08-20 17:18:43 | gpu_test_expectations: Fix a -Wheader-hygiene Reland with a fix for the compilation on Windows. Rereland with a fix for the Chromium compilation on Windowds. Our angle_config.h was using "using namespace" in a header as a way to import symbols to shim Chromium's base. This patch changes this to import each function separately using "using". This patch will allow our gpu_test_expectations to compile inside Chromium on Linux. BUG=angleproject:1127 Change-Id: Iefb9e253e278fa766a11e50fc6a69eceb2e81dd9 Reviewed-on: https://chromium-review.googlesource.com/295192 Tested-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| bc0b1d47 | 2015-08-21 17:00:03 | Track local dirty state in StateManagerGL. Make the state setting functions of StateManagerGL public. BUG=angleproject:1113 Change-Id: Ic435c06ece24064a2f2403119fa30309aba37608 Reviewed-on: https://chromium-review.googlesource.com/295240 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| c349ec03 | 2015-08-21 16:53:12 | Re-land "Move shader attributes into Program shared data." Re-land with a fix for a warning in 32-bit Windows. Making the Program own the attribs, and the Impl only see a read-only copy cleans up the Impl object. It also allows us to more cleanly isolate certain coded into D3D. BUG=angleproject:1123 Change-Id: I73bda4b6d9e675d87d087d44757c598437d607f2 Reviewed-on: https://chromium-review.googlesource.com/295191 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| 4e10722d | 2015-08-24 14:12:17 | Revert "Move shader attributes into Program shared data." Once again a signed/unsigned mismatch warning in 32-bit. src\libangle\renderer\gl\programgl.cpp(190) : warning C4018: '<' : signed/unsigned mismatch BUG=angleproject:1123 This reverts commit 2d7731838722a53102e5086dba445e37f6e98d7e. Change-Id: Icd26906ead1eaa06b4bd3ff7fc2b10bef4f46022 Reviewed-on: https://chromium-review.googlesource.com/295241 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| 2d773183 | 2015-08-18 10:27:28 | Move shader attributes into Program shared data. Making the Program own the attribs, and the Impl only see a read-only copy cleans up the Impl object. It also allows us to more cleanly isolate certain coded into D3D. BUG=angleproject:1123 Change-Id: I469051eb066fc56e55282affa2d5398b394ab8d2 Reviewed-on: https://chromium-review.googlesource.com/293826 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> | ||
| c1654203 | 2015-08-21 17:04:16 | Revert "gpu_test_expectations: Fix a -Wheader-hygiene" When building in Chromium, on Windows, we got a symbol clash for base::SysInfo::OperatingSystemVersionNumbers This reverts commit d2eaa37d77cecde113267fd0fb66697f9b5dfe09. BUG= Change-Id: Icffa01a26368cecc9eb3c2ada8bf41143bd3c50a Reviewed-on: https://chromium-review.googlesource.com/295230 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| 36cfd6a3 | 2015-08-18 10:46:20 | Clean up Program::validate. This method should really be an Impl method, since it corresponds to a specific OpenGL call. Making it an Impl method also allows us to remove applyUniforms, which doesn't correspond to a GL call. BUG=angleproject:1123 Change-Id: I2abee3cfaa7393cad44566782d51ed701e84846b Reviewed-on: https://chromium-review.googlesource.com/293825 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| d1fe1646 | 2015-08-21 16:26:04 | Move UBO bindings into Program shared state. Sharing the bindings with the Impl (read-only) allows us to clean out the applyUniformBuffers method from the Impl class, and make it D3D- only. BUG=angleproject:1123 Change-Id: Icb51a90cb227bbbdd83319ea308b68aa1c4c325e Reviewed-on: https://chromium-review.googlesource.com/293824 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| 72f39c15 | 2015-08-21 16:10:04 | Make more Program sampler methods D3D-only. Several of these methods that deal with the sampler mapping can be made D3D-only quite simply by casting to ProgramD3D in the Renderer. BUG=angleproject:1123 Change-Id: Ia6648d26744f9aa69a4a0facb356209df471fa7b Reviewed-on: https://chromium-review.googlesource.com/293823 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| d2eaa37d | 2015-08-20 17:18:43 | gpu_test_expectations: Fix a -Wheader-hygiene Reland with a fix for the compilation on Windows. Our angle_config.h was using "using namespace" in a header as a way to import symbols to shim Chromium's base. This patch changes this to import each function separately using "using". This patch will allow our gpu_test_expectations to compile inside Chromium on Linux. BUG=angleproject:1127 Change-Id: I19b97c2a37accc683a35809859c604bcaf3dcc43 Reviewed-on: https://chromium-review.googlesource.com/295150 Tested-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| 0ef5c746 | 2015-08-21 10:51:40 | Revert "gpu_test_expectations: Fix a -Wheader-hygiene" This patch causes a compile failure, probably because some symbols had been declared in the root namespace and should have been moved to base. (but weren't compiled under Linux) BUG= This reverts commit f41e04dbb8602a349351c537b735eb991588a944. Change-Id: Ia2292bf9dcbf429f47c8c8632356574a91ff0a1d Reviewed-on: https://chromium-review.googlesource.com/295110 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| 1c207ae9 | 2015-08-20 17:29:41 | dEQP.gypi: tweaks to enable in-Chromium compilation on Linux Two things were needed: - The re-enabling of exception and RTTI as it is disabled in Chromium and in a different way than in ANGLE standalone - Link decpp with dl BUG=angleproject:1127 Change-Id: I9ac37545762dc13320c7fba418fba82d7961e83e Reviewed-on: https://chromium-review.googlesource.com/294822 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| f41e04db | 2015-08-20 17:18:43 | gpu_test_expectations: Fix a -Wheader-hygiene Our angle_config.h was using "using namespace" in a header as a way to import symbols to shim Chromium's base. This patch changes this to import each function separately using "using". This patch will allow our gpu_test_expectations to compile inside Chromium on Linux. BUG=angleproject:1127 Change-Id: I99a78ab9fddc11b81e3e5154d41cd8bbbb2ac28d Reviewed-on: https://chromium-review.googlesource.com/294821 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| e5a1f271 | 2015-08-21 02:58:25 | Use override in all the places where it is possible This will avoid -Winconsistent-overrides in the future. Done using the -Wsuggest-override warning of GCC 5.1 BUG= Change-Id: I707a649dc368f5dd1e139fd144370abcac0b6263 Reviewed-on: https://chromium-review.googlesource.com/294920 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| 37c3979e | 2015-08-20 14:19:46 | Revert "Revert "Make the default framebuffer owned by Surface"" Reland the commit after fixing a bug in FramebufferAttachment. This reverts commit 18fdcbcf1d02d3b3b4b5c712f05058f2e8d629c6. BUG=angleproject:891 Change-Id: I07e08de52bfce8d84d070fc7bc15883009298a4d Reviewed-on: https://chromium-review.googlesource.com/294831 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| 314f9b33 | 2015-08-20 14:13:20 | FramebufferAttachment: do not attach with an uninitialized mResource Otherwise attach will try to call onDetach on mResource, causing an UB (and a segfault in most cases). This fixes a crash when running angle_unittests on Mac with another patch. BUG=angleproject:891 Change-Id: I09d34d7246849059a13bc2fb00a61837cccd97d7 Reviewed-on: https://chromium-review.googlesource.com/294830 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| b5d61dac | 2015-08-20 13:43:02 | Revert "Add deep copying support for typed AST nodes" This reverts commit d0d59aa4cbce2da92deaa0f4021dfed8885e8d01 and commit 760379532b02ae039790f1e8f1c89e03481aab4b To be fixed will be the newline at the end of IntermNode_tests.cpp and the -Winconsistent-missing-override BUG= Change-Id: I57693bdff01f9e3f03b2fbb5dc53fa21e68c2789 Reviewed-on: https://chromium-review.googlesource.com/294820 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| a7b6db7f | 2015-08-19 14:26:30 | Only apply Appendix A limitations to ESSL 1.00 shaders ESSL 1.00 specifies a set of minimum functionality, and ANGLE automatically checks that WebGL shaders stay within this minimum functionality. However, this should only apply to ESSL 1.00. ESSL 3.00 shaders compiled for WebGL 2.0 should not be subject to these restrictions, since there is no similar spec for minimum functionality for ESSL 3.00. In case a non-WebGL based shader spec is used, the restrictions can be toggled from outside by specifying the SH_VALIDATE_LOOP_INDEXING flag, same as before this patch. BUG=angleproject:1116 TEST=WebGL 2 conformance tests Change-Id: Idaec0fb4c7c85cd72020d0b23112fddb1b020571 Reviewed-on: https://chromium-review.googlesource.com/293933 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com> | ||
| 76037953 | 2015-08-20 13:18:44 | Fix compilation on Mac, adding a newline in IntermNode_test.cpp BUG= Change-Id: Ie935486bf44bacb89660419c0dabd0ff38838c90 Reviewed-on: https://chromium-review.googlesource.com/294800 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| 5f116e5d | 2015-08-20 11:13:32 | Fix regression with GetNextGLSLAttributeType. A refactoring bug slipped in that used the non-transposed row count for non-square matrices, causing an ASSERT failure in Debug. It's unfortunately not easy to revert the previous change, so instead fix it here. BUG=angleproject:1129 Change-Id: I0de66de46a24b402c93da68f189a2c65616c2006 Reviewed-on: https://chromium-review.googlesource.com/294641 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| ec1be6d5 | 2015-08-19 15:07:43 | Suppress dEQP negative_api compressedtexsubimage2d_invalid_size on Linux Temporarily suppress this test as it might be caused by a dEQP bug. BUG=angleproject:1128 Change-Id: I9c6f1b95edca55f54f3292227ebc81d4ddc57f0a Reviewed-on: https://chromium-review.googlesource.com/294580 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| d0d59aa4 | 2015-08-18 13:49:45 | Add deep copying support for typed AST nodes Removing dynamic indexing of vectors and matrices will require copying the indexed nodes in case they are written. Any type of l-value node that doesn't have side effects may need to be copied. Add a copying function for all typed node classes so that this copying can be performed. Private copy constructors are used to implement the deepCopy function in order to make maintenance easier. With copy constructors, each subclass only needs to take care of copying its own members, and not the base class members, which reduces the possibility of errors. Copy constructors are disabled for all node classes that don't support deep copying by inheriting TIntermNode from angle::NonCopyable. Assignment operator is disabled for all node classes through inheriting angle::NonCopyable. This applies also to classes that now get the private copy constructor. Explicit copy constructor and assignment operator declarations are added to some classes which show up in node member variables to make code clearer. BUG=angleproject:1116 TEST=angle_unittests Change-Id: Ia757b69397837f8309f0e7511c0cd24ca2c7a721 Reviewed-on: https://chromium-review.googlesource.com/293931 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com> | ||
| 5c42266e | 2015-08-18 10:46:15 | Make Program::usesPointSize D3D-only. This test is only used in the D3D code, so we can remove this Impl method. If we need it in the future we can always support it more generally from the translator, or handle it differently on each Renderer. BUG=angleproject:1123 Change-Id: Ic4a22ad6cec93726195e68200fc25cc2956be44c Reviewed-on: https://chromium-review.googlesource.com/293822 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| 31c8c56a | 2015-08-19 14:08:03 | Make ProgramImpl::compileProgramExecutables D3D-only. Finally we can isolate this method into the D3D-only code, and remove the interface from ProgramImpl. BUG=angleproject:1123 Change-Id: I253b15d44d4cf8bbb5dbeaa78bbcc431a5267bf7 Reviewed-on: https://chromium-review.googlesource.com/293765 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| 18fdcbcf | 2015-08-19 18:12:44 | Revert "Make the default framebuffer owned by Surface" Seems to be causing failures on the Mac GPU FYI bots. SurfaceTest.DestructionDeletesImpl seems to crash. BUG=angleproject:891 BUG=522557 This reverts commit 264ab56f2e70431e8310f9353952acd3b22b466f. Change-Id: I80aeecb8e191de011d9afe6534d0285dcffa82a3 Reviewed-on: https://chromium-review.googlesource.com/294540 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| 1661fde6 | 2015-08-18 11:29:46 | ProgramGL: Mark all columns of matrix attributes as active The active attributes are used to determine which of the vertex attributes to enable. Matrices take up several attributes depending on the number of column they have; this patch marks all the columns of active matrix attributes as active. TEST=dEQP-GLES2.functional.shaders.linkage.varying_type_mat* BUG=angleproject:1127 Change-Id: I82f548f329f872c4e66aa0e4e71c6061a55b9987 Reviewed-on: https://chromium-review.googlesource.com/294261 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| 26e355b8 | 2015-08-14 14:16:19 | Add full support for line continuation in the preprocessor Re-landing earlier change with constant signedness fixed (was causing build issues on Linux). Line continuation in ESSL 3.00 needs to be processed before tokenization, since tokens can span the line continuation. On the other hand, ANGLE's tokenizer keeps track of line numbers, and whenever a line continuation appears the line number still needs to be incremented by one, just like on a regular newline. That's why line continuation is now implemented as follows: when the shader strings are concatenated in Input, they are also checked for line continuation. Whenever line continuation is encountered, the string is cut before that point. When the tokenizer asks for more input, the string starting from the character after line continuation is passed to it, and the line number is incremented from Input. This way the tokenizer can parse tokens that span multiple lines - it never sees the line continuation - but still keeps track of the line number correctly. Relevant spec is in ESSL 3.00 section 3.2 "Source strings". Support for line continuation also applies to ESSL 1.00. ESSL 3.00 spec section 1.5 says that line continuation support is mandated when an ESSL 1.00 shader is used with the OpenGL ES 3.0 API, and is optional when ESSL 1.00 is used with the OpenGL ES 2.0 API. TEST=dEQP-GLES3.functional.shaders.preprocessor.line_continuation.* (all pass), angle_unittests BUG=angleproject:1125 Change-Id: Ic086aacac53cd75bf93c0fda782416501d2f842b Reviewed-on: https://chromium-review.googlesource.com/294200 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com> | ||
| 264ab56f | 2015-08-12 12:39:52 | Make the default framebuffer owned by Surface Reland with a fix for SurfaceTest in angle_unittests and fixes for signed-unsigned warnings In CGL there is no notion of default Framebuffer and MakeCurrent only makes a context current but not a drawable. Instead, everything is done via render to texture. For that reason, different surfaces will have different FBOs as default framebuffers, which causes that change. BUG=angleproject:891 Change-Id: I0664896bc335b1a757226aaa212536b8f9d0f08f Reviewed-on: https://chromium-review.googlesource.com/293752 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| ccdf74b8 | 2015-08-18 10:46:12 | Move TF Feedback linked varyings into D3D-only. The LinkedVarying structure is a D3D-specific type, and the GL back-end doesn't need the extra info. Isolate this into the D3D back-end so we can clean up the Impl inteface. BUG=angleproject:1123 Change-Id: I76d77ac505876d865e3e02f47acbfd6665a9507e Reviewed-on: https://chromium-review.googlesource.com/293764 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> | ||
| 11cd6af6 | 2015-08-18 15:54:01 | Revert "Make the default framebuffer owned by Surface" Compilation warning on Windows This reverts commit 6cb2ae8292e69aa110c89e0465366b9f049c1168. Change-Id: I4ecadf5d8e909f986da186a7326cfa0922ae8710 Reviewed-on: https://chromium-review.googlesource.com/294241 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| 6cb2ae82 | 2015-08-12 12:39:52 | Make the default framebuffer owned by Surface Reland with a fix for SurfaceTest in angle_unittests and fixes for signed-unsigned warnings In CGL there is no notion of default Framebuffer and MakeCurrent only makes a context current but not a drawable. Instead, everything is done via render to texture. For that reason, different surfaces will have different FBOs as default framebuffers, which causes that change. BUG=angleproject:891 Change-Id: Ie9a72de01a58e583a1bfa3f4a055debb860b912f Reviewed-on: https://chromium-review.googlesource.com/293713 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Corentin Wallez <cwallez@chromium.org> | ||
| e473deee | 2015-08-18 14:49:01 | Clean up uniform block Program Impl APIs. The D3D-specific code we can split into D3D-only methods, and the GL-level shared code we can place in Program instead of making Impl methods. This cleans up the Impl inteface significantly. BUG=angleproject:1123 Change-Id: Ibcb7d07733eb939adf5bb4f5395a661875a60238 Reviewed-on: https://chromium-review.googlesource.com/293763 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| 39939686 | 2015-08-18 10:37:22 | Fix improper error handling in Image11. A device lost event would improperly skip returning an error, which could lead us down a code path that would read/write to invalid locations. BUG=519642 Change-Id: Iba437b9b24cdf44320a944a85146f5f73be9f7a6 Reviewed-on: https://chromium-review.googlesource.com/293903 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> |