- 09 Mar, 2018 1 commit
-
-
James Darpinian authored
Detects undefined behavior when a buffer is bound to a transform feedback binding point and a non transform feedback binding point at the same time. Also moves the transform feedback buffer generic binding point out of the transform feedback object and into the context's global state, to match driver behavior. This way binding a new transform feedback object does not affect GL_TRANSFORM_FEEDBACK_BUFFER_BINDING which is similar to how VAOs work with GL_ARRAY_BUFFER_BINDING. Bug: 696345 Change-Id: If3b9306cde7cd2197a8ce35e10c3af9ee58da0b8 Reviewed-on: https://chromium-review.googlesource.com/853130 Commit-Queue: James Darpinian <jdarpinian@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
- 08 Mar, 2018 8 commits
-
-
Luc Ferron authored
Bug:angleproject:1683 Change-Id: I8c79cc92406b210c9d143761ffe4ef74e14c6bed Reviewed-on: https://chromium-review.googlesource.com/956090 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Brandon Jones authored
copyTextureCHROMIUM should generate INVALID_VALUE when using a NPOT texture and level not equal to zero, so we should add validation to catch this case. BUG=angleproject:2380 Change-Id: I7ca2e657287c11d560db0ad296f8e87ed0c19798 Reviewed-on: https://chromium-review.googlesource.com/956018 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
This pipes errors up from the Impl to the top level. There are still a few places were error swallowing is needed, because the Framebuffer API doesn't support returning an error. Bug: angleproject:2372 Change-Id: Idc06bda1817fd28075940f69874d8b6ba69194f9 Reviewed-on: https://chromium-review.googlesource.com/954290 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Luc Ferron <lucferron@chromium.org>
-
Jamie Madill authored
The RenderTargetCache avoids many multiple calls to getRenderTarget, and should speed up the code somewhat on state changes. Also as a side benefit removes a bunch of swallowed ANGLE errors. Bug: angleproject:2372 Change-Id: I072481856aae8607f17a116e25c71acf04b4cc68 Reviewed-on: https://chromium-review.googlesource.com/948785Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Luc Ferron authored
Bug: angleproject:2356 Change-Id: I33888f9b4ebaf4b0b5af4ad59b12ad963325a790 Reviewed-on: https://chromium-review.googlesource.com/921882 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
This plumbs the front-end code, but doesn't implement Error handling for any objects yet. Framebuffers and VertexArrays will get error handling from their syncState methods. Bug: angleproject:2372 Change-Id: I226049e25ac7af2bdd3c4787b67a5d297c0b9c4b Reviewed-on: https://chromium-review.googlesource.com/954289 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Luc Ferron <lucferron@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Luc Ferron authored
The dEQP tests cannot be turned on before immediate data for drawElements is supported. Bug:angleproject:2364 Change-Id: Id5fd6fbc0c74f2dba08341f36ca0091d540f4ed8 Reviewed-on: https://chromium-review.googlesource.com/951402Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
-
Jamie Madill authored
This regressed in http://crrev.com/c/948782. It may have also exposed a problem where our bots are not correctly using the layers. Bug: angleproject:2361 Change-Id: I764bb821b5bfd2571a4c43f9444dcef67ea65bc4 Reviewed-on: https://chromium-review.googlesource.com/954412Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
- 07 Mar, 2018 12 commits
-
-
Jamie Madill authored
This class encapsulates the Framebuffer::syncState update pattern that caches the RenderTargets for the back-end. RenderTargets abstract away the differences between Textures/Renderbuffers/Surfaces for the back-end and allows the back-end to treat the various types the same. This helper class allows sharing code to cache the RenderTargets. Bug:angleproject:2372 Change-Id: Ib2beb28a616dee1d34c485cd1a19b7202ef70a60 Reviewed-on: https://chromium-review.googlesource.com/948783Reviewed-by:
Luc Ferron <lucferron@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Yuly Novikov authored
This reverts commit 2202680c. Reason for revert: ASAN found error https://ci.chromium.org/buildbot/chromium.gpu.fyi/Mac%20FYI%20GPU%20ASAN%20Release/210 Original change's description: > Add NPOT validation to copyTextureCHROMIUM > > copyTextureCHROMIUM should generate INVALID_VALUE when using a NPOT > texture and level not equal to zero, so we should add > validation to catch this case. > > BUG=angleproject:2380 > > Change-Id: I0ea50a981e4d8f10f5913969f6b629617b57aa15 > Reviewed-on: https://chromium-review.googlesource.com/951713 > Commit-Queue: Geoff Lang <geofflang@chromium.org> > Reviewed-by: Geoff Lang <geofflang@chromium.org> TBR=geofflang@chromium.org,jmadill@chromium.org,brandon1.jones@intel.com Change-Id: I04dcbd5e1d97b1bd968b26a06e4d3e4d175be0d8 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:2380 Reviewed-on: https://chromium-review.googlesource.com/953343Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
-
Tobin Ehlis authored
Bug: angleproject:2393 Moving to HEAD of LVL master on afternoon of 3/6/18. Made some updates to BUILD.gn to add args to spirv tools external_revision_generator.py script. Re-enable ANGLE Vulkan build. Change-Id: I1705d7a2acae578bab9bbd8bb93176107e0e21dc Reviewed-on: https://chromium-review.googlesource.com/952547Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
See https://chromium.googlesource.com/chromium/src/+/master/styleguide/c++/c++.md#file-headers Bug: angleproject:1944 Change-Id: Ic2e284ac75ecab19e8d6c5b97e1a9d9376984f3b Reviewed-on: https://chromium-review.googlesource.com/953133Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Luc Ferron <lucferron@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Brandon Jones authored
copyTextureCHROMIUM should generate INVALID_VALUE when using a NPOT texture and level not equal to zero, so we should add validation to catch this case. BUG=angleproject:2380 Change-Id: I0ea50a981e4d8f10f5913969f6b629617b57aa15 Reviewed-on: https://chromium-review.googlesource.com/951713 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
The RenderPass load/store ops allow us to specify how we want to use the data from the attachments. Previously we had the load op set to CLEAR always, which would prevent us from doing multiple kinds of operation. Using LOAD should conversatively work in any situation as long as we can ensure each Image is cleared before we use it. To this effect this patch also inserts a preliminary clear into each Texture or Renderbuffer Image's initialization. We already had this for Surfaces. In the future we'll improve this by inserting proper load/store ops, but this unblocks a lot more functionality in the interim. Bug: angleproject:2361 Change-Id: I7610eaa39d81b23dd74b4a24b7f28a66a6dfffc6 Reviewed-on: https://chromium-review.googlesource.com/948782 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Luc Ferron <lucferron@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Tobin Ehlis authored
Bug: angleproject:2393 Rolling Vulkan validation code forward to HEAD of master as of 3/6/18 afternoon. Disable Vulkan from the ANGLE build until ANGLE lands in Chromium. After that second part of roll will be submitted. Change-Id: I3c98b42a0b8999e8aa26f538959d888060c2026a Reviewed-on: https://chromium-review.googlesource.com/952525Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Corentin Wallez authored
This makes them consistent with the other texture types. Also adds a test for using texture(sampler2DRect, ...). BUG=chromium:757974 BUG=angleproject:1650 Change-Id: Ie966da928ae0c83850da1e530e72c0d501909394 Reviewed-on: https://chromium-review.googlesource.com/946675 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Olli Etuaho <oetuaho@nvidia.com>
-
Olli Etuaho authored
Adding missing "src". BUG=angleproject:2267 TEST=python scripts/run_code_generation.py Change-Id: I89d981c8f09e6d0839d0b796a2ea14a8466f98a7 Reviewed-on: https://chromium-review.googlesource.com/952925Reviewed-by:
Olli Etuaho <oetuaho@nvidia.com> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Olli Etuaho authored
Instead of using an std::map at each symbol table level, use the gen_builtin_symbols.py script to build a function to query unmangled names. BUG=angleproject:2267 TEST=angle_unittests Change-Id: I4f1cf1df1f50fe9d909f3249150ee002ee6efb61 Reviewed-on: https://chromium-review.googlesource.com/931885 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Yuly Novikov authored
Timeout is not enough to suppress functional.native_color_mapping.native_window.* since it's retried 3 times and always times out. Need to skip. BUG=angleproject:2382 Change-Id: Ib87f25cc6c17be2b5c4c592374b28386685115d2 Reviewed-on: https://chromium-review.googlesource.com/951973Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
-
Jamie Madill authored
This completes the work for the simple texture sample. Bug: angleproject:2167 Change-Id: I47c6794fa7cd59e295a98623d9ce8879ea1d3298 Reviewed-on: https://chromium-review.googlesource.com/952566Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
- 06 Mar, 2018 7 commits
-
-
Frank Henigman authored
glDrawElements will now work with indices and/or vertex data in client memory, as well as in a buffer object. Enable corresponding tests. BUG=angleproject:1683 Change-Id: Iefb9796a48b21ed6f9a837b08b0ad3218ff6dd6b Reviewed-on: https://chromium-review.googlesource.com/915721 Commit-Queue: Frank Henigman <fjhenigman@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Frank Henigman authored
To support indexed draws it's useful to have a cheap query for the presence of vertex attribute data in client memory. This patch adds a bit mask to keep track of such attributes. It also lets us simplify VertexArrayVk::streamVertexData() slightly. BUG=angleproject:1683 Change-Id: I871bfb885112650b025e110c383db3c391eafb90 Reviewed-on: https://chromium-review.googlesource.com/947927 Commit-Queue: Frank Henigman <fjhenigman@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Corentin Wallez authored
This completes the refactor by using the packed enums in the gl:: layer and in the backends. The packed enum code generation is modified to support explicitly assigning values to the packed enums so that the TextureTarget cube map faces are in the correct order and easy to iterate over. BUG=angleproject:2169 Change-Id: I5903235e684ccf382e92a8a1e10c5c85b4b16a04 Reviewed-on: https://chromium-review.googlesource.com/939994 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Geoff Lang authored
BUG=803034 Change-Id: I69ca7a86e1841e86c6a8cf6a0b7279a8e42b0012 Reviewed-on: https://chromium-review.googlesource.com/937964 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Luc Ferron authored
Use the Observer pattern to get notified when the BufferVk we've copied our data from is changing. We will only recopy the data if anything has changed, but otherwise we'll keep drawing with the same index buffer we've created previously. Bug: angleproject:2335 Change-Id: Ib65677b4d5ec90c46a5e3b975fffd1fddeed59e7 Reviewed-on: https://chromium-review.googlesource.com/948622 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
Bug: angleproject:2347 Change-Id: I9bb1494a960969bb6e7c8656c27c7c180ddba069 Reviewed-on: https://chromium-review.googlesource.com/922458Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jiawei Shao authored
This patch fixes a bug in the method of validating the number of combined interface blocks in currenct ANGLE implementation. When a resource (uniform block, shader storage block, image, atomic counter buffer, atomic counter) is used by multiple shader stages, each such use counts separately against the combined resource limit. This patch also fixes an unexpected link error in a related test by skipping the test when the number of ssbos exceeds the resouorce limit. BUG=angleproject:1951 TEST=angle_end2end_tests Change-Id: I0de439a412148e0d5ebef3c27d20e0cbd536175a Reviewed-on: https://chromium-review.googlesource.com/945143 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jiajia Qin <jiajia.qin@intel.com> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
- 05 Mar, 2018 8 commits
-
-
Lingfeng Yang authored
If we attempt to compile the GLES1 emulation shader when the client version is 1, we use the webgl 1 / GLES2 spec, not the GLES3 spec that we use for GLES1 emulation. This CL adds a case in Compiler.cpp for ES 1 contexts to use the higher spec shader compiler. BUG=angleproject:2306 Change-Id: I86fe534dd405279155bd81680fed77b8f9a09042 Reviewed-on: https://chromium-review.googlesource.com/925548Reviewed-by:
Lingfeng Yang <lfy@google.com> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com>
-
Lingfeng Yang authored
GLES1 has at least two places where all texture objects can carry more state: - Crop rectangle, used with glDrawTex - Generate mipmap parameter, which lets the user auto-generate mipmaps for textures from a texture parameter This CL adds them to the Texture / TextureState classes. BUG=angleproject:2306 Change-Id: Ia43882d36f166b49a09434e77f8c288478e2a454 Reviewed-on: https://chromium-review.googlesource.com/909579Reviewed-by:
Lingfeng Yang <lfy@google.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com>
-
Lingfeng Yang authored
BUG=angleproject:2306 Change-Id: I93e85f3014e7d9a645e13d3c3025b5360e2a63db Reviewed-on: https://chromium-review.googlesource.com/925550 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Corentin Wallez authored
In OpenGL there are two enum "sets" used by the API that are very similar: texture types (or bind point) and texture targets. They only differ in that texture types have GL_TEXTURE_CUBEMAP and target have GL_TEXTURE_CUBEMAP_[POSITIVE|NEGATIVE]_[X|Y|Z]. This is a problem because in ANGLE we use GLenum to pass around both types of data, making it difficult to know which of type and target a variable is. In addition these enums are placed somewhat randomly in the space of OpenGL enums, making it slow to have a mapping from texture types to some data. Such a mapping is in hot-code with gl::State::mTextures. This commit stack makes the texture types and target enums be translated to internal packed enums right at the OpenGL entry point and used throughout ANGLE to have type safety and performance gains. This is the first of two commit which does the refactor for all of the validation and stops inside gl::Context. This was the best place to split patches without having many conversions from packed enums to GL enums. BUG=angleproject:2169 Change-Id: Ib43da7e71c253bd9fe210fb0ec0de61bc286e6d3 Reviewed-on: https://chromium-review.googlesource.com/758835 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Olli Etuaho authored
A script gen_builtin_symbols.py now generates code for initializing built-in function symbols. The TFunction objects are initialized at C++ compile time. The source file used for the functions is in a format that's similar to how functions are given out in the GLSL spec, so it is easy to maintain. The function symbols are still inserted to the symbol table levels same as before. Getting rid of inserting the symbols at runtime is intended to be done as follow-up. This speeds up angle_unittests on Linux in release mode by a bit less than half, and in debug mode by more than half. BUG=angleproject:2267 TEST=angle_unittests Change-Id: I11c9de98c74d28e7e8cdf024516e2f6ee30ca33e Reviewed-on: https://chromium-review.googlesource.com/924155 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Olli Etuaho authored
This is based on recent discussion in Khronos, though public specs have not yet been updated to reflect this. BUG=angleproject:2388 TEST=angle_unittests Change-Id: I66a0d03b3c2bb9740772a813b543f8f6c6bb2a28 Reviewed-on: https://chromium-review.googlesource.com/947977Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Jamie Madill authored
This implements a notification to the Framebuffer that an attachment had a state change that might require recreating the VkFramebuffer. This implementation is much simpler than the prior method with signal notifications. Only currently implemented for TextureVk but will also be implemented for RenderbufferVk. Bug: angleproject:2347 Change-Id: I05f7da4132f6ed2bda02671e8ba5ee9805252928 Reviewed-on: https://chromium-review.googlesource.com/930024Reviewed-by:
Luc Ferron <lucferron@google.com> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Luc Ferron authored
Bug: angleproject:2335 Change-Id: Iabd6ae8181c6d3fb487f953a6fbf699db568a1c9 Reviewed-on: https://chromium-review.googlesource.com/941261 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
- 02 Mar, 2018 4 commits
-
-
Lingfeng Yang authored
There are some GLES1-specific caps such as the number of multitexturing units and the matrix stack depths. This is important for validation. This uses Table 6.20 and 6.22 from the GLES 1.1 spec. Specify them in Caps.h and minimums in .cpp. Since we will be emulating GLES1, there is no plan to collect the caps from the native implementation; just initialize reasonable values in Context.cpp. In fact, we will go with the values above minimum: - 4 multitexturing units (vs. 2 minimum) - 6 clip plans (vs. 1 minimum) - 16 stack depth for projection matrices (vs. 2 minimum) - 16 stack depth for texture matrices (vs. 2 minimum) + clang-format Caps.cpp / h BUG=angleproject:2306 Change-Id: Ib28c317426be598a2adad7bd01920c03f27dc74a Reviewed-on: https://chromium-review.googlesource.com/925549 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Xinghua Cao authored
Because D3D11 makes a coherent write, so memoryBarrier is not needed on D3D backend. This patch also simples some test cases and modifies some cases errors when accessing memory after an incoherent write, but does not use memoryBarrier. BUG=angleproject:2280 TEST=angle_end2end_tests.ComputeShaderTest.* Change-Id: Iee5d105a0b6d8534aded03fdaaefc909864d33a4 Reviewed-on: https://chromium-review.googlesource.com/937023Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This completes the basic refactor to the Observer pattern. Bug: angleproject:2372 Change-Id: I810deff7c7e39baa64b57ce2a79cd732b1af7c34 Reviewed-on: https://chromium-review.googlesource.com/940862 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Luc Ferron <lucferron@chromium.org>
-
Jiawei Shao authored
This patch adds the link validations on the uniforms defined in a geometry shader. 1. Validate if there is any link mismatch between a geometry shader uniform and a uniform defined in another shader in the current graphics pipeline. 2. Validate if the number of images, samplers or atomic counters in a geometry shader exceeds the related resource limit. 3. Validate if there is name contradiction between a geometry shader uniform and a vertex shader attribute. BUG=angleproject:1941 TEST=dEQP-GLES31.functional.shaders.linkage.es31.geometry.uniform.* dEQP-GLES31.functional.geometry_shading.basic.* dEQP-GLES31.functional.geometry_shading.conversion.* dEQP-GLES31.functional.geometry_shading.emit.* dEQP-GLES31.functional.geometry_shading.varying.* dEQP-GLES31.functional.geometry_shading.instanced.geometry_* dEQP-GLES31.functional.geometry_shading.instanced.invocation_output_* dEQP-GLES31.functional.geometry_shading.instanced.draw_* Change-Id: I365aee624a3a79658c3e4c7487a586cf9532b529 Reviewed-on: https://chromium-review.googlesource.com/939264 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:Geoff Lang <geofflang@chromium.org>
-