|
3d5f0c82
|
2020-05-19T20:05:57
|
|
Use surface texture offset for clears and blits
https://chromium-review.googlesource.com/c/angle/angle/+/2186176 added
surface texture offset attributes for D3D11 pbuffer surfaces, but the
implementation didn't apply the offset to blits or clears. This CL fixes
that and includes a unit test for blit, clear, and draw.
Also renames textureOffset to surfaceTextureOffset throughout since it's
clearer, and fixes the dcomp surface test to specify the update offset
returned by dcomp BeginDraw().
Bug: angleproject:2997
Change-Id: I9298ccf55cbb2d04c3b8f78e12f9d07dc8fa54b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2210967
Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
9dac86c9
|
2020-05-26T08:58:40
|
|
gen_proc_table: generate `const` tables
We never mutate these tables; marking them const allows the loader to
shuffle them to a place that makes them readonly after they're init'ed.
This isn't intended to be a functional change.
Bug: chromium:1084580
Change-Id: If3356f6082945ef1109bf08aab94f7bfb606b951
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2216295
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
05f11a3b
|
2020-05-21T14:33:42
|
|
Remove requirement of OES_texture_half_float for EXT_color_buffer_half_float.
Some OpenGL ES 3.0 devices don't advertise OES_texture_half_float, but
do advertise EXT_color_buffer_half_float. For this reason, stop
requiring OES_texture_half_float when determining renderability of
GL_RGBA16F textures.
Bug: angleproject:4649
Change-Id: I657011fcc3bb35909760a57e8ad53cfbbc61c67a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2212434
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
68f92942
|
2020-05-22T18:32:52
|
|
Emulate GL_EXT_sRGB on ES 3.0 devices without native support.
Translate the extension's internal formats and formats to values valid
in core ES 3.0.
Bug: angleproject:4655
Change-Id: Ie47d01fb2ebca7bab5058812c9f4217523f784a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2213262
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
9047ce5b
|
2020-05-26T11:23:35
|
|
Vulkan: Fix bad delete of swapchain.
We could end up deleting a dirty pointer if the driver set an
output value during a call to vkCreateSwapchainKHR that generates
an error. In practice this turned up in some edge cases with
SwiftShader. Fix this by using a temporary variable.
Bug: chromium:1079475
Change-Id: Ia40e1fac94cbd56fd3bb800a179bb38b7f11fa26
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2216292
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
30298dc2
|
2020-05-15T15:21:04
|
|
Vulkan: Optimize out barrier needs for transition between shaderReadOnly
If we are transition between different kind of shaderReadOnly, there is
no actual layout change or accessType change. Instead of always insert a
barrier, this will track what shaderStage has made read access and only
insert barrier if the read is from new shader stage. The barrier
inserted will be always from last non-ShaderReadOnly transition. There
is no read to read barrier generated.
Bug: angleproject:4550
Change-Id: I4aeb7d4bddf2d072b60839f98e7af1aa23f977b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2204480
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
6de7ee52
|
2020-05-25T17:00:01
|
|
Clean up overlay RenderPass count reporting.
This fixes the trace perf test to accurately report how many
RPs in each frame. Instead of counting the RPs on a flush we now
count only on a swap call. This won't work for offscreen surfaces
which is fine - the overlay doesn't really have the same use for
offscreen rendering. Also ignores the first frame in graph data so
we can ignore the first setup frame in the trace tests.
Also skips the redundant extra "flush" call that would generate an
empty space in the RP graph.
Gives a cleaner measurement for optimizing the XFB RP count.
Bug: angleproject:4622
Change-Id: I5762c500cdb216700247095984ae62b4f8741602
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2215309
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6820f77a
|
2020-05-22T17:50:03
|
|
Fix issue where last 8 bits of D24X8 influence depth calculation.
Bug: angleproject:4573
Change-Id: If33737cf6ae660b8df58c06a08df32dade472540
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2211768
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
27ceed38
|
2020-05-25T13:06:53
|
|
Fix replay crash when captured sample doesn't create binary data
Ensure samples without binary data like hello_triangle can be replayed
Bug: angleproject:4658
Change-Id: I6da29a05335abe93666b6c19fa769e84c42a9fa8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2212499
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ba4e2b94
|
2020-05-21T09:40:37
|
|
Type cast EGLNativeDisplayType to _XDisplay* in xcb and glx
As we are approaching the point when DisplayGLX will be compiled
in Ozone/X11 configuration, we need to resolve compilation errors.
Ozone has intptr_t EGLNativeDisplayType whereas X11 requires
Display* aka _XDisplay*. We've already done so in Chromium, and
it's time to do the same cast in angle.
Bug: chromium:1084458
Change-Id: I11b5ae2e10bfa316cbaa882be86af6894cfdbbf2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2211761
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
7ff01bb1
|
2020-05-21T15:22:53
|
|
EGL: Add missing sync entry points
Update libEGL.cpp with KHR version of sync entry points
Update libEGL.def with sync KHR entry point names
Bug: angleproject:4383
Change-Id: Ibda23a9e2ba6c873384238d492f0895b370fd6af
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2212892
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
31fbf981
|
2020-05-25T15:33:44
|
|
GL: Entry points for GL_OES_texture_cube_map_array
This extension is made core in GLES3.2. This CL adds the necessary
entry points to the frontend.
Bug: angleproject:3584
Change-Id: Icaaa0b298898f3360819966a7f67b5feaf05124b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2215305
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6789018a
|
2020-05-25T11:54:24
|
|
Context: init impl before creating objects.
This eliminates a potential invalid access that would turn up
in the Vulkan back-end. Also init a couple uninitialized variables.
Should fix an ASSERT in the Vulkan back-end when running WebGL tests.
Bug: chromium:1085627
Change-Id: I153f8dd83f567345b964b68784940d11712e7804
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2212498
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
c746ac65
|
2020-04-27T03:55:20
|
|
Remove redundant BlendStateArray tracking
Keep legacy BlendState for now.
Bug: angleproject:4394
Change-Id: Icba2b2f3a071d0f838a5480ff94869d35b776d94
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2169093
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
d3d7b95b
|
2020-05-19T17:27:50
|
|
Vulkan:Migrate timer sync functions to one-off cmd buffer
ContextVk's getTimestamp() and synchronizeCpuGpuTime() were the two
places that mCommandQueue was used outside of processing
SecondaryCommandBuffers. Migrating those functions to use the one-
off command buffer instead. This will allow for the removal of
mCommandQueue from ContextVk as we migrate it to RendererVk
instead for threading phase2 development.
Bug: b/154030730
Change-Id: Ic00ce56739dadcdc4b5a1b1839e0e18603bfe0eb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2209312
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
96a80283
|
2020-05-20T16:48:54
|
|
Advertise filtering support for FP16 luminance/alpha formats on ES 3.0.
Now that these formats are emulated if necessary on ES 3.0 contexts,
advertise filtering support as well. This enables
OES_texture_half_float_linear on mobile devices which support ES 3.0
but don't advertise this extension.
Bug: angleproject:4648
Change-Id: I09f00fbb1454b2cfa72295254fbc45c872f4919c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2210701
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
8add7dbf
|
2020-05-20T15:00:09
|
|
Tests: Add trace of Egypt to TracePerfTest
Test: angle_perftest --gtest_filter="*Trace*egypt*"
Bug: b/157158456
Change-Id: I9c076f247cb8a2743beae8377830c15269794f9d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2209689
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
93fc7d71
|
2020-05-19T14:03:42
|
|
Add error-handling when getting Xcb window size
We can't trust the reply from Xcb if an error has been flagged.
This was causing a crash in SwANGLE.
Bug: chromium:1080984
Change-Id: Icaf58197869b563e4193efcf4e70646d519210cf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2209255
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
22aba328
|
2020-05-20T10:59:56
|
|
Don't write alpha when blitting to a framebuffer with emulated alpha.
Emulated alpha framebuffers should never modify the alpha channel. Our
blitting code didn't take this property into account.
TEST=conformance2/rendering/blitframebuffer-resolve-to-back-buffer.html
BUG=angleproject:4645
Change-Id: I1797934df7e7aa520bacfba8a379f6545e38753e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2210023
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: James Darpinian <jdarpinian@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
585e3555
|
2020-05-14T10:49:48
|
|
Vulkan: Remove GL_BGRX8_ANGLEX from configurations
It doesn't need to expose an emulated RGB format any
longer. Skip ClearTestRGB.DefaultFramebufferRGB test
if GPUs don't support RGB format back buffer.
Bug: angleproject:4631
Change-Id: Ifa2d2ed6f863dcb698f7eea3e752a8cd5d5e0ced
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2198888
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
33cf03cd
|
2020-05-20T20:45:34
|
|
Vulkan: change preferAggregateBarrierCalls to accomodate ARM on linux
Bug: angleproject:4633
Change-Id: Ic198cef1afbad7dc96cead690daa46f07a653e96
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2211321
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Sunny Sun <sunny.sun@arm.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
1a4f6e1f
|
2020-05-20T10:37:24
|
|
Vulkan:Migrate command buffers to pointers
This is an intermediate CL as we move to a worker thread.
With the worker thread there will be a pool of more than 2 command
buffers so the current command buffers in use on the main thread
will be pointers that are assigned from that pool.
This CL isolates the command buffers as pointers to make review
simpler.
Bug: b/154030730
Change-Id: I3fc91222b07d5f3bf60f92a4c01b0910daad7df6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2207812
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
6c4af0c3
|
2020-05-20T14:54:39
|
|
Tests: Add a common framebuffer config for perf tests
As we add traces tests, some were recorded expecting depth as an
attachment to framebuffer 0. This causes errors when they
unconditionally query info about depth attachments. Since perf tests
have never requested a config before (they are all DONT_CARE for each
componenent), go ahead and set one shared by all.
Test: angle_perftests
Bug: b/157158456
Change-Id: I83ef1a58f246bfbc98c3bc7e024aca01560107f7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2210966
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e8b8b816
|
2020-05-19T18:58:55
|
|
Eliminate Program::mLinkResolved boolean
Since mLinkResolved boolean is always kept in sync with the presence
of mLinkingState structure, we can remove the former and replace
access with checks for the latter being nullptr.
Bug: angleproject:4644
Change-Id: Ib385b5c3881946d762ad48e6534c84d15e50f673
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2209319
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
|
|
651378b2
|
2020-05-14T20:44:54
|
|
Support OES_texture_{half_}float on ES 3.0 without these extensions.
Emulate the LUMINANCE, ALPHA and LUMINANCE_ALPHA formats with
GL_RED/GL_RG textures on platforms that don't support the
OES_texture_{half_}float extensions. Fix a preexisting bug in
TextureGL's luminance/alpha emulation where it would use desktop
GL functionality on GLES.
This change makes WebKit on iOS pass WebGL's
conformance/extensions/oes-texture-{half-}float tests per
https://bugs.webkit.org/show_bug.cgi?id=210524 .
Bug: angleproject:4636
Change-Id: I6c158058e4b170b16ece578a3930c230de16a9ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2203283
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
29fedbac
|
2020-05-20T09:52:15
|
|
Vulkan: Create a pre-rotation test for 400x300 windows
This test reproduces the cause of the failures with the
following dEQP tests:
dEQP.GLES31/functional_texture_multisample_samples_*_sample_position
This CL also fixes a problem with the previous test, and puts
the common rendering/ReadPixels code in a common method.
Bug: b/156395519
Change-Id: Id38476b6caf6f25c52f7504187fb500a39109438
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2207550
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
4c974793
|
2020-05-15T15:52:04
|
|
Vulkan: Don't invalidate XFB buffers on FBO switch.
This shouldn't need to change when the FBO changes.
Bug: angleproject:4622
Change-Id: I4b06a0f02e8dd16d50aaf5ac5fe4bcb81fc76c8c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2204597
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
d10ba166
|
2020-05-19T18:00:38
|
|
Rename ProgramState::getProgramExecutable() to getExecutable()
The "Program" part of ProgramState::getProgramExecutable() is already
implied by being part of a ProgramState, so it can be removed.
Bug: angleproject:3570
Change-Id: I35ffb2af81196fa7f189f7d3a37158f5f1951141
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2209317
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
d45b30b5
|
2020-05-15T14:45:51
|
|
Enable allowClearForRobustResourceInit for AMD drivers
AMD drivers that have trouble clearing textures have been
blocklisted by Chromium.
Since Intel and NVidia drivers were already been allowed to
clear for robust resource init, we're good to enable it for all IHVs.
Bug: angleproject:4460
Change-Id: If71d01a91806ffc0a78c30f0cc393e105a6c9c74
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2204698
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
|
|
cf8422c2
|
2020-05-19T10:14:02
|
|
Vulkan: Acquire a new BufferHelper from the pool based on a threshold
We acquire a new BufferHelper from the pool when the app updates the
data of the entire buffer. In scenarios where the app updates say, 60%
of the buffer it would still be benificial to acquire a new buffer and
copy over the remaining 40% of data from the old buffer to the new one.
This reduces the transfer workload from 60% to 40% of buffer size.
Currently the threshold is set to 50% of buffer size.
Bug: angleproject:4380
Change-Id: I12576c585230e771d4c1a4352fab93dd3db2ecef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2204655
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
258d94f6
|
2020-05-18T16:21:50
|
|
Vulkan: Add workaround for nvidia to always merge barriers into one
vkCmdPipelineBarrier call
Nvidia preferes one barrier call than multiple calls with fine grained
stage dependency information. They do not care much about stage
dependency. This adds a feature flag that sets to true on nvidia and
will merge all barriers into one call.
Bug: angleproject:4633
Change-Id: I204484aa4c5989655f74d70a0eaa235c3c83f548
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2207635
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
779a25a8
|
2020-04-27T02:11:58
|
|
D3D11: Migrate to the new blend state tracking
Migrate D3D ClearParameters struct to the new color mask storage
Bug: angleproject:4394
Change-Id: Ibeb64e4bbb2758b9c8271fc3c59d2d675850b0a8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2165886
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
78ef4133
|
2020-05-15T23:24:18
|
|
Fix invalid enums for OES_draw_buffers_indexed
Make sure the new enums are invalid before the extension is enabled.
Add a angle_end2end_test for that.
Bug: angleproject:4394, chromium:1058744
Change-Id: Ib88f6159294dab2eb7d3662b96c44424ab132782
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2205179
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shrek Shao <shrekshao@google.com>
|
|
ab851162
|
2020-05-18T17:35:10
|
|
Enable regenerateStructNames workaround on iOS
In https://bugs.webkit.org/show_bug.cgi?id=207858, the WebGL conformance
test conformance/glsl/misc/shader-struct-scope.html was failing. The
workaround that fixes this test was enabled only on desktop GL, but it's
necessary for iOS as well.
Bug: angleproject:4642
Change-Id: I29b96f16dd0608bb9597a4a9903e375a64dadf3d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2207636
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
|
|
4f343f3e
|
2020-05-13T14:11:51
|
|
Reland "Add support for GL_CHROMIUM_texture_filtering"
This is a reland of 38780ae3921d2570316119a881adfb9520e7e296 modulo the
changes to disable VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT, as
this was causing problems. With this landed, the extension will not work
on SwiftShader until we find a way to allow this extension through the
validation layers.
Bug: b/146423360
Bug: b/154620295
Change-Id: Ie09fc507c01a47be3bb227bc78771660170ba5d3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2199639
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
cdfc69c7
|
2020-05-02T21:54:42
|
|
Add ClearTestES3.TextureArrayRGB8
Bug: angleproject:4608
Change-Id: I0bb483e346f3fc605f4b31f74457b1bbaacbf86f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2172092
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8a90905c
|
2020-05-16T17:35:03
|
|
Revert "Vulkan: Try to merge barriers if possible"
This reverts commit 153c14cbd6e9f095c09dc1e6c938b1656bc56159.
Reason for revert: The dependencyStrongerThan logic is incorrect and causing perf regression on ARM.
Original change's description:
> Vulkan: Try to merge barriers if possible
>
> This is try to reduce the number of vkCmdPipelineBarrier API calls into
> driver. It should not affect the actual barriers.
>
> Bug: b/155341891
> Change-Id: I57b8b8cdad50d494c76a008006bd54961170c8bc
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2194841
> Commit-Queue: Charlie Lao <cclao@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
TBR=courtneygo@google.com,timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: b/155341891
Change-Id: I8ebe7481b299af446dfd488874e64e6e60b4f764
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: I8ebe7481b299af446dfd488874e64e6e60b4f764
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2205433
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
d34ab323
|
2020-05-04T10:48:48
|
|
Vulkan: Save linked ProgramExecutable data
PPOs need to support drawing with Programs that failed their last
linkProgram() if they had previously successfully linked. This requires
saving the ProgramExecutable when linkProgram() succeeds, and not
overwriting it with subsequent linkProgram() calls unil the next
successful one.
To achieve this, the new member ProgramState::mLinkedExecutable will
point to the last successfully linked ProgramExecutable and
ProgramState::mExecutable will point to a new ProgramExecutable when the
next linkProgram() is attempted. If the link fails, the newly allocated
ProgramExecutable will be delete()'ed and mExecutable will point to the
previous 'good' ProgramExecutable still being tracked by
mLinkedExecutable. If it succeeds, the old mLinkedExecutable will be
delete()'ed and mLinkedExecutable will be updated to point to the ne
one.
Bug: angleproject:4514
Test: KHR-GLES31.core.sepshaderobjs.StateInteraction
Change-Id: I0677602a6d652a055404667ec9e9305fed5b4177
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2181450
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5d01d538
|
2020-05-12T18:13:52
|
|
Resolve Bad Binary Link Failures
When ANGLE_PROGRAM_BINARY_LOAD is enabled, Program::loadBinary
unconditionally returns angle::Result::Continue to the caller. The
caller, gl::Program::link, postpones the resolution of the link
until resolveLinkImpl.
Unfortunately, resolveLinkImpl is not able to tell whether the link
failed because the shader from the developer is bad or because the
loaded binary is not compatible with the backend. The former case
should fail link. In the latter case, we should fallback to linking
the program from the original shader sources. The loaded binary could
be read from the on-disk shader cache and be corrupted or serialized
with different revision and subsystem id than the currently loaded
ANGLE backend.
This fix adjusts Program::loadBinary and ProgramD3D::load so that
angle::Result::Incomplete is returned to gl::Program::link when the
binary is incompatible with the backend. gl::Program:link falls back
to compilation from original shader sources.
Since no code checks the return value of SizedMRUCache::eraseByKey,
modified it to now return void.
Bug: chromium:1079497
Change-Id: Id5271d7badad8627563e87859d1c9fdb81de5785
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2197944
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
|
|
c55d2b41
|
2020-05-04T17:06:38
|
|
Respect IOSurface stride
In the iOS simulator we use glReadPixels to transfer rendered pixels to
the IOSurface. We need to account for the possibility of the row stride
not being equal to the width, because that happens sometimes. It's
currently causing corrupt rendering in Google Maps on WebKit.
Bug: angleproject:4611
Change-Id: I553d65cb0d0bf922e855ea50089904807dd39118
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2181676
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
|
|
8270ebbd
|
2020-05-08T14:00:18
|
|
Vulkan: Refactor and clean up XFB code.
This is a refactor-only change mostly. It makes the classes work
more similarly to how the other classes in the Vk back-end work. Also
removes some redundant code. Moves the buffer caching into begin for a
more dirty-bits like approach.
Bug: angleproject:4622
Change-Id: I34ac13e1d05b48e3267937c760d195493a76ed02
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2191172
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
ab8d424a
|
2020-05-13T16:34:05
|
|
Vulkan: Remove unused onExternalLayoutChange declaration
This function is no longer defined or implemented, but forgot to remove
the declaration.
Bug: angleproject:4229
Change-Id: Ifedcbe09fde56bc46d18ea5e87cf4a4ad51b85fc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2199645
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
85c86567
|
2020-05-12T18:43:16
|
|
Handle null ProgramExecutable in ValidateDrawInstancedANGLE()
It's possible for a user to call glDrawArraysInstancedANGLE() without a
Program or PPO bound, which would lead to no ProgramExecutable being
active and causes a null pointer to be returned in
ValidateDrawInstancedANGLE(). To handle this,
ValidateDrawInstancedANGLE() should return 'true' and not signal an
error since it's undefined behavior to draw without a Program/PPO bound,
but it's not an error.
Bug: chromium:1079336
Test: gpu_angle_passthrough_fuzzer
Change-Id: I90d9e99c63411d8388f4d8cf57ed46aec605ee68
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2197943
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
66d7490c
|
2020-05-12T15:09:29
|
|
Vulkan:Add trace marker in finishToSerial()
Bug: b/156403378
Change-Id: Ibd50bc0448ba15af14191c3bc735782ab0741abf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2197615
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
99db3471
|
2020-05-13T18:50:51
|
|
Unset the ActiveTextureCache entry if the program does not reference it
When changing uniforms of a program, State::onActiveTextureChange is
called to update the ActiveTextureCache. If the sampler uniform type
changes to TextureType::InvalidEnum, the entry in ActiveTextureCache was
not cleared. This causes stale entries in ActiveTextureCache because the
cache no longer matches what textures are bound and the cache does not
add references to the textures in it.
BUG=chromium:1078375
BUG=chromium:1072406
BUG=chromium:1078866
Change-Id: If9719dcd4fc865b2301db450eb8115e7cfe46c4a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2199654
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
8f6d1af9
|
2020-03-19T14:35:48
|
|
Vulkan: Implement EXT_texture_format_sRGB_override
Implemented support for EXT_texture_format_sRGB_override
This is done by creating new imageviews for textures with sRGB
overridden that reinterpret the format to its sRGB counterpart.
As preparation for this, textures that use this feature are
reallocated with VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT. This will
have a performance cost for textures that use this feature, but
should have no performance cost for regular textures, since they
will not have this bit set.
Bug: angleproject:4561
Test: angle_end2end_tests --gtest_filter=SRGBTextureTest.*Vulkan*
Change-Id: Iba25f1f2b0a7227959c1cb4ba6e3ca8311c20d06
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2152145
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
24268826
|
2020-05-04T10:48:48
|
|
Vulkan: Pass Input/Output Varying lists during linking
When linking program varyings, the necessary functions need the
following:
- Lists of Input and Output varyings
- Shader versions
- Shader types
Rather than the full Shader itself, just this information will be
passed around to the functions. This allows us to limit how much data
is saved for each Program when linkProgram() succeeds, so PPos can link
the attached Programs at draw time.
Bug: angleproject:4514
Test: CQ
Change-Id: I27b639cae9a153d0d3f5efab3b38550f09f4f49b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2181449
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
11f9c56c
|
2020-05-11T22:56:18
|
|
Vulkan: Tighten up asserts for resource ownership
We're not permitted to make accesses to a resource while it's owned by an
external instance or API. Add some asserts to verify this.
Exempt images on platforms that don't implement external memory barriers.
Bug: angleproject:3289
Change-Id: I1de929f6a412bfe5c1b798eaa1dc401bbceb5b7f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2195685
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Michael Spang <spang@chromium.org>
|
|
153c14cb
|
2020-05-11T14:45:35
|
|
Vulkan: Try to merge barriers if possible
This is try to reduce the number of vkCmdPipelineBarrier API calls into
driver. It should not affect the actual barriers.
Bug: b/155341891
Change-Id: I57b8b8cdad50d494c76a008006bd54961170c8bc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2194841
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e8d71eb3
|
2020-05-12T14:40:44
|
|
Vulkan: Fix ANGLE_ENABLE_VULKAN_VALIDATION_LAYERS_BY_DEFAULT
Unfortunately this was broken by 605af42e1 ("Vulkan: Move ICD overrides
to a common place").
This adds an unconditional dependency on the layers to tests. Tests
don't respect angle_enable_vulkan_validation_layers, so we need to ship
the layers irrespective of that setting.
Bug: angleproject:4634
Change-Id: Ided291ea645a72e6c3bdb960e55d15013aa20a3a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2197279
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4b225c70
|
2020-05-06T15:38:12
|
|
Add texture offset attributess for D3D texture pbuffer surfaces
Add EGL_TEXTURE_OFFSET_X_ANGLE and EGL_TEXTURE_OFFSET_Y_ANGLE attributes
to EGL_ANGLE_d3d_texture_client_buffer which are used to specify offsets
used for rendering into the pbuffer surface backed by a D3D11 texture.
Rendering with the correct offset is needed when Chrome gets a texture
and offset from an external source e.g. when calling BeginDraw() on
IDCompositionSurface.
Bug: angleproject:2997
Change-Id: I363f739f3f05c38720f385e34c91e98fc6a622a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2186176
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
|
|
fecd1afc
|
2020-05-04T10:24:57
|
|
Vulkan: Move necessary members from ProgramState to ProgramExecutable
ProgramPipeline's need to be able to link Programs before drawing, even
if the Program's previous linkProgram() failed. To work towards this,
some ProgramState members are being moved to ProgramExecutable so they
can be saved when linkProgram() succeeds and not overwritten by any
subsequent linkProgram() attempts that may fail.
This also allows the second half of this change, which is to pass in the
Program's ProgramExecutable to GlslangAssignLocations() and
GlslangWrapperVk::TransformSpirV() so the values saved from the last
successful linkProgram() are used.
Bug: angleproject:4514
Test: CQ
Change-Id: I68aa429be76c0c6e1b886be09a12200217fcc7ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2181448
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
39d187b8
|
2020-04-23T19:30:12
|
|
Update Program[Pipeline]State to hold a ProgramExecutable Pointer
This is a refactor CL to convert mExecutable in ProgramState and
ProgramPipelineState to a pointer, so it can be changed to point to a
different ProgramExecutable in a future CL.
Bug: angleproject:4514
Test: end2end
Change-Id: Id8ee9e5f2d1b02313973519cb2b4b0d5f7533b09
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2181447
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
08e0df62
|
2020-05-08T19:32:05
|
|
Vulkan: Create a test to debug Android pre-rotation
This test has been helpful because of its simple, very-predictable
color pattern. The red component corresponds to the x-axis, and green
to the y-axis. Red and green values will increment by 1, from 0 to
255/0xFF, as it goes further away from the lower-left corner.
Bug: angleproject:4436
Bug: angleproject:4431
Bug: b/150329975
Bug: b/150329969
Change-Id: I76ac866d36036257810f77adf9b4e28bcdcc28d0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2185747
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ce925b4c
|
2020-05-12T11:52:42
|
|
Perf: Add Temple Run trace
Test: angle_perftests --gtest_filter="*Trace*"
Bug: b/152512564
Bug: angleproject:4048
Change-Id: Ifca698a9c294e77bf90900781c1495ef6b559d63
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2197285
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
3a909841
|
2020-05-12T14:19:06
|
|
Perf: Add Reset call to trace tests
The traces are already updated to contain the Reset calls, now
actually call them from TracePerfTests.
Test: angle_perftests --gtest_filter="*Trace*"
Bug: b/152512564
Bug: angleproject:4599
Change-Id: I18b6726bc98b96f132c3245c51420cbfed1b84d8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2197284
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
544a80ef
|
2020-05-12T11:46:15
|
|
Perf: Detect context used by trace
Capturing supports multiple contexts, which are hard coded into
the function and file names. On desktop, they've typically been
"1", but on Android we've seen context "2" or "3".
This CL adds the ability to detect the context number used by the
trace, and programmatically adds it to generated files.
Test: angle_perftests --gtest_filter="*Trace*"
Bug: b/152512564
Bug: angleproject:4036
Change-Id: I64616b93a704446b08cb614b2a74ab1932ef1f40
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2197283
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
664376e2
|
2020-05-09T10:47:48
|
|
Vulkan: Fix performance issue
c9e0edc2 changed the layerCount in SubresourceUpdate to
VK_REMAINING_ARRAY_LAYERS in some cases. So that the deferred
clear logic cannot work correctly.
Bug: angleproject:4617
Change-Id: Idedada085c618ff900538094412c752522594684
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2191551
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
c4832968
|
2020-05-12T19:12:16
|
|
Check noopDraw() before prepareForDraw()
To support drawing without a Program or PPO bound, ANGLE needs to
check noopDraw() as early as possible to prevent accessing null
pointers while attempting to draw.
Bug: chromium:1079312
Test: gpu_swangle_passthrough_fuzzer
Change-Id: I85d6cab923ce42d93fa93e1792f342ce3c5baa8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2197946
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
9a78f6cf
|
2020-05-12T01:25:09
|
|
Add a test for mandatory Fuchsia handle types
FEMU isn't reporting zircon events correctly in
vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, which causes the
tests to be skipped. There's no test that can catch this problem, so add
one.
Bug: angleproject:4625
Change-Id: I0733e84eccb630569230c360fb900a1f04bf0f9b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2195690
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f0efc9c4
|
2020-05-12T00:22:07
|
|
Apply compression algorithm to VulkanExternalImageTest
These tests have opaque fd and zircon handle variants that only differ
in the handle operations. Turn the test into a template that runs twice
with an opaque fd and fuchsia template argument.
Bug: angleproject:3289
Change-Id: Ibb3baaa8eef239e3747a0e74ce17396637c8bcd9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2195686
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
6067c7d8
|
2020-05-12T18:18:47
|
|
Reland "Vulkan: Add semaphores test to VulkanExternalImageTest"
This is a reland of 69e46942563b30be8a79512252e92fcf00c1a522
Original change's description:
> Vulkan: Add semaphores test to VulkanExternalImageTest
>
> Add a more substantial test that uses semaphores to
> VulkanExternalImageTest.
>
> It's still just a clear in GL, which exposed a bug that a staged clear
> wasn't be flushed by a call to glSignalSemaphoreEXT.
>
> Bug: angleproject:3289
> Change-Id: Id938eaf2c8c20cb0ae9fb948fbfcf3448980b577
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2195684
> Commit-Queue: Michael Spang <spang@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Bug: angleproject:3289
Change-Id: Idce1e8944b72445c92be9ad08d8c5869ca0b7df2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2197735
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Michael Spang <spang@chromium.org>
|
|
fcfe7fad
|
2020-05-11T17:20:26
|
|
Capture/Replay: Fix MEC crash with Temple Run
CaptureMidExecutionSetup was accidentally creating a copy of a
vector, rather than using a const reference.
Test: Temple Run MEC on Android
Bug: b/152512564
Change-Id: Ia5eaa87235785eba7f10244d0ac7a831de0bcb0b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2197282
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
3b82fdcf
|
2020-05-12T23:44:07
|
|
Revert "Add support for GL_CHROMIUM_texture_filtering"
This reverts commit 38780ae3921d2570316119a881adfb9520e7e296.
Reason for revert:
Breaks SWANGLE-VK:
05-12 23:42:28.612 22836 22861 D libEGL : dlopen_ext from APK (libEGL_angle.so) success at 0x79f4485a10
05-12 23:42:28.617 22836 22861 D libEGL : dlopen_ext from APK (libGLESv1_CM_angle.so) success at 0x79f4485eb0
05-12 23:42:28.619 22836 22861 D libEGL : dlopen_ext from APK (libGLESv2_angle.so) success at 0x79f4485c60
05-12 23:42:28.624 14223 14223 D StatusBar: disable<e i a s b h r c s > disable2<q i n >
05-12 23:42:28.633 14014 14057 V DisplayPowerController: Brightness [0.19986142] reason changing to: 'automatic', previous reason: 'automatic [ dim ]'.
05-12 23:42:28.635 22836 22861 D vulkan : searching for layers in '/data/app/~~0AfWfBsFEO78tqKlnanevg==/org.khronos.gl_cts-NOs3SGclHqlbcqe-08gHrw==/lib/arm64'
05-12 23:42:28.635 22836 22861 D vulkan : searching for layers in '/data/app/~~0AfWfBsFEO78tqKlnanevg==/org.khronos.gl_cts-NOs3SGclHqlbcqe-08gHrw==/base.apk!/lib/arm64-v8a'
05-12 23:42:28.632 22836 22836 W .khronos.gl_cts: type=1400 audit(0.0:218): avc: denied { ptrace } for scontext=u:r:zygote:s0 tcontext=u:r:untrusted_app_25:s0:c512,c768 tclass=process permissive=0 b/77925912 app=org.khronos.gl_cts
05-12 23:42:28.636 14014 14034 I EventSequenceValidator: Transition from ACTIVITY_LAUNCHED to ACTIVITY_FINISHED
05-12 23:42:28.637 22836 22861 F SwiftShader: external/swiftshader/src/Vulkan/libVulkan.cpp:425 vkCreateInstance TRACE_ASSERT: pCreateInfo->pNext sType = 1000247000
--------- beginning of crash
05-12 23:42:28.637 22836 22861 F libc : Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 22861 (.khronos.gl_cts), pid 22836 (.khronos.gl_cts)
Original change's description:
> Add support for GL_CHROMIUM_texture_filtering
>
> Chromium enables a custom extension, GL_CHROMIUM_texture_filtering, when
> using SwiftShaderGL, to enable high precision filtering. This change
> makes it so ANGLE also handles this same extension when using the
> SwiftShaderVK backend, by enabling the new
> VK_GOOGLE_sampler_filtering_precision custom extension.
>
> Bug: b/146423360
> Bug: b/154620295
> Change-Id: I69cafc1ccf5970a3d220ac7e13ec3c8fdd4a9643
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2185822
> Commit-Queue: Antonio Maiorano <amaiorano@google.com>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=geofflang@chromium.org,jmadill@chromium.org,amaiorano@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: b/146423360, b/154620295
Change-Id: I803d7a7baac81cf178b59c4bf2789346ec1d3f87
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2197168
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
d0146e07
|
2020-05-12T14:47:11
|
|
Vulkan: Rename SurfaceRotationType to SurfaceRotation
Follow-on CL per request in
https://chromium-review.googlesource.com/c/angle/angle/+/2191425/3/src/libANGLE/renderer/renderer_utils.h#48
Bug: angleproject:4436
Change-Id: I2ee8c65a0dbcf2eee4c9c7f4252abf16a578cad3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2197614
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c4734bf6
|
2020-05-12T22:15:02
|
|
Revert "Vulkan: Add semaphores test to VulkanExternalImageTest"
This reverts commit 69e46942563b30be8a79512252e92fcf00c1a522.
Reason for revert: Broke the build due to VulkanExternalHelper API change
Original change's description:
> Vulkan: Add semaphores test to VulkanExternalImageTest
>
> Add a more substantial test that uses semaphores to
> VulkanExternalImageTest.
>
> It's still just a clear in GL, which exposed a bug that a staged clear
> wasn't be flushed by a call to glSignalSemaphoreEXT.
>
> Bug: angleproject:3289
> Change-Id: Id938eaf2c8c20cb0ae9fb948fbfcf3448980b577
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2195684
> Commit-Queue: Michael Spang <spang@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
TBR=spang@chromium.org,geofflang@chromium.org,jmadill@chromium.org
Change-Id: I50b2af80cd0214bd3c317eb5ba211ddc66803d74
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:3289
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2197193
Reviewed-by: Michael Spang <spang@chromium.org>
Commit-Queue: Michael Spang <spang@chromium.org>
|
|
d705f18f
|
2020-05-11T13:53:13
|
|
Vulkan: Add immediate scissored clears.
This allows us to avoid using draw commands with pipelines for
scissored clears. This prevents some tests from generating
large numbers of VkPipelines.
Bug: angleproject:4517
Bug: angleproject:4617
Change-Id: Id4a44000078098a60aa89233cfef30b75727d108
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2194473
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
69e46942
|
2020-05-12T01:46:50
|
|
Vulkan: Add semaphores test to VulkanExternalImageTest
Add a more substantial test that uses semaphores to
VulkanExternalImageTest.
It's still just a clear in GL, which exposed a bug that a staged clear
wasn't be flushed by a call to glSignalSemaphoreEXT.
Bug: angleproject:3289
Change-Id: Id938eaf2c8c20cb0ae9fb948fbfcf3448980b577
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2195684
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
7c6a30c2
|
2020-05-11T18:47:12
|
|
Enable validation layers in VulkanExternalHelper
If validation layers are requested by default, also enabled them in
VulkanExternalHelper.
Bug: angleproject:3289
Change-Id: Ic75089d38992be3b4745ce0309bf4ce6b8a702b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2195683
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Michael Spang <spang@chromium.org>
|
|
204720bd
|
2020-05-08T18:08:37
|
|
Fix GetBooleani_v validation and params length for WebGL OES_draw_buffers_indexed
WebGL 2 seems to be ES300 context and will fail the
ValidateGetBooleani_v at context->getClientVersion() >= ES_3_1.
Also for getIndexedParameter pname==GL_COLOR_WRITEMASK, the length
shall be 4.
Bug: angleproject:4394, chromium:1058744
Change-Id: Ia60506b6b1f120ed06acbcea0cb1f4581c70b32b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2191424
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shrek Shao <shrekshao@google.com>
|
|
a2ece533
|
2020-05-12T12:20:00
|
|
GL: Use a valid internal format for CopyTexImage in BlitGL::blitColorBufferWithShader
The frontend format is not always valid to use for glCopyTexImage.
Translate it to a valid format for the current driver.
TEST=deqp/functional/gles3/framebufferblit/default_framebuffer_00.html
BUG=angleproject:4632
Change-Id: I838a1b27b528f074f440575adb88357a910f596a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2196842
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
e9dcffb1
|
2020-05-11T17:36:33
|
|
Vulkan: Enhance ReadPixels to deal with pre-rotation
Depending on the orientation, the source image may be row-major
or column-major; with positive or negative x/y-axis pitches.
Regardless of the orientation, the destination remains
row-major.
Bug: angleproject:4436
Bug: b/150329975
Change-Id: Ia1287f7036f07548d35128f1761feadf721cd78a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2191425
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
c6aef6dd
|
2020-05-02T20:24:56
|
|
Skip indexed clears on disabled draw buffers
Fixes ClearTestES3.ClearDisabledNonZeroAttachmentNoAssert
Also fixed an assert in RenderTargetCache::updateColorRenderTarget
Bug: angleproject:4607
Change-Id: Ic527eabacd424786736876136590b8409c9b49d1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2172091
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
e7b9118b
|
2020-05-11T17:49:30
|
|
Vulkan: Set maxShaderImageUniforms zero on some Mali GPUs
Some Mali GPUs don't support vertexPipelineStoresAndAtomics
feature, so the maxShaderImageUniforms should be set zero.
Bug: angleproject:4629
Change-Id: I754506dd27c75b3dfd5ab695e24a680f683ca78a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2195424
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9823d86a
|
2020-05-11T13:13:41
|
|
Fix EGLSurfaceTest.ResizeWindow on Fuchsia
A VkSurfaceKHR may not have an intrinsic size as is the case on Fuchsia.
This is broken since 718ae5088 ("Vulkan: Always query EGL_WIDTH and
EGL_HEIGHT"); queries for EGL_WIDTH or EGL_HEIGHT now always return -1.
Switch back to the old behavior in this case.
Bug: angleproject:4624
Change-Id: I7e7bf569db9aec9890b2cb184056be5a6031bd98
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2191173
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Michael Spang <spang@chromium.org>
|
|
39ce0f67
|
2020-05-08T20:27:03
|
|
Skip swiftshader tests based on active GPU
Currently Swiftshader tests are skipped only if a swiftshader device is
requested. We should also skip swiftshader tests if the default GPU on
the system is swiftshader, as is the case in certain emulated systems.
Bug: angleproject:4626
Change-Id: I3ee83c43d35eb4f94b516e80689b241d53bbfb62
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2192090
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d654234e
|
2020-05-10T19:35:05
|
|
Vulkan: Use dedicated allocations in VulkanExternalHelper
This removes the coverage of non-dedicated allocations, but we've never
supported that properly anyway (we require that the offset passed to
glTexStorageMem2DEXT be zero).
Bug: angleproject:4627
Change-Id: I14b0f39e5e13c3aafc4549dc59b6e3ac4ec6ad8c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2192500
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Michael Spang <spang@chromium.org>
|
|
93ec0ca5
|
2020-05-06T11:57:42
|
|
Capture/Replay: Regenerate glue if captures change.
This ensures if we re-capture with different parameters that
we regenerate traces. It uses the sha1 so that it can be run
correctly from an open-source checkout.
Bug: angleproject:4590
Change-Id: I01a2eef037924c5acaaf124308315364e6f1d723
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2185157
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
3ff24d6f
|
2020-05-10T18:16:55
|
|
Vulkan: Add dedicated allocation support to MemoryObjectVk
Add a VkMemoryDedicatedAllocateInfo to the vkAllocateMemory pNext chain
if the client specifies the memory object was a dedicated allocation.
We don't yet support suballocation of external memory objects, so all
allocations are already effectively dedicated allocations regardless
of whether vulkan requires it.
The spec requires that memory passed to vkBindImageMemory be created with
a VkMemoryDedicatedAllocateInfo if the driver requires dedicated
allocations for that VkImage. If the driver does not require a dedicated
allocation, there actually seems to be no explicit requirement to use
this structure even if it was passed in at allocation time.
Bug: angleproject:4627
Change-Id: I8a660e871bdf72815815f0c0b3000f3b0570bd2d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2192501
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Michael Spang <spang@chromium.org>
|
|
823b1bff
|
2020-05-07T16:06:26
|
|
Trace/Replay: Always use Linux-style line endings.
This makes the traces consistent no matter which platform they are
captured on. Will make it easier to use hashing with our code generator
script.
Bug: angleproject:4590
Change-Id: I7134b824c5cfefe4f2c21d8f9e21d80c2e8af57b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2188953
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
6b924160
|
2020-05-07T13:42:48
|
|
Vulkan: Split barriers into multiple calls to ensure no extra dependency
gets introduced
This tracks barriers in an array based on dstPipelineStage.
Bug: b/155341891
Change-Id: Icba2ef81530edcdb9ae363b00f0e7b9efe93d48f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2188955
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
fa507296
|
2020-05-08T12:10:13
|
|
Update trace capture workflow doc.
Makes a lot common between Linux and Windows using git bash.
Bug: angleproject:4620
Change-Id: I68cf8ac0fb43bc9c21d07ae3abecf5ca0358261c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2189814
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
38780ae3
|
2020-05-06T16:05:02
|
|
Add support for GL_CHROMIUM_texture_filtering
Chromium enables a custom extension, GL_CHROMIUM_texture_filtering, when
using SwiftShaderGL, to enable high precision filtering. This change
makes it so ANGLE also handles this same extension when using the
SwiftShaderVK backend, by enabling the new
VK_GOOGLE_sampler_filtering_precision custom extension.
Bug: b/146423360
Bug: b/154620295
Change-Id: I69cafc1ccf5970a3d220ac7e13ec3c8fdd4a9643
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2185822
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
572ee7b9
|
2020-04-26T13:58:22
|
|
Vulkan: Fix texture copy from texture3d to texture2d or cubemap
In vulkan spec, if srcImage or dstImage parameters are of
VkImageType VK_IMAGE_TYPE_3D, the baseArrayLayer and layerCount
members of the corresponding subresource must be 0 and 1.
Bug: angleproject:4553
Change-Id: Iabdc9708c86606c0d78c095c9d44827951264180
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2166863
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
20e631fe
|
2020-05-05T12:19:58
|
|
Update VMA integration again.
This time using a simpler integration and no template.
Bug: chromium:1074162
Change-Id: Ia770f2bf724ffb9b8120dbdbc707133fc61e16c6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2182173
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
17545eae
|
2020-05-08T11:59:21
|
|
Vulkan: Initialize mReserved in SamplerDesc::update.
The other initailization path SamplerDesc::reset updates sets this value.
Make sure it's initialized in all paths.
BUG= chromium:1079398
Change-Id: Ia39722ec905e75483acde0907e891e68badfa9ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2189913
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
25e21f9f
|
2020-05-07T16:57:37
|
|
Suppress HLSL warnings 3556 and 3571
These are both fairly common, and rarely actionable.
Bug: chromium:765576
Change-Id: Ib067fcbb1d4ffe7fcd47b69dbe5defac81430a70
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2188952
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
5b35c7f6
|
2020-05-07T13:40:55
|
|
Fix up screenshot saving for trace tests.
Now works when run in a sequence. Also saves RGB images to avoid
issues with the alpha being inconsistent and also flips images
vertically to fix the rendering.
Bug: angleproject:4615
Change-Id: I8d3b38c5d914e0ca2227320ac42a0e28acd12c4d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2187971
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
234ea5b1
|
2020-05-05T14:44:30
|
|
Vulkan: Wrap barrier data into PipelineBarrier class
This is preparation CL without introducing any functional change. This
Cl wraps barrier data into its own class and put necessary data
structures in place. It still uses one vkCmdPipelineBarrier call.
Bug: b/155341891
Change-Id: If9c70d24873bd9b89e598acfba2eeee364f0b6c1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2185149
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
dae210e6
|
2020-05-04T00:44:16
|
|
Fix validation errors & re-enable VulkanExternalImageTest clear tests
These tests previously encountered errors attempting to transfer images
from VK_QUEUE_FAMILY_EXTERNAL back to itself (this is not valid because
one of the queues families in a memory barrier must be the family of the
queue that executes the barrier). These invalid transfers were made
because our ownership tracking started all resources in the "externally
owned" state, with the expectation that the first operation on the
resource would be a call to glWaitSemaphoreEXT to acquire ownership.
It is far from clear that a call to glWaitSemaphoreEXT is always
required to gain ownership of a resource. The EXT_external_objects
extension inherits Vulkan's semantics, and what the Vulkan spec says is
that the first entity to access a resource implicitly assumes ownership
(see 11.7.1 "External Resource Sharing"). Binding a resource to memory
does not constitute an access to that resource, or affect its ownership.
Allocations should not be accesses, either; they happen at a lower level
and the entire discussion about determining initial ownership from first
access would serve no purpose if the mere allocation of the underlying
memory was sufficient to assume ownership.
This patch therefore adjusts the initial queue family ownership of
resources created in memory objects to be the ANGLE renderer's queue
family, just like a locally allocated image would be. Since this
ownership state may not be correct (an external API may have already
accessed the image, and assumed ownership) we must relax our assertions
to allow a call to glWaitSemaphoreEXT while in this state. For images,
this is only permitted while the layout is undefined.
An alternative would be to set the initial queue family to a sentinel
value that indicates that we don't know, but that would require checking
for this value before making any accesses, and only then asserting local
ownership. There's no real upside to this; the net effect of the first
access rule is that we must effectively assume ownership until proven
otherwise.
Besides appearing to be the spec's intent, this change simplifies some
usage scenarios because a queue submission is not required in the source
Vulkan instance in order to allocate resources that will be initially
accessed from GL. This seems especially important since there's no
mechanism to allocate an external memory object from inside GL.
The only downside is that the initial ambiguity in ownership prevents us
from diagnosing certain errors, but this limitation is temporary;
ownership becomes clear as soon as there is at least one access or at
least one synchronization operation affecting the resource.
Bug: angleproject:4229
Change-Id: Ibca2bfe373810c55352b1d849d07733d5fcfe5f4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2178946
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d08f1d8d
|
2020-05-05T12:54:07
|
|
Perf tests: Add screenshot capture mode.
This adds a "--screenshot-dir" argument to capture screenshots.
If we're running with screenshot capture then the test will
early exit after the first capture. The screenshots use the same
naming pattern as the test name:
TracePerfTest.Run/vulkan_trex_200 -> angle_vulkan_trex_200.png
Note the screenshot dir is relative to the test binary directory,
not the CWD. Also adds a PNG saving utility function.
Bug: angleproject:4615
Change-Id: I1de8ae6a6e6892586bb0b743e7b9a842f90f98e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2184834
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
e7d27705
|
2020-04-30T05:50:21
|
|
Fix corruption when changing the base level of a framebuffer texture attachment
In the D3D renderer, changing the base level may trigger re-allocation
of the texture storage, for example if the new base level has a
different aspect ratio. During the process, image contents in the
texture storage should be backed up properly. The D3D11 backend does
this if an image has been associated with the texture storage, but it
may happen such an association has never been established, and
corruption will be observed then.
The proposed patch mitigates the problem by introducing a new method
named findRenderTarget(), with which one can tell if a mip level has
been used as the render target. This works based on the fact that render
targets are cached in the texture storage object. Hence all mip levels
of interest can be found, without relying on the association between
images and texture storage.
Bug: angleproject:2291
Change-Id: Ic73af7b603be25c65760928f276bec16df003baf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2158830
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
101da757
|
2020-05-06T16:10:29
|
|
Capture/Replay: Update gfxbench traces
Incorporate fixes to get them running correctly on native.
TBR=cnorthrop@google.com,courtneygo@google.com,jmadill@chromium.org
Test: angle_perftests.exe --gtest_filter="*Trace*"
Bug: angleproject:4598
Change-Id: I44e9401f1554cc89749ac398ebe46440abd8eeff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2186171
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
712fea9a
|
2020-05-06T15:45:25
|
|
Sync state when calling getTexImage
ANGLE's mid-execution capture was failing after changes to
defer clears. There were still textures with pending updates
and dirty bits after SwapBuffers. This caused our calls to
Texture::getTexImage to assert.
This was due to a bug where getTexImage was not syncing state.
This change makes the function non-const so that it can update
state directly.
TBR=cnorthrop@google.com,courtneygo@google.com,jmadill@chromium.org
Test: Manhattan MEC
Bug: angleproject:4517
Change-Id: I717ad44cfc60ae0d4483721f1c91e47c5dda3939
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2186170
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
a2ec926c
|
2020-01-02T19:07:38
|
|
Specify LUID in D3D11
Add an extension to provide the ability to specify the LUID of the
GPU adapter to use when using D3D11.
Corresponding chromium CL:
https://chromium-review.googlesource.com/c/chromium/src/+/2096778
Bug: chromium:792657
Change-Id: Iefebea221a4b7a20f150b445ae1adf375444726d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2096663
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
|
|
36c938e0
|
2020-03-31T12:42:16
|
|
GL: Ignore warnings about requested extensions not being present.
Some drivers emit warnings about enabled extensions not being present
dispite the 'enable' flag only being a request. Supress these warnings
to clean up the Chrome console.
Also request GL_EXT_gpu_shader5 in addition to GL_ARB_gpu_shader5 to
maximize reach.
BUG=chromium:1066212
Change-Id: If48cc60b8533f6ffedb727e845a4ca784d98c07c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2129111
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
12b6a82e
|
2020-04-03T18:31:22
|
|
No-Op draws when no active VS and/or FS is present
Re-land CL with WebGL fixes:
This required some extra pointer checking during validation to handle
the fact that a Program and/or ProgramExecutable may not be present when
attempting to draw. This isn't an error, just undefined behavior, which
we (eventually) treat as a no-op.
According to the OpenGL ES 3.1 spec:
7.3. PROGRAM OBJECTS
If there is no active program for the vertex or fragment shader
stages, the results of vertex and fragment shader execution will
respectively be undefined. However, this is not an error.
To handle this, if no VS or FS is present in the active Program/PPO,
we will no-op the draw command.
Bug: angleproject:3570
Test: KHR-GLES31.core.sepshaderobjs.StateInteraction
Change-Id: I70d688bf344a78cf3b4fd66c995ae03ce4b9b807
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2185156
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
e25af112
|
2020-05-06T13:35:08
|
|
Add spang to OWNERS for Fuchsia port
Bug: angleproject:1058521
Change-Id: Ice420d68d409eaa2db7b1d71245c43d1f54c9f7a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2185192
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Michael Spang <spang@chromium.org>
|
|
7e5d7dc3
|
2020-05-06T12:56:41
|
|
Vulkan: Initialize all members of VmaVulkanFunctions.
VmaVulkanFunctions was passed to vmaCreateAllocator without initializing
all members. This leads to potential reads of uninitialized variables.
BUG=chromium:1078652
Change-Id: Id349c8fbb2dd3a5a2c64c6a017add3d6f97b78fd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2185191
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
562602a3
|
2020-05-05T12:32:56
|
|
Vulkan: Move CommandBufferHelper to vk_helpers.h
Pull CommandBufferHelper class out of ContextVk.h/cpp and move it
to vk_helpers.h/cpp. This is the natural place for it as it's a
helper class. Also, this class is planned to be the interface between
the main and worker threads so moving it to vk_helpers makes it easy
to share between Context and Renderer.
Bug: b/154030403
Change-Id: Ie5eeb864164a3787f800905ae885027834bd1a08
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2182177
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|