|
2a53d83a
|
2019-08-05T10:42:14
|
|
Vulkan: Enable more tests to run (and in most cases pass).
Some of this set of expectation-file changes are due to PBO implementation.
Bug: angleproject:3628
Bug: angleproject:3455
Bug: angleproject:3209
Bug: angleproject:3210
Change-Id: Ie74913f22600b967c2a239f8a6452f9a99b2a00a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1736134
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
af69179c
|
2019-07-30T17:22:22
|
|
Capture/Replay: Capture return values.
This will allow us to record resource IDs as they are created and bound
to OpenGL. This in turn will enable implementing mid-execution capture.
Bug: angleproject:3611
Change-Id: I9f12eb0025d90ad86327cf5181efd831662c2e3f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1706562
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9031bdd9
|
2019-07-26T14:51:23
|
|
Use perfect-hash module in gen_builtin_symbols.py
The script currently takes ~4 minutes to run
Using this module instead of manually hashing
will improve runtime significantly
Bug: angleproject:3747
Change-Id: I7e2d2ef5bbfd136b0299d571e0acc11f334c80b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1724667
Commit-Queue: Clemen Deng <clemendeng@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
dc2c5c5a
|
2019-08-02T09:32:18
|
|
Vulkan: Initial Implementation of PBO support (software only)
This contains support for both pixel unpack buffers (i.e. for glTex*Image*)
and pixel pack buffers (i.e. for glReadPixels).
Bug: angleproject:3209
Bug: angleproject:3210
Change-Id: I077cccbffb96fb5f0198922bc7c1850a7eb3f616
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1723096
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8a43b8c7
|
2019-08-02T08:47:13
|
|
Vulkan: Fix incorrect alignment logic in readPixels
Framebuffers previously assumed a readPixels buffer alignment
of 4 bytes, which causes issues when attempting to read with
a format larger than 4 bytes per pixel. Change the default
alignment to match the size of the largest know Vulkan format
Bug: angleproject:3731
Change-Id: I6cd26a99e6f3b2f30084d403630c17f51a0ecedf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1727731
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a06d32dc
|
2019-08-02T15:44:09
|
|
Vulkan: Enable more tests to run (and in most cases pass).
Bug: angleproject:3628
Change-Id: Idbb889165069d2ac45394b38cf44fad8c11bd910
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1733417
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
990990b4
|
2019-07-31T18:00:59
|
|
Fix memory leak in Renderer11::getD3DTextureInfo
If the device for the texture does not match mDevice, we early out of
the method without releasing textureDevice.
Fixed by adding DynamicCastComObjectToComPtr and using angle::ComPtr
Bug: angleproject:3761
Change-Id: Id4ef9231f8a91c30e326520132af693d51047c7d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1730175
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
de50d039
|
2019-07-29T16:04:56
|
|
Enable ASTC 3D Textures
Enable ASTC 3D textures.
ETC are still unsupported, since dEQP fails if we indicate support.
Bug: angleproject:3188
Test: dEQP.KHR_GLES2/texture_3d_compressed_texture_*astc*
Test: dEQP.KHR_GLES2/texture_3d_compressed_texture_negative_compressed_tex_image
Change-Id: I8559ae42d19e63fdf96ea7a49f2d7e3d5098771c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1723094
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
4c118cb3
|
2019-07-31T16:35:07
|
|
Vulkan: Add support for OES_vertex_half_float
Expose GLES 3.0 feature of half_float vertex on GLES 2.0 as an extension.
Bug: angleproject:3191
Test: dEQP-GLES2.capability.extensions.vertex_data_formats.GL_OES_vertex_half_float
Change-Id: Ia093b66f9c32c81946b2cbc15ff227baea4bfb02
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1728749
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
626a7280
|
2019-07-08T15:11:59
|
|
Vulkan: Implement framebuffers without attachments
It is possible to render to a framebuffer object that has no
attachments. However, the rasterization of primitives is always
based on the area and characteristics of the bound framebuffer.
These characteristics (size, number of samples, etc.) would normally be
defined by the attached images. If no images are attached, these
characteristics are defined by their default values.
Bug: angleproject:3579
Test: dEQP-GLES31.functional.fbo.*no_attachments*
Test: dEQP-GLES31.functional.state_query.framebuffer_default.*
Change-Id: I9580b924ac810db573cd8df96273fbb01bbb1f73
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1690688
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
ad77f55e
|
2019-08-01T14:41:17
|
|
Vulkan: Remove finish calls before BufferVk::mapImpl
This function already calls a finishToSerial(), which waits only for the
last submission in which the buffer was used to finish. There is no
need to call finish() beforehands.
Bug: angleproject:3213
Change-Id: I410adb80a630ff9a1cba8f7202cf002a7ea5f87b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1731551
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
82523300
|
2019-08-01T09:49:26
|
|
Vulkan: Recycle VkFence in checkCommandsCompleted
VkFence is intended to be recycled after used up, however, there is one
place that VkFence get destroyed directly after usage due to an
implementation flaw. This CL fixed it up.
Bug: angleproject:3556
Change-Id: I9ee44556329b9cee39ccdfef540f3c1b5180cd36
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1731575
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
369f9e5d
|
2019-07-30T13:46:14
|
|
GL: Support Rectangle textures as sources for glCopyTextureCHROMIUM.
Chrome uses rectangle textures on mac to copy data. ANGLE's frontend allowed
them as CopyTexture sources but did not implement them in the backend.
TEST=Any WebGL test on Mac
BUG=982294
Change-Id: If2e40292b22c4f49676e3ece8cc6fa126c5b7b94
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1726849
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
301f77e7
|
2019-07-30T13:51:12
|
|
Vulkan: Enable passing ES2 multisample tests
The tests need to be run with --deqp-gl-config-name=rgba8888d24s8ms4 for
deqp to even try them. They pass and the removal of suppressions was
missing from:
https://chromium-review.googlesource.com/c/angle/angle/+/1639749
Bug: angleproject:3204
Change-Id: I77cb528da090d1374152e2e32f86e974df70358a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1726850
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
593b1a6c
|
2019-07-30T10:02:22
|
|
Vulkan: Fix array handling in default uniforms
Changes default uniform block layout generation to only remove the first
array subscript, which causes arrays of arrays to be recognized
correctly.
Bug: angleproject:3604
Test: ./angle_deqp_gles31_no_gtest --deqp-egl-display-type=angle-vulkan -n 'dEQP-GLES31.functional.shaders.arrays*'
Test: ./angle_deqp_gles31_no_gtest --deqp-egl-display-type=angle-vulkan -n 'dEQP-GLES31.functional.program_interface_query.*array*array*'
Change-Id: Ifacc665cae87c651253e5cb8d929178d7fc92817
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1724906
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: James Dong <dongja@google.com>
|
|
d43d24bb
|
2019-07-30T17:22:20
|
|
Capture/Replay: Refactor entry points.
This change does two things:
* only call validation functions once per entry point.
* move the capture call after the entry point call.
Moving the capure after the call allows us to process the results of
the call. Also we can clean up the validation double call by doing a
bit of entry point refactoring. The code changes shouldn't impact the
resulting code size when capture is disabled.
Bug: angleproject:3611
Change-Id: I9e74ba0a8266903d3e9d1f2eac6acdd2932e5743
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1706561
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
a0d010ab
|
2019-08-01T11:05:21
|
|
Disable atomic counter buffer tests on AMD/Windows/GL
Second attempt at fixing this bot:
https://ci.chromium.org/p/chromium/builders/ci/Win10%20FYI%20x64%20Release%20%28AMD%20RX%20550%29
Bug: angleproject:3738
Change-Id: I8e8626cc911df9dae82c542b2dde8696f10e49bc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1731130
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
868f5fa0
|
2019-07-30T17:22:18
|
|
Refactor return values from entry points.
For capture, we'd ideally like to know the return value of a function
when we capture it. The first step will be to intercept the return
value instead of returning directly.
Bug: angleproject:3611
Change-Id: I68c21aea323a71c6a9f1be613862158a37e2beae
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1706560
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e995d7fb
|
2019-06-26T17:59:27
|
|
Use memoryBarrier to sync image load and store
Image load and store are incoherent memory access
operations, so need to use memoryBarrier to ensure
the visibility of incoherent memory access operations
with other operations.
Bug: angleproject:3044
Change-Id: I4d474d260a3199c026911de8d20878cd327d16c6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1677420
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1dbbc7b3
|
2019-07-31T17:49:39
|
|
Skip couple TextureBorderClampIntegerTestES3 tests.
TextureBorderClampIntegerTestES3.TextureBorderClampInteger/ES3_OpenGL
TextureBorderClampIntegerTestES3.TextureBorderClampInteger2/ES3_OpenGL
failing on Win10 FYI x64 Release (AMD RX 550).
Bug: angleproject:3760
Change-Id: I0ccd56f190b1a3775f6a9a0448ca3003baa331ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1729564
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
eb1b1646
|
2019-07-30T17:22:17
|
|
Capture/Replay: Fix capture-enabled libs build.
Adds a build option to use the capture libraries in the default output
location for libGLESv2. With |angle_with_capture_by_default| enabled,
libGLESv2 will have capture enabled and the non-capture libGLESv2 is
built as libGLESv2_no_capture.
Also moves the FrameCapture to be owned by gl::Context. Rearranges the
code a bit so that we don't require a separate version of libANGLE for
capture.
Also implements a read pixels entry point parameter.
Bug: angleproject:3611
Change-Id: Ic528e43e4779f794c8b6d0bf35410166dacc81b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1719064
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3e493c48
|
2019-07-29T16:27:01
|
|
Vulkan: Optimize memory allocation offset rounding
Use bit operation to compute memory alignment round up.
Tested with T-Rex, hotspot in roundUp resolved.
Bug: angleproject:3744
Change-Id: I55db941f588401a1d2d3d93f4d6b810e6b1aa95f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1725118
Commit-Queue: Jiacheng Lu <lujc@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
eb06814d
|
2019-07-03T17:17:45
|
|
Correct barriers of glMemoryBarrier in test cases
Some test cases use wrong barriers when calling glMemoryBarrier.
Bug: angleproject:2280
Change-Id: I0750c1eba84ed8af32091f7ecd5bdbd2b32fd397
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1687591
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
|
|
1ebe6014
|
2019-07-29T16:02:15
|
|
Vulkan: Only check sampler when setUniform1i(v)
1. only do isSampler checking when update int uniforms
2. inline some simple methods of LinkUniform
This fix reduce CPU time spent on `isSampler` call from 70ms to 30ms in
T-Rex bench on specific platform.
Bug: angleproject:3743
Change-Id: I98ef3c892df27e08d54ed40946d924b5a50c796c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1725114
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
8b2dfa0f
|
2019-07-04T16:22:05
|
|
GL: Implement EXT_external_objects
This allows the GL backend to import Vulkan resources.
BUG=angleproject:3656
Change-Id: Ie5e55ce3e1ba05e917619e3f192c13dcc36c3739
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1688507
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Clemen Deng <clemendeng@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
5c6a6cb6
|
2019-07-04T15:51:48
|
|
GL: Load external object extension entry points.
BUG=angleproject:3656
Change-Id: I360d5a0eda820a4138e5400614332ae919216db6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1688506
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Clemen Deng <clemendeng@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
b75b97a2
|
2019-07-29T14:38:02
|
|
Support the SearchType argument for loading libraries with posix.
When a local shared library should be loaded, resolve its full path
before calling dlopen.
This logic matches SwiftShader's library loading.
This is a speculative fix for Chrome being unable to load ANGLE libraries
when they are distributed as part of a Chromium.app and have a different
path than the executable.
BUG=982294
Change-Id: Ib70096eac7460417ea7ea32941e2273dd368e6ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1724910
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Clemen Deng <clemendeng@google.com>
|
|
2613cdba
|
2019-07-22T10:33:08
|
|
Vulkan: Fix barriers between render passes
Color attachment output ordering applies to commands recorded within a
render pass subpass. We still need execution barriers between render
passes (and subpasses, but we don't use them).
Bug: angleproject:3347
Change-Id: Ifaddaeac35347d8a35e771f46a29047d52c9541c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1713085
Reviewed-by: Fei Yang <fei.yang@arm.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9addf0cb
|
2019-07-23T11:45:24
|
|
Vulkan: Enable Line Rasterization Emulation
Android requires the same line rasterization for Vulkan, so this CL will
enabled that workaround.
Bug: angleproject:2830
Test: dEQP-GLES2.functional.rasterization.primitives.line*
Change-Id: Ic28dd2e54c5cb9b29f8592952b2c0f29a5f97fd5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1715207
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
a79c2440
|
2019-07-29T11:34:21
|
|
Make libEGL function pointers hidden in symbol table
The libEGL_angle.so and libGLESv2_angle.so libraries are typically
loaded into the same process each time, so we need to make sure there
aren't any duplicated symbols which could violate ODR and lead to
crashes or undefined behavior. In this case, the libEGL_angle.so
function pointer names were colliding with libGLESv2_angle.so function
names, causing crashes at runtime. The fix here is to mark the
libEGL_angle.so function pointer symbols 'hidden', so they don't appear
in the symbol table for other executables/libraries to see and can't be
overridden by other symbols.
Bug: angleproject:3751
Test: Embed ANGLE within dEQP.apk and verify no crashes
Change-Id: Ibb78369374a4a68b3489a7dd7775c52e29fa37e0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1724909
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
cbabea73
|
2019-07-11T17:24:17
|
|
Vulkan: Desktop ETC/EAC formats support
Initial attempt to give desktop ETC/EAC formats support.
Bug: angleproject:3676
Change-Id: Id147b0c1808e30df77097d0c7ff6a06534554b93
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1699307
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3a36f306
|
2019-07-19T12:43:22
|
|
Always set matrix uniform to dirty when it updates
Remove the dirty checking of matrix uniform update at frontend and
always let backend update whenever glUniformMatrix* is called. Profiled
with UniformsBenchmark/* with vulkan backend, performance increases
around 6% when data being updated is changing and performance increases
around 2% when data being updated stays same.
Bug: angleproject:3705
Change-Id: I8eaf6a1231e634b69c6dc540db1b9d3a312bf45d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1709725
Commit-Queue: Jiacheng Lu <lujc@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
bf3d9333
|
2019-07-29T10:00:44
|
|
Vulkan: support relative offset in attrib bindings
Handles the ES 3.1 relative offset parameter in vertex attributes by
adding it to the binding offset.
Test: ./angle_deqp_gles31_no_gtest --deqp-egl-display-type=angle-vulkan -n dEQP-GLES31.functional.vertex_attribute_binding.usage.single_binding.unaligned_offset_elements_1_aligned_elements
Bug: angleproject:3598
Change-Id: Idbbd5ba4868a4dfc8f99188a84a5cd1374e09065
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1724453
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: James Dong <dongja@google.com>
|
|
758b12fa
|
2019-07-17T14:55:38
|
|
Filter out redundant depth&stencil state updates
1. Compare updating values with active ones at frontend when
depth&stencil related gl call happens and do not set any unnecessary
dirty bits.
2. Remove d3d and gl backends' checking of depth&stencil states when
detect any dirty bits, as it is now being done at frontend.
3. Modification to graphics pipeline description update, make sure it
syncs with gl::State initial value.
4. Change gl_vk::CullMode return type to VkCullModeFlagBits, as it only
represents single value.
Bug: angleproject:3700
Change-Id: Id3aa5186455ee3a10a9c147edad13944e3e41098
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1706903
Commit-Queue: Jiacheng Lu <lujc@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
a96b79f9
|
2019-07-26T17:33:16
|
|
Explicitly instantiate TIntermTraverser::traverse(TIntermNode *).
(on behalf of RewriteAtomicFunctionExpressions)
The compile will occasionally choose to inline all instances of this
function, and therefore not export this entrypoint into the object file,
leaving other TUs (RewriteAtomicFunctionExpressions) with missing
link symbols.
Bug: angleproject:3752
Change-Id: Ida778bcd897a85567680911a88aae88a3797aa93
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1721954
Commit-Queue: Jeff Gilbert <jgilbert@mozilla.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a51232eb
|
2019-07-26T15:02:39
|
|
Vulkan: Split-out PBO and pack/unpack expectations
Bug: angleproject:3209
Change-Id: I82e67345ce9f70b1b1d211b00b23d95dd53a44e7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1721188
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
35f02850
|
2019-07-23T17:20:25
|
|
Vulkan: Reduce getMaxConformantESVersion() to 2.0
We are currently returning a 3.0 context for Vulkan backends (issue
3425). However, we aren't quite 3.0 conformant yet, so this bug
will drop that back down to 2.0 in getMaxConformantESVersion().
Bug: angleproject:3734
Test: dEQP
Change-Id: I2c5a6ee0ddb3bd52fdc92fdc9b12cf3c6d8e0510
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1716244
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8d3077b8
|
2019-07-26T09:44:36
|
|
Vulkan: Expect additional texture-specification tests to run/pass
Recent changes allow these to all run and pass!
Bug: angleproject:3190
Change-Id: I6349b8d9aa90297e676f170361f468ac04b3150d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1721171
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
ce66a4f8
|
2019-07-26T16:27:04
|
|
Skip 2 end2end tests failing on 431.02 Windows NVIDIA driver
ClearTestES3.RepeatedClear/ES3_Vulkan
ShaderStorageBufferTest31.LoadAndStoreBooleanValue/ES3_1_D3D11
Bug: angleproject:3748, angleproject:3749
Change-Id: I54c6259d36c9993250e961d92a6d4b8e4349ed57
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1721185
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
73e5e9b5
|
2019-07-22T15:26:17
|
|
Clang warn implicit float to int conversion
1. add '-Wfloat-conversion' in compiler flag for clang
2. fix existed implicit float conversion
Bug: angleproject:3728
Change-Id: I0dc07eeb74c5d6dc480c6f0aa88bc75ab98e4292
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1713741
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a2129356
|
2019-07-23T12:54:13
|
|
Vulkan: Add support for 2D array textures
Includes changes from jmadill to align with Vulkan backend design.
Correctly setting layer count and depth when the texture type is
2Darray. Vulkan requires depth of 1 for 2Darray textures.
Bug: angleproject:3189
Change-Id: I0d58c33fcd75b1d768ea0308ac6e54230d8cfcc5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1721169
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
7e50f4cd
|
2019-07-25T09:58:51
|
|
Vulkan: Fix ES 3.1 vertex attribute bindings
When handling dirty bindings, we were treating binding indices as if
they were attribute indices, causing strange behavior. This change fixes
the dirty bit handler to use the provided index properly and update the
attributes that correspond to the binding index.
Test: ./angle_end2end_tests --gtest_filter='VertexAttributeTestES31.OnlyUpdate*/ES3_1_Vulkan'
Bug: angleproject:3598
Change-Id: I2bc3cd4da5f639a1301776fcf057a74368812c56
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1718786
Commit-Queue: James Dong <dongja@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
020abb8b
|
2019-07-24T11:33:49
|
|
Vulkan: invalidate translation buffers for SSBOs
Translation buffers weren't being marked dirty after running a compute
shader in which they are bound as SSBOs.
This change invalidates all SSBOs after a draw or compute call.
Bug: angleproject:3739
Change-Id: I66b56df7e619b55afc7e3da6b5613b6d050e06bb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1717144
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: James Dong <dongja@google.com>
|
|
3e9bc2a7
|
2019-07-26T10:23:32
|
|
Fix param name of glDrawArrays capture
Bug: angleproject:3611
Change-Id: Idba4d49d36274db8545f2526f19f045f97031379
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1721173
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f2412bca
|
2019-07-16T15:47:34
|
|
Get rendering to texture working
Other small fixes for desktop compatibility
Bug: angleproject:3620
Change-Id: I8e75bce1f850fb891c8bb6e16f79302a6d59276c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1707932
Commit-Queue: Clemen Deng <clemendeng@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0716ce0a
|
2019-07-22T15:20:47
|
|
Re-add case to blitframebuffer workaround where src is outside of bounds.
On Mac, blitFramebuffer calls fail if the source region is not enclosed
by the framebuffer. In this case, we must naively clip the source region
and adjust the dest region accordingly. This is slightly different
behavior and may cause issues with scaling so we use a separate
workaround.
Also, Windows NVIDIA has a driver bug that affects Vulkan device
creation after blitting large textures, so it should be included in the
original workaround.
This CL cleans up the workaround to use more helpers from ANGLE and to
generally improve readability.
Bug: chromium:830046
Change-Id: I50bd97449725b738036e6bd3af82362020d7eda8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1713090
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
fab397e5
|
2019-07-25T10:18:50
|
|
Vulkan: Enforce an error when initializing a global with a non-const
The ESSL 1.0 spec is clear that "initializers must be a constant expression."
Yet, because of "legacy" applications (apparently just WebGL applications), the
code was only issuing a warning and not an error. The
"KHR-GLES2.shaders.negative.initialize" test requires an error be generated.
This change splits the semantics, allowing GLES applications to get an error,
and WebGL applications to get a warning.
Note: This change is related to https://chromium-review.googlesource.com/829138
(for angleproject:2285).
Bug: angleproject:3381
Change-Id: Ie243b7dd72102aeb52df506d121d1d2a8f6974d3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1716617
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
c327370e
|
2019-07-23T12:54:12
|
|
Vulkan: Pass VkExtent3D to TextureHelper::init.
Bug: angleproject:3189
Change-Id: I4b95240bb32fbc2b3d0c8f097e0552d0fe23417d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1713094
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
c68e7cbc
|
2019-07-25T11:28:07
|
|
Vulkan: Fix image copy flipping
The draw framebuffer was consulted for flipping instead of the read
framebuffer.
Revealed a bug with copy-with-transfer not taking source render target's
level/layer into account. This test was failing on Linux/Intel because
there the framebuffer is not flipped, so the transfer path was taken.
Bug: angleproject:2954
Bug: angleproject:3723
Change-Id: If95bf97b8e0536302ed39999be47bf904283c9e4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1718784
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
bbffb779
|
2019-07-25T11:24:39
|
|
Fix read framebuffer binding sync before copy image
The READ_FRAMEBUFFER_BINDING dirty bit sync was missing from copy image
functions. In the Vulkan backend, a cached value for the current read
framebuffer was used to determine if the copy should flip in Y, and that
cached value was out of date.
Bug: angleproject:3723
Change-Id: I10e8a276a42c28fbedc9939f653a5a1f4a14e87b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1715483
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
08b97da8
|
2019-07-23T12:07:13
|
|
Vulkan: Fix staging buffer alignment for pixel sizes > 4
Previously, all non-compressed formats were satisfied with a 4-byte
alignment. The introduction of float formats changes this.
This change calculates the necessary alignment using the same code path
as compressed formats.
Also fixes RGB9E5's pixelByte being calculated as 3 instead of 4.
Bug: angleproject:3731
Change-Id: I6abfd1c294e7f863eb99d2468eaac09e5d714039
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1715205
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
557e3853
|
2019-07-24T18:16:18
|
|
Vulkan: Disable atomic counter buffer tests on AMD/Windows
A likely driver bug is causing the subsequent OpenGL test to fail.
Bug: angleproject:3738
Change-Id: I6ee5e9e7298a2adb3069a6e14ac83453fa34b50f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1716056
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8bb46c5b
|
2019-07-22T16:04:55
|
|
Refactor: add InternalFormat::isInt()
Bug: angleproject:3727
Change-Id: I33ee85563e3b070b4b86afc37230d3f5af54f446
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1713091
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
dd3de6f0
|
2019-07-22T21:17:52
|
|
Do not assume __has_builtin is available
Compilation with GCC breaks as there is a build check using it.
To avoid the problem, we declare the macro HAS_BUILTIN that maps
to __has_builtin if it is defined, or 0 otherwise.
Bug: chromium:819294
Change-Id: I105d566f08baa495fccd553d7b06eb8ce36621ef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1713604
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
02407743
|
2019-07-22T10:56:35
|
|
Vulkan: implement indirect dispatch
Implements indirect dispatch for Vulkan backend. Layout of dispatch
structure is the same as OpenGL, so we pass in the buffer directly.
Test: ./angle_deqp_gles31_no_gtest --deqp-egl-display-type=angle-vulkan -n 'dEQP-GLES31.functional.compute.indirect_dispatch.*'
Bug: angleproject:3601
Change-Id: I94c6b1a86d3c24c1ca1bb6a78529b38909a2b91f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1710024
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: James Dong <dongja@google.com>
|
|
cedea1d9
|
2019-07-22T17:02:25
|
|
Vulkan: Rename 'extents' param to 'glExtents'.
Merely a minor refactor to clean up the diff of a subsequent CL. In the
follow up we will also distinguish the GL extents from the Vulkan
extents/layerCount pair.
Bug: angleproject:3189
Change-Id: Ibbb79bf2e6d3f798243b424bacbfb2e5538bfecf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1709755
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
592539fd
|
2019-07-10T13:15:59
|
|
Implicit conversions for Desktop GL shaders
Need to support implicit conversions between types for GL shaders
Other small fixes to support GL shaders
Bug: angleproject:3673
Change-Id: I5341cb7195054ccc4cd36aad5dc8c801c7e1a14f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1698649
Commit-Queue: Clemen Deng <clemendeng@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3dcd8ebb
|
2019-07-22T15:33:22
|
|
Skip ProgramBinaryTransformFeedbackTest.GetTransformFeedbackVarying
on Pixel 2 Vulkan.
Bug: angleproject:3690
Change-Id: Ic00038cfe8fe9d1170eb75aec89c0ac0f074fb05
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1710026
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
deb43a31
|
2019-07-22T09:56:27
|
|
Vulkan: Store VkExtents3D in ImageHelper.
This makes the distinction between a gl::Extents (includes a depth
value for 2D array texture layer count) and a Vulkan extents (2D array
textures have a "1" for depth) clearer. Preparation refactor patch.
Bug: angleproject:3189
Change-Id: I9a13379c421e7f3c7856ac15b7a73013258ab9fe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1709754
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
da2b649c
|
2019-07-22T09:56:26
|
|
Texture: Make ImageIndex store layer counts.
Only for 2D array textures.
Bug: angleproject:3189
Change-Id: I9958ab60ffa464aa63f5cb321cbbe14b378f3647
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1709109
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
af80b781
|
2019-07-22T14:31:08
|
|
Skip ShaderStorageBufferTest31.ActiveSSBOButNotStaticallyUsed
on Pixel 2 Vulkan.
Bug: angleproject:3725
Change-Id: Ic5c80ad3ec495c3fd382639f761b368f16993434
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1713564
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
b82d8633
|
2019-07-15T11:23:08
|
|
Vulkan: Atomic counter buffer support
Vulkan doesn't treat atomic counters especially, and they are emulated
with atomic access to storage buffers.
A single atomic counter buffer binding per pipeline is supported. All
the atomic counters identify an offset within this buffer. The shader
is modified to include a storage buffer definition with
`uint counters[];` as the only field.
A compiler pass replaces atomic counter definitions with variables that
hold the corresponding offset parameter, as well as changing atomic_uint
types to just uint (as the offset). Where an atomic counter variable is
used, it is replaced with the offset variable (plus the array index, if
array). At the same time, built-in `atomicCounter*` functions are
replaced with a corresponding `atomic*` function and
`memoryBarrierAtomicCounter` is replaced with `memoryBarrierBuffer`.
Bug: angleproject:3566
Change-Id: Iefb3d47de6a5cb3072bfa0cb94a46ac6a886d369
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1704635
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
bd4ff479
|
2019-07-19T22:08:17
|
|
Revert "Reland "Temporarily disable creating D3D debug device.""
This reverts commit 6064e6ab6bc7355b410543301a578d22d2f6e477.
Reason for revert: flakiness should be fixed by https://chromium-review.googlesource.com/c/angle/angle/+/1709726
Original change's description:
> Reland "Temporarily disable creating D3D debug device."
>
> This reverts commit 28394c2295335929c17bbfe0ab74f923cd234ff2.
>
> Reason for revert: may be the cause of flakiness on Win10 Debug (NVIDIA) per http://crbug.com/972914 .
>
> Original change's description:
> > Revert "Temporarily disable creating D3D debug device."
> >
> > This reverts commit 3d544fffe7ff9284b21e3a15f638297c827bbc21.
> >
> > Reason for revert: Seems like flakiness is not related.
> >
> > Suppress D3D11 test failures uncovered by re-enabling D3D debug device:
> > ComputeShaderTest.DispatchCompute
> > Texture2DTestES3.TextureImplPropogatesDirtyBits
> > D3DTextureTestMS.*
> >
> > Also a small fix to ANGLETestBase::checkD3D11SDKLayersMessages
> > to clear reported messages, otherwise the failures are also reported
> > for tests following the one with the actual failure.
> >
> > Original change's description:
> > > Temporarily disable creating D3D debug device.
> > >
> > > To diagnose whether Windows Intel end2end tests flakiness
> > > is related to creating debug device and new version of Windows SDK.
> > >
> > > Bug: angleproject:3153
> > > Change-Id: Ica7eae3fe875e22203b6dfd98b83604d66a97737
> > > Reviewed-on: https://chromium-review.googlesource.com/c/1476954
> > > Reviewed-by: Geoff Lang <geofflang@chromium.org>
> > > Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
> >
> > Bug: angleproject:3153, angleproject:3493
> > Bug: angleproject:3501, angleproject:3512, angleproject:3513
> >
> > Change-Id: I232da72aa09c2b9230cf179dd54e1731f8365f8e
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1480854
> > Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
> > Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
>
> TBR=ynovikov@chromium.org,geofflang@chromium.org,jmadill@chromium.org
>
> Change-Id: I38a5cc9bb6ebcd50e97e40cc972a82679e73732a
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: angleproject:3153, angleproject:3493, angleproject:3501, angleproject:3512, angleproject:3513
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1652784
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Commit-Queue: Kenneth Russell <kbr@chromium.org>
TBR=ynovikov@chromium.org,geofflang@chromium.org,kbr@chromium.org,jmadill@chromium.org
Bug: angleproject:3153, angleproject:3493, angleproject:3501, angleproject:3513
Change-Id: I16eff79172dcfa2dd6d4f6445a74c9c65c1bd27c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1710861
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
87dc17b5
|
2019-07-22T11:41:27
|
|
Vulkan: Generalize buffers desc set name to include images
And atomic counter buffers which are emulated with storage buffers.
Bug: angleproject:3566
Change-Id: I102763900c779c3a84661491bad53aec384461f7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1713086
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a71549b1
|
2019-05-28T09:44:43
|
|
Vulkan: Intermittent failures in many GLES2 CTS
The stage mask in vkCmdPipelineBarrier is incorrectly set.
Bug: angleproject:3473
Change-Id: I4fea5994a391b0db0f81183f1c4d4ba47d387acb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1631849
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7151fe54
|
2019-07-17T15:15:27
|
|
Port adjust_src_dst_region_for_blitframebuffer workaround to ANGLE.
BlitFramebuffer has issues on some platforms with large source/dest
textures. As per the WebGL2 spec, this was caught with validation for
sizes over 2^32, but there is a specific issue on Linux NVIDIA where it
fails on sizes over 2^16. A better workaround (from chromium), resizes
the blitframebuffer call based on the framebuffer size.
Bug: chromium:830046
Change-Id: Ic6196db6228d0d0ac92b12a68bbced76dcbcdf8c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1707115
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
9ec3f51d
|
2019-07-19T13:06:16
|
|
Reland "Vulkan: Implement OES_get_program_binary extension"
Reason for revert: default uniform initialization was incomplete
This change has the following fixes:
1. Add missing default uniform initialization when loading
program binaries.
2. Re-enable OES Program Binary capabilities for Vulkan.
3. Added two angle end2end test,
- ProgramBinaryES3Test.BinaryWithLargeUniformCount
uses several uniforms across the vertex and fragment
shaders.
- ProgramBinaryES3Test.ActiveUniformShader tests
the difference between uniform static and active use
Bug: angleproject:3216
Bug: angleproject:3217
Bug: angleproject:3665
Tests: dEQP-GLES3.functional.shader_api.program_binary*
angle_end2end_tests --gtest_filter=ProgramBinary*
Change-Id: If6886f01241d65bb1e17a21cc3406533021072ee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1699069
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8bea8eec
|
2019-07-19T15:59:31
|
|
Guard ID3DUserDefinedAnnotation access in DebugAnnotator11.
ID3DUserDefinedAnnotation is not thread-safe, like ID3D11DeviceContext,
however, it's being accessed from WorkerThread for parallel compilation,
thus guard it with mutex lock.
Bug: angleproject:3493
Change-Id: Ic7cc7fe03675174e054fe1e11d8d9e05abc716a5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1709726
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
f35f1110
|
2019-07-19T09:18:55
|
|
Add script to apply clang-format on all sources
1. python script wrapper to call clang-format over the whole code base
2. Add clang-format rule `IncludeBlocks: Preserve` to tell clang-format
do not merge include blocks
3. Fix existed clang-format issue in code base
Bug: angleproject:3532
Change-Id: I289292dc62c2784ff21688065c87c3f3f5538f17
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1709720
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
fb5c581d
|
2019-07-19T14:48:53
|
|
Functional revert of "Signal different dirty bit for vertex buffer change."
Seems to be causing rendering regressions in the Google Maps benchmark.
Likely causing other serious regressions.
Original CL: https://chromium-review.googlesource.com/c/angle/angle/+/1684294
Bug: angleproject:3256
Change-Id: I41608a3ce3c3267097b4c1c0a6f7450cf8a2f48f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1709756
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
765ee7b7
|
2019-06-19T14:19:52
|
|
Vulkan: support for new vertex attribs in GLES 3.0
Fixes handling of packed vertex formats, adds new overrides for 32-bit
[SU](NORM|SCALED) vertex types, and handles half-precision floats
correctly.
Pixel 2 does not natively support certain 10-10-10-2 vertex formats;
this change does not add support for them.
Test: ./angle_deqp_gles3_no_gtest --deqp-egl-display-type=angle-vulkan -n 'dEQP-GLES3.functional.vertex_arrays.*'
Test: ./angle_end2end_tests --gtest_filter='AttributeLayout*/ES3_Vulkan'
Test: ./angle_end2end_tests --gtest_filter='VertexAttribute*/ES3_Vulkan'
Bug: angleproject:3193
Change-Id: I5ae4edd743e86e3e89e2697034c04dc4d9ecd1f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1668230
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: James Dong <dongja@google.com>
|
|
86a28b3d
|
2019-07-19T12:10:08
|
|
Vulkan: Use the correct context in ImageVk::orphan.
The context used for Image creation was being used during orphaning. This
causes problems when the image is created with an external source or when
different contexts are used between creation and orphaning.
BUG=angleproject:3722
Change-Id: Iee4abd2116c3410efd8fb35722cc956cc6d8a3fa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1709753
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
833bce72
|
2019-07-19T12:07:29
|
|
Call ImageImpl::destroy before destroying the image source.
egl::Image destroys the source sibling before calling the backend destroy
function. ImageVk needs the source image to do proper clean up.
BUG=angleproject:3722
Change-Id: I110d77a9c4151166624bb953c579102ac7dab6ee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1709752
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
610f2388
|
2019-07-18T16:28:49
|
|
Return backwards compatible context versions in Vulkan, GL and D3D11.
This allows us to pass some dEQP GLES 2.0 tests that require using an ES 3.0
context and matches native driver behaviour of returning a higher-than-
requested context version when it's backwards compatible.
BUG=angleproject:3425
BUG=angleproject:3300
BUG=angleproject:3715
BUG=angleproject:3243
BUG=angleproject:3240
BUG=angleproject:3716
Change-Id: I03dfd56deb6191c3363808717e0eea6fdcf5f3ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1709111
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
901dd545
|
2019-07-19T07:43:09
|
|
Rectify bug in initialization of offsets for uniform variables
Make sure to set a uniform's flattenedOffsetInParentArrays
value only if it has a valid parent array index.
Serialize/Deserialize flattenedOffsetInParentArrays value.
Bug: angleproject:3216
Bug: angleproject:3217
Bug: angleproject:3665
Change-Id: I6e4d003b1dd74b330bcf153f8d3df92414f198dd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1704219
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
523dbf40
|
2019-07-15T10:56:26
|
|
Add GL versions to desktop implementation
The current implementation generates entry points for GL up to
version 3.1. Will need to support later versions for some apps.
Bug: angleproject:3698
Change-Id: Ic44d07b12a9eeeceb8cd98dd9c44652dca728dc0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1700572
Commit-Queue: Clemen Deng <clemendeng@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ce330593
|
2019-07-16T10:02:21
|
|
Rename ProvokingVertex and TextureBarrier
Need to rename these so that they don't conflict
with GL function declarations
Bug: angleproject:3702
Change-Id: Iefe490cb53a384c45f0d0024321deda43b461bcc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1704214
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Clemen Deng <clemendeng@google.com>
|
|
6a02f06d
|
2019-07-18T16:27:14
|
|
Implement EGL_ANGLE_create_context_backwards_compatible
This extension allows the user to specify if ANGLE should create a
context of the exact requested version or a higher version context that
is backwards compatible.
BUG=angleproject:3425
Change-Id: I7d0b75cdd7e34a2fc888aa238e1eeb67af82ae0d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1601560
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9c78f592
|
2019-07-18T10:13:05
|
|
Remove a few histograms from Renderer11.
D3D11 startup time isn't something we're actively looking at right now.
Bug: chromium:975166
Change-Id: I3e56d0b0e0da7eb5b10c55b8cfcc0b9769064202
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1707929
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
8cb95960
|
2019-07-16T13:54:57
|
|
Vulkan: Fix FS array output location assignment
Test: angle_end2end_test --gtest_filter=GLSLTest_ES3.FragmentShaderOutputArray/ES3_Vulkan
Bug: angleproject:3707
Change-Id: I6519a76aa58ad80ada0e2ad90a2a70d93f831ce5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1704779
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ec30d78d
|
2019-07-03T12:56:58
|
|
Optimize uniform matrix update
1. Add a fast matrix update function to do a single memcpy for uniform
matrix assignment with same layout. It benefits row-4 no-transpose GLSL
matrix and col-4 transpose HLSL matrix.
2. Make boolean IsColumnMajor to be a template parameter in generate
uniform matrix updating, which gets rid of the conditional branch
in loop and has better performance.
3. Add e2e test of uploading multiple 3x4 GLSL matrices at the same
time, which adds coverage to this CL.
Bug: angleproject:3632
Change-Id: Id1701ef6fbf63ea4b9884254d93ea8eacfe4e16a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1688274
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
69194e5f
|
2019-07-17T15:35:10
|
|
Reduce variance in TextureUploadPerf.
This reduces the test time to run in several ms instead of almost
seconds per iteration. It allows us to use the perf test runner harness
to check test performance more accurately by increasing the sample
count.
It first reduces the test iteration count to reduce total test time.
It also refactors the test contents to not allocate new objects and
memory with every test iteration. This gives a better sampling of what
the test is obsering: texture upload performance.
Also allows tests that like to track GPU time to be used with the NULL
device option.
Bug: angleproject:3712
Change-Id: Idacc3e3b424f8882d7680769b27d1f04146ea65d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1707112
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e9111885
|
2019-07-12T16:15:31
|
|
Vulkan: Optimize texture upload barriers
When flushing staged uploads to an image, a 64-wide bitfield is used to
track subresources that are uploaded since the last barrier. If a
collision is detected, a barrier is inserted and the bitfield is reset.
If the image has more than 64 subresources, some subresources would map
to the same bit and cause a few unnecessary barriers.
Texture upload benchmarks show 5% to 10% improvement both in CPU and
GPU time.
Bug: angleproject:3347
Change-Id: I21dd23c78879bb01d58bc869ffc8bee06c79e6c1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1700147
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e9cffa62
|
2019-07-16T16:32:40
|
|
Rename data_dir to angle_data_dir in GN files
Dawn reuses the Vulkan validation layers of ANGLE to avoid building
twice in chromium, and references build_overrides/vulkan_common.gni,
but angle_data_dir is undefined, which is defined as data_dir in
angle.gni. There is a reminder to rename this name in
https://chromium-review.googlesource.com/c/chromium/src/+/1610488
Bug: angleproject:3710
Change-Id: I4b7c4d24c37770ff58b70c988851a6ed32a04296
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1703175
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
c44d2c79
|
2019-07-11T14:45:56
|
|
Fix glGetProgramResourceName filling output with 0
strncpy was used to copy resource names, which fills the unused parts of
the buffer with '\0'. The spec doesn't forbid this, but dEQP fails on
this behavior, presumably to try and catch overflow bugs.
Bug: angleproject:3562
Change-Id: Ifce2d690221b2403848cb8913f4753ec60dfffab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1698647
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
2e43b0f5
|
2019-07-11T17:09:54
|
|
Vulkan: Implement memory barriers
Bug: angleproject:3574
Change-Id: I13d8f4fcd6f1bf9bf3496c91c2c697076e2491bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1699005
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7a5f35c4
|
2019-07-15T09:21:11
|
|
Filter out redundant glDepthRange calls
1. Compare depth range with active config in frontend when glDepthRange
is called. It avoids triggering unnecessary backend update. Also remove
depth range checking in D3D and GL backends as they are now done in
frontend.
2. Change the clamp on far and near plane to ASSERT statement in vulkan
backend, as clamp already been applied in frontend.
Bug: angleproject:3696
Change-Id: I52ad420dc446d685b98d53690637a19553372873
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1702284
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
950e1a4d
|
2019-07-16T13:10:29
|
|
GL: Reset the pixel unpack state after initializing texture data.
Texture data initialization happens after dirty bit synchronization so
TextureGL::initializeContents must be careful to leave the applied state the
same way it found it.
BUG=angleproject:3703
Change-Id: I1647cfc59c45fd9fad0fcde2e37af831e56f2e57
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1704215
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
f92fc916
|
2019-07-15T22:39:23
|
|
Vulkan: Compute shader support
A DispatchHelper class is created as the equivalent of FramebufferHelper
as a command graph resource. There's currently a single dispatcher and
all dispatch calls are recorded on that. Context dirty bits are set up
in such a way that graphics and compute workloads are independently
handled, so that issuing a dispatch call wouldn't cause a framebuffer's
render pass to rebind resources.
Bug: angleproject:3562
Change-Id: Ib96db48297074d99b04324e44b067cfbfd43e333
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1688504
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6e7dd1ef
|
2019-07-16T13:41:59
|
|
Generate openGL32.dll in a separate output folder
This is to avoid loading it locally and so that the pdb works
Bug: angleproject:3641
Change-Id: I2ce93ace47d1e6a1013d38964e5919084ad4ff7f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1704634
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Clemen Deng <clemendeng@google.com>
|
|
ec9ff8ce
|
2019-07-15T16:59:10
|
|
Fix checks for GL_ETC1_RGB8_OES, disable it on D3D11.
The GL backend was checking the wrong extension for GL_ETC1_RGB8_OES.
WebGL doesn't want to expose compressed formats that are emulated,
disable this format in D3D11 where it is always emulated.
BUG=98314
Change-Id: I1ba8418ad1578c070891828b87e49cf894dabc29
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1700574
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
c4c48b65
|
2019-07-15T22:34:18
|
|
Vulkan: Prefix context pipeline and dirty bits with Graphics
In preparation for compute pipeline and dirty bits.
Bug: angleproject:3562
Change-Id: I611b97fee1e500fdad32355d096254fd787c4ddd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1703525
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
998a37c9
|
2019-07-15T22:13:14
|
|
Vulkan: merge bindGraphics/ComputeDescriptorSets
The two called bindDescriptorSets with a fixed GRAPHICS or COMPUTE bind
point enum value. The differentation however would result in
unnecessary code duplication with upcoming compute support.
Bug: angleproject:3562
Change-Id: Ica4400c573a90fda168c64ad777d87aa83256e48
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1703524
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6f0780f8
|
2019-07-15T22:04:46
|
|
Vulkan: Rename CommandBufferOwner to RenderPassOwner
It's really only used to track the render pass command buffer. The
change is made in preparation for compute, where the dispatcher command
buffer can change without affecting the render pass.
Bug: angleproject:3562
Change-Id: Ia8246de731d5c6a272fa17d6f8952dc981eca36e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1703523
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
754d697f
|
2019-07-10T20:34:30
|
|
Ignore FreeAllocationOnTimestamp GL debug message
Erroneously produced by Android Q Qualcomm driver for worker contexts.
Bug: angleproject:3491
Change-Id: I8f2a5f05ad8a00c97d0dfa6e3b7a939d05656420
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1700255
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
5de073c0
|
2019-07-15T10:05:02
|
|
Vulkan: Enable more format-related tests to run
After seeing some CLs in this space, that didn't change the expectations
file, I checked to see whether more tests can pass, and they can.
Bug: angleproject:3190
Change-Id: Ifa1d1c7b91c403c8c67ddcb5d8a589cbaf686cf4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1702493
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
a9ec8749
|
2019-07-11T11:31:47
|
|
Vulkan: override format for mismatched attribs
Prevents Vulkan validation error by replacing the input format for any
mismatched vertex attributes with a format compatible to what the shader
expects.
Bug: angleproject:3436
Change-Id: Ia52f29c084d82bbc4e9149102cd4b5fc25ccb9b3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1698567
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8b2bb18f
|
2019-07-10T17:12:25
|
|
Vulkan: Update capabilities with the necessary limits
Some of the necessary limits were not being defined correctly in the
native capabilities, causing some dEQP test failures.
Bug: angleproject:3676
Test: Applicable dEQP-GLES3 limits testing
Change-Id: If977da1edd7d55627c65cd81a6dcd42c63a3a6a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1695934
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
663b0481
|
2019-07-11T12:37:35
|
|
Load correct opengl32.dll
Tests are still loading ANGLE's opengl32.dll instead of system's
This is because external drivers are trying to load opengl32.dll
Workaround: renamed to libGL.dll, need to change back when copying
dll over for loading
Bug: angleproject:3641
Change-Id: I051adc1fbb488a704c99718ad4a2f74bb7756cbd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1697290
Commit-Queue: Clemen Deng <clemendeng@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d9c17107
|
2019-07-10T14:56:26
|
|
Add support for GL_OES_texture_compression_astc
This extension adds 3D compressed texture formats, something ANGLE has
not seen before. This requires tracking a compressed block depth for
validation and image size computations.
Update the ldr and hdr extension checks to be in line with the spec.
HDR requires LDR and is not detectable by texture formats alone.
Expose all of the ASTC extensions on the GL backend.
BUG=angleproject:3675
Change-Id: Id04c7c8ef8541e9556579536cdba899b64303caf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1695923
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|