|
e6c8f06a
|
2024-11-29T00:00:00
|
|
Metal: Remove line markers from internal shaders
Line markers generated by Clang preprocessor are
platform-dependent and cause extra git noise.
Metal shader compiler does not need them anyway.
Fixed: angleproject:382564808
Change-Id: I792a523ac9269a097c7f52a4cd64a24ed6145567
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6074518
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
db38707a
|
2023-10-19T18:08:51
|
|
Metal: Compile mtllib at build time.
Reworks gen_mtl_internal_shaders.py to only generate the combined metal
source file, mtl_internal_shaders_autogen.metal.
metallibs are now compiled at build time using gn actions.
This allows the Chrome and WebKit build process to use the same code
for loading the builtin shaders even though they compile them in
different ways.
We now only build the mtllib for the OS we're currently building for.
Bug: chromium:1385510
Change-Id: Ie3b4f66c48a7e0eccd5fe664f988e407f452795c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4583134
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
34a99db4
|
2023-08-03T16:46:36
|
|
Metal: Check the full generated default shader in
Add the default MSL shader text in the repo.
Fix an error with include path setup to make the script runnable
from an arbitrary directory, for WebKit purposes.
WebKit would compile that to a compile-specific metallib and then
attach that metallib to the compilation as .h.
Current upstream behavior is to compile the metallib once few platforms.
Bug: angleproject:8284
Change-Id: Icbf7c0055718496cb380fad0b73d5b9b0d0abb0e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4748400
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
9aadc7aa
|
2023-07-13T11:44:51
|
|
Metal: Require MSL 2.1.
We had previously shipped both MSL 2.0 and 2.1 shaders to support
MacOS 10.13 (MSL 2.0 only) while also supporting the stencil blit
fast path that MSL 2.1 provides with the has_shader_stencil_output
feature.
Each configuration of precompiled shaders is ~300kb so we will drop
support for MacOS 10.13 and only ship the MSL 2.1 shaders.
Rework of the disablement for NVIDIA and GPU family 1 to be more
readable. The features themselves are always true because "disable on
NVIDIA" is always true and the check for "is NVIDIA" is moved to the
code which fails the initialization.
Bug: angleproject:8258
Change-Id: Icc8c69540e43fd2b0b237fffbfe170bb3422903f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4681130
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fbca2b29
|
2023-05-08T16:19:54
|
|
Metal: Build built-in shaders from source on the simulator
Compiling the built-in shaders with iphonesimulator sdk generates the
same shaders as on iOS which do not work on the simulator. Fall back
to simply building them from source on the simulator.
Bug: chromium:1385510
Change-Id: If6a3846fd06a4ff12c1e46c31f207e2a7b6c50bb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4515521
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
7f04dc7d
|
2023-04-19T15:05:47
|
|
Reland: Metal: Embed precompiled default shaders.
Compile all builtin shaders to an embedded mtllib to avoid the overhead
of compiling them at startup.
This reland adds ios simulator precompiled shaders.
Bug: chromium:1385510
Change-Id: Ic8585ffe566875e705f2fb00f8e665e8a80797f6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4512494
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
d925c5c9
|
2023-05-04T16:16:11
|
|
Revert "Metal: Embed precompiled default shaders."
This reverts commit 9f6c9f6630b63f541f5fd875aef87ce2a26fd618.
Reason for revert:
iOS Metal tests broken downstream:
https://ci.chromium.org/ui/p/chromium/builders/ci/ios-blink-dbg-fyi/4972/overview
Original change's description:
> Metal: Embed precompiled default shaders.
>
> Compile all builtin shaders to an embedded mtllib to avoid the overhead
> of compiling them at startup.
>
> Bug: chromium:1385510
> Change-Id: I1c31ae0088babae01a9e42d63b3c2c30b65f4476
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4450126
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Bug: angleproject:8152
Bug: chromium:1385510, chromium:1441754
Change-Id: I7f253f7aa14117b93d1e09ed61db0c4563fc9c3d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4508064
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9f6c9f66
|
2023-04-19T15:05:47
|
|
Metal: Embed precompiled default shaders.
Compile all builtin shaders to an embedded mtllib to avoid the overhead
of compiling them at startup.
Bug: chromium:1385510
Change-Id: I1c31ae0088babae01a9e42d63b3c2c30b65f4476
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4450126
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
6937ea98
|
2022-09-08T14:15:10
|
|
Use base name of the generator script in various generated files
Increases compiler cache hits especially in cases where the file is run
during build.
Bug: angleproject:7642
Change-Id: I769dae2d7cca2cf1e238531f4cb356bad41b06dd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3880323
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ee1d3cf7
|
2021-12-10T12:29:16
|
|
Metal: Integrate Metal Binary Shader generation
Bug: angleproject:6801
Change-Id: I2eb7072ed342f2b4cb5d9ee50ca9db75c5c7df69
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331206
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
da3db87e
|
2021-07-06T14:00:58
|
|
Upstream latest changes to Metal backend from Apple to 7/1/2021
This CL merges in the ANGLE changes between these two WebKit commits:
https://git.webkit.org/?p=WebKit.git;a=commit;h=8648b353ab1d7730438c2e08319e1a4d64982c31
https://git.webkit.org/?p=WebKit.git;a=commit;h=166e4924a52971d6a32ad48247a439b16c00e062
Include provoking vertex buffer out of bounds fix
from https://bugs.webkit.org/show_bug.cgi?id=230107
Fix bad merge of resetting of dirty bits, breaking
DepthStencilFormatsTest.DepthTextureRender test and perhaps others.
Disable GL_APPLE_clip_distance when the direct-to-Metal compiler is
active. It can not yet handle the gl_ClipDistance array.
Disable use of rectangular textures for IOSurfaces. Metal can bind
IOSurfaces to 2D textures, and this was passing all tests in the
SPIR-V Metal backend. Introducing rectangular textures breaks the
SPIR-V Metal backend, and the tests currently fail on the
direct-to-Metal backend.
Fix several bugs with ProvokingVertex, which was causing
both the SpirV and Direct backends to incorrectly draw
indices.
(https://bugs.webkit.org/show_bug.cgi?id=230107)
Skip the following tests on the Metal backend which is still failing
RobustResourceInitTestES3.BlitDepthStencilAfterClearBuffer
GLSLTest_ES3.GLVertexIDIntegerTextureDrawArrays/ES3_Metal
With these changes, angle_end2end_tests again runs to completion.
Bug: angleproject:6395
Change-Id: I3cc58f531426a95fc8f177a4ad87f56c1855a546
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3167010
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
|
|
14f8918c
|
2021-04-16T09:17:29
|
|
Migrate more scripts to python3
Test: python3 scripts/run_code_generation.py
Bug: angleproject:5707
Change-Id: I5abae69c1c6bf03cc418f10beaabc80288fa1c94
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2828979
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
2e9161e4
|
2021-01-12T11:29:29
|
|
Vulkan: Add YUV G8_B8_R8_3PLANE_420_UNORM format.
Bug: angleproject:5438
Change-Id: I525a51256a5ee83fa69c8705aa90790fb32a6602
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2623813
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
188d0fe6
|
2020-10-18T14:33:28
|
|
Make Metal shader-gen cross platform.
This switches the generator script use the hermetic Clang instead
of the system gcc/clang. It also uses common Python routines to
manage the temporary file so that it works consistently on Win.
Bug: angleproject:5186
Change-Id: I52906d1a708db8b925061a9d5578b3d54a6dc862
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2483464
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Le Hoang Quyen <le.hoang.q@gmail.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5b7c5b34
|
2020-10-18T17:19:51
|
|
Metal: don't precompile default shaders.
Default shaders will be compiled from source at runtime, this is because
they depend on ANGLE format table and there is currently no way to
pre-compile metal shaders in a cross-platform manner.
Using default shaders' source instead of pre-compiled form seems to
reduce the libGLESv2's binary size. However, the startup time will be
increased due to runtime cost of compilation, thus the compilation now
will be done asynchronously.
Bug: angleproject:5186
Change-Id: I0e1987d6c76692d5169255736fbb8e215185c33b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2482405
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
|
|
e0eb7d2e
|
2020-09-21T03:19:07
|
|
Metal: Fix wrong FormatID enum order used by PBO autogen shaders.
FormatID_autogen.h's enums' order was altered by CL
https://chromium-review.googlesource.com/c/angle/angle/+/2413165
However, Metal default shaders relied on old order thus the result
PBO related computation based on enum value has become wrong.
This CL reuse gen_angle_format_table.gen_enum_string() function to
generate format enums for both
- src/libANGLE/renderer/FormatID_autogen.h (used by C++)
- src/libANGLE/renderer/metal/shaders/format_autogen.h (used by Metal
default shaders)
Bug: angleproject:2634
Change-Id: I52fad168d1932e0386dcf789574f06d341dbd9c3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2418500
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
63c91a3b
|
2020-08-04T20:09:05
|
|
Metal: autogen for PBO related shaders.
Bug: angleproject:2634
Change-Id: I36e5a6a4cb11d82f666c410b33fdb39ad35a5e80
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2336557
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
966a62cb
|
2020-08-04T12:08:00
|
|
Metal: autogen for EXT_occlusion_query_boolean.
Bug: angleproject:2634
Change-Id: I4d6a6378a269ea9e38e9282d6dbfa45e4e3d4d5a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2336126
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
7ce9947d
|
2020-08-04T12:08:00
|
|
Metal: autogen for 3D texture's mipmap generating shader.
Bug: angleproject:4921
Bug: angleproject:2634
Change-Id: I5c379d750114e2ca1c5dd0203e94bb63dac1e0bf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2336125
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
defeda29
|
2020-08-04T12:08:00
|
|
Metal: autogen for EXT_draw_buffers & ANGLE_framebuffer_blit
Bug: angleproject:2634
Change-Id: I8f8ee91fb673301b8bd97c359ee39c411e2bf8da
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2336124
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
9385eb35
|
2020-08-02T23:21:54
|
|
Metal: Generate default shaders to separate files.
Generate default shaders' OS specific versions to separate files to
avoid mtl_default_shaders_autogen.inc becoming too big.
Bug: angleproject:2634
Change-Id: Ie2a39971ec46c36ce13bf5cb72f998f2cbc0ab64
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2332145
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
3e0b61a9
|
2020-07-06T01:18:22
|
|
Metal: Compile default shader source files separately.
- Previously all default shader files were included in one file named
master_source.metal.
- Now they will be compiled separately and link together to generate
binary shader.
- Also generate a debug binary variant that will be used in debug build.
Bug: angleproject:2634
Change-Id: Ic040835c4a729666e73afeba52f5be839b632396
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2281784
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9277ee74
|
2020-07-06T12:40:58
|
|
Metal: Implement MSAA default framebuffer.
GL_SAMPLE_COVERAGE_VALUE is implemented by inserting gl_SampleMask
writing logic to fragment shader.
New test added: MultisampleTest.ContentPresevedAfterInterruption.
- Skip on D3D11 (Bug: angleproject:4609)
Bug: angleproject:2634
Change-Id: Ib44daf0baccc36ea320596d81713156047da059c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2281783
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
fe26bae4
|
2019-10-29T18:38:53
|
|
Metal backend implementation pt 2
This is without Metal specific shader translator implemented yet.
Bug: angleproject:2634
Change-Id: I95d589442251c9ba111bd05a2dc379a36739046c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1855069
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
25301999
|
2019-10-11T14:49:00
|
|
Metal implementation pt 1: autogen resources
Autogen format table and internal shaders for Metal.
Bug: angleproject:2634
Change-Id: I4d81fcd17a0e9959ba9c38a250acc7abb168f54c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1855067
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|