|
92ffd40e
|
2020-07-08T18:25:55
|
|
Vulkan: Disable GL_EXT_robustness extension on Mali
Vulkan doesn't have a mapping extension to
GL_EXT_robustness, so we need to disable it.
Bug: angleproject:4823
Change-Id: If7b66c0eb7ba14b9349925af64ec2efcec9985a4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2287092
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7d82d293
|
2020-07-02T15:15:54
|
|
Refactor DisplayGbm::generateConfigs
Bug: angleproject:4809
Change-Id: I5f352f737bbd53c78d9e01055c17eabd17d5fb8a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2278667
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
120e1d66
|
2020-07-09T17:56:54
|
|
Vulkan: Set the wideLines features when available
Bug: angleproject:4827
Change-Id: I40fc893fdaf7135e2ad782a489b59c518346db9c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2290582
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
73b6b3a8
|
2020-06-03T14:38:34
|
|
Vulkan: Fully enable pre-rotation for Android
Bug: b/157667116
Change-Id: I3e5d41eed9b27eb2b49db853d85ec5c867dd2409
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2228366
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
2a2b4b13
|
2020-07-09T13:15:13
|
|
Vulkan: Force flush staged updates for external textures
For textures that are backed by external memory,
immediately flush sub image updates instead of
staging them.
Bug: angleproject:4828
Tests: angle_end2end_tests --gtest_filter=ImageTest.UpdatedExternalTexture*
Change-Id: I51e5bd0cb5df7df3af21f0cdb3007eebc1be29cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2290490
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
fe36a647
|
2020-07-08T18:27:21
|
|
Vulkan: Add driverUniform's buffer to mResourceUseList
There is a bug with mDriverUniforms' dynamicBuffer that we never add it
to context's mResourceUseList to let it hold onto it until GPU
completes. This causes old buffer gets recycled prematurely and gets
overwritten, result in rendering corruption. This CL adds current buffer
to the mResourceUseList so that it will be waited properly before gets
recycled.
Bug: b/160777679
Change-Id: I7707442e0f5ba408f5f28337422274e0c23b6bfb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2288325
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
f61272fb
|
2020-06-17T11:38:37
|
|
Add support for VK_KHR_sampler_ycbcr_conversion
This adds ability for applications to import Android Hardware Buffers
(AHBs) as OpenGL images which in turn can be sampled from and/or
written.
This was specifically tested with the common use case of importing a
buffer created by an media decoder and using that as a texture source to
include that video content on the screen. Tested with:
- Angry Birds 2 video player (for ads) requires YUV conversion.
- Basic Media Decoder example:
https://github.com/android/media-samples/tree/master/BasicMediaDecoder
Bug: b/155487768
Change-Id: I9255450f81aa4daa2aace7205d4f6c3f225abcca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2175103
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b549be96
|
2020-07-02T16:17:10
|
|
Vulkan: Warm up glslang on startup
As soon as glslang is initialized (which is done when EGL is
initialized), try to compile a simple shader. This will warm up
glslang's internals to avoid hitches on first shader compilation when a
WebGL application starts.
Potential future optimization is to use a worker thread to do this.
Bug: chromium:1091440
Change-Id: I6ac22e982d748af52a6e8b61239889425edc2edb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2280401
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a740b193
|
2020-07-08T16:58:46
|
|
Vulkan: Rotate damage rects for 90/270 rotation
ANGLE supports the EGL_KHR_swap_buffers_with_damage extension by using
the Vulkan-equivalent VK_KHR_incremental_present extension. The
damage rectangles need to be rotated for 90/270-degree rotations.
Test: Aztec Ruins with VVL
Bug: b/157667116
Change-Id: I9a43594b30bc67ca80aeff7705b4350659207d09
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2289035
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
13859945
|
2020-06-26T13:21:35
|
|
Capture/Replay: Fix default uniform array capture
The pointer from vector::data() already reflects the size of the
underlying type, so no need to include sizeof. This caused us to
write beyond the vector bounds when reading multiple values.
We were also missing component count.
Test: MEC of NBA2K20
Bug: b/160014453
Change-Id: I51fc3f5f80c732221d6ea4b4bd1afde635e410a1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2270909
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Manh Nguyen <nguyenmh@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
900c7e87
|
2020-07-07T14:20:36
|
|
Serialize d/s buffers + use color buffers' impl format for readPixels
Adds serialization of depth/stencil buffer contents
Currently, readPixels on color buffers uses the gles front-end format,
which can be different from the implementation format used in the
backend. This can cause seg fault crashes when the number of bytes in
a pixel differs between the two format. Changes so that readPixels for
color buffers always use the backend format.
Bug: angleproject:4817
Change-Id: I62d5deb1320ea38ee46143b2aa97f372ba01baeb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2284451
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
|
|
3688cb36
|
2020-06-28T15:28:10
|
|
Fix bugs in angle_end2end_tests and frame capture
1. CaptureGetShaderInfoLog_infoLog method should not require shader
object to be compiled
2. glCompressedTexImage3D's parameter locations are off by 1
3. EGLContextSharingTest.DisplayShareGroupObjectSharing test should not
delete buffers it has no access to since it will crash when running
capture replay
Bug: angleproject:4801
Change-Id: I0d407cdb44eb41eea4209eebab0996d3dd8ae5f5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2272862
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
6fc53fdb
|
2020-06-30T18:08:21
|
|
Fix typos in comment
This CL fix typo in a comment introduced recently.
There is no functional change.
Bug: chromium:1091259
Change-Id: I56f1963514b87b2a93859a6db707be093e865e28
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2276748
Commit-Queue: Etienne Bergeron <etienneb@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8b80e852
|
2020-06-25T09:43:01
|
|
Remove debug info from SPIR-V
When dcheck_always_on=false, the SPIR-V transformer will strip all debug
information to reduce the SPIR-V binary size.
Running T-Rex shows about 27% reduction in the SPIR-V binary size.
Bug: angleproject:4680
Test: CQ
Change-Id: Id9d0189cdc9c12fa5a1741cf62ef549a533cdf93
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2267358
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
36a97db1
|
2020-07-02T23:29:45
|
|
Vulkan: Compress internal shaders
Shaves ~200KB in binary size. The compressed SPIR-V blobs are in most
cases a little smaller than 1/3 of the original size.
The internal shader blobs at this point take ~100KB.
Bug: angleproject:2022
Change-Id: I1a2cec073cb1f330632c8dce7a550a0cca1e373d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2280945
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9349e262
|
2020-06-25T14:28:17
|
|
Fix multiDraw* with DYNAMIC_DRAW buffer usage
Specialized Context11 impl to prevent promote Dynamic during MultiDraw.
Add different buffer usage to MultiDraw and BaseVertexBaseInstance
tests.
Bug: angleproject:3402, angleproject:4754
Change-Id: I50e1a6fd6c8b6fd48f130c43545b895335d2e55b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2268581
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
796df76c
|
2020-06-25T11:49:12
|
|
MultiDraw Refactor
Refactor MultiDraw* from general Context to different ContextImpl.
Move general multiDraw code to renderer_utils.cpp.
Bug: angleproject:3402
Change-Id: I85cb4b781afa2b3a8beb382a9c735910057f2ebe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2268580
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
69fa4d23
|
2020-06-30T09:06:33
|
|
Vulkan: Query aspect flag from the image
When transferring images across queues we need
to query the aspect of the image instead of
hardcoding it to VK_IMAGE_ASPECT_COLOR_BIT
Bug: angleproject:4791
Bug: angleproject:4818
Tests: angle_end2end_tests --gtest_filter=ImageTest.SourceAHBTarget2DDepth*
Change-Id: Ia43a00262085dab492935c0c299635f3af468b50
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2274868
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3c8f6094
|
2020-06-26T12:42:37
|
|
EGL: Add basic multithreading support
Adds first step to allowing multithreaded contexts: letting multiple
threads use ANGLE as long as only one thread has a current context at
a time.
Bug: angleproject:4724
Bug: angleproject:4725
Change-Id: I4f606bdb15386cff9e3cb84d4120781e24e15fe4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2269864
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
d38c75c5
|
2020-07-02T22:12:19
|
|
Vulkan: Remove BufferUtils shader
This was the first internal shader written for prototyping UtilsVk. It
ended up never having a user.
Bug: angleproject:2022
Change-Id: I846dcc216c4c018f5bda16ad67463f698b8e1c56
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2280944
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
05e2fe78
|
2020-07-03T12:25:01
|
|
Remove class size static_asserts from serialize methods
Right now, the static_asserts will fail on certain platforms with
certain configurations as the class sizes differ between platforms.
Bug: angleproject:4779
Change-Id: I92f61393b2e9e5b7d6dc9085b1a42cb377143469
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2280987
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
bae95f81
|
2020-07-02T17:19:14
|
|
Convert GN libs lists to frameworks
GN recently added support for Apple frameworks to link, rather than
overloading the libs lists. This pulls .frameworks out of the libs
lists, so that GN can stop supporting .frameworks in libs in the
future.
Bug: chromium:1052560
Change-Id: I3aed298db01bdb5f6e7f37a74c1bbc06f99d760c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2279931
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
cbdb76b0
|
2020-07-02T10:09:34
|
|
Vulkan: Create sRGB views only when needed
Creating sRGB views was conditioned to
VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT being necessary, but that flag can be
set for reasons other than sRGB override, such as when recreating the
image to be used as a storage image.
Bug: angleproject:4551
Change-Id: I6f94a1c898b599d4333d74608c7451b4ce4f71f0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2279134
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
dce37b7d
|
2020-06-21T22:27:06
|
|
Serialize framebuffers + compare contexts for CaptureReplayTests
Adds to frame capture the ability to serialize a frame's pre-swap
GL state and store it in the binary data file
Adds to CaptureReplayTests the ability to compare its serialized GL
state with the serialized state pulled from the binary data file
Adds a serialization module that serializes framebuffers' GL states
and the contents of their color attachments
Adds checks to automation script so that it would skips tests that
do not produce the expected trace files
Adds exception handling to automation script so that it will not crash
when a replay build crashes
Bug: angleproject:4779
Change-Id: I40a02e018073749e79f0ddbfd3d4065745548f46
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2258295
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
65f7ab79
|
2020-07-02T10:04:48
|
|
Vulkan: Cleanup extension properties and features
Bug: angleproject:4551
Change-Id: Iae6b94027cfaca6c72318203a286865c2e3b19a9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2279133
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
62ff54eb
|
2020-05-12T13:27:21
|
|
Vulkan: Featurize shadow buffers
Shadow buffers help reduce the latency of glMap* operations
at the cost of CPU overhead. It might not be desirable to
incur such an overhead for all usecases. Featurize it but
enable it by default.
Bug: angleproject:4339
Change-Id: I6374618bf99677eef55fd50a139fb86f5ea70791
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2278102
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
cf63d872
|
2020-07-02T09:59:58
|
|
Vulkan: Use mipmap hint when generating mipmaps
If the application asks for GL_FASTEST, this uses VK_FILTER_NEAREST
instead of VK_FILTER_LINEAR.
Bug: angleproject:4551
Change-Id: I6c10758104bd63dd477ea853a3b0464665f371ed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2279132
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1ae8d2dd
|
2020-04-29T09:47:01
|
|
Fix blendable FP32 texture caps on ES2 contexts
Although the EXT_float_blend extension is defined only for ES 3.0+,
ANGLE exposes it on ES 2.0 client contexts.
Bug: angleproject:4595
Change-Id: I7451062ed8b1ab4eb18a8c7c1d37ee7383c8ea4b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2172738
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
28300e6f
|
2020-06-30T10:41:27
|
|
Vulkan: Fix off-by-1 180/270-rotated CopyTexImage
The rotation calculations are a little different for this code (that
uses a special shader) than for other pre-rotation cases. I also
modified the CopyTexImageTestES3.2DArraySubImage test to make future
bugs a little easier to diagnose.
Test: Test: angle_end2end_tests --gtest_filter=*CopyTexImageTestES3.2DArraySubImage*Vulkan*
Test: Test: angle_end2end_tests --gtest_filter=*WebGLReadOutsideFramebufferTest.CopyTexSubImage2D*Vulkan*
Bug: b/158245571
Change-Id: I497ec541cae5cd4085c3e9d596ee20943f5510f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2275733
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
68e60a92
|
2020-06-26T11:10:07
|
|
Vulkan: Don't store transformed SPIR-V
Since the original SPIR-V is never store after being modified, we don't
need to keep the transformed SPIR-V either.
Bug: angleproject:4513
Test: CQ
Change-Id: I4b70cfa355a08107e6a27377f6258cbf9e4072be
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2270718
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
34eb401b
|
2020-06-19T15:36:18
|
|
Vulkan: Skip repeated VkCmdClear call with the same value
Some apps actually do this. One of them is gfxbench. This helps
performance by dropping the redundant clear calls.
Bug: b/159489614
Change-Id: Ib7958042f081b8fd58c5bc912fbb45bb223aec0f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2255643
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
774cd1b2
|
2020-06-25T09:15:24
|
|
Vulkan: Only transform SPIR-V once
Prior to this change, the SPIR-V would be transformed as part of
GlslangGetShaderSpirvCode() and then possibly another time afterward to
disable the early fragment test optmization (for monolithic programs) or
to update the descriptor set/binding values (for PPOs). By storing the
original SPIR-V in the ProgramVk and the transformed SPIR-V in the
ProgramExecutableVk, we can now remove the SPIR-V transformation from
GlslangGetShaderSpirvCode() and only perform it once in
ProgramInfo::initProgram() for monolithic programs and PPOs.
Bug: angleproject:4513
Test: CQ
Change-Id: I4e7240b2abe7c796c46cf531948dad0e37c1419a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2267537
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7993f34d
|
2020-06-24T18:39:08
|
|
Vulkan: Store transformed SPIR-V in ProgramExecutableVk
The original SPIR-V is specific to a ProgramVk while the transformed
SPIR-V is specific to a ProgramExecutableVk. This CL keeps the original
SPIR-V in the ProgramVk::mOriginalShaderInfo and the transformed SPIR-V
in ProgramExecutableVk::mTransformedShaderInfo. This allows us to skip
an extra copy that was occurring during PPO link().
Bug: angleproject:4513
Test: CQ
Change-Id: I796dcd6bcfb2df08d9b8f1a5295b2821a4096f16
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2265484
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e2de2c1c
|
2020-06-25T11:59:14
|
|
Fix disable_native_parallel_compile workaround condition.
This workaround should only be enabled when ANGLE is built with TSAN
on.
Bug: chromium:1094869
Change-Id: If527457c11ce744b543ac69761cc64235d2f1dd8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2267420
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
58ff77a8
|
2020-06-27T09:30:00
|
|
Vulkan: Set new layout based on VkImageUsageFlags
When transferring vkImages between queues, the new layout
needs to be set based on the usage flags of the vkImage
instead of hardcoding it to AllGraphicsShadersReadWrite
Bug: angleproject:4791
Change-Id: I3b543a6280e6c2317cc11bf65dc4c337bc5f90b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2271563
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b31a1939
|
2020-06-25T08:13:20
|
|
Vulkan: Implement invalidate for color buffers
This will set the color buffer load_op to DONT_CARE if the application
has invalidated the color buffers prior to drawing.
Will also set load_op to DONT_CARE for depth & stencil, though this
isn't likely a common use case.
Tests:
angle_deqp_gles3_tests --gtest_filter=dEQP.GLES3/functional_fbo_invalidate_* --use-angle=vulkan
angle_end2end_tests --use-angle=vulkan --gtest_filter=StateChangeRenderTestES3.InvalidateNonCurrentFramebuffer/ES3_Vulkan
Bug: b/150458520
Bug: angleproject:4444
Change-Id: I6ce3d20fc1e9f4ab7ba3af9755c5ddc544f58ddd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2267057
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
b0245f68
|
2020-06-23T22:38:12
|
|
Vulkan: Remove superseded updates when flushing to image
Especially with emulated formats and robust resource init, a clear is
staged that's often superseded by a data upload to the same subresource.
This change ensures that superseded updates are dropped to avoid
unnecessary GPU work.
Bug: angleproject:4691
Change-Id: I697ccd438b92fd2fff17a5800550694658c95c54
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2262574
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
a935c65a
|
2020-06-24T00:09:45
|
|
Fix delegate Worker Thread Pool creation
This error was introduced while fixing nits in the
previous CL.
The Delegate Pool was not created at all and always
fallback to the Async thread pool instead.
Bug: chromium:1091259
Change-Id: I5036836b5d792372636f21e936a03906eb587f67
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2262573
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Etienne Bergeron <etienneb@chromium.org>
|
|
e69298d1
|
2020-06-26T08:20:47
|
|
Vulkan: External image layout needs to be ReadWrite
Textures specified through external images need to
transition to a ReadWrite layout and not ReadOnly.
Bug: angleproject:4791
Change-Id: I8c0d5999d65499de6a36725ed1cc9c390c479c8c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2270513
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
da3e6451
|
2020-06-25T23:49:22
|
|
Vulkan: Fix fbo_invalidate tests for pre-rotation
The BlitFramebuffer path wasn't properly supporting stencil and MSAA
paths for pre-rotation:
1) The stencil path on Android isn't going through
UtilsVk::blitResolveImpl, but requires changing
UtilsVk::stencilBlitResolveNoShaderExport for rotation.
2) MSAA resolves requires rotating clippedSourceArea.
Test: angle_deqp_gles3_tests --gtest_filter=dEQP.GLES3/functional_fbo_invalidate_\*
Bug: b/158337857
Change-Id: I092cab302c247ff9b2e262b12de3d1a56a257f8e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2269499
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
d4874cb3
|
2020-06-25T10:49:32
|
|
Reformat Framebuffer::readPixels
Reformat Framebuffer::readPixels and its overriding methods
to the following method signature
angle::Result readPixels(const Context *context,
const Rectangle &area,
GLenum format,
GLenum type,
const PixelPackState &pack,
Buffer *packBuffer
void *pixels);
This will allow capture replay tool to use its own PixelPackState
to read pixels from framebuffer without having to set the global states
Bug: angleproject:4787
Change-Id: Idc64179d8e8f6b5163ef0747f239cd5172a2491b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2267417
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b067db75
|
2020-06-25T23:47:09
|
|
Vulkan: Fix copySubImageImplWithDraw() for pre-rotation
This involves cases of copying from a rotated default framebuffer.
Various adjustments are needed for where the source is and its
relationship to gl_FragCoord in the custom ImageCopy fragment
shaders. Various tests are affected, including the following:
Test: angle_deqp_gles2_tests --gtest_filter=dEQP.GLES2/functional_texture_specification_basic_copy*teximage2d_*
Test: angle_deqp_gles3_tests --gtest_filter=dEQP.GLES3/functional_texture_specification_basic_copy*teximage2d_*
Bug: b/158245571
Bug: b/157933235
Change-Id: Id9ec56d849cd2268954dd82623a7632a10fb8e8f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2248204
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
6b49449d
|
2020-06-25T12:25:33
|
|
Vulkan: Fix mipmap generation and level redefinition
When generating mipmaps, the non-base levels are redefined to be
compatible. mRedefinedLevels was not updated to take this into account,
resulting in invalid copies to the image.
Additionally, noted a few spots where ImageDesc is used to respecify the
image, but those are not up-to-date when the backend functions are
called. Changed those to directly get the necessary information from
the allocated image.
Bug: chromium:1094644
Bug: chromium:1094599
Change-Id: I2afc9e5a53f24ef56836c5d7eec2e3e11df0ef61
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2267423
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
77c062aa
|
2020-06-24T01:34:28
|
|
Vulkan: Remove emulated clears before mipmap generation
If the image is recreated for mipmap generation, and if the format used
is emulated, clears are automatically staged for all levels of the
image. Since non-base levels will be completely rendered to (using
blit, so not through the staging buffer), there is no point in
performing these clears for non-base levels. This change drops those
clears.
Note that another change will drop the clear for base level if detecting
that a future update will supersede it, for example because the base
level is being copied from the old image.
Bug: angleproject:4551
Change-Id: If2f10cf67e24b44243b29d22bfcf1cb933895cd7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2262575
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c81da1c8
|
2020-06-19T22:05:38
|
|
Vulkan: Avoid double-copy when generating mipmap
If the image needs to be redefined with mips, level 0 was copied to a
buffer which was then copied to the new image. This change instead
stages the old image directly for copy to the new image.
Bug: angleproject:4551
Change-Id: I7625f140ddadde0a2b439c5e91c519ad49ae2fd7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2257264
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6ee18c2d
|
2020-06-17T12:54:52
|
|
Vulkan: Remove debug symbols from internal shaders
Shaves ~47KB on binary size.
Bug: angleproject:2022
Change-Id: Ifc861c4308a806d17f499bf2126009a59125b9f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2249566
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
69a78e6d
|
2020-06-22T13:52:54
|
|
CGL: Add basic multithreading support
Adds first step to allowing multithreaded contexts: letting multiple
threads use ANGLE as long as only one thread has a current context at
a time.
Bug: angleproject:4724
Bug: angleproject:4725
Bug: chromium:1087084
Change-Id: Ia6ca48c5fa838b93e49fc9ea259d626029439ca3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2257273
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
4eb2f6dc
|
2020-06-11T11:30:14
|
|
Add basic multithreading support to GLX
The first step for true multithreading support is allowing multiple
threads to use ANGLE as long as only one thread has a current context
at a time.
Added a test to MultithreadingTests to reproduce this behavior and
implemented it in GLX.
Bug: angleproject:4724
Bug: angleproject:4725
Bug: chromium:1087084
Change-Id: I908d3f02f34a681f1c9d0919dd17aee1a489173c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2241616
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
5474304a
|
2020-06-24T11:29:58
|
|
Vulkan: Handle overflow in maxCombinedUniformComponents computation
Certain vendors support large number of uniform buffer components.
The calculation of maxCombinedUniformComponents overflows when
captured in a 32bit lvalue. Update it to a 64bit variable.
Bug: angleproject:4788
Tests: dEQP-GLES3.functional.state_query.integers64.max_combined*
Change-Id: I355910218c56347c98a5dfa7359b00be7b40871a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2264849
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ea706304
|
2020-06-24T16:35:10
|
|
Capture/Replay: Fixups for draw surface
Ran into these two problems while capturing gfxbench and
trying to replay in the sample.
Test: Capture and replay sample of gfxbench
Bug: b/159238311
Change-Id: I1c873cbf2e297b5299581a7ffc2b1273e2d4c18a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2265287
Reviewed-by: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
86ae16b6
|
2020-06-23T01:03:00
|
|
Vulkan: Fix CPU path copy of 2D array textures
Bug: angleproject:4744
Change-Id: I88d997c39a7d5f8fa9609c43c2cd192b237611e7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2259202
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6ef0387d
|
2020-06-16T23:32:47
|
|
Vulkan: Fix mipmap generation discarding levels above max
Bug: angleproject:4551
Change-Id: I1f65e41049b8cc8065ff988bb708cb44acfdb98b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2257263
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
18d412cb
|
2020-06-18T11:57:53
|
|
Fix readBuffer validation
The argument to glReadBuffer should be validated against
GL_MAX_COLOR_ATTACHMENTS, not GL_MAX_DRAW_BUFFERS.
Bug: angleproject:4766
Change-Id: Ic184934bd01e68b936266eae69543ae66fd68ea3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2252978
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
054aeeed
|
2020-06-12T11:49:03
|
|
Vulkan: Batch vkUpdateDescriptorSets calls
Right now we are making this calls multiple times as we loop through
each shader stage. Qualcomm performance validation layer warns about
this. This change will aggregate the calls into one call per dispatch.
Bug: b/158787299
Change-Id: I48aa3752f708c26ffbca2fb7947cb8bbc0f76dcd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2243321
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
70e706f4
|
2020-06-22T18:14:44
|
|
Vulkan: Fix glBlitFramebuffer() for pre-rotation
This involves cases of blitting to/from a rotated default framebuffer,
potentially with scaling in one or both dimensions. Various
adjustments are needed at different times in the stack, including in
the custom BlitResolve fragment shaders. Various tests are affected,
including the following:
Test: angle_end2end_tests --gtest_filter=*EGLPreRotationLargeSurfaceTest.OrientedWindowWithBlitFramebuffer
Test: angle_deqp_gles3_tests --gtest_filter=dEQP.GLES3/functional_fbo_invalidate_\*
Bug: b/158337857
Change-Id: Ibb176e4215784e85c0f34e6e1c22ba662517fed2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2242359
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
62a2f513
|
2020-06-23T13:16:19
|
|
Vulkan: Remove DispatchHelper
This class is no longer used.
Bug: angleproject:4029
Change-Id: I2758b286ae10856a5dff3decbb1cf9c58b44e354
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2260936
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cf11beed
|
2020-06-22T15:51:51
|
|
Add mip-related corner-case tests
Bug: angleproject:4780
Bug: angleproject:4781
Change-Id: Iaf8e1df576c3676249751413a646244da41a0eaf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2258476
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ce3d3413
|
2020-06-23T09:29:05
|
|
Update glslang_validator binary for Linux.
This binary was updated using update_glslang_binary.py.
Please see instructions in tools/glslang/README.md.
Bug: None
Change-Id: Ib1c3ae292a90ec6aabc79b9396ca2e35007edc16
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2260573
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b47cc50a
|
2020-06-22T10:59:09
|
|
Enable validation layer custom extensions
With this change, Vulkan-ValidationLayers will allow the specified
extensions to pass through, instead of being nulled out:
* VK_STRUCTURE_TYPE_SAMPLER_FILTERING_PRECISION_GOOGLE
* VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT
Bug: b/159027603
Bug: b/154620295
Change-Id: I0ace3acdac06a6c115834ef88b0c883fa2dd4744
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2246304
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7db2dcec
|
2020-06-19T07:01:08
|
|
Roll Vulkan-ValidationLayers from 04f0b691eb4c to 74ed6cfd05c1 (20 revisions)
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/04f0b691eb4c..74ed6cfd05c1
2020-06-18 tony@lunarg.com layers: Remove leading comma in lists
2020-06-18 mark@lunarg.com corechecks: Fix DrawIndexedIndirect VUID name
2020-06-18 jeremyk@lunarg.com tests: Add combined image sampler test
2020-06-18 jeremyk@lunarg.com layers: Add combined image sampler check
2020-06-18 jeremyk@lunarg.com layers: Add CMD_TYPE parameter to pipeline binding
2020-06-18 tony@lunarg.com layers: Add is_khr to acceleration_structure_state
2020-06-17 mark@lunarg.com tests: Don't run ManySmallIndexedDrawCall test on shieldTV
2020-06-17 s.fricke@samsung.com tests: Add export handleType VUIDs
2020-06-17 s.fricke@samsung.com layers: Add export handleType VUIDs
2020-06-17 s.fricke@samsung.com layers: Wrap non external AHB logic together
2020-06-17 s.fricke@samsung.com tests: Validate maxSamplerAllocationCount
2020-06-17 s.fricke@samsung.com layers: Validate maxSamplerAllocationCount
2020-06-17 s.fricke@samsung.com layers: Add function calls to error log messages
2020-06-17 mark@lunarg.com tests: Add filters for BP Android test failures
2020-06-17 mark@lunarg.com tests: Compile best practices tests for Android
2020-06-17 mark@lunarg.com tests: Replace setenv with private settings extension
2020-06-17 mark@lunarg.com layers: Add private settings extension and write support
2020-06-17 s.fricke@samsung.com layers: Remove invalid check for AHB format
2020-06-17 szilard.papp@arm.com tests: Adding test for triple buffering
2020-06-17 szilard.papp@arm.com practices: Adding checks for triple buffering
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-validation-layers-angle-autoroll
Please CC courtneygo@google.com on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md
Bug: None
Tbr: courtneygo@google.com
Change-Id: I8c35e56e998560c53e8b54bfd26749d334172b30
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2254490
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
cfbf769d
|
2020-06-22T10:14:02
|
|
Vulkan:Level/Layer hash fix-up
Simplify has function for level/layer of imageView and add
asserts to make sure that there won't be hash collisions.
Bug: angleproject:4651
Change-Id: I8ab86a4f3d7aa668ad2c08e61bd5fd57744fcd12
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2257265
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
113c5e29
|
2020-05-11T22:49:03
|
|
Metal: deferred render command encoder creation.
MTLRenderCommandEncoder creation will be deferred until a render pass
ends.
Commands will be stored into a back-end owned buffer during render pass.
At the end of the render pass, those commands will be re-encoded into an
actual MTLRenderCommandEncoder.
Benefits:
- Useful for future implementation of occlusion query buffer where it
could be allocated right before the end of a render pass to be big
enough to store all queries within the render pass.
- It's possible to change load option (deferred clear) as long as there
is no draw call issued yet. This is not implemented yet.
- Possibility of commands' re-ordering.
Bug: angleproject:2634
Change-Id: I1348716aa882c0540d9120bf175d8dac13fb58bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2193196
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b772a955
|
2020-06-16T23:32:47
|
|
Vulkan: Make texture syncState aware of upcoming generateMipmap
By letting TextureVk::syncState know it's being called for
generateMipmap, it can make a better decision to initialize the image:
- Staged updates to mips that are going to be overwritten are dropped
- The image is created with full mipchain to avoid a redefine in the
following generateMipmap() call.
Bug: angleproject:4551
Change-Id: Ic70ee6c0a0b29c7bd62beaff612b2f2d5276defb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2249340
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
2919dc6e
|
2020-06-15T18:39:39
|
|
Add immutable samplers to descriptor set layout
To support YUV conversion we need to track the use of immutable samplers
in the descriptor set layout.
Bug: b/155487768
Change-Id: Ic7dc6a08551f5125c4a519b5cfada312f95ab914
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2225423
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
f56ba018
|
2020-06-19T11:30:59
|
|
Fix TSAN build error
This typo was hidden behind a THREAD_SANITIZER flag so it was uncaught
by the CQ. I verified this fix locally.
Bug: chromium:1097082
Change-Id: I4e31d1d1253cbcaf292c9a588bcd54fc298e85b6
TBR=jmadill@chromium.org
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2254558
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
34ca1ac7
|
2020-06-16T12:05:12
|
|
Vulkan: Fix FramebufferVk cache
Migrate Serial from Image to ImageView.
Imageviews are what are utimately used in FramebufferVk, so move
the Serials into the ImageViewHelper class. Since that class also
knows the level/layer of the imageView, we can revert to using a
single Serial per ImageView instead of the AttachmentSerial that
included the layer and level.
ImageViewHelper caches Serials per layer/level combo.
Bug: angleproject:4651
Change-Id: I3741d7d03523eada84295cb712c1cc1e6e3c3867
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2248203
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3589d9a0
|
2020-06-16T15:32:18
|
|
Add a test for generateMipmap after modify
To make sure TextureVk::syncState is called before generateMipmap.
Bug: angleproject:4551
Change-Id: Ibce0738b72fc81270e07617f04ffee57f1c8ed20
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2248209
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
1c484343
|
2020-06-17T10:10:16
|
|
Capture/Replay: Track the draw surface width/height
In order for captures to replay correctly, track the original
width and height of the draw surface, as provided by eglMakeCurrent.
Bug: b/159238311
Test: angle_perftests
Change-Id: Ic8697abaca7dbdb94dabf34b872f69faf17b0b4d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2250861
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Manh Nguyen <nguyenmh@google.com>
|
|
6cb8345f
|
2020-06-17T23:22:57
|
|
Vulkan: Non-zero memory initialization for all images
This was only implemented for single-level, single-layer, single-sample
color images. This change implements clear for all images.
Additionally, the move to VMA broke the initialization of the staging
buffer, so even for the supported case, the image was being initialized
with uninitialized data.
Bug: angleproject:4092
Bug: angleproject:4551
Change-Id: Ic2eee3f8454a93f1bcf3ca725afabcdc693047e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2249376
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c70b8f84
|
2020-06-17T17:06:27
|
|
GL: Workaround NVIDIA issue in glLinkProgram
When TSAN is enabled, it catches some bad memory access in the NVIDIA
driver on Linux during glLinkProgram with multithreaded linking.
To workaround this, assume we don't have native support for
KHR_parallel_shader_compile
Bug: chromium:1094869
Change-Id: I92f042b39028df108de2c5378311cc0c7b683e08
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2250938
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
e7ae237e
|
2020-06-12T23:52:09
|
|
Vulkan: ANGLE_copy_texture_3d support
Bug: angleproject:4748
Test: CopyTexImage*Vulkan:Texture3DCopy*Vulkan:Texture2DArrayCopy*Vulkan
Test: dEQP.KHR_GLES3/copy_tex_image_conversions_required_cubemap*cubemap*
Change-Id: Ifdc3d455ca8c9e732d0adf4afa9e2809d780ae18
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2246320
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5dba723d
|
2020-06-16T09:29:16
|
|
Add newline-eof to warnings
Bug: angleproject:4757
Change-Id: I8ff6cb1277bf31ed8d6af667aa59ab8029633fe0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2247488
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
13816d2d
|
2020-06-16T14:27:04
|
|
Move vulkan_headers/entry_points to common/vulkan
This will allow us to move common headers, such as extension headers, to
common/vulkan.
Bug: b/159027603
Bug: b/154620295
Change-Id: I1ff73dc5b7ee8f7dfb3ac0c5f30bd4b3a8183aeb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2248205
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9e83c151
|
2020-06-04T19:53:36
|
|
Active the delegate worker pool for chromium (3/3)
This CL is activating the delegate WorkerPool in Chromium.
Must land after:
https://chromium-review.googlesource.com/c/angle/angle/+/2231708
Related CLs:
1) https://chromium-review.googlesource.com/c/angle/angle/+/2231708
2) https://chromium-review.googlesource.com/c/chromium/src/+/2231864
3) [this CL]
Bug: chromium:1091259
Change-Id: I62c7175fec2846fee014702d8561eeaf48ca93de
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2231710
Commit-Queue: Etienne Bergeron <etienneb@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
de4611c9
|
2020-06-04T13:44:17
|
|
Vulkan: Update eglDupNativeFenceFDANDROID() implementation.
When exporting vkfence FD with vkGetFenceFdKHR() in SYNC_FD
semantic, vkfence could be reset. Dup and store the SYNC_FD created
vkfence's FD in SyncHelperNativeFence by exporting FD during
initializeWithFd() meanwhile make the eglDupNativeFenceFDANDROID()
only dup the mNativeFenceFd in SyncHelperNativeFence.
Test: angle_end2end_tests
--gtest_filter=EGLSyncTest.AndroidNativeFence_*
Bug: angleproject:2517
Change-Id: I354185d26d0fda72baeb61702c879ed5665db6ec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2230062
Reviewed-by: Jeff Vigil <j.vigil@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
340da145
|
2020-06-16T10:58:47
|
|
Vulkan: Disable 1xMSAA on integer formats too
This was pending swiftshader support for 4xMSAA support for integer
formats, which is long done.
Bug: angleproject:4197
Change-Id: I843a9674e20a48b5387bd67b8c0efc8617841382
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2248198
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
68fcfea3
|
2020-05-29T12:34:08
|
|
Vulkan: support format aliasing in texture images
glBindImageTexture specifies the format which should be used to
interpret the texture data and this format is independent from the
texture's own internal format. This change allows the VkImage's format
to be mutable to handle glBindImageTexture calls with different
formats.
Bug: angleproject:3885
Test: dEQP-GLES31.functional.image_load_store.*.format_reinterpret.*
Change-Id: Ia1ad762b4ccae0f510c8b4918781234fcf51c5f1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2222610
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
33c28e35
|
2020-06-12T08:17:47
|
|
Optimize thread specific storage and retrieval with native ASM
Android reserves specific TLS slots to store thread specific
values. Given that the Context object gets queried on every
call we leverage Android's ASM code to improve the speed of
this operation.
TLS_SLOT_OPENGL is an unused slot in Android and using that
in combination with the ASM code,rather than using the
pthread API, allows angle to store and retrieve thread specific
context object much more efficiently.
Bug: angleproject:4717
Change-Id: I27a117fe82e62407e01c8c372918b866aaea9ee5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2231883
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c8040e54
|
2020-06-04T19:45:26
|
|
Fix includes to fuchsia headers
Includes to non-third_party headers should use "" style instead of <> style includes.This also forces us to be correct about supplying fuchsia dependencies.
Bug: angleproject:4676
Change-Id: Id7f542db429d562474891937763610dd667a3fdc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2231980
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
289365fa
|
2020-06-12T17:09:13
|
|
Remove ProgramExecutable::mProgram[Pipeline]State
Remove the ProgramExecutable::mProgram[Pipeline]State pointers.
Bug: angleproject:4520
Test: Build/CQ
Change-Id: I1717e291ff9beec226bd2888e990b27d8078797c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2243764
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f4e6ae91
|
2020-06-15T15:56:43
|
|
Fixes missing newlines in headers
Bug: angleproject:4757
Change-Id: Ic5d9bb62834cbd66463086c298ebcaeb3eb44ad0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2247486
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b900f4e2
|
2020-06-12T16:01:58
|
|
Vulkan: Use GPU path for copy to sRGB textures
To avoid creating aliasing views for sRGB textures, the ImageCopy
texture will do/undo sRGB transformation such that the final result is
as-if both source and destination views were linear.
Possible future optimizations:
- If either of source or destination has already been created with the
MUTABLE flag, i.e. has a linear view already available, that can be
used.
- If destination is sRGB but not renderable while its corresponding
linear format is, and if the image is already created with the MUTABLE
flag, using the linear view would allow the copy to go through the GPU
instead of the CPU.
Bug: b/157934810
Bug: angleproject:4092
Change-Id: I43aaf882c90e1c60d0d9eb04636c203fc04090a4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2241622
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ce29916b
|
2020-06-12T14:40:22
|
|
Remove mProgramState from ProgramExecutable::isCompute()
ProgramExecutable::isCompute() is being updated to no longer use
mProgramState or mProgramPipelineState, as part of the effort to remove
those members from ProgramExecutable. Functionally, things are the same
for PPOs, but Programs are being updated to use the boolean
ProgramExecutable::mIsCompute rather than checking the linked shader
stages to determine draw vs compute.
Slightly unrelated, but this CL also removes the unused function
ProgramPipeline::hasImages() which was missed in one of the earlier CLs
in this relation chain.
Bug: angleproject:4520
Test: Build/CQ
Change-Id: Ief28021310d6d0b1be5b7608a59deb87b0cf591d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2243326
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a28efb2f
|
2020-06-12T13:14:48
|
|
Remove mProgramState from ProgramExecutable::updateActiveImages()
Use of the member variable mProgramState is being removed to reduce the
circular coupling of ProgramExecutable and ProgramState.
Bug: angleproject:4520
Test: Build/CQ
Change-Id: I31d7e607fb06a374a0b0e1d35eb2a092614badf5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2243323
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
bc8199fa
|
2020-06-15T10:00:01
|
|
Vulkan: Ensure tiling mode compatibility while deciding copy path
When decided whether to use transfer or the draw path to perform
an image to image copy make sure to account for compatibility in
tiling modes.
Bug: angleproject:4743
Change-Id: I757aab0ac8628f08092dc2dfc39f06d112db5089
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2246527
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
959037e0
|
2020-05-25T15:40:38
|
|
Vulkan: Preserve RPs on XFB changes when possible.
Instead of unconditonally ending the RenderPass we keep a set of
active XFB buffers in the ContextVk. This lets us re-use RPs when
we don't write to the same buffer repeatedly.
Reduces the RenderPass count in our Manhattan capture from 29->23.
Bug: angleproject:4622
Change-Id: I28c2d4d3db1490e5d07be3c48d21fd2cc6ff85d6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2196957
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
7005248b
|
2020-06-11T16:00:23
|
|
Vulkan: Fix glCopyTextureCHROMIUM if source is swizzled
A no-swizzle view is added for this use-case.
Bug: angleproject:4004
Change-Id: Id654af9a4f520357c91bf2b06501c9e1ea169f11
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2241623
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1a455f4e
|
2020-06-12T15:49:46
|
|
Vulkan: Set external image's usage flags based on AHB usage flags
For vkImages that are backed by external memory we need to derive
the VkImageUsageFlags based on the usage flags of the AHB.
Bug: angleproject:4739
Change-Id: I92bee943c66f7eadd9b63bb9bf1b59ffe5bc5a37
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2243765
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
e6124500
|
2020-06-02T12:02:55
|
|
Fix baseVertex and baseInstance with streaming attributes
baseInstance: Fixed by adding the intial offset to each copy for
streaming attributes
baseVertex: make sure mShaderConstants.onFirstVertexChange takes
in correct firstVertex value for dynamic attribs (where firstVertex
passed to StateManager11::updateState already include baseVertex)
Bug: chromium:1078330, angleproject:3402
Change-Id: I289c4e3733fdf6f78af8c3adee84112c05a5abce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2227022
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shrek Shao <shrekshao@google.com>
|
|
ec010006
|
2020-06-15T16:36:05
|
|
Revert "Remove redundant BlendStateArray tracking"
This reverts commit c746ac65e9d64aa74065ee30d7e7e810088c429c.
Reason for revert: Possible performance regression
BUG=chromium:1085996
Original change's description:
> 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>
TBR=geofflang@chromium.org,kbr@chromium.org,jonahr@google.com,jmadill@chromium.org,lexa.knyazev@gmail.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:4394
Change-Id: Id05b382e951a7256805cffe696325b6b6d940e96
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2246719
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
59656899
|
2020-06-15T12:48:23
|
|
Don't expose pixmap support from DisplayEGL.
BUG=angleproject:4560
BUG=chromium:1094634
Change-Id: Iebab16207eb21175b6d2f1236502bb8a26c43d90
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2246322
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
46594c96
|
2020-06-11T15:20:10
|
|
Fill in missing GL methods for TextureTest
Bug: angleproject:4732
Change-Id: Ic475e29b6ca641029243712115d6a578a48c85f0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2241624
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
09be185d
|
2020-06-05T13:30:18
|
|
Fill in missing GL methods and fix crashes for MultiviewDrawTest
Implements the capture of the following methods
1.glDrawArraysIndirect
2.glDrawElementsIndirect
3.glGetQueryObjectuivEXT
Fix glVertexAttribPointer replay compilation error
Bug: angleproject:4692
Bug: angleproject:4693
Change-Id: Id8b10354bad6b90beeb93837dcdb602ba8292659
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2233398
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
af727792
|
2020-06-10T21:55:43
|
|
Improve EGL_ANGLE_power_preference on dual-GPU MacBook Pros.
Add the ability to release and reacquire the high-power GPU, and to
respond to changes in the active GPU. In Chromium, the GPU process can
not access the WindowServer. An external process must inform ANGLE
that the active GPU has changed, and that ANGLE should switch its
internal context to the new GPU.
Incorporates a couple of functions from WebKit, used with permission,
to effect this GPU switch.
A follow-on change in Chromium which uses these new APIs will make the
existing dual-GPU tests pass with ANGLE and the passthrough command
decoder.
Carry forward Chromium's workaround of disabling GPU switching on
older MacBook Pros to ensure stability.
Document the process of adding new EGL extensions to ANGLE.
Bug: chromium:1091824
Change-Id: I499739156e851b493555d4d6e4aef87d8b97fa31
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2240638
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c5014259
|
2020-06-11T23:30:47
|
|
Move ProgramState::mImageBindings to ProgramExecutable
The member ProgramState::mImageBindings is being moved to
ProgramExecutable to allow ProgramExecutable::getImageBindings() to
answer the query without relying on the Program[Pipeline]State.
Bug: angleproject:4520
Test: Build/CQ
Change-Id: Ia4934c8e57b5ba49b0a399dcad7c1b324c43385d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2241750
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
4e6f6545
|
2020-04-16T16:31:24
|
|
GLX: Support X11 pixmaps
Add support for creating EGL pixmaps from X11 pixmaps using GLX.
Pixmaps are needed for various external APIs such as VAAPI.
Add support for EGL_NOK_texture_from_pixmap to allow binding
pixmaps to textures.
BUG=angleproject:4560
Change-Id: I4a6d3ad7e87151ff5317bbdaaf093ac1b46daf5f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2153805
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0eae0d6c
|
2020-06-11T08:53:39
|
|
Vulkan: Set external image's tiling mode based on AHB usage flags
For external images which can be accessed by CPU,
the tiling mode should be linear. So, query the usage
of the Android Hardware Buffer and derive the tiling
mode based on AHB usage flags.
Bug: angleproject:4735
Change-Id: I1b91c6800d414d73091032e40d8e4f1e8f6c101b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2241780
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c117e360
|
2020-06-05T15:48:36
|
|
Move ProgramState::mSamplerBindings to ProgramExecutable
The member ProgramState::mSamplerBindings is being moved to
ProgramExecutable to allow ProgramExecutable::getSamplerBindings() to
answer the query without relying on the Program[Pipeline]State.
Bug: angleproject:4520
Test: Build/CQ
Change-Id: I0daa997424d6e2aa5172e0731da221db72063435
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2233363
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
b55f0f78
|
2020-06-02T18:01:24
|
|
Compress Program binaries saved in blob cache
The Android blob cache has a limit of 2MB, so ANGLE should compress the
Program binaries that are saved into it to maximize its effectiveness.
ANGLE will gzip the program binaries before being stored in the blob
cache and then uncompress them when retrieved. Using gzip, the binaries
are compressed to ~25% of their size when running the T-Rex benchmark.
Some examples (in bytes):
Uncompressed: 20193, Compressed: 4455
Uncompressed: 8767, Compressed: 2369
Uncompressed: 11144, Compressed: 2927
This doesn't appear to affect the T-Rex benchmark since all of the
programs are loaded/decompressed as part of the benchmark
initialization, and the programs are small enough to all fit in the
blob cache without compression.
Bug: b/155184635
Test: T-Rex, CQ
Change-Id: Ie6a101c32ab5fd49baae1cb7aecdd26a934e15af
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2227529
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
ff2ebce4
|
2020-06-10T22:46:17
|
|
Vulkan: allow texture copies from one mip to another
As a first implementation, this makes the copy go through the staging
buffer. Once anglebug.com/4719 is implemented, this can be optimized to
perform the copy directly.
Bug: angleproject:2914
Bug: angleproject:4274
Change-Id: I2c9863381f54c3467ca939d049336960c21f60b0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2240671
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|