|
6af0c03f
|
2021-02-25T18:15:21
|
|
Vulkan: Always write to swapchain alpha channel
This fixes an issue with the "Ragnarok M: Eternal Love" game, which
uses a GL_RGB8 format for its window, which is actually backed by a
GL_RGBA8 format (a.k.a. "emulated alpha"). The game does no explicit
clear per frame. Therefore, ANGLE selects a render pass
loadOp=DONT_CARE, which leaves the alpha channel undefined (0.0 on a
Pixel 4 XL). That causes SurfaceFlinger to show (blend or alternate
vsyncs) what should have been covered up by the game (e.g. the Android
launcher and live wallpaper).
The solution is to prevent loadOp=DONT_CARE for emulated alpha.
Test: ClearTest.ChangeFramebufferAttachmentFromRGBAtoRGB
Test: dEQP-GLES2.functional.fbo.render.stencil_clear.tex2d_rgb_stencil_index8
Bug: b/180139027
Change-Id: Ied97b57c93d41326cb3294ff246691e09f316791
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2704949
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
fb7a2445
|
2021-02-12T09:29:11
|
|
libANGLE: Declare copy operator if copy constructor is defined
If the copy constructor is defined then the copy assignment
must also be defined, but we can use the default here.
v2: Don't inline because the chromium-style errors out on this
Bug: angleproject:4486
Change-Id: Iec0f63342244249da32b455b49a0b89b6558cab9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2690953
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a6d46239
|
2021-01-25T11:40:47
|
|
Capture/Replay: Support CaptureGetQueryObject
Test: Fortnite MEC
Bug: b/180418810
Bug: angleproject:5658
Change-Id: Icc95faeebbe1fa850f25252c90a5ef8b68634ea0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2702153
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
4f639a7e
|
2021-02-27T17:36:25
|
|
Fix Ozone backend build flags.
Broken by http://crrev.com/c/2405806
ANGLE_USE_GBM must be defined in Display.cpp, not just GL backend.
This also requires depending on libdrm for its headers.
Bug: angleproject:3943, chromium:1181952
Change-Id: I4650d7806435413184b36c820cc6d06992f7f5cf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2726575
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
73afaf1e
|
2021-02-26T18:08:08
|
|
Add EGL_WINDOW_BIT to all Ozone configs' EGL_SURFACE_TYPE
Ozone's EGL windows are emulated, so we can always create one,
thus setting EGL_WINDOW_BIT in all configs is safe.
This is now required because in http://crrev.com/c/2378922
EGL_WINDOW_BIT becomes a requirement to be able to run tests.
Previously Ozone's configs copied native EGL_SURFACE_TYPE,
which was either 0 or having just EGL_PBUFFER_BIT.
Bug: chromium:1181952, chromium:1034840
Change-Id: Ic2b14b43b3c32b47ea05d9d8da9fba7439f14d19
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2725273
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
2b55f876
|
2021-01-29T18:02:21
|
|
Reland "Workaround for Mac Intel drawArraysInstanced with first > 0"
This is a reland of 027bc47ca5b7b291fbda907173eefa05ad3d45a8
Original change's description:
> Workaround for Mac Intel drawArraysInstanced with first > 0
>
> Workaround by forcefully set instanced arrays (divisor > 0)
> as streaming attributes and apply extra offset at front. Recover
> those attribute bindings when first == 0 and other draw calls
> (drawElementsInstanced)
>
> Bug: chromium:1144207, chromium:1144247, chromium:1144373
> Change-Id: Ie7836cc71b45a290513f34f90d49bd15b14ddba8
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2661095
> Commit-Queue: Shrek Shao <shrekshao@google.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Bug: chromium:1144207
Bug: chromium:1144247
Bug: chromium:1144373
Bug: angleproject:5271
Change-Id: Id0b818b25a605376c98c2366c1f2029e2490c6cb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2704799
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
da4aa8b8
|
2021-02-25T16:26:53
|
|
Vulkan: Move SPIR-V validation function to common/
For future use by the translator.
Bug: angleproject:4889
Change-Id: I051ad48e6edb58ce3055c5fd276c18a6e29a66ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2717020
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
67333608
|
2021-02-25T14:15:33
|
|
Vulkan: Check texture type before calling into feedbackloop check
In ContextVk::updateActiveTextures we end up calling this method
shouldSwitchToReadOnlyDepthFeedbackLoopMode(...) for every active
texture. Since color textures are more numerous than depth, check
the texture type beforehand to decrease function stack depth.
This removes 0.5% CPU overhead from a Manhattan30 offscreen run
Bug: angleproject:5689
Change-Id: I14758b031e58b269392b4f450a5bb1ba8edabb44
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2723493
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
b5af8bde
|
2021-02-24T09:47:43
|
|
Vulkan: No need to unmap buffer when adding to mInFlightBuffers
When we move a BufferHelper to the mInFlightBuffers list
don't try to unmap it there, instead do that when it gets added
to mBufferFreeList
This removes 0.75% CPU overhead from a Manhattan30 offscreen run
Bug: angleproject:5689
Change-Id: I01a52cdf4803fb8364140b01bedbd3d0e6cc61fd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2723492
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
46df78dc
|
2021-02-25T20:30:42
|
|
GCC: add missing static constexpr member definition
C++14 requires to definition of static constexpr members to
emit a linker symbol.
Bug: chromium:819294
Change-Id: I06b7f1f7a6260982cf07a71c67295789c1f03084
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2720261
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a476d16b
|
2021-02-24T12:58:56
|
|
Check that pixel store params are 0 for fastUnpack path on D3D.
Bug: angleproject:5679
Change-Id: I4b4d0e2340592383e20849ad6be99c1608c048c7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2716705
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
|
|
bdd1ac23
|
2021-02-25T16:31:25
|
|
Capture/Replay: Add CubeMapArray support
Test: Recapture Lego Legacy: Heroes Unboxed
Bug: angleproject:5685
Change-Id: I41a5ceb72724ab28ce3d57a85108d3dd806d976f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2721103
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
4f07f9b8
|
2021-02-24T13:50:18
|
|
gles_ext_params: Implement CaptureGetTexLevelParameterivANGLE.
As seen in CaptureGetTexParameteriv_params from
capture_gles_2_0_params.cpp.
Bug: angleproject:5645
Change-Id: Id687f73fd5d898e64e8a8bebe92ca50a0e096990
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2718044
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
33907625
|
2021-02-24T12:41:07
|
|
gl_angle_ext: Add param groups to glGetTexLevelParameterivANGLE.
As seen in glGetTexLevelParameteriv from gl.xml.
Bug: angleproject:5645
Change-Id: I1d8445f2178632b0edb0652e63984b31a1e34c48
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2718043
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d24398b3
|
2021-02-25T15:07:00
|
|
gl.xml: Annotate glDiscardFramebufferEXT with param groups.
Remove tests from expectations list, as it now passes on SwiftShader for
ES2 and ES3.
Bug: angleproject:4401
Change-Id: If05b16e40632154a0ba2c22f1c3bf29e12113389
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2720259
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
77637f2d
|
2021-02-19T15:18:52
|
|
Vulkan: Generate xfb support code in SPIR-V for emulation path
This change moves the code generation at link time from source code to
SPIR-V. As a result, transform feedback extension and emulation paths
are more similarly handled before SPIR-V transformation (they both store
information identically in the ShaderInterfaceVariableInfoMap).
This change gets rid of the @@ XFB-OUT @@ marker. With no source code
generation at link time, shader compilation can be moved to
glCompileShader time.
Bug: angleproject:4888
Change-Id: I8cdb89c22b57ce48cf5d226b8e41622d9d550d46
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2713269
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
46a955f8
|
2021-02-25T16:06:05
|
|
gen_vk_internal_shaders: Don't include full path on Python 3.4+.
Since Python 3.4 `__file__` represents an absolute file path:
https://docs.python.org/3.4/whatsnew/3.4.html#other-language-changes
We only want the basename in the generated scripts.
Bug: angleproject:5516
Change-Id: Ia4009419ef627aa1ce12f9a944539c054edc3a6b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2720260
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9b1c569b
|
2021-02-24T11:32:39
|
|
Vulkan: Handle vertex count and primitive mode error cases in TS
When handling tessellation shaders these 2 requirements need to be met -
1. TCS - vertex count should be declared at least once
2. TES - primitive mode should be declared at least once
After translating TCS/TES check whether these requirements are met
and error out if they are not.
Bug: angleproject:5557
Test: dEQP-GLES31 -
functional.shaders.linkage.es31.tessellation.varying.rules.unspecified_*
KHR-GLES32 -
core.tessellation_shader.compilation_and_linking_errors.te_lacking_primitive_mode_declaration
Change-Id: I727d548ad446646bbece1fb78197639537b5f395
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2714465
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
550f2a3e
|
2021-02-24T09:49:42
|
|
Vulkan: Shader support for EXT_shader_framebuffer_fetch_non_coherent
Translator can accept gl_LastFragData and 'inout' variable to gain
access to framebuffer attachment data. The Vulkan translator replaces
it with the SubpassInput type variable. Note that this works only for
the noncoherent version of the extension.
Bug: angleproject:5454
Test: *EXTShaderFramebufferFetchNoncoherent*.*
Change-Id: I392f84ee3ad3eb9fbd09d0b7ff83731a9a3f33f6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2598060
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
3013f27c
|
2021-02-23T22:37:42
|
|
Vulkan: Fix missing visibility barrier for glReadPixels
glReadPixels uses a temporary buffer for readback and was missing an
onBufferTransferWrite() call.
Bug: angleproject:5669
Change-Id: I3c6daba176e332711fa1ab51e279526717486dd0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2717005
Reviewed-by: Jie A Chen <jie.a.chen@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4a24786e
|
2021-02-23T23:32:48
|
|
Vulkan: Fix PBO read pixels with unaligned output pitch
Vulkan takes the output pitch in texels instead of bytes in
VkBufferImageCopy::bufferRowLength. This means that it's impossible to
use vkCmdCopyImageToBuffer when the pitch is not a multiple of texel
size. This change makes sure the fallback path is taken.
Bug: angleproject:5667
Change-Id: I3f2ef312bb8288de8ca3c6730d85a3c14858812e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2717006
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
999da35e
|
2021-02-18T17:29:20
|
|
Vulkan: Optimize glMemoryBarrier more
The implementation assumed that the X_BARRIER_BIT bits implied two
barriers; write->X and X->write. However, they only imply write->X,
with the exception of SHADER_IMAGE_ACCESS_BARRIER_BIT and
SHADER_STORAGE_BARRIER_BIT which handle X->write for images and buffers
respectively.
As a result, the other bits no longer set the MEMORY_BARRIER dirty bit
as they don't guard against X->write usage.
Bug: angleproject:5070
Change-Id: Id23904c455a5f56dc45fc6832a74fdfbba6a4827
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2705702
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7ff605a5
|
2021-02-23T21:45:40
|
|
Capture/Replay: Fix compressed texture level caching
Before this commit, the following sequence would cause an assert:
glCompressedTexImage2D(GL_TEXTURE_2D, 0,
GL_COMPRESSED_RGBA_ASTC_8x8, ...);
glCompressedTexImage2D(GL_TEXTURE_2D, 1,
GL_COMPRESSED_RGBA_ASTC_8x8, ...);
This is due to code we added that clears the compressed texture cache
when it detects we already have an entry for the texture level. This is
allowed in GL, to respecify a texture level by simply calling
glCompressedTexImage on it again.
The problem is we would clear the entire texture from the cache, not
just the level being respecified.
Test: Recapture Asphalt 8
Bug: angleproject:5678
Change-Id: I473d6ea1cb8823bfec680ddd78c3457b93ecc431
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2716639
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
39d7fc18
|
2021-02-17T00:18:41
|
|
Vulkan: Don't break the render pass on dispatch calls
The only reason a dispatch call may need to break the render pass
implicitly is for read-after-writes where the write originates from the
render pass but is not through a storage buffer/image. There are only
two such scenrios possible:
- Framebuffer attachment write -> texture sample
- Transform feedback write -> ubo read
All other uses of the buffers and textures that require breaking the
render pass are handled by `glMemoryBarrier`.
Bug: angleproject:5070
Change-Id: I92b50d69d8782097ee8ff477ac57da6209c326a1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2698998
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
df0a92e6
|
2021-02-22T06:39:32
|
|
Assert valid when using SPIR-V ids
Useful for debugging when an uninitialized id is used in the SPIR-V
transformer.
Bug: angleproject:4888
Change-Id: If446187a8a27a06f5958d5df5bc00d02e98d20e3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2713268
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
37752956
|
2021-02-11T16:12:48
|
|
Generators: Use fixed year in license headers.
Remove dynamic year generation from generator scripts, as required by
the Chromium C++ style guide.
The dynamic year values were replaced by the current year at the time
the file was created according to git log. The code to dynamically
generate the year was removed.
This patch also refreshes generated files and hashes.
Bug: angleproject:5516
Change-Id: I735028bccb5c83217e92c380538f1abf0a906b2c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2690950
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c2d14d03
|
2021-02-18T13:55:23
|
|
Vulkan: Refactor prerotation out of SPIR-V transformer
The SPIR-V transformer performs multiple transformations in one pass.
This is part of a series of refactoring changes that detangle these
transformations and encapsulate them, while allowing the transformation
to remain single-pass.
Bug: angleproject:4888
Change-Id: Ia971da6d814b5d7c4f51132fe63b58675163c15f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2705026
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
4a95488c
|
2021-02-18T12:21:26
|
|
Vulkan: Refactor xfb codegen out of SPIR-V transformer
The SPIR-V transformer performs multiple transformations in one pass.
This is part of a series of refactoring changes that detangle these
transformations and encapsulate them, while allowing the transformation
to remain single-pass.
Bug: angleproject:4888
Change-Id: I3e3164803863c4d477364f5b2ed0679ed501ea3c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2705025
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bd9a3b29
|
2021-02-18T11:52:39
|
|
Vulkan: Refactor varying precision fix out of SPIR-V transformer
The SPIR-V transformer performs multiple transformations in one pass.
This is part of a series of refactoring changes that detangle these
transformations and encapsulate them, while allowing the transformation
to remain single-pass.
Bug: angleproject:4888
Change-Id: I587d601e02164c1372a09565d1713aac27cfbebb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2705024
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
454194e4
|
2021-02-17T23:14:30
|
|
Vulkan: Refactor inactive varying removal out of SPIR-V transformer
The SPIR-V transformer performs multiple transformations in one pass.
This is part of a series of refactoring changes that detangle these
transformations and encapsulate them, while allowing the transformation
to remain single-pass.
Bug: angleproject:4888
Change-Id: Ifd52be302c25392d3e8fc1c589795c113e44d354
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2703792
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c342647f
|
2021-02-17T22:46:09
|
|
Vulkan: Refactor gl_PerVertex trimming out of SPIR-V transformer
The SPIR-V transformer performs multiple transformations in one pass.
This is part of a series of refactoring changes that detangle these
transformations and encapsulate them, while allowing the transformation
to remain single-pass.
Bug: angleproject:4888
Change-Id: I41ba9165336487819dcf915af0d1ed868f73f724
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2703791
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8f65bb39
|
2021-02-17T17:11:44
|
|
Vulkan: Typed return value in SPIR-V transformer transform funcs
Use an enum class instead of a bool for readability.
Bug: angleproject:4888
Change-Id: I5fddec4ccc1cb7e28940c0566979f5fd5e051d60
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2702652
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
6e8cdd39
|
2021-02-17T00:17:17
|
|
Vulkan: Don't break the render pass on indirect calls
The render pass is now only broken if the indirect buffer was used as
transform feedback. Any other write to the indirect buffer is
synchronized with `glMemoryBarrier`.
Bug: angleproject:5070
Change-Id: I67868ae9a8f08e1ab186440a3cbdc7439c66808e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2698996
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
d3d30921
|
2021-02-17T16:33:20
|
|
Vulkan: Refactor ID-discovery out of SPIR-V transformer
The SPIR-V transformer performs multiple transformations in one pass.
This is the first of a series of refactoring changes that detangle these
transformations and encapsulate them, while allowing the transformation
to remain single-pass.
Bug: angleproject:4888
Change-Id: I327f693d99496a0b89028abe627119e4a2b07c42
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2702651
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e96d1744
|
2021-02-12T14:14:02
|
|
Vulkan: Optimize glMemoryBarrier
Previous to this change, glMemoryBarrier was processed as it is issued.
This made it impossible to know whether a draw call would follow or a
dispatch call, and what resources it would use. The render pass was
conservatively broken due to this limitation. To address this
limitation, handling of glMemoryBarrier is deferred until the next
draw or dispatch call.
Note that glMemoryBarrier acts as two barriers:
- An execution+memory barrier: shader writes are made visible to
subsequent accesses
- Another execution barrier: shader accesses are finished before
subsequent writes
An important observation is that for most resources, ANGLE actually
necessarily has to issue memory barriers automatically to conform with
Vulkan. In terms of memory barrier thus, ANGLE already does the right
thing except for when there's no binding change. This means WaW hazards
(i.e. storage buffer and image writes) with no binding change require a
memory barrier as a result of glMemoryBarrier. In all other cases, it's
enough for glMemoryBarrier to break the render pass if necessary and
ensure that corresponding bindings are marked dirty (for the execution
or memory barriers to happen automatically later).
Bug: angleproject:5070
Change-Id: Ide359c43362f8a78805ecf797a91de7aa79221f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2693473
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6af603e1
|
2021-02-19T11:56:34
|
|
Vulkan: Secondary sort shader enums by name.
This preserves the primary sort by bits. If bits are equal we then
sort by name to produce a more stable sort.
Bug: angleproject:5653
Change-Id: I4cdbc21094fcbd1bb7ad17e124074949bdbf0439
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2704825
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4afd0f27
|
2021-02-17T13:35:57
|
|
Vulkan: Add VK_KHR_image_format_list support to initExternal
The code for initializing a VkImage with VK_KHR_image_format_list
extension support is now internal to initExternal. Also provides a flag
to inform callers when VK_KHR_image_format_list support is enabled.
Bug: angleproject:5520
Change-Id: Ie2ade93d1403ab3f9cbcf7d80684bbca201d5d8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2702159
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
95584459
|
2021-02-18T09:32:16
|
|
Revert "Workaround for Mac Intel drawArraysInstanced with first > 0"
This reverts commit 027bc47ca5b7b291fbda907173eefa05ad3d45a8.
Reason for revert: InstancingTests fail on Mac FYI Release (Intel UHD 630), see https://ci.chromium.org/ui/p/chromium/builders/ci/Mac%20FYI%20Release%20(Intel%20UHD%20630)/1729/overview
Original change's description:
> Workaround for Mac Intel drawArraysInstanced with first > 0
>
> Workaround by forcefully set instanced arrays (divisor > 0)
> as streaming attributes and apply extra offset at front. Recover
> those attribute bindings when first == 0 and other draw calls
> (drawElementsInstanced)
>
> Bug: chromium:1144207, chromium:1144247, chromium:1144373
> Change-Id: Ie7836cc71b45a290513f34f90d49bd15b14ddba8
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2661095
> Commit-Queue: Shrek Shao <shrekshao@google.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Bug: chromium:1144207
Bug: chromium:1144247
Bug: chromium:1144373
Change-Id: Ia4a6026a8c446490346b373c33fe2b1724c1761f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2704052
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
2d3402eb
|
2021-02-18T09:05:02
|
|
Revert "EGL: Merge DisplayAndroid into DisplayEGL."
This reverts commit 2cb6671534ddc6efe9664a2fb30be2b2fb13c8ef.
Reason for revert: Make DisplayGbm fail to compile. See: https://ci.chromium.org/ui/p/chromium/builders/try/linux-chromeos-compile-dbg/636833/overview
Original change's description:
> EGL: Merge DisplayAndroid into DisplayEGL.
>
> These two classes have a lot of duplicated code for no reason.
>
> Bug: angleproject:5563
> Change-Id: Ia9d8efeb50f3e52ffb1df6a6e462efdb20fd4a9a
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2636678
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Peng Huang <penghuang@chromium.org>
> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Bug: angleproject:5563
Change-Id: Ic39071130727b37cc2a168d4b8e3c50f3e7184a5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2704051
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
027bc47c
|
2021-01-29T18:02:21
|
|
Workaround for Mac Intel drawArraysInstanced with first > 0
Workaround by forcefully set instanced arrays (divisor > 0)
as streaming attributes and apply extra offset at front. Recover
those attribute bindings when first == 0 and other draw calls
(drawElementsInstanced)
Bug: chromium:1144207, chromium:1144247, chromium:1144373
Change-Id: Ie7836cc71b45a290513f34f90d49bd15b14ddba8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2661095
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
bd276beb
|
2021-02-12T10:58:43
|
|
Vulkan: Don't wait on unflushed sync objects without a Context
The app "Car Parking Multiplayer" issues a ClientWaitSync() command
without having already flushed the sync object and without an active
context. We should return TIMEOUT immediately rather than attempting to
wait on the sync object, since we can't flush it and it'll never be
signalled.
Bug: angleproject:5613
Bug: angleproject:5656
Test: MultithreadingTest.NoFlushNoContextReturnsTimeout
Change-Id: Ieaf675ca9144f9c851c73b9ca399daaf4ed1cd0f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2693375
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
7e990ef4
|
2021-02-16T18:15:43
|
|
Clean ups to generate_entry_points.
Switches to Python 3 support. Made a change to run_code_generation to
support this. Affects several generators. Also updates the generator
to make a few other small cleanups.
Bug: angleproject:5653
Change-Id: I045173c9ca85947c4eac22285701032c09f4c8d0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2699187
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
51c5137a
|
2021-01-05T16:58:50
|
|
Capture/Replay: Add texture buffer support
Test: Fortnite MEC
Bug: b/180418810
Bug: angleproject:5658
Change-Id: I2025f0b88f7488a827159029e6d04a4cf4e9a1b8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2611558
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
7ae8531b
|
2021-02-17T15:20:07
|
|
Vulkan: Fix crash with 0-sized element buffer
VertexArray::syncState syncs all dirty bits, including
DIRTY_BIT_ELEMENT_ARRAY_BUFFER even for draw calls that don't use this
buffer, such as glDrawArrays. If the element buffer is given 0 size,
this caused a crash in the Vulkan backend.
Bug: chromium:1172577
Change-Id: I02d78c9660c07b896f7403867b648901478251fe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2701831
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
907a3cee
|
2021-02-17T08:07:45
|
|
Vulkan: Add support for EXT_shader_framebuffer_fetch_non_coherent
EXT_shader_framebuffer_fetch_non_coherent is implemented using subpass
input attachments. The extension will be enabled in a follow up change
that adds required changes to the Vulkan translator.
Bug: angleproject:5454
Test: FramebufferFetchNonCoherentES31.*Vulkan
Change-Id: Ic73c66a476c4a21db5269431166a198841f1dc0c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2598059
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d6e0b0ca
|
2021-02-17T15:59:52
|
|
Remove a debugging code in renderergl_utils.cpp
Bug: chromium:1171371
Change-Id: I7cf00edbc337150e40e7afb4f6c5fc88862f0734
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2700332
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
2cb66715
|
2021-01-19T12:42:38
|
|
EGL: Merge DisplayAndroid into DisplayEGL.
These two classes have a lot of duplicated code for no reason.
Bug: angleproject:5563
Change-Id: Ia9d8efeb50f3e52ffb1df6a6e462efdb20fd4a9a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2636678
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Peng Huang <penghuang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
64b5b3d3
|
2021-02-12T17:31:58
|
|
Vulkan: Further restrict enabling LINE_RASTERIZATION_MODE_BRESENHAM
The app "Car Parking Multiplayer" enables GL_SAMPLE_ALPHA_TO_COVERAGE,
which leads to a VVL error when LINE_RASTERIZATION_MODE_BRESENHAM is
also enabled:
VUID-VkGraphicsPipelineCreateInfo-lineRasterizationMode-02766:
The Vulkan spec states: If the lineRasterizationMode member of a
VkPipelineRasterizationLineStateCreateInfoEXT structure included in the
pNext chain of pRasterizationState is
VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT or
VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT and if rasterization
is enabled, then the alphaToCoverageEnable, alphaToOneEnable, and
sampleShadingEnable members of pMultisampleState must all be VK_FALSE.
This CL adds the additional checking to
GraphicsPipelineDesc::initializePipeline() to ensure those conditions
are met before setting lineRasterizationMode to
VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT.
Bug: angleproject:5613
Test: StateChangeTest.AlphaToCoverageEnable
Change-Id: Ie2286078f6916c01a19ae6f932321a86619bd4e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2694094
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
3c28b2a0
|
2021-02-10T16:49:32
|
|
Vulkan: Remove render pass check from setupDraw()
... and move it to handleDirtyGraphicsRenderPass.
Bug: angleproject:5528
Change-Id: I416b2fedb1cd924d04fa739aecb65193fd845f6b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2686441
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e8c0aa81
|
2021-01-26T23:40:36
|
|
Vulkan: Clean up transform feedback extension pause/resume
1. The xfb counter buffer barrier issued was wrong, following a typo in
the spec. This barrier is now correctly issued using the usual
barrier APIs.
2. A mechanism was added to automatically pause/resume transform
feedback when a program pipeline needs to be rebound. This is
incorrect as it misses the xfb counter buffer barrier. The render
pass is broken instead if transform feedback is active/unpaused and
the program pipeline is changed.
3. The transform feedback counter buffers are now disposed of when
transform feedback is ended. This avoids an unnecessary barrier that
this change would have otherwise incurred (and hence render pass
break) in Manhattan which repurposes the same transform feedback
object.
Bug: angleproject:5528
Change-Id: I1ffe8b4b8975645ba43afd70e9cdbb0765529da5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2651647
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
60b03e62
|
2021-02-16T14:31:19
|
|
Create getRotatedExtents() and related methods
Created:
- WindowsSurfaceVk::getRotatedWidth()
- WindowsSurfaceVk::getRotatedHeight()
- RenderTarget::getRotatedExtents()
- ImageHelper::getRotatedExtents()
- ImageHelper::getRotatedLevelExtents2D()
Note: The FramebufferVk class doesn't use any of these methods
Bug: b/175793022
Change-Id: I64395688bfdb172d32853763743fc5f266a6b792
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2686102
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
741f4039
|
2021-02-16T17:00:31
|
|
Fix spelling in capture owners
Bug: None
TBR: geofflang@chromium.org
Change-Id: I60fd6bc18d8c86087d7640eb1145d575c4008edb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2697986
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
2b69462e
|
2021-02-12T15:55:00
|
|
Vulkan: Consolidate image format list initialization code
HardwareBufferImageSiblingVkAndroid, RenderbufferVk, SurfaceVk
and TextureVk all had similar code to initialize VkImage with
VK_KHR_image_format_list extension support. Consolidate all of
them into a helper.
Bug: angleproject:5520
Change-Id: Ib7ac582a35a26c0da15879e688bcaf0c2a92ea87
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2692641
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
d7037aa2
|
2021-02-11T14:35:30
|
|
Vulkan: noop glMemoryBarrier(CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT)
CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT requires a memory barrier: shader
buffer write -> host read. According to the spec, the data is only
available after a call to glFinish or wait on sync:
> The application must call MemoryBarrier with the
> CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT set and then call FenceSync with
> SYNC_GPU_COMMANDS_COMPLETE (or Finish). Then the CPU will see the
> writes after the sync is complete.
When a buffer is written to by the GPU, ANGLE calls
onHostVisibleBufferWrite(), which ensures a "memory write -> host read"
barrier is issued at the end of the command buffer.
Additionally, persistently mapped buffers use
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, so there's no need for a call to
vkInvalidateMappedMemoryRanges.
As a result, there's nothing necessary in ANGLE to do for this barrier
bit. Note that should persistenly mapped buffers start using
non-coherent memory, this barrier should imply a call to
vkInvalidateMappedMemoryRanges for the persistently mapped buffers.
Bug: angleproject:5070
Change-Id: Iaeae019dadfa659a47d2dac41c0c09f1c15e584b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2689380
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
79ae52dd
|
2021-02-11T14:18:41
|
|
Vulkan: Fix missing visibility barrier for host-visible buffer writes
See https://chromium-review.googlesource.com/c/angle/angle/+/1661252 for
context. This was accidentally broken during the command graph rework.
This will eventually be validated by syncval. See
https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/2329.
Bug: angleproject:5070
Change-Id: Ic16fa900e554d46e54b42fc3fbe0f96d5327fa0f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2689379
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
30622479
|
2021-02-16T12:33:40
|
|
Vulkan: Fix crash with deferred clears and MSRTT
The following scenario was mishandled:
- MSRTT draw with an unresolve operation (i.e. has two subpasses)
- Deferred clear
- Flush deferred clear with MSRTT framebuffer not needing unresolve
(i.e. has one subpass)
Bug: chromium:1178693
Change-Id: If3548e99897d698d61dfafbe9f86193723d06e5a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2697648
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e153063d
|
2021-02-16T18:34:25
|
|
Add timvp to ANGLE, vulkan and capture owners.
Bug: None
Change-Id: Ic23994efa3f4184c471eb21e7f3bb039f6b45057
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2697947
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
9c450bee
|
2021-02-12T14:23:42
|
|
Use the default build target vulkan_memory_allocator
Bug: chromium:1170339
Change-Id: I00c868e205a16a889e193383c35b2ed42d8a61ef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2693028
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ca6573eb
|
2021-02-13T21:21:26
|
|
Vulkan: Fix dirty bit bug when closing RP in setupDraw()
Bug: angleproject:5644
Change-Id: I2e1fa8c4db8eba1beb74c83dcb24cbe2e70ddca6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2694076
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
031dd5c5
|
2021-02-11T14:56:43
|
|
Vulkan: Add fast path for pack buffer copies
When vkCmdCopyImageToBuffer is possible, it is used to implement
glReadPixels with PBO instead of a CPU readback.
A few tests are added to verify synchronization between pack/unpack and
compute shader writes.
Bug: angleproject:5070
Change-Id: Ia5da0feb31348f6b52d164b973ff95e2a0510582
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2691466
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2b15062b
|
2021-02-11T12:52:39
|
|
Allow more formats as texture attachments in GLES 1
This change allows all formats in the GLES 1.1 spec, table 3.4
to be used as a texture attachment.
Also normalize values passed into glColorPointer if the format
is of type GL_UNSIGNED_BYTE.
These changes are needed for the android app, Kick the Buddy
to render correctly.
Bug: angleproject:5599
Tests: *DrawTextureTest.ColorArrayDifferentTypes*
*FramebufferObjectTest.TextureObjectDifferentFormats*
Change-Id: Ie9d27fc24d94106651262cf9b2080dd3f05af1c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2690920
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
19e4cf86
|
2021-02-09T21:49:42
|
|
Capture/Replay: Some fixes for capturing WebGL
Bug: angleproject:5635
Change-Id: I756471fbad34660c494fb7f9ba1144accd5c08b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2686119
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
12990d73
|
2021-02-11T11:37:03
|
|
GetBitSet now uses BitSetArray instead of IterableBitSet
Remove the now unused IterableBitSet class.
Bug: angleproject:3877
Change-Id: I161e5d062c8183e30a7eb9040f3018116fe6e69e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2683494
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
baf64903
|
2021-02-03T14:02:55
|
|
Allow small compressed mip level copies
Update ValidateCopyImageSubDataBase() to take into consideration if the
entire mip level is being written, even if the size of the mip level is
smaller than the compressed block size.
This also uncovered a bug in ImageHelper::initializeNonZeroMemory()
where the image extents are not at least as large as the compressed
format block size:
VUID-vkCmdCopyBufferToImage-imageExtent-00207
This CL adds isAllocateNonZeroMemoryEnabled() to allow skipping the test
when that feature is enabled while that bug is chased.
Bug: angleproject:5592
Bug: angleproject:5634
Bug: angleproject:5643
Test: Texture2DTestES3.CopyCompressedImageMipMaps
Change-Id: I0381e0d3490fb148604b61dc3bae8f96ba8b5f8e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2673069
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a9de5d99
|
2021-02-04T20:44:15
|
|
Vulkan: setAllDefaultUniformsDirty after createPipelineLayout
The default uniform descriptor set is reset while recreating the
pipeline layout during handling of immutable samplers and then is
never re-allocated and bound before the next draw.
The call stack to allocate the program uniforms descriptor set:
ProgramExecutableVk::allocUniformAndXfbDescriptorSet
ProgramVk::updateUniforms
ContextVk::setupDraw
ContextVk::drawArrays
Context::drawArrays
Unfortunately, this occurs before the pipeline layout is reset (and the
descriptor sets are reset) due to the presence of an immutable sampler:
ProgramExecutableVk::reset <<---- mDescriptorSets.fill(VK_NULL_HANDLE);
ProgramExecutableVk::createPipelineLayout
ContextVk::updateActiveTextures
ContextVk::invalidateCurrentTextures
ContextVk::syncState
Context::syncDirtyBits
Context::prepareForDraw
Context::drawArrays
This CL calls setAllDefaultUniformsDirty() for the Program/PPO to ensure
the default uniforms descriptor sets are re-allocated and re-bound
before the next draw command.
Bug: b/178424566
Bug: angleproject:5624
Test: CtsCameraTestCases
Change-Id: If54a9f2cc09809a5103bc3eac641c77f56362229
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2677385
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
46203e32
|
2021-02-10T18:41:06
|
|
Workaround context lost for Adreno 42x and 3xx
Bug: chromium:1171371
Change-Id: I8c2e13f3f35bf1f780526ad1d9d483226ce5ea34
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2688901
Commit-Queue: Peng Huang <penghuang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
1094d324
|
2021-02-12T03:14:38
|
|
GL: Add allow_etc_formats workaround
Enable ETC2/EAC formats on newer Intel GPUs.
Bug: angleproject:1552
Change-Id: I240b07d6d81d48e1e03dfcd56aad6fa9f1d7817f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2690952
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
8b624c6d
|
2021-02-05T15:33:52
|
|
Use constexpr initializer list for bitsets
Allows setting/resetting multiple bits to be coalesced into one
operation.
Bug: angleproject:5528
Change-Id: Ibf2dff8c81441a75c268d95066d23da1b2a3c810
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2678885
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e281fbb0
|
2021-02-11T15:37:43
|
|
Revert "GL: Cache the results of glGetString"
This reverts commit 27906e9c9f8a6767fb8af22d9f80264d8672243a.
Reason for revert: Causes failures in mac_optional_gpu_tests_rel
Original change's description:
> GL: Cache the results of glGetString
>
> To reduce the amount of queries to the driver, we can cache the
> results of glGetString. On Mac, we need to invalidate this cache
> on GPU switch.
>
> Bug: chromium:1173672
> Change-Id: I039172068aec35034a87881a8804f52c080ce4ce
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2676882
> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
TBR=geofflang@chromium.org,jonahr@google.com,jmadill@chromium.org
Change-Id: I5799c5d287dd01b946446bd66d4c89aef6756d3a
Bug: chromium:1173672
Bug: angleproject:5639
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2690145
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5af5808b
|
2021-02-10T13:06:36
|
|
GL: Do not support ETC1 textures on Desktop GL
As pointed out in WebGL issue 3014, ANGLE has been exposing ETC1
texture support on desktop GL when GL_ARB_ES3_compatibility or GL
4.3+ is available. However, it is very likely that none of these
platforms actually have hardware support for this format, and are
only supporting it for compatiblity with ES3. We shouldn't expose
this so that desktop clients can use a better format instead.
Bug: chromium:1048244
Change-Id: I53837a05719d0ca3ff390b5b45b61a1f9c72a535
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2687466
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
807d1ad7
|
2021-02-10T23:30:56
|
|
Metal: fix incorrect default viewport size with contentsScale>1
The correct metal layer's drawable size should be calculated after
mMetalLayer.get().contentsScale is set during initialization to allow
initial viewport to be computed properly on front-end side.
Bug: angleproject:2634
Change-Id: If278f40c0b6800bbe12fb5ea94986f728381bc00
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2687300
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
45a493ea
|
2021-02-05T13:48:48
|
|
Vulkan: Use a dirty bit to start the render pass
Some dirty bits need to run before the render pass starts. An upcoming
change for example needs to break the render pass when the program
pipeline is changed while transform feedback is active. Another
upcoming change may need to do the same based on a preceding
glMemoryBarrier.
This change adds a new dirty bit to start the render pass after some
dirty bits have already been processed.
Bug: angleproject:5528
Change-Id: I993c9efefed4c8fee268b218a8dd66a582d4e7cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2678863
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
dccec125
|
2021-02-08T16:21:30
|
|
Vulkan: Clear mCurrentGraphicsPipeline after createPipelineLayout()
Set mCurrentGraphicsPipeline = nullptr when the pipeline layout is
recreated if immutable samplers are used to prevent a use-after-free.
For a fuller discussion on why this is necessary, see:
Vulkan: clear mCurrentGraphicsPipeline during invalidate |
https://chromium-review.googlesource.com/c/angle/angle/+/2647746
Bug: b/178424566
Bug: angleproject:5624
Change-Id: I70679bda85cd587dbd8893a4576ee5d33aee2b70
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2683041
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
393c44f1
|
2021-02-01T15:45:24
|
|
EGL: Trim requested config parameters to EGL.
ANGLE requests a config with several uneccessary parameters.
I suspect these parameters are causing issues in the wild
where eglChooseConfig fails.
Try requesting ES3 then fall back to ES2 configs.
Skip config caveats, floating point configs and multisample
configs, we provided the default parameters.
The resulting config is very similiar to the one Chrome
requests in gl_surface_egl.cc
Bug: chromium:1173161
Change-Id: Ifa78ff8081e3d86e823036981e1e2b5f8f751fed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2665888
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Peng Huang <penghuang@chromium.org>
|
|
0e8f7727
|
2021-02-10T15:03:10
|
|
Fix crash in gl::Context::unMakeCurrent()
gl::Context's ctor may need to create a native EGL context and it can
fail. If it fails, the context->mImplementation will be nullptr, and
it will cause crash elsewhere. Fix the problem by checking it after
create a gl::Context instance.
Bug: chromium:1171371
Change-Id: Ic57f088dcbf9716b85fee92bf54d557eb94642d0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2686439
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
6fc10389
|
2021-02-10T11:20:16
|
|
Move Frame Capture to capture/ folder.
This will make it easier to trigger the trace tests when these files
are modified.
Bug: angleproject:5530
Change-Id: I5f0c450595b380cd91b20c1477dc1845bee35dd9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2686120
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
27906e9c
|
2021-02-04T16:54:56
|
|
GL: Cache the results of glGetString
To reduce the amount of queries to the driver, we can cache the
results of glGetString. On Mac, we need to invalidate this cache
on GPU switch.
Bug: chromium:1173672
Change-Id: I039172068aec35034a87881a8804f52c080ce4ce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2676882
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
a8a2a71b
|
2021-02-01T17:18:18
|
|
Vulkan: Support y-flip with no driver support.
We can reuse the surface rotation matrix code to do the y-flip.
This requires the SPIR-V transformation support. Because not
all rotations are encoded into the table we can only support
rotation with the driver support for y-flip (currently).
Includes some very minimal regression testing. This work is
targeted towards supporting vk-portability implementations
which are not as up-to-date with Vulkan features.
Bug: angleproject:5596
Change-Id: I270fa1efc03267551d28df33ddac9972e1343d60
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2665892
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
80308e20
|
2021-02-08T16:16:36
|
|
Vulkan: Match min/magFilter to chromaFilter
VkSamplerCreateInfo.magFilter and minFilter must match
VkSamplerYcbcrConversionCreateInfo.chromaFilter.
VkSamplerYcbcrConversionCreateInfo.chromaFilter is currently
hard-coded to VK_FILTER_NEAREST in
HardwareBufferImageSiblingVkAndroid(), so force magFilter and minFilter
to VK_FILTER_NEAREST in SamplerDesc::init() if an externalFormat is
being used.
Bug: b/178424566
Change-Id: Ia1f7fc21e3faa4e57f837ed3ae70608134150aea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2683038
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
bb062070
|
2021-02-09T15:30:04
|
|
Vulkan: Fix updates to element buffer
If glBufferSubData results in a new vk::BufferHelper allocation,
VertexArrayVk::mCurrentElementArrayBuffer needs to be updated.
VertexArrayVk::syncState was working under the assumption that
DIRTY_BIT_ELEMENT_ARRAY_BUFFER_DATA cannot result in a vk::BufferHelper
pointer change.
This assumption was broken in
https://chromium-review.googlesource.com/c/angle/angle/+/2204655.
Bug: b/178231226
Change-Id: I969549c5ffec3456bdc08ac3e03a0fa0e7b4593f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2685439
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c3887991
|
2021-02-03T13:52:32
|
|
Capture/Replay Don't capture invalid commands
Special Forces Group 2 issues invalid OpenGL ES commands, which are
currently captured by ANGLE's frame capture. These invalid commands
generate errors on both ANGLE and the native driver, causing the test to
be marked as "failed".
This CL updates FrameCapture::captureCall() to not capture invalid
commands, which prevents replay errors. However, the other work related
to the call is still performed, including:
- maybeOverrideEntryPoint()
- maybeCapturePreCallUpdates()
- maybeCapturePostCallUpdates()
This work is necessary, otherwise calls that update necessary members
like FrameCapture::mClientArraySizes may be missed, causing leading to
compilation failures related to missing symbols. For example,
mClientArraySizes is updated via the following call stack:
captureClientArraySnapshot()
maybeCaptureDrawArraysClientData()
maybeCapturePreCallUpdates()
It's necessary for mClientArraySizes to contain non-zero values, so that
the variable gClientArrays[] is output by WriteCppReplayIndexFiles().
Otherwise a compilation error will occur when it's referenced by a
glVertexAttribPointer() call in the capture.
Bug: angleproject:5592
Change-Id: I625a074e035eb75267d8384dc61ce6de1717af91
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2673068
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
f6784006
|
2021-02-08T16:39:04
|
|
Modify data type of ActiveTextureMask and ImageUnitMask
ActiveTextureMask and ImageUnitMask need more than 64bits. We
can now use the BitSetArray datatype and avoid the perf penalty
of using std::bitset
Bug: angleproject:3877
Tests: angle_perftests.exe --gtest_filter=TexturesBenchmark*
Change-Id: Ic82e09d1aa2c1904d06ad48ba6200f35896665ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2664734
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f1cbcaba
|
2021-02-07T13:37:49
|
|
Use const reference when possible
When retrieving BitSet masks return a const reference
of the mask to avoid invoking the copy-constructor.
Bug: angleproject:3877
Change-Id: I9f724a4864f3db17aa6f1ab74b81053c65313764
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2681767
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
ad60c22d
|
2021-02-09T13:22:09
|
|
Add an option to use "metal" as ANGLE_DEFAULT_PLATFORM.
Bug: angleproject:5632
Change-Id: Id470993a01609ace851372b1bbe01fee8cde274b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2684635
Commit-Queue: Stephen White <senorblanco@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
54242b8f
|
2021-02-04T12:20:57
|
|
Vulkan: Leverage ExtendedDirtyBitType
Expand ExtendedDirtyBitType to include bit for clip distance,
mipmap generation hint and shader derivative hint. Handle these
dirty bits in ContextVk::syncState
Bug: angleproject:5611
Change-Id: If8d1646334e737f81ac72cdddb8fe3ba613b4b94
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2676173
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4968f6f2
|
2021-02-04T16:40:36
|
|
Move getRendererDescription from ContextImpl to DisplayImpl
The other backend description strings are in DisplayImpl. This will
help with caching the result of glGetString in the GL backend. Also
Update the getters to not be const in order to allow caching.
Bug: chromium:1173672
Change-Id: I43df35688762b23429f47f169c04482cf4cd089a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2676881
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
e174c358
|
2021-02-04T15:14:10
|
|
GL: Consolidate glGetString calls
First step for cacheing the result of glGetString calls is mostly
cleanup.
Bug: chromium:1173672
Change-Id: I47281a09b9bd5859655d16376977a6eabcfbb3c4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2676203
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
580961fb
|
2021-02-02T10:27:48
|
|
Micro-optimizations for setUniform*
This CL improves the setUniform* call for the case where the
niform component size is 4. In that case, we can issue a single
memcpy. This reduces the average wall time of setUniform4fv in
our test app by ~20%.
Test: Run the dEQP shader tests.
Bug: b/179160884
Change-Id: I9352f6188bc87449719aac522d1a2323adf7fca5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2667592
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Doug Horn <doughorn@google.com>
|
|
ce540d8c
|
2021-02-01T17:38:10
|
|
Create MSAA-swapchain windows' VkImages differently
The actual VkImage needs to have rotated extents, but the ImageHelper
needs to have non-rotated extents in order for the rest of ANGLE's
pre-rotation to work.
Bug: b/175793022
Change-Id: I6fa25ab8c636886787ac50b194e566111308f30b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2666514
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
df48c027
|
2021-02-02T13:34:29
|
|
Vulkan: Don't request aliased FB attachments.
This produces undefined pixel values in GL. We can also return
UNSUPPORTED if required and still be conformant. This fixes an
assert in the gfx-rs portability implementation.
Bug: angleproject:5601
Change-Id: Ifb84ad9b5e2365360a81cddba766b0bea81f2d51
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2668311
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
18a5e7a6
|
2021-02-04T11:19:21
|
|
Enable packing extensions for the Vulkan backend
The following extensions are ES2 extensions which
become core in ES3:
- EXT_unpack_subimage
- NV_pack_subimage
Since the Vulkan backend already fully supports ES3,
it should be ok to enable these for ES2 contexts.
This fixes all YUV related viz_unittests failures when
using SwANGLE with the passthrough command decoder.
Bug: chromium:1060139
Change-Id: I24ffd7a58f576799b93fe91e6be4032ca3175eda
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2676201
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
|
|
54367a3e
|
2021-02-02T19:31:33
|
|
Capture/Replay: Support glCopyImageSubData with compressed formats
Special Forces Group 2 uses glCopyImageSubData() to copy compressed
texture data, which requires special handling for ANGLE's frame
capture since compressed texture data can't be read back.
To support this, when glCopyImageSubData() is called with textures using
compressed formats, a new mCachedTextureLevelData entry will be created
for the destination texture which is a copy of the source texture data.
Note that this implementation only supports copying the full level data.
http://anglebug.com/5604 will track adding support for partial level
copies if an app requires that in the future.
Bug: angleproject:5592
Bug: angleproject:5604
Change-Id: Ibce13f91f838fd691269c796fbeb5b9c6133c6aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2669955
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
89f50584
|
2021-02-03T08:51:04
|
|
Vulkan: Add ExtendedDirtyBitType bitset
ExtendedDirtyBitType qualifies DIRTY_BIT_EXTENDED dirtybit.
Clip control code path can now set the appropriate ExtendedDirtyBitType
when there is a change in state. Also remove the ClipSpaceOrigin member
in the Vulkan backend that cached front-end state.
Bug: angleproject:5471
Tests: dEQP-GLES2.functional.clip_control.*
Change-Id: I8dbb509ef940e7905439d32483fd67a8fc171a6e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2673062
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
6cc845bb
|
2020-12-07T18:14:50
|
|
Vulkan: Add support for EXT_blend_func_extended
This implementation utilizes vulkan's dualSrcBlend
feature. Expose this extension if the underlying vulkan
backend allows the use of this feature.
Test: angle_end2end_tests --gtest_filter=EXTBlendFuncExtendedDrawTest*
Bug: angleproject:5074
Change-Id: I7d2f611df89d65e5cac35158cb5f41a0ebd58aae
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2593151
Commit-Queue: Brandon Schade <b.schade@samsung.com>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4a09df13
|
2021-02-02T17:52:56
|
|
Vulkan:Fix wrong outputCount of emulated RGB copies.
The output count of shaderParams equals componentCount
divided by Ed. To avoid losing the last data,replace
division with UnsignedCeilDivide function.
Bug: angleproject:5598
Change-Id: I079d72f4eefa3d6b0f5d80ada25829fea673410c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2666869
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7e81056a
|
2021-02-01T11:16:14
|
|
Vulkan: Support integer type incomplete texture
Support both signed and unsigned integer type incomplete textures.
Bug: angleproject:5502
Bug: angleproject:4432
Tests: IncompleteTextureTestES3.*IntegerType*
dEQP.KHR_GLES31/core_sample_variables_mask_rgba8*i_*
Change-Id: Ic8c972aac0ca8589b26333b66dd0cc5fb5134043
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2613245
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
572afd90
|
2021-01-29T22:45:29
|
|
Disable SH_SCALARIZE_VEC_AND_MAT_CONSTRUCTOR_ARGS workaround.
It causes incorrect compilation of some shaders. The original graphics
driver bugs that motivated enabling it have been fixed, at least on
one of the platforms (macOS).
Tested with new WebGL conformance test in
https://github.com/KhronosGroup/WebGL/pull/3214 .
Bug: chromium:1165751
Change-Id: Iee9747769ca918aab143592d6cf158ce02a75ee0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2661024
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
4a426e1f
|
2021-02-01T12:10:46
|
|
Vulkan: Add missing variable inits to ContextVk.
This was preventing testing with the viewport flip disabled.
Bug: angleproject:5596
Change-Id: I5cc39eb2e1b431625f2f1498ab73828961af42ee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2664249
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0d175f30
|
2021-01-20T16:34:40
|
|
Tests: Add eFootball PES 2021 trace
Test: angle_perftests --gtest_filter=TracePerfTest.Run/*efootball_pes_2021*
Bug: angleproject:5564
Bug: angleproject:5517
Change-Id: I9738876b6a6c365984cecce01f2f09e0260b41cc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2656989
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
b15de455
|
2021-01-27T13:58:42
|
|
Remove extension check in validation of ES3.2 entry points
Bug: angleproject:3582
Change-Id: I563c6d77b825afd44809db0d08dc4842a5f93b6a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2653914
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|