|
d2236b58
|
2023-07-29T23:50:05
|
|
Support substituting translated shaders.
Add dumpTranslatedShaders and enableTranslatedShaderSubstitution
frontend ANGLE features, which allow ANGLE developers to prototype
optimizations and other transforms without fully implementing them in
the shader translator.
Tested on macOS with ANGLE's Metal backend, but should work with the
other source-level translator backends.
Add documentation for pre-existing substitution of shader sources, and
of translated shaders added in this CL.
Fixed: angleproject:8280
Change-Id: I24d5ef88a479b23e81cc8169fe813c263acfc71f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4731553
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
f5ad056b
|
2023-07-10T22:13:34
|
|
GL: Fix ScalarizeVecAndMatConstructorArgs and move to gl/
This transformation was buggy and was disabled. Originally, it was
intended to be used everywhere. It is now needed for a GL driver
workaround.
This change reimplements this transformation and uses it as a GL
workaround.
Bug: chromium:1420130
Change-Id: I42d63fa5844bcf683ac41e61925aa637e033ca2e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4676634
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
65f4d2a4
|
2023-04-17T10:08:18
|
|
Adds features to enable loading/saving metallibs to blobcache
CompileMetalShaders results in the appropriate command line tool
being run to generate metallib blobs from shader source.
DisableProgramCaching results in not saving programs to BlobCache
LoadMetalShadersFromBlobCache results in trying to load metallibs
from BlobCache.
Bug: chromium:1423136
Change-Id: I01a4d7a5d60ed5ac978fb99db01b741e0f19e76b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4434293
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
|
|
18657894
|
2023-01-25T13:05:56
|
|
Add features to dump and replace shader source.
dump_shader_source writes shader source strings to files named
with the hash of the source and shader type.
enable_shader_substitution allows subsituting the shader source
with the strings contained in a file. The same file naming scheme
as dump_shader_source is used so shaders can be dumped in one run,
modified and subsititued in the next run.
Use the ANGLE_SHADER_DUMP_PATH and debug.angle.shader_dump_path
environment variables to control where files are written. If they
are unspecified, write to the temp directory.
Based upon Cody's CLs:
https://chromium-review.googlesource.com/c/angle/angle/+/2755841
https://chromium-review.googlesource.com/c/angle/angle/+/3961670
Bug: angleproject:7760, chromium:1385510
Change-Id: I43b9827b977079b88daa794e867637f7a126b080
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4192347
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
70cf2322
|
2022-11-16T10:25:07
|
|
Vulkan: Move async pipeline cache sync feature to backend
Bug: b/246683126
Change-Id: I194e488e04580cee7055c0674091f1228984edf9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031486
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Solti Ho <solti@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
81a244de
|
2022-10-10T15:32:25
|
|
Adding a class to perform ASTC texture decompression on the CPU
This significantly improves performance by caching and re-using the ASTC
decoder context, and using multi-threaded decompression.
This code was originally written for gfxstream.
Bug: b/250688943
Change-Id: I1727447907f2e25cf9b854ffcc9ccfc04db2fb91
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3929008
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a7dc51f2
|
2022-10-01T08:49:11
|
|
Add a framebuffer fetch implementation of PLS
The framebuffer fetch implementation works by attaching PLS backing
textures to the framebuffer, and then rewriting PLS uniforms as "inout"
fragment variables. The compiler's existing machinery takes it from
there and makes it work on GL and Vulkan, and soon Metal.
EXT_shader_framebuffer_fetch is now the preferred backend for pixel
local storage, but we also use EXT_shader_framebuffer_fetch_non_coherent
if shader images can't be coherent. This is especially interesting for
Vulkan, since noncoherent framebuffer fetch is possible without any
extensions.
Bug: angleproject:7279
Bug: angleproject:7683
Bug: angleproject:7684
Bug: angleproject:7724
Change-Id: I33f3b2c6df9a5709969d9165c448ea71b096c9e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3900142
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
955adb77
|
2022-08-12T10:14:48
|
|
Cache compiled shader
By storing the compiled shader in the blob cache, the time to
recompile the same shader is reduced.
Based on work by <hckim.kim@samsung.com>
Bug: angleproject:7036
Change-Id: I884ae40e715c49a9ccd12903012e8327811e3557
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3808235
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
15cc0013
|
2022-07-14T23:32:05
|
|
Add a GL_ANGLE_shader_pixel_local_storage extension
Plumbs through "GL_ANGLE_shader_pixel_local_storage" and
"GL_ANGLE_shader_pixel_local_storage_coherent" extension strings
advertised by ANGLE and stubs out an initial spec document. This change
doesn't add any new procedures or shader constructs, but it does allow
the PLS tests to start checking for the real extension strings and
requiring the GL_ANGLE_shader_pixel_local_storage extension.
Bug: angleproject:7279
Change-Id: I36877fe4117185a2121f803288123cd69a447cf3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3739590
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
0f8f760d
|
2022-06-07T17:52:52
|
|
Disable KHR_no_error for Android/SwiftShader
Speculatively fix crash in Skia on ANGLE that has been happening.
In addition, prevent other crashes in the future.
Bug: b/220069903
Change-Id: I01b9896a6feb8be524849dafbc1df9526fc98754
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3694160
Commit-Queue: Ian Elliott <ianelliott@google.com>
Auto-Submit: Ian Elliott <ianelliott@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4dc4c0f0
|
2022-05-02T11:03:57
|
|
Remove whitespace from features json files
Bug: angleproject:6435
Change-Id: I7f653a9836180d0f2e0198302e11ae2b0ca49d3b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3621315
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
454efd1d
|
2022-04-26T23:57:46
|
|
Add forceDepthAttachmentInitOnClear frontend workaround
AMD on D3D11 skips depth buffer updates in some cases.
Bug: angleproject:7246
Bug: angleproject:7200
Change-Id: I27bbea30fbf4173470063a670b9c43a805286c39
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3608092
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
fcec6904
|
2022-04-13T14:18:06
|
|
Generate feature variable names from display names
The json file now only contains the feature display name. The variable
name is automaticaly derived.
For consistence with Chromium and other Chromium-based projects, the
display name is now always snake_case, and that's what's specified in
the json files. This also makes camelCase variable name generation
trivial (as opposed to the other way around).
Feature overrides now accept both snake_case and camelCase names to
ensure compatibility with existing scripts. This is done by removing _
and comparing override names with feature names in lower case.
Bug: angleproject:6435
Change-Id: I0b6ed2bbf5c312bc4f4be7b3c7d55dbaca2a9886
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3584630
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
eeb39653
|
2022-04-08T16:09:48
|
|
Autogenerate features
Features are now specified in a json file and autogenerated. This is in
preparation for more autogeneration to support feature override in
tests.
This change doesn't yet fix the issues in anglebug.com/6435 and should
be a no-op.
Bug: angleproject:6435
Change-Id: Icdb63a94dc37b5fef0a356e0fc0b49937e083c8a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3579941
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|