- 08 May, 2018 1 commit
-
-
Jamie Madill authored
These builders are replacing the old standalone builders and the old compile-only builders. They should be much faster. They also can be extended in the future when we support running tests from ANGLE standalone. Bug: chromium:833999 Change-Id: Ice44c0fb8cb32d8be573f81d5df858509b00a107 Reviewed-on: https://chromium-review.googlesource.com/1049959Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
- 07 May, 2018 4 commits
-
-
Geoff Lang authored
BUG=angleproject:2464 Change-Id: Ia0f0788a1bc4d2ecd883b058f15c629cac5fd166 Reviewed-on: https://chromium-review.googlesource.com/1036063 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Olli Etuaho authored
quadVertices.data() pointer needs to remain valid until drawArrays is called. To guarantee that quadVertices should stay in the stack until the end of drawQuad(). BUG=angleproject:2533 TEST=angle_end2end_tests Change-Id: I263262db9a9ed9c9cd0d8679addd09677ad7179e Reviewed-on: https://chromium-review.googlesource.com/1046600 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Corentin Wallez authored
When running angle_end2end_tests unfiltered with the OpenGL and Vulkan backends enabled, the test window was recreated all the time and grabbed focus every-time it was created. This made it impossible to do anything with the machine running the tests. Fix this by having one OSWindow per renderer group that's lazily created: this solves most of the issue since only a couple windows end up being created, and at the beginning of the test suite. BUG= Change-Id: I7a51300f0d59d8b6bb79e54d20b3acbf01068002 Reviewed-on: https://chromium-review.googlesource.com/1038433 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Jiawei Shao authored
This patch is the first one of the series that organize implementation dependent resource limits on every type of shader into ShaderMap and clean up all the related code. In the next patch all such resource limits are put in the corresponding ShaderMaps. BUG=angleproject:2169 Change-Id: I40cb58c55b2e82df33221ddb36eff0abcd7e8b22 Reviewed-on: https://chromium-review.googlesource.com/1034108 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
- 04 May, 2018 4 commits
-
-
Geoff Lang authored
BUG=angleproject:2527 Change-Id: I000f68366de4119375b6d3c79bc2eff3ebd5db9e Reviewed-on: https://chromium-review.googlesource.com/1042885 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Olli Etuaho authored
This works around the most common instances of a bug that reproduces on some NVIDIA OpenGL drivers prior to version 397.31. BUG=chromium:798117 TEST=angle_end2end_tests Change-Id: Iafc6a9a64e56fa98b42117149fe6867040e932e5 Reviewed-on: https://chromium-review.googlesource.com/1042190 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Jiawei Shao authored
This patch adds the link validation on the maximum combined shader output resources required in OpenGL ES 3.1 SPEC. OpenGL ES 3.1 SPEC has restrictions on the sum of the number of all active images, shader storage blocks and fragment shader outputs. A link error will be generated if this sum exceeds the implementation- dependent value of MAX_COMBINED_SHADER_OUTPUT_RESOURCES. In order not to affect the existing image tests, this patch also sets a temporary value for maxCombinedShaderOutputResources on D3D11 back-ends. We will set more accurate values for all the UAV related resource limits in the next patch. BUG=angleproject:2345 TEST=dEQP-GLES31.functional.state_query.integer.max_combined_shader_output_resources_* Change-Id: Ib83a19ef0ae0b9af3422b5c970c7c07d96b2359d Reviewed-on: https://chromium-review.googlesource.com/1039155 Commit-Queue: Jiawei Shao <jiawei.shao@intel.com> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Brandon Jones authored
Add generation of libGLESv2.cpp and libGLESv2.def to generate_entry_points.py Bug: angleproject:2476 Change-Id: I86c7fb31f73ccbbbc32b28acca179b11527dff9e Reviewed-on: https://chromium-review.googlesource.com/1040647 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
- 03 May, 2018 3 commits
-
-
Olli Etuaho authored
The D3D11 backend used to calculate the blit areas incorrectly when the source blit area provided via the API stretched outside the source framebuffer in all directions. This is now fixed and the code is also simplified. BUG=angleproject:2521 TEST=angle_end2end_tests Change-Id: I46d5de27464a8455b3956c0be598f75550ca1616 Reviewed-on: https://chromium-review.googlesource.com/1032787Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
JiangYizhou authored
avoid1BitAlphaTextureFormats workaround was added to angle in 288584 due to an old driver bug on Intel and AMD that 1-bit alpha always rounds up when converting from float to unsigned int. The workaround uses rgba8 instead of *a1 to avoid the driver bug and optimizes precision. However, this workaround brings a new issue because 1-bit alpha can only represent u0 or u1 while 8 bits alpha covers from u0 to u255. For example, if we expect to render to a rgb5_a1 renderbuffer, the expected alpha value should be 0 or 255, but actually get a value between 0 and 255 which is incorrect. The current Intel drivers have fixed the old driver bug. So we suggest to disable this workaround for Intel drivers. TEST=dEQP_GLES2.Default/functional_fbo_render_color_clear_rbo_rgb5_a1_depth_component16_stencil_index8 --deqp-egl-display-type=angle-gl BUG=angleproject:2349 Change-Id: I14933f92fa27031ff7442fa437f77a3c67f2f1db Reviewed-on: https://chromium-review.googlesource.com/1034163Reviewed-by:
Jiajia Qin <jiajia.qin@intel.com> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Olli Etuaho authored
The test fails on D3D11, which seems to ignore floor() calls if they're nested in a particular way with magic multipliers inside. BUG=chromium:838885 TEST=angle_end2end_tests Change-Id: I2c8749defa923553bfee69149da15f8e4ddf5096 Reviewed-on: https://chromium-review.googlesource.com/1041959Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
- 02 May, 2018 11 commits
-
-
Tobin Ehlis authored
Bug: angleproject:2418 Change-Id: Ia146c202cff96b1de9cb55ee44fa5479cef36b53 Reviewed-on: https://chromium-review.googlesource.com/1039777Reviewed-by:
Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Tobin Ehlis <tobine@google.com>
-
Jamie Madill authored
Renames the macro to be more ANGLE-ey. Refactoring only. Bug: angleproject:1671 Change-Id: I8f2dd227c7e2025886ec66e85efa877ea261d0ad Reviewed-on: https://chromium-review.googlesource.com/1036209Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Geoff Lang authored
BUG=angleproject:2464 Change-Id: I59fd38c626f7076b4065f25601de3e53c1a446ad Reviewed-on: https://chromium-review.googlesource.com/1040051Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Corentin Wallez authored
BUG=angleproject:2169 Change-Id: I129a9d8e295859daa071a298dab9fe1895315cc0 Reviewed-on: https://chromium-review.googlesource.com/957318Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
-
Jamie Madill authored
This implements masked color clear using clear shaders. The shaders themselves were introduced in a prior patch. In order to get the right setup for the draw call to trigger the shaders, we create an internal pipeline from the pipeline cache. We also use a special pipeline layout with only uniform buffers. The masked out color channels are disabled via settings on the pipeline. This fixes the dEQP masked color clear tests. It doesn't handle masked color clears combined with the depth clear bit. It's likely we don't have test coverage for this case. Bug: angleproject:2455 Change-Id: I513248cc0f7e58f490fc16ac9afb40119d730ccc Reviewed-on: https://chromium-review.googlesource.com/1031373 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
This makes the API easy to use with internal shaders and pipelines. This is useful for the implementation of masked color clear. Also renames the serials as shader serials. This is more precise than program serials. Bug: angleproject:2455 Change-Id: Ie6247d1212ed4df856b561a5e9f16c0378202588 Reviewed-on: https://chromium-review.googlesource.com/1032857 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
Even on the highest optimization level MSVC was still generating extra code in Release for ASSERT macros. This realigns the code more with Chromium by using a streaming eating macro with the expression at the end. Now no code should be generating. I believe this did not affect Clang builds. Bug: angleproject:1671 Change-Id: I099c59cf0b28ae3ffc08b864982e67559901724e Reviewed-on: https://chromium-review.googlesource.com/1036208Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This re-uses the same machinery as the GL front-end. It saves a lot of custom casting and array sizing. Currently we only support vertex and fragment shaders in Vulkan. Because of the Pipeline cache sizing, it's easier to stick with just VS/FS and introduce the full set of shaders when we move to packing the cache better. Bug: angleproject:2522 Bug: angleproject:2455 Change-Id: I21432a335c741885af87970d8ee52b4a36338304 Reviewed-on: https://chromium-review.googlesource.com/1036927Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Jiawei Shao <jiawei.shao@intel.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Corentin Wallez authored
BUG=angleproject:1874 Change-Id: I8898c1a467c1fec25963f45a31376a6b02e1b6c4 Reviewed-on: https://chromium-review.googlesource.com/1037584Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
-
Olli Etuaho authored
We can validate to avoid triggering driver issues even if the native GLES spec is not telling us to. This will fix WebGL in Chromium when it's being run with the --use-cmd-decoder=validating --use-angle=gl config. BUG=chromium:830046 TEST=WebGL conformance tests Change-Id: I2d61182cb6cbe46b52e1d9b7ed6b4035defee082 Reviewed-on: https://chromium-review.googlesource.com/1033743 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Olli Etuaho authored
Simplify handling of reversing the blitted area and calculate shader parameters in a way that doesn't require lengthy explanation. BUG=chromium:830046 TEST=angle_end2end_tests Change-Id: Ie9bce812be4ef04a969153fc7c484039fc48a198 Reviewed-on: https://chromium-review.googlesource.com/1030172 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
- 01 May, 2018 5 commits
-
-
Jamie Madill authored
This allows Framebuffer syncState methods to handle dirty bits themselves. This will be useful for the implementation of masked color clear. Bug: angleproject:2455 Change-Id: I65ad9c61e89e317c820f6be5550edd8185b52afc Reviewed-on: https://chromium-review.googlesource.com/1032856 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Luc Ferron <lucferron@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
Vulkan intenal shaders are stored in a ShaderLibrary, and this is owned by the RendererVk. This way the shaders are reused between all the different Contexts. They are initialized lazily to keep init time low. They also have an associated Serial (called a ProgramSerial) so they can be identified in a PipelineDesc (used by the Pipeline cache). We use a python script to build and invoke the glslang validator, that also produces SPIR-V binary code snippets. These snippets are gathered into an auto-generated file that is exposed via an auto-generated header file. The InternalShaderID enum class gives access to the internal shaders that are shared through the Vulkan back-end. This also adds simple clear shaders to be used in masked color clears. The patch doesn't add any functionality but it is split off from the color clear functionality to keep the code size down. Bug: angleproject:2339 Bug: angleproject:2455 Change-Id: Ie83043eda217c9f013817b198c92a3b7ba0878b4 Reviewed-on: https://chromium-review.googlesource.com/1031372 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Luc Ferron authored
Bug: angleproject:2474 Change-Id: Ia558c2e266422f8f8b55523c9542379688a7058d Reviewed-on: https://chromium-review.googlesource.com/1037164 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Luc Ferron authored
1- Link program with a shader and draw with it, relink with another shader and draw again. 2- Release program that is reading from a uniform. Bug: angleproject:2397 Change-Id: Icb4211c5cf71efaf41833d9d5afd83ce8410c598 Reviewed-on: https://chromium-review.googlesource.com/1028580 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
This was causing very slow builds/test runs. Bug: chromium:837166 Bug: chromium:834269 Change-Id: If2e5665455d4a8af13cbc732a65a07550ace8304 Reviewed-on: https://chromium-review.googlesource.com/1036220Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
- 30 Apr, 2018 3 commits
-
-
Courtney Goeltzenleuchter authored
Bug: angleproject:2418 Change-Id: I793d330a2cc92a510b189fa23d14f41f48a7d986 Reviewed-on: https://chromium-review.googlesource.com/1035422Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
-
Jamie Madill authored
The mtime values I was seeing on my file system were sometimes floating point numbers that were very very close but not exactly the same. This might be due to numerical errors. Increasing the tolerance to something still very small, precision is less than a second. It will lead to fewer rebuilds of non-dirty files. Bug: angleproject:2455 Change-Id: I95dc3214ee91af7a70a20cc625405e0e2bc18698 Reviewed-on: https://chromium-review.googlesource.com/1032855Reviewed-by:
Luc Ferron <lucferron@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
These weren't needed in many places. Also renames one FramebufferVk method. Bug: angleproject:2455 Change-Id: Idb641094fa3e180a85f357533d86bd0b19db4ec8 Reviewed-on: https://chromium-review.googlesource.com/1024826Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Luc Ferron <lucferron@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
- 28 Apr, 2018 2 commits
-
-
Jiawei Shao authored
This patch intends to remove redundant computations on combined interface block counts in ValidateGraphicsInterfaceBlocks. In this patch, we compute and check the number of combined interface blocks by the result of ValidateInterfaceBlocksCount directly instead of re-compute it, and if the check on max combined interface blocks failed, Program::link() can early return without entering ValidateGraphicsInterfaceBlocks. BUG=angleproject:2345 Change-Id: I7573f7c645993b4d75230a8471203a305127f2a3 Reviewed-on: https://chromium-review.googlesource.com/1031852Reviewed-by:
Jiajia Qin <jiajia.qin@intel.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
-
Jiawei Shao authored
This patch implements GL_REFERENCED_BY_GEOMETRY_SHADER as a valid property of program interfaces. BUG=angleproject:1941 TEST=angle_end2end_tests dEQP-GLES31.functional.geometry_shading.query.referenced_by_geometry_shader Change-Id: Id9659313d371dbfc7d00bf9d816df4449fbf29ec Reviewed-on: https://chromium-review.googlesource.com/1025281Reviewed-by:Jiajia Qin <jiajia.qin@intel.com> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
-
- 27 Apr, 2018 5 commits
-
-
Geoff Lang authored
The index range was being resolved in the call to VertexArray11::syncStateForDraw but the code which invalidates the input layout was being executed before this. BUG=837002 Change-Id: I4e00b53cdc51f8758b0e2ba9e2dfc93b5e22556c Reviewed-on: https://chromium-review.googlesource.com/1032633 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Geoff Lang authored
BUG=angleproject:1472 BUG=621240 Change-Id: I723839bd7961167adddcccc680638ae066eacea3 Reviewed-on: https://chromium-review.googlesource.com/1025645Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Geoff Lang authored
BUG=837717 Change-Id: I1ac659b18bd9aef2f24f798d23f49d1efbb81938 Reviewed-on: https://chromium-review.googlesource.com/1033478Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Olli Etuaho authored
Scaling and flipping of the framebuffer with blitFramebuffer are now covered by end2end_tests. The test configurations are set so that the BlitGL shader-based blit is also covered. The tests reveal a bug in the D3D11 backend implementation of blitFramebuffer when using an oversized source area. BUG=angleproject:2486 BUG=angleproject:2519 BUG=angleproject:2521 TEST=angle_end2end_tests Change-Id: Ica48e564a5b4180241ec4c4c6be06c58cc6dc29b Reviewed-on: https://chromium-review.googlesource.com/1030171Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Jiawei Shao authored
This patch refactors ProgramD3D by storing all shader information into ShaderMap to simplify the code structure. This patch also fixes a bug on getting the number of maximum uniform blocks. BUG=angleproject:2169 Change-Id: I5b9fbfd70a18f8731ce19efed0df88037d495389 Reviewed-on: https://chromium-review.googlesource.com/1024749 Commit-Queue: Jiawei Shao <jiawei.shao@intel.com> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
- 26 Apr, 2018 2 commits
-
-
Jamie Madill authored
This is a small optimization for the WebGL compatibility mode. Instead of scanning the list of attributes for a Transform feedback conflict, it can quickly check a cached mask. This should save a lot of cycles on the fast path. Bug: angleproject:1391 Change-Id: Icb8d095493a629dbff0e93872357e5bf7c7458ae Reviewed-on: https://chromium-review.googlesource.com/1011236 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Geoff Lang authored
Simply check if the device has already been lost. Chrome already checks glGetGraphicsResetStatus after SwapBuffers and MakeCurrent. BUG=angleproject:1472 BUG=621240 Change-Id: I95fe6306fa0c09191a4b1b93840c2143e069ef53 Reviewed-on: https://chromium-review.googlesource.com/1026527 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-