|
31c13df5
|
2022-05-30T15:06:26
|
|
Revert "Initialize buffer contents separately from BufferImpl::setData"
This reverts commit 34cff1a14b635c76a9063b8710e948d04ef98a79.
Reason for revert: Speculative revert for Mac M1 WebGL failures.
Bug: chromium:1330314
Original change's description:
> Initialize buffer contents separately from BufferImpl::setData
>
> Some backends can initialize buffer data faster than allocating a
> zero-filled scratch buffer (GL can map and memset for example).
> Allow those backends the opportunity to make these optimizations.
>
> Verified that GL, D3D and VK backends do not regress by using a
> separate set data call.
>
> Bug: chromium:983167
> Change-Id: Ibcbe6016059434dc36ab3c754df6a24f0a6e5e72
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3039778
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Peng Huang <penghuang@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Bug: chromium:983167
Change-Id: Id1bfa76b832c35fd0b3ade04da16735aa089fdd2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3677335
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
34cff1a1
|
2021-07-19T14:29:35
|
|
Initialize buffer contents separately from BufferImpl::setData
Some backends can initialize buffer data faster than allocating a
zero-filled scratch buffer (GL can map and memset for example).
Allow those backends the opportunity to make these optimizations.
Verified that GL, D3D and VK backends do not regress by using a
separate set data call.
Bug: chromium:983167
Change-Id: Ibcbe6016059434dc36ab3c754df6a24f0a6e5e72
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3039778
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Peng Huang <penghuang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
2df17a12
|
2022-05-25T16:18:37
|
|
Vulkan: Pack driver uniforms
Previously 5 vec4s were used for driver uniforms + 2 vec4s if
specialization constants couldn't be supported.
The driver uniforms are rearranged and packed such that only 2 vec4s are
normally used, which include fallback for specialization constants as
well. In the future, most of the specialization constants may turn into
uniforms, and this change prepares for that.
Additional uniforms are used (3 vec4s) only if common extensions are
missing; transform feedback and bresenham lines.
This change makes it more practical for driver uniforms to be turned
into push constants. Additionally, these uniforms could potentially be
loaded and cached at the beginning of the shader for more efficient
memory access.
On Pixel6, with this change, the traces show no difference in wall time.
On most traces, CPU time shows up to ~7% improvement.
Bug: angleproject:7366
Change-Id: I0f47f863955af06a19c69d1f1d7c45b97d95476e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3668151
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
98c2e169
|
2022-05-20T16:17:49
|
|
Vulkan: Reduce pre-rotation spec const to bool
The specialization constant now only dictates whether x and y should be
swapped. The complete 8 possible states of rotation and y-flip are
achieved by using this swap in combination with a driver uniform for x
and y flip.
Swapping is still a specialization constant to avoid degrading
performance of dFdx/dFdy which otherwise would need both to be evaluated
instead of one. On platforms which don't support pre-rotation, the
specialization constant will never change and driver uniforms entirely
govern y-flip. On platforms that do support pre-rotation, only two
variations of the pipeline are needed.
Bug: angleproject:7366
Change-Id: I73f84e89fa9349d2098fa5b21573aee57d93a30c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3663151
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Lingfeng Yang <lfy@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
cd80b511
|
2022-05-26T12:00:13
|
|
Metal: Upstream uniform limits from WebKit
Increases the limit from 4k to 16k which
matches OpenGL.
Patches are from:
https://bugs.webkit.org/show_bug.cgi?id=238914
https://bugs.webkit.org/show_bug.cgi?id=240896
Bug: angleproject:7280
Change-Id: I404adce0066680513e3eaa56bd4b1079c39a7f03
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3669602
Commit-Queue: Gregg Tavares <gman@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
118a6484
|
2022-05-19T15:11:31
|
|
Metal: Upstream buffer cache fix from WebKit
Patch is from:
https://bugs.webkit.org/show_bug.cgi?id=239015
BufferMtl::getRestartIndices() would recalculate restart
indices on each draw because RestartRangeCache::operator
bool() would return m_isDirty instead of the intended
!m_isDirty.
Use std::optional to hold the RestartRangeCache instead
of maintaining m_isDirty. This allows the type system to
contribute to the correctness of the code. Dirty restart
range cache is not useful and takes up memory.
Bug: angleproject:7340
Change-Id: I6e3ce527700780b5fea59af405bfe06d3714e79f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3656450
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
dbeba900
|
2022-05-17T16:52:23
|
|
Reland "CGL, MTL: pbuffer for IOSurface fails for some formats"
Fixed iOS compiler error
https://chromium-review.googlesource.com/c/angle/angle/+/3568380
Bug: angleproject:7175
Change-Id: I1d15ecf0081891db31470abc305e6780c81ab574
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3648215
Commit-Queue: Gregg Tavares <gman@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
808192a7
|
2022-05-09T16:39:45
|
|
Code Cleanup
In Context::initCaps(), we first read the
compressedTextureFormats from the contextImpl::getNativeCaps(),
then we are clearing the retrieved compressedTextureFormats array
in Context::updateCaps() immediately. We shouldn't need to fill
the same array twice. Removing the first array value assignments
in all backend.
Bug: angleproject:3408
Change-Id: Iea85d367d2c5792de4780995d8d03bcf14af484e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3635275
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
6ddbfa39
|
2022-05-09T09:06:16
|
|
Metal: Log the shader source when a shader fails to translate
Refactor Metal logging to include a message string.
Bug: chromium:1322521
Change-Id: I3a7b5c36fcf140b3664ad96a9da924819326bf94
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3634725
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
9200ba53
|
2022-04-26T12:05:07
|
|
Reland "Make SPIRV optional for Metal backend"
Updated default conditions to match old behavior.
This is a reland of commit 29287e1fc7ad3dff0619736a89e64b3598af8659
Original change's description:
> Make SPIRV optional for Metal backend
>
> This allows clients (ie Skia) to build ANGLE without needing
> all of the additional Vulkan dependencies. Developer builds
> will continue to include both the direct and SPIRV paths, for
> debugging purposes.
>
> Bug: angleproject:7155
> Change-Id: I1c38ee19e747df8b25fd2f8e8efa3b420a4d7766
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3605764
> Commit-Queue: Kenneth Russell <kbr@chromium.org>
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Auto-Submit: Brian Osman <brianosman@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:7155
Change-Id: I439160f2e1f05a3dbe22df82336246a73a0a7d0b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3615012
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
2c58e7a5
|
2022-04-27T09:50:01
|
|
Reduce console spam from Metal shader translation
Skia is seeing this for every test, and it's polluting
the logs. Realistically, a developer only needs this
once per process.
Bug: angleproject:7155
Change-Id: Ied4df3af4024ec542c6a9fd8c33d36f4e82b69cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3611062
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
437053a1
|
2022-04-28T09:05:43
|
|
Revert "Make SPIRV optional for Metal backend"
This reverts commit 29287e1fc7ad3dff0619736a89e64b3598af8659.
Reason for revert:
Possible root cause of Mac failures http://crbug.com/1320588
Original change's description:
> Make SPIRV optional for Metal backend
>
> This allows clients (ie Skia) to build ANGLE without needing
> all of the additional Vulkan dependencies. Developer builds
> will continue to include both the direct and SPIRV paths, for
> debugging purposes.
>
> Bug: angleproject:7155
> Change-Id: I1c38ee19e747df8b25fd2f8e8efa3b420a4d7766
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3605764
> Commit-Queue: Kenneth Russell <kbr@chromium.org>
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Auto-Submit: Brian Osman <brianosman@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: chromium:1320588
Change-Id: Id160118146dad1b8f1af40c60ddefd717516cd1d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3614527
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
29287e1f
|
2022-04-26T12:05:07
|
|
Make SPIRV optional for Metal backend
This allows clients (ie Skia) to build ANGLE without needing
all of the additional Vulkan dependencies. Developer builds
will continue to include both the direct and SPIRV paths, for
debugging purposes.
Bug: angleproject:7155
Change-Id: I1c38ee19e747df8b25fd2f8e8efa3b420a4d7766
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3605764
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1a144edf
|
2022-04-13T17:15:29
|
|
Metal:ReadPixels AMD Copy Texture to Buffer optimization
On AMD GPUs it's faster to copy a texture to a buffer
for read back than to read via a texture.
For reading from a normal texture 24-27ms -> 6-9ms
For reading from a IOSurface texture 17-20ms -> 7-10ms
Bug: angleproject:7117
Change-Id: I7c7f276a3121e87f5c52a1a4287d13203a6b1b37
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3584423
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
62ca6449
|
2022-04-13T09:36:40
|
|
Reland "Fix BlendStateExt::mMaxColorMask initialization"
This is a reland of commit 50d008a7efcab80f34eb742148d05389b2ed247e
Besides fixing the BlendStateExt color mask initialization bug,
the following changes were made:
* All fields were made private with accessor functions.
* A new assertion was added that ensures 64-bit storage for factors
and equations. This allowed dropping one redundant mask.
* Two new helper functions were added.
* BlendStateExt::mMaxDrawBuffers was renamed to mDrawBufferCount.
* The BlendStateExt class is now aligned to 8 bytes with an assertion.
* Expanded test coverage.
Also fixed incorrect usage of BlendStateExt fields in:
* StateManagerGL::syncBlendFromNativeContext
* StateManagerGL::restoreBlendNativeContext
Original change's description:
> Fix BlendStateExt::mMaxColorMask initialization
>
> This variable should not have its unused bits set.
>
> To avoid confusion with other masks of the same class,
> the variable was renamed to mAllColorMask.
>
> Bug: angleproject:7200
> Change-Id: I72542d49ff8da3dbb8d61c5034ce37c1e8fcc6e1
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3581990
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Bug: angleproject:7200
Change-Id: I87a5fe0f9dfbbf5e525b9120f772aa9adb39ce5f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3593234
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
400d9fe4
|
2022-04-23T01:08:19
|
|
Rename feature files to *_autogen.h
To clarify further that they are not to be edited by hand.
Bug: angleproject:6435
Change-Id: Iaf79706d2b688a43b3ebb65700cfbdd71a49a742
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3603842
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2dd13ebb
|
2022-04-21T11:25:00
|
|
Track Surface color & depth/stencil init separately.
This clears up some trace testing confusion due when robust
resource init is enabled, and the app clears color but not
depth on the default surface.
Bug: angleproject:7221
Change-Id: Id97871aec32ad831b663aaa9116e04b582ab5a36
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3600375
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0690f5d3
|
2022-04-21T21:58:49
|
|
Revert "CGL, MTL: pbuffer for IOSurface fails for some formats"
This reverts commit 5b84ad7973a3019b66848aabb2d2eef27c094545.
Reason for revert: Breaks the build on the bots (see below)
Example AutoRoll CL that has compilation pre-submit error: https://chromium-review.googlesource.com/c/chromium/src/+/3598558
Example bot results, showing compilation error: https://ci.chromium.org/ui/p/chromium/builders/try/ios-simulator/1143059/overview
Original change's description:
> CGL, MTL: pbuffer for IOSurface fails for some formats
>
> Some IOSurface SPI formats are compressed, and getting the
> element size for those returns values that are not consistent
> with the validation. Disable the validation
> until a better detection of such formats are known.
>
> A workaround exists for EAGL.
> Apply similar workaround for CGL and Metal.
>
> This hunk is in downtstream WebKit ANGLE and having it upstream would
> help merging back and forth.
>
> Bug: angleproject:7175
> Change-Id: Ic97afd3b952fed236e7b7e1e8511a1dde9008647
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3568380
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Bug: angleproject:7175
Change-Id: I0c18bdb800e39d6930455dbc86931681b6df20b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3600148
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
Auto-Submit: Ian Elliott <ianelliott@google.com>
|
|
3f800e5c
|
2022-04-18T18:36:03
|
|
Metal:Clear Backbuffer when Robust Resource Init enabled
In trying to optimize readPixels
(see: https://chromium-review.googlesource.com/c/angle/angle/+/3584423)
the test RobustResourceInitTest.SurfaceInitialized was failing.
Digging into it it turns out that backbuffer surfaces were not being
cleared.
WindowSurfaceMtl was losing initialization requests due to back-to-back
calls to ensureCurrentDrawableObtained. Refactor surface preparation and
track initialized state separately.
Bug: angleproject:7117
Change-Id: Ic7eac9e77c4412c55340039a21be63e39b2abc0c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3590971
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
5b84ad79
|
2022-04-05T14:55:58
|
|
CGL, MTL: pbuffer for IOSurface fails for some formats
Some IOSurface SPI formats are compressed, and getting the
element size for those returns values that are not consistent
with the validation. Disable the validation
until a better detection of such formats are known.
A workaround exists for EAGL.
Apply similar workaround for CGL and Metal.
This hunk is in downtstream WebKit ANGLE and having it upstream would
help merging back and forth.
Bug: angleproject:7175
Change-Id: Ic97afd3b952fed236e7b7e1e8511a1dde9008647
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3568380
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
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>
|
|
bddb944b
|
2022-04-14T05:04:09
|
|
Vulkan: Prep variable info map to remove hashing.
The removes all the string-based query APIs from the
program executable descriptor set init. The new APIs
still use string-keyed maps but will be switched out
with non-hashed maps in a future CL.
Bug: angleproject:4524
Change-Id: I427efb3ebcf22d5fbdf6d20679bbdaa23cd2dc94
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3573077
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e77be663
|
2022-04-14T05:04:13
|
|
Use ProgramExecutable directly in GlslangWrapper.
Using the ProgramExecutable instead of the state means
we can deal with merged samplers and images immediately.
This will make it easier to use linear maps when indexing
program resources for descriptor sets.
Bug: angleproject:3570
Bug: angleproject:4524
Change-Id: Icd8ee9fe61730b81fafa2bdc59a2788a0d92ad12
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3580882
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
866210ad
|
2022-04-17T00:29:28
|
|
Metal: Fix bytesPerRow computation for compressed formats
The value represents the row size in bytes, not pixels.
Bug: angleproject:7209
Change-Id: Ib7fade31f13ffd3ae78c5df313120c8e0201936c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3588416
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
87187835
|
2022-04-07T13:51:10
|
|
Metal: For readPixels copy IOSurface to non-IOSurface texture
For intel GPU/Drivers, it's faster to copy an IOSurface texture
to a non-IOSurface texture and read from the copy than it is
to read directly from the IOSurface texture.
Bug: angleproject:7117
Change-Id: I786009444480f75be6feb05f09f87fb45a3186b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3573078
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
8074061d
|
2022-04-09T01:03:53
|
|
Remove feature override platform methods
Instead, the tests now use the enable() functions to override the
feature at platform level.
This fixes the forceFallbackFormat feature mistakenly not having been
tested.
Bug: angleproject:6435
Change-Id: I605e4133407282bd52232887b595af0d2c13575d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3577369
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9237272f
|
2022-03-31T14:15:43
|
|
Metal:remove TextureMtl::mIsPow2
Bug: angleproject:7147
Change-Id: I60876d719989311de07ad97f1be5daecb83c3801
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3564276
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
e08476cf
|
2022-04-05T14:48:52
|
|
Metal: Avoid leaking MTLDevice lists in DisplayMtl
Hold the lists via ObjCObj<>.
Patch by David Kilzer <ddkilzer@apple.com>
Bug: angleproject:6920
Change-Id: Ia25cd59b0dd2e81367d8bf5ca50a22ca02547940
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3568381
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
1b2adb40
|
2022-04-05T15:14:55
|
|
Metal: Avoid leaking MTLFunctionConstantValues in ProgramMtl
Hold with ObjCObj<>.
Patch by David Kilzer <ddkilzer@apple.com>
Bug: angleproject:6920
Change-Id: I635097100b1e004e9276490ff8574870e1c5f33f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3568379
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
ac130106
|
2022-04-04T13:46:01
|
|
Metal: Remove Unused IOSurface code
Bug: angleproject:7171
Change-Id: I6eaf9c1194a26c96f4566f5bcc386330df66b870
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3569588
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
ba04fcfd
|
2022-03-11T13:58:52
|
|
Support ANGLE_PREFERRED_DEVICE on CGL
Add the possibility to test both integrated and discrete GPU
with ANGLE tests. Previously it was using only discrete.
The binaries need the NSSupportsAutomaticGraphicsSwitching bundle
property.
This is needed to test ANGLE_power_preference.
Changes the behavior of test apps:
Previously,
./angle_end2end_tests
would use discrete GPU.
After,
./angle_end2end_tests
or
ANGLE_PREFERRED_DEVICE=intel ./angle_end2end_tests
will use integrated GPU.
ANGLE_PREFERRED_DEVICE=amd ./angle_end2end_tests
will use discrete GPU.
Bug: angleproject:7093
Change-Id: Ia64f6024e3215e69c2a1bde3ba4f67c3ca595476
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3516114
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
1670c6dd
|
2022-02-17T14:15:08
|
|
Metal: Buffer data is not correctly updated
When using a dynamic draw buffer, Metal creates
more buffers to avoid in-flight synchronization issues.
However, without correctly rebinding the buffers from the VAO,
we get missing data.
This patch adds a fix and a test to reproduce
the issue.
Upstream of https://bugs.webkit.org/show_bug.cgi?id=236427
and https://bugs.webkit.org/show_bug.cgi?id=236733
Bug: angleproject:7122
Change-Id: I879ff688af04a8215df6134400d0aab582b92842
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3472691
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
|
|
e79ed0dc
|
2022-03-25T17:15:30
|
|
Metal: Fix for not submitting command buffers in order
First I added a check that CommandBuffers are committed in order
as the design requires that they are. This showed several tests
asserting including the angle end2end test,
OcclusionQueriesNoSurfaceTestES3.SwitchingContextsWithQuery/ES3_Metal
and also several others. The check is cheap and helps catch bugs so
it seems prudent to have it.
Unfortunately, AFAICT, there is no trival fix. The issue is
ContextMtl::flushCommandBuffer commits the outstanding commandbuffers
but then, if there is/was a query in progress, more work needs
to be done. That work calls ContextMtl::getBlitCommandEncoder which
calls ContextMtl::ensureCommandBufferReady which calls
ProvokingVertexHelper::ensureCommandBufferReady which ends up making
a new command buffer. That command buffer should be committed
before switching to a new context but the code that would commit it
has already executed. It's not at all clear to me how to refactor
the code to do this correctly. The simplest solution is to call
ContextMlt::flushCommandBuffer twice which I know is gross but at
least it fixes the bug and optimizing and/or refactoring can be done
separately.
Bug: angleproject:7131
Change-Id: Idb11efb35f6ad2fd890a5db15d3791c07586bf34
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3553939
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
7a85d114
|
2022-03-25T15:01:17
|
|
Use [[nodiscard]] on RAII classes
Scoped* classes provide an RAII way of adding cleanup/restore state/etc
in a robust way. Unfortunatley, it's very easy to mistakenly leave the
variable name, leading to the destructor being called immediately
instead of at the end of the scope:
{
ScopedX(parameters); // instead of ScopedX x(parameters);
// Code here is run after destructor
}
The [[nodiscard]] attribute, if specified on the ScopedX class would
lead to a warning (turned to error with -Werror). This change does
that for classes named *Scoped* in ANGLE.
Bug: chromium:1103817
Change-Id: I65c9922c9b4eba1f9c033e093fe8fe534648ab62
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3552092
Reviewed-by: Lingfeng Yang <lfy@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
18c36f8a
|
2022-03-19T19:22:08
|
|
Metal: Fix transform feedback with base instance
Added TransformFeedbackTest.BaseInstance test case.
Bug: angleproject:6963
Change-Id: Ie7b2a5dd2be456172505f07ea60ca291075bf07e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3536660
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
e56f185b
|
2022-03-19T10:41:50
|
|
Metal: clarify instance count assertions
Bug: angleproject:6963
Change-Id: I5a686d560efb7912b3426560c8be2806a943158c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3536659
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
7c616871
|
2022-02-01T15:12:53
|
|
Metal: Implement ANGLE_base_vertex_base_instance
Includes command buffer and MSL translator updates.
The DrawElementsInstancedBaseVertexBaseInstance tests from
DrawBaseVertexVariantsTest suite fail for dynamic draw and
stream draw buffer usages.
Bug: angleproject:6963
Change-Id: I6caa144860356d5fc85948b72458bec282ea3a3b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3429819
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
b465a736
|
2021-12-21T12:52:40
|
|
Metal: Remove redundant CommandQueue::mMetalCmdBuffersTmp
Instead of a member variable, instantiate the temporary
at the use site.
Bug: angleproject:6842
Change-Id: I64848bc937ce2945e6ac55adea8a6dffcaf9b00d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3347649
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: John Cunningham <johncunningham@apple.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
1dc9f126
|
2022-03-16T19:29:26
|
|
Revert "Flush the texture staged updates when destroying context share group"
This reverts commit 5c29d795d1625f71ac6999f157b6f3bba79d5256.
Reason for revert: this is causing some test failures on chromium and blocking the angle-chromium auto roller job: https://chromium-review.googlesource.com/c/chromium/src/+/3529771/
Original change's description:
> Flush the texture staged updates when destroying context share group
>
> If we are using the extension EGL_ANGLE_display_texture_share_group,
> flush the texture staged updates upon destroying the context. With the
> extension enabled, the texture could still be alive when both context
> and its' EGL::ShareGroup are destroyed. If we have staged updates not
> yet flushed, the updates will keep the ShareGroupVk bufferpool occupied,
> causing an error upon ShareGroupVk::onDestroy().
>
> Bug: chromium:1299211
> Change-Id: I260de93c3a3099e023e31acbe017803e824459ad
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3495879
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Bug: chromium:1299211
Change-Id: I214161d6a8aec834e1efc5fc9d2479e62e3bfae0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3530505
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5c29d795
|
2022-02-28T23:56:46
|
|
Flush the texture staged updates when destroying context share group
If we are using the extension EGL_ANGLE_display_texture_share_group,
flush the texture staged updates upon destroying the context. With the
extension enabled, the texture could still be alive when both context
and its' EGL::ShareGroup are destroyed. If we have staged updates not
yet flushed, the updates will keep the ShareGroupVk bufferpool occupied,
causing an error upon ShareGroupVk::onDestroy().
Bug: chromium:1299211
Change-Id: I260de93c3a3099e023e31acbe017803e824459ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3495879
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
74f32702
|
2022-03-03T13:13:34
|
|
Metal: Fix for mulitsampled buffers losing their contents
Fixes tst included as well as WebGL CTS
https://www.khronos.org/registry/webgl/sdk/tests/conformance2/renderbuffers/multisample-draws-between-blits.html
Both fail on M1 without this fix.
Also fixes WebKit bug https://bugs.webkit.org/show_bug.cgi?id=237113
Bug: angleproject:7073
Change-Id: Id7baa2575c817561f8a0a99181c986b758376a8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3506089
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
2e7cfa9b
|
2022-02-22T13:10:12
|
|
Metal: Fix WebGL CTS fbomultisample tests failing in Metal
These tests were failing in Metal:
deqp/functional/gles3/fbomultisample.2_samples.html
deqp/functional/gles3/fbomultisample.4_samples.html
deqp/functional/gles3/fbomultisample.8_samples.html
This CL only fixed the tests failing on AMD. Intel still fails.
See: https://anglebug.com/7079
Bug: angleproject:7049
Change-Id: I745672bba2e9b8b1d34c7a81e07410889eddd35f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3482157
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
af45d166
|
2022-02-23T14:05:47
|
|
Metal: PVRTC formats fail conformance tests on simulator
Remove support for PVRTC in simulator, as conformance tests fail
Bug: angleproject:6874
Change-Id: I2c3f9e26523098aaa6a988db5cb3f4bf748a0cdc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3485640
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
|
|
1e1505b5
|
2022-02-24T20:59:57
|
|
Upgrade Python scripts from Python2 to Python3
Bug: angleproject:5707
Change-Id: I2c00ef7e7cb529eab2be61378c9a5511a69acd1a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3486298
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
ed39d49a
|
2022-02-14T11:32:12
|
|
Metal: Fix Hang in WebGL CTS Occlusionquery_strict test
If a query was just in progress and then we switch contexts
a command buffer, which has already been enqueued, is not
committed. Later, other command buffers are enqueued and
committed and Metal hangs, waiting on the uncommitted but
previously enqueued command buffer.
The solution was to not enqueue a command buffer early
but instead, enqueue just before committing.
Bug: angleproject:6752
Change-Id: I62c07ca3d1ed98cc5b27c8c4af405fdedff922b8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3461419
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
3adace15
|
2022-01-10T22:53:19
|
|
Don't expose detailed driver version info to webGL
WebGL's GL_RENDERER string now only includes basic version information
on all backends. This is controlled through a bool passed through
getBackendVersionString.
Bug: angleproject:6777
Change-Id: Ie4e3d91d22c96f175a8139fac1c66e985ed9e1b7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3380263
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Sean Risser <srisser@google.com>
|
|
1e29ba62
|
2022-02-11T15:08:05
|
|
Vulkan: Enable overlay by default with debug layers
Bug: angleproject:6976
Change-Id: I8fdd7546358fc1079525862cba0a4a6ff8357f78
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3457346
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
91f92540
|
2022-01-14T18:34:44
|
|
Metal: Fix multisample resolves.
1) Only use MTLLoadActionDontCare if store action was
MTLStoreActionDontCare, ignoring MTLStoreActionMultisampleResolve.
2) For color, depth and stencil attachments, if they have implicit
multisample textures, use MTLStoreActionStoreAndMultisampleResolve
rather than MTLStoreActionStore.
This addresses bugs when resolving a multisampled framebuffer and
copying it to a texture, and fixes these two Three.js demos:
https://threejs.org/examples/webgl_framebuffer_texture
https://threejs.org/examples/webgl_decals
Added CopyTextureTestES3.DrawThenCopyThenBlend modeled after new WebGL
2.0 conformance test in:
https://github.com/KhronosGroup/WebGL/pull/3379
Confirmed to catch the bug. On Intel Macs, the Metal debug layers and
load/store action validation must be enabled:
MTL_DEBUG_LAYER=1 \
MTL_DEBUG_LAYER_VALIDATE_LOAD_ACTIONS=1 \
MTL_DEBUG_LAYER_VALIDATE_STORE_ACTIONS=1 \
MTL_DEBUG_LAYER_VALIDATE_UNRETAINED_RESOURCES=4 \
angle_end2end_tests ...
Bug: angleproject:6972
Change-Id: I7bcb7c19e434e22e24b800fdce4c480d10b1fc40
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3450033
Reviewed-by: Gregg Tavares <gman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
6d30de10
|
2022-02-05T02:25:36
|
|
Metal: Fix ANGLEUniformBlock alignment
To pass Metal validation, the length of ANGLEUniformBlock
structure must be aligned to 16 bytes.
Bug: angleproject:5505
Change-Id: I1e2becaac48739966afb44e087fc4a70f7b21d02
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3440067
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
812d5fff
|
2022-01-31T17:32:47
|
|
Metal: End the current render pass at glInvalidateFramebuffer.
Prior to this, glInvalidateFramebuffer calls were discarding the
effects of draw calls made afterward, in the same render pass.
Add StateChangeTestWebGL2.InvalidateThenDrawFBO reproducing the basic
problem reported, and document the variations attempted. Minimal code
was changed to fix this issue because other changes hypothesized as
necessary weren't testable.
Drive-by cleanup of FragDepthTest, after which StateChangeTestWebGL2
was patterned.
Bug: angleproject:6923
Change-Id: If79805dbf62fae76b7b9147940b5d9d301142baa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3426828
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Gregg Tavares <gman@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
49488710
|
2022-02-02T14:57:04
|
|
Metal: Remove emulatedInstanceID
The uniform variable is no longer referenced.
Bug: angleproject:5505
Change-Id: I8de518592e045707d024eaa1c07999caf4b5da66
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3431079
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
c4a9d416
|
2022-01-05T15:28:11
|
|
Metal: Refactor to build without SPIR-V
Refactor ShaderInterfaceInfoMap and constant names to thier
own files, allowing Webkit to build without needing to compile
SPIRV code via mtl_glslang_utils.cpp.
Bug: angleproject:6782
Change-Id: I7a9c7e387145c95807f780e24bd2764e0efb5709
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3364970
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
|
|
45237a04
|
2022-01-11T00:14:01
|
|
Metal: Fix undefined behavior of depth write
Writing to an unbound depth attachment is undefined behavior in Metal.
Fix this by emitting a function constant to guard depth buffer use
in fragment shaders.
Bug: angleproject:6865
Change-Id: Id7c10d0aeb349aacfe09c397bc292a71199ab50a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3380304
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
a20cd8b7
|
2022-01-22T01:40:34
|
|
Fix initialization for ETC2 punchthrough alpha formats
* Zero-filled ETC2_A1 data must be treated as opaque black
* Removed init functions when emulation is not needed
* Fixed initialization for emulated ETC2_R8G8B8A1_SRGB_BLOCK
Bug: angleproject:6936
Bug: angleproject:6941
Change-Id: Ie5555bbaa6b1a2bcfd9c22cb9c17d1a96e72aa70
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3406761
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
ca3b28b4
|
2022-01-21T14:59:47
|
|
Metal: Fix compressed texture initialization and add DXT1 test
There was a divergence between WebKit and upstream ANGLE in
InitializeTextureContents' handling of compressed textures.
Align upstream ANGLE with WebKit, fix a problem with emulated
compressed texture formats like ETC2, and add a new test:
DXT1CompressedTextureTestWebGL2.InitializeTextureContents
Bug: chromium:1289428
Change-Id: Ieac6b99a4b19a34d0d87b7577882760ea395c605
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3406746
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
659725aa
|
2022-01-20T15:24:40
|
|
Metal: Cleanup texture caps init
The removed line is redundant as the ASTC texture support
is enabled during the setTextureExtensionSupport call.
Bug: angleproject:6874
Change-Id: Ib9016e4d40acf1f466fa10920384b7419e6fed49
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3404100
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
1bd1a3db
|
2022-01-06T15:08:48
|
|
Metal: Canvas resizing causes webpage to run out of memory
For https://bugs.webkit.org/show_bug.cgi?id=232122
Introduce a maximum resident amount of memory that a single
command buffer can use, before forcing a flush.
As part of ensuring that a command buffer is ready,
check to see if this limit is exceeded. if so,
flush the command buffer, and create a new one.
Bug: angleproject:6880
Change-Id: I5e89735d05adbc174237ab79b006a75bbe89e560
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3369922
Reviewed-by: Gregg Tavares <gman@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
|
|
55d12770
|
2022-01-19T16:00:47
|
|
Metal: Cleanup autogenerated format table
Skip generating code that sets default values.
Bug: angleproject:6874
Change-Id: Id12e39eedbe4665279710125e02b105318d40b82
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3399836
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
00a2a2f3
|
2022-01-06T17:52:23
|
|
Merge metal format table updates from Webkit
Some texture formats are not supported in the Metal SDK
for certain platforms. Refactor the mtl_format_table map to
allow Webkit to continue to build all platforms.
This change removes a large block of changes between Webkit
and OSS ANGLE, due to resolving the generated file differences.
Bug: angleproject:6874
Change-Id: Ib53aea4fb95e230d53ad2ebbd74bf97e847005c9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3371882
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
|
|
f4b0a95f
|
2021-12-16T02:38:26
|
|
Metal: Implement EXT_shader_texture_lod
Added CubeMapTextureTest.SampleCoordinateTransformGrad_ES3
Bug: angleproject:6815
Bug: angleproject:6824
Bug: angleproject:3814
Bug: angleproject:6891
Change-Id: I9007bf8ba91309fb9b597e2d1bd33281ff59644a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3343488
Reviewed-by: Gregg Tavares <gman@chromium.org>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
2f4f5f8a
|
2021-12-14T17:30:42
|
|
Add EGL_ANGLE_platform_angle_device_id for the Metal backend.
This extension takes in a 64-bit device ID in two parts as parameters
to eglGetPlatformDisplay and uses it to initialize a display backed
by a specific device. The deviceID should match the MTLDevice's
registryId.
Bug: angleproject:6143
Change-Id: I02188b8266f8d0ac657b04325d191ab89bbef751
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3337985
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
b0e15ee4
|
2021-12-28T20:37:33
|
|
Decide GL_KHR_parallel_shader_compile in backends
GL_KHR_parallel_shader_compile was previously being enabled
unconditionally in the front end. However, some backends (Vulkan)
perform worse with parallel shader compilation. This CL moves the
decision of enabling GL_KHR_parallel_shader_compile to the backends.
To support single-threaded shader compilation without affecting the
generic worker thread pool, Context::mSingleThreadPool is added to own
the single-threaded WorkerThreadPool and can be returned by the new
function Context::getShaderCompileThreadPool(). Otherwise, if the
extension is enabled, the (renamed) Context::mMultiThreadPool is
returned.
Bug: angleproject:6748
Change-Id: Ic8d3a183f397608f3002a05480deb976dfe44792
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3360337
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
6a255833
|
2022-01-07T16:13:58
|
|
Metal: Fix transform feedback issue
The issue is if you issue 2 draw commands back to back,
Metal partially ignores the 2nd.
Bug: angleproject:6884
Change-Id: I702335ca06828bed1f553f1f5563ddc99f00bc99
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3373736
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
abf17f01
|
2021-12-10T17:10:53
|
|
Metal: Support depth filtering queries for D32, D24S8
Port changes from https://bugs.webkit.org/show_bug.cgi?id=232071
Bug: angleproject:6779
Change-Id: Id2d7a0c215e4db072b8830aedd90b878f3817967
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331666
Reviewed-by: Gregg Tavares <gman@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
|
|
f13f440e
|
2021-12-15T15:11:05
|
|
Reland: Metal: Fix Webkit warnings in ANGLE build
Fix nullable warnings, unused functions
Add in additional function specification to FormatStringIntoVector
to correctly fix warning
Bug: angleproject:6781
Change-Id: I26af2d698f14d353832802aa7b5ce34c5a1f4b95
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3366796
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
|
|
cfc4db34
|
2021-11-04T16:54:15
|
|
Metal: Provoking vertex support for Metal DrawArrays
Add in provoking vertex rewrite support for
drawArrays command, enabling 6 dEQP tests.
GLES3/functional_rasterization_flatshading_line_loop
GLES3/functional_rasterization_flatshading_line_strip
GLES3/functional_rasterization_flatshading_lines
GLES3/functional_rasterization_flatshading_triangle_fan
GLES3/functional_rasterization_flatshading_triangle_strip
GLES3/functional_rasterization_flatshading_triangles
This patch adds a new shader to the Provoking
Vertex helper that generates draw commands for
all simple data types.
Fix bug in provoking vertex helper that caused
reused index buffers to suffer from allocation issues.
Also fix Provoking vertex for triangle fan generation
Bug: angleproject:5325
Change-Id: I7a1211dfcd99329868269ea0666eef1915d487b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3261635
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
|
|
1da7e3af
|
2021-12-21T15:55:38
|
|
Revert "Metal: Fix Webkit warnings in ANGLE build"
This reverts commit 6706799186683dd3733c4610de09d84721aa08c8.
Reason for revert: Includes pragma that disables a warning.
Original change's description:
> Metal: Fix Webkit warnings in ANGLE build
>
> Fix nullable warnings, unused functions
>
> Bug: angleproject:6781
> Change-Id: I063331e60d31a55b3cc9df0b41ace014d7d13659
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3343174
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Bug: angleproject:6781
Change-Id: Id5fce2afd0381030a974871b99e8adf075677bd1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3352086
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
aabfe874
|
2021-12-17T15:43:22
|
|
Metal: Use the context device to Texture::resize
Makes the resized texture to be attributed to the owner.
Bug: angleproject:6832
Change-Id: Ia1eae1bb6c9e83e23fae51121f88d9ce37dc948b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3347642
Reviewed-by: John Cunningham <johncunningham@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
624e3c3d
|
2021-12-17T15:30:54
|
|
Fix dangerous use of AutoObjCPtr after ownership identity change
Metal new* methods create objects with +1 retain count.
AutoObjCPtr is intended to adopt this reference.
Otherwise, like before this patch, the AutoObjCPtr holds
object with +2 count. Before this patch, some but not all
call sites donated the extra retain count to autoreleasepool
"out of band", and as such the code did not leak that much.
Bug: angleproject:6831
Change-Id: I72bcbc712f2cadbcbc6148c6aedfa7e151314518
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3347641
Reviewed-by: John Cunningham <johncunningham@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ede0b8b7
|
2021-12-17T14:35:47
|
|
Avoid ANGLE_MTL_AUTORELEASE inside ASSERT, it leaks on Release
Avoid ANGLE_MTL_AUTORELEASE inside ASSERT, it leaks on Release.
The create functions already return retained, instead of autoreleasepool
retained, so owning the reference via adopting AutoObjCObj is
as efficient as autoreleasepool on possible future ARC.
Thus use AutoObjCObj, that is safer than autoreleasepool with C++
and works towards being able to perhaps remove use of autoreleasepool.
Bug: angleproject:6830
Change-Id: I80f523d9a6846097a593fe94b5ea9715fa88ea15
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3347640
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: John Cunningham <johncunningham@apple.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
001221f0
|
2021-12-16T21:41:29
|
|
Metal: upstream fix from WebKit for texture leak.
Upstream fix by Kimmo Kinnunen for a leak of MTLTexture instances for
render targets from:
REGRESSION (r287068): [macOS arm64]
TestWebKitAPI.GraphicsContextGLCocoaTest.
UnrecycledDisplayBuffersNoLeaks is failing
https://bugs.webkit.org/show_bug.cgi?id=234356
The leak would happen through a temporary render pass descriptor that
would ref the render target texture. The descriptor was created
without an autoreleasepool in call stack.
Also fixes the error string leaks.
Bug: angleproject:6827
Bug: angleproject:6829
Change-Id: I07ec961886a9fb8caad6df334293358a175eaf15
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3346682
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
b26bb13a
|
2021-12-15T15:46:00
|
|
Metal: Remove references to xfbActiveUnpaused uniform
Metal chooses a shader with or without support for transformfeedback
so there's no point in checking in the shader if it's enabled or
not.
Bug: angleproject:6823
Change-Id: Iacd26b1e55b311a7cc7987dcd8b2f8c0c8727d62
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3343179
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
c4d434b9
|
2021-12-15T22:57:13
|
|
Metal: Enable OES_fbo_render_mipmap
Bug: angleproject:6813
Change-Id: I643c114d7b37ca0532d2dda1964090a15e470842
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3342568
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
67067991
|
2021-12-15T15:11:05
|
|
Metal: Fix Webkit warnings in ANGLE build
Fix nullable warnings, unused functions
Bug: angleproject:6781
Change-Id: I063331e60d31a55b3cc9df0b41ace014d7d13659
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3343174
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
bda49325
|
2021-12-10T16:11:15
|
|
Add guards for 64 bit types on 32bit systems
Bug: angleproject:6785
Change-Id: Iff043a22d398f5a7a1a46ae3cc4d2de5a6e3797e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331639
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@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>
|
|
3e7e2758
|
2021-12-14T15:48:42
|
|
Metal: Fix macOS ANGLE build on Catalina (10.15) SDK
macOS Catalina does not have an enum for AppleGPUFamily6
In addition, platform includes for macOS 11.0
should use 110000, not 101600 (10.16)
Bug: angleproject:6814
Change-Id: I9c6a0587aa22fb2e58d02fcb1779060de2632963
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3340104
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
76d42082
|
2021-12-14T09:30:24
|
|
Metal: ETC and ASTC are missing on M1
Platform guards are incorrect in mtl_utils.mm. We need to
account for macOS post 10.15, which now supports the apple
GPU family query.
Bug: angleproject:6809
Change-Id: Iae219a11ffe0ef0715681009aa24cbbc6fd2c61e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3338624
Reviewed-by: Gregg Tavares <gman@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
42bd4fc2
|
2021-12-10T14:58:17
|
|
Metal: add ANGLE_metal_create_context_ownership_identity.
This Metal-specific EGL extension allows a given context
and the GPU resources it allocates to be associated with
a particular task ID on the system, for system-level
bookkeeping purposes.
Bug: angleproject:6795
Change-Id: I19ee0993564169b01c4a450e63dcfacd339b98b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3335172
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
afca80a8
|
2021-12-09T17:48:49
|
|
Metal:Add debug info for shaders
This should fix the WEBGL_debug_shader_info CTS test
Bug: angleproject:6788
Change-Id: I89e18f94ea3199149c252355372648b5e328e1ed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3329204
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
194687e7
|
2021-12-06T13:40:24
|
|
Metal: Fix M1 and iOS synchronization for readPixels
ReadPixels does not implicitly flush context before reading
on iOS and macOS hardware due to shared memory. look for any pending
GPU Work, and flush the command buffer if needed.
Bug: angleproject:6803
Change-Id: I5688b031ecffcd7427263041d4e33ae256f68af6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3318592
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
|
|
2d6caae4
|
2021-12-10T17:25:58
|
|
Metal: Add maximum render target size validation
Bug: angleproject:6790
Change-Id: I4a7e7285e040cc68e4fc16bb653f6d1512f541c9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331671
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
d97b1c4a
|
2021-12-10T16:27:08
|
|
Metal: Refactor restartRange cache
Bug: angleproject:6784
Change-Id: I8a2e1df2ac621415d75708c0bba16f8ca17b0ce6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331675
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
1642b4a3
|
2021-12-10T16:01:10
|
|
Metal: Fix Instanced Draw feature support on Simulator
Bug: angleproject:6786
Change-Id: I4c567bf2ec61df581ae0e8eeb1c36c7d37e15d04
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331637
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
2e669566
|
2021-12-09T18:21:02
|
|
Metal: Refactors from Webkit
Mostly renaming, typos, cleanup
bug: angleproject:6787
Change-Id: Ic71c296d7849244cae2ca29b264a10cb96bca612
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3329261
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
5068c040
|
2021-12-09T17:55:01
|
|
Metal: Merge changes to mtlPixelFormatTable
Bug: angleproject:6789
Change-Id: I9893093fdff1138fc8ae35ac4363201fa1e0b825
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3329206
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
04110e4e
|
2021-12-01T14:06:03
|
|
Metal: Fix Intel backend fails with tall texture
Copied test from the WebGL conformance suite.
A 1x<MAX_TEXTURE_SIZE> texture fails on Intel in the Metal
backend.
This was fixed in WebKit so just applying that fix.
Bug: angleproject:6754
Change-Id: Id1cafb3b560f14630684d55b0e61cea4c7f33a6d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3311941
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
ef65edf2
|
2021-11-22T14:23:35
|
|
Add extension: ANGLE_rgbx_internal_format
Add the extension ANGLE_rgbx_internal_format, which exposes the ANGLE
internal format GL_RGBX8_ANGLE. The format GL_RGBX8_ANGLE enables
emulating RGB8 formats with RGBA8 within ANGLE.
This also renames the format GL_RGBX8_ANGLEX to GL_RGBX8_ANGLE, since
it's being exposed.
Bug: angleproject:6690
Test: Texture2DTestES3.TextureRGBXImplicitAlpha1
Change-Id: I5548a3578a14e2f2a4006bbf59983b01f694b7f3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3296625
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a0924015
|
2021-11-22T19:44:05
|
|
Metal:Fix GLSLTest_ES3.GLVertexIDIntegerTextureDrawElements Metal
The test was failing if the "first" argument to glDrawElements
was odd. When odd the offset was not a multiple of 2 bytes
and the code was going down a different path than when the
offset was event.
The fix for that just removes a check for alignment to 4 bytes.
Checking with UNSIGNED_BYTE indices though and it still
failed. That was because it was encoding the index conversion
path on one command buffer and the provoking index prep
on another and so they were happening out of order.
Putting both on the same command buffer fixes that.
Bug: angleproject:6688
Change-Id: I89b68ba965d073e0fa70b6d5b444dc743b5e34a7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3296631
Commit-Queue: Gregg Tavares <gman@chromium.org>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
17bf6e98
|
2021-11-11T20:53:31
|
|
Implement GL_EXT_multi_draw_indirect
* Added the validation functions for multiDrawArraysIndirect()
and multiDrawElementsIndirect() according to the specs.
* Added generic implementation for the two functions that can
be called by back-ends.
* Added unit tests for the multiDrawIndirect functions.
* Added flags for back-ends so they can enable the extension.
* Minor cleanup in MultiDrawTest.cpp
Bug: angleproject:6439
Change-Id: I4e5f1cab05c6de330aef82d115492dcc9d2fad44
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276043
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6fe13477
|
2021-11-11T00:47:14
|
|
Vulkan: Add external's pNext to ANGLE_external_objects_flags
ANGLE was chaining VkImageFormatListCreateInfoKHR to
VkImageCreateInfo::pNext to support sRGB extensions. For external
images, it was unknown whether that was valid because there was no way
to know if external used an identical chain of pNexts. This was causing
a discrepancy between images created by Chrome and those created by
ANGLE as part of an import.
This change updates ANGLE_external_objects_flags to take in the pNext
chain external has used to create the image so ANGLE could create the
image identically.
Bug: chromium:1266094
Change-Id: I479b9e7ff39d437425dc91c79834880749766f99
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3274177
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Peng Huang <penghuang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ec5d3795
|
2021-11-09T13:23:43
|
|
Metal: Fix InvalidateCopyThenBlend
Render pass descriptor was not being changed
due to blend state not being checked when
looking for equality.
Bug: angleproject:6669
Change-Id: Ic85dbec29ddb53a8c7e2e708f1ac0c99512e7248
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270596
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Gregg Tavares <gman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f422f21a
|
2021-11-09T18:42:15
|
|
Reland "Metal: Reintroduce GPU power preference selection code."
This reverts commit 67a8cf07a740c5ce3aafd2ad7fddd370451b3525.
Reason for revert: Landed Chromium-side dependency:
https://chromium-review.googlesource.com/c/chromium/src/+/3271170
Original change's description:
> Revert "Metal: Reintroduce GPU power preference selection code."
>
> This reverts commit 017161701b7dbf70a13f3c180a39e1fa45c27d9f.
>
> Reason for revert: Blocking roller, please re-land with the fix.
>
> Original change's description:
> > Metal: Reintroduce GPU power preference selection code.
> >
> > This CL re-introduces the GPU power preference code to
> > the metal backend. It also reworks EGLDisplay caching
> > in the frontend to cache based on the native display
> > as well as the power preference attribute.
> > A new extension, EGL_ANGLE_display_power_preference is
> > added based on EGL_ANGLE_power_preference. This extension
> > is a client extension that allows selection of GPU on
> > display creation, similar to how GPUs are selected on
> > context creation in EGL_ANGLE_power_preference.
> > This CL adds EGLDisplayPowerPreferenceTest and enables it on
> > the metal backend.
> >
> > Bug: angleproject:6143
> > Change-Id: I0a081dcd2e3f18ab365fdd3498ddcb6e2ba35212
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3231986
> > Reviewed-by: Kenneth Russell <kbr@chromium.org>
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
> > Reviewed-by: Gregg Tavares <gman@chromium.org>
> > Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
>
> TBR=kbr@chromium.org,gman@chromium.org,jonahr@google.com,jmadill@chromium.org,angle-scoped@luci-project-accounts.iam.gserviceaccount.com
>
> Change-Id: I4f775bf7139253a87b033a30e0da2100b3c1bb02
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: angleproject:6143
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270749
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
# Not skipping CQ checks because this is a reland.
Bug: angleproject:6143
Change-Id: Id9b0a5cbb76e4dea9e2f2da2b1c47a0587dfdaf5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270970
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
67a8cf07
|
2021-11-09T15:10:50
|
|
Revert "Metal: Reintroduce GPU power preference selection code."
This reverts commit 017161701b7dbf70a13f3c180a39e1fa45c27d9f.
Reason for revert: Blocking roller, please re-land with the fix.
Original change's description:
> Metal: Reintroduce GPU power preference selection code.
>
> This CL re-introduces the GPU power preference code to
> the metal backend. It also reworks EGLDisplay caching
> in the frontend to cache based on the native display
> as well as the power preference attribute.
> A new extension, EGL_ANGLE_display_power_preference is
> added based on EGL_ANGLE_power_preference. This extension
> is a client extension that allows selection of GPU on
> display creation, similar to how GPUs are selected on
> context creation in EGL_ANGLE_power_preference.
> This CL adds EGLDisplayPowerPreferenceTest and enables it on
> the metal backend.
>
> Bug: angleproject:6143
> Change-Id: I0a081dcd2e3f18ab365fdd3498ddcb6e2ba35212
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3231986
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Gregg Tavares <gman@chromium.org>
> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
TBR=kbr@chromium.org,gman@chromium.org,jonahr@google.com,jmadill@chromium.org,angle-scoped@luci-project-accounts.iam.gserviceaccount.com
Change-Id: I4f775bf7139253a87b033a30e0da2100b3c1bb02
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:6143
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270749
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
01716170
|
2021-10-14T13:24:41
|
|
Metal: Reintroduce GPU power preference selection code.
This CL re-introduces the GPU power preference code to
the metal backend. It also reworks EGLDisplay caching
in the frontend to cache based on the native display
as well as the power preference attribute.
A new extension, EGL_ANGLE_display_power_preference is
added based on EGL_ANGLE_power_preference. This extension
is a client extension that allows selection of GPU on
display creation, similar to how GPUs are selected on
context creation in EGL_ANGLE_power_preference.
This CL adds EGLDisplayPowerPreferenceTest and enables it on
the metal backend.
Bug: angleproject:6143
Change-Id: I0a081dcd2e3f18ab365fdd3498ddcb6e2ba35212
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3231986
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Gregg Tavares <gman@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
77eb8a49
|
2021-10-29T10:36:06
|
|
Metal: Reduce memory usage of attribute re-writing
Rework vertex buffer caching to allow us to reuse parts
of converted buffers.
Reusing conversions dramatically drops the memory usage
when drawing index ranges by offset with
unaligned attributes.
Bug: angleproject:6638
Change-Id: I79797da202629b1632e1397ce1227ee3d7a1c9d7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251467
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Le Hoang Quyen <le.hoang.q@gmail.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
604610b4
|
2021-11-01T12:03:31
|
|
Metal: Use Depth32F for DEPTH_COMPONENT16
depth16unorm is broken on Metal. This is a workaround.
Bug: angleproject:6597
Change-Id: I1748f9fab587b22980d13e8a141fa880eb6f9db0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3255666
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
ab426735
|
2021-10-29T13:54:09
|
|
Template gl::Rectangle so it can be used for float
Bug: angleproject:6598
Change-Id: I8cf5894f0e34c56a6ad856c978be93ea9d5ae113
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3253131
Commit-Queue: Gregg Tavares <gman@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
50fc2909
|
2021-10-27T21:37:02
|
|
Merge Webkit up to Oct 27 2021
Merge the following commits from Webkit. This
change merges webkit from the following git commits
Previous:
commit 703b234524e75109ca3e94febbf63098314022f5
Author: Alex Christensen <achristensen@webkit.org>
Date: Tue Sep 28 16:22:30 2021 +0000
Mostly fix Mac CMake build
https://bugs.webkit.org/show_bug.cgi?id=230868
Current:
commit 43d2e637f84b1e6b75c139ac64c26ca108b4f12f
Author: Kimmo Kinnunen <kkinnunen@apple.com>
Date: Wed Oct 27 17:43:38 2021 +0000
REGRESSION (Safari 15): Poor WebGL performance on
https://downloads.scirra.com/labs/particles
Commits:
commit 8238f462c96e515dabd3db0e26c143b18f47340c
Author: Kyle Piddington <kpiddington@apple.com>
Date: Wed Oct 6 21:45:18 2021 +0000
Shadertoy "truchet district" fails to compile with error:
Internal error compiling shader with Metal backend"
commit 2fcb9af290e4b6c804f11ad4359555507c1492f9
Author: Kyle Piddington <kpiddington@apple.com>
Date: Thu Oct 14 21:14:26 2021 +0000
https://tankionline.com/play/ html5 engine not
working: crashes. (Metal shader not working)
https://bugs.webkit.org/show_bug.cgi?id=231490
commit e11955a258380a875115ded16ab8963142c4023b
Author: Kyle Piddington <kpiddington@apple.com>
Date: Fri Oct 15 23:57:12 2021 +0000
REGRESSION (r283667):
webgl/2.0.0/deqp/functional/gles3/lifetime.html fails
https://bugs.webkit.org/show_bug.cgi?id=231682
commit 43d2e637f84b1e6b75c139ac64c26ca108b4f12f
Author: Kimmo Kinnunen <kkinnunen@apple.com>
Date: Wed Oct 27 17:43:38 2021 +0000
REGRESSION (Safari 15): Poor WebGL performance on
https://downloads.scirra.com/labs/particles
https://bugs.webkit.org/show_bug.cgi?id=230749
Bug: angleproject:6630
Change-Id: Icca411dc429538f839f05834f1851fbc54ef8a1d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3248573
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Gregg Tavares <gman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
20ddb802
|
2021-10-28T11:01:12
|
|
Fix Blitting in Metal backend.
The Metal backend was clipping in integer space.
If the src and dst are not the same size,
say src is 3 wide and dst is 4 wide, and src
starts at -1, then src will be clipped by one
making the src 2 wide. It got 1/3 smaller so the
dst get 1/3 smaller making it 2.666 pixels wide.
The dst then needs to be expanded to pixels so 3 wide.
But, that means the src also needs to be expanded
0.3333 * 3(originalSrcWidth) / 4(originalDstWidth)
so its new left edge is -0.245 which is not an integer.
Bug: angleproject:6598
Change-Id: I2faa966b18b457f474a3e7f6844ef64bfa66dbe8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251683
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|