|
714f680f
|
2022-06-08T16:19:20
|
|
Implement GL_EXT_base_instance
* Added the validation functions for
DrawElementsInstancedBaseVertexBaseInstance(),
DrawElementsInstancedBaseInstance(), and
DrawArraysInstancedBaseInstance() according to the specs.
* Added generic implementation for
glDrawElementsInstancedBaseInstance() that can
be called by back-ends.
* Added flags for back-ends so they can enable the extension.
* Added tests for DrawElementsInstancedBaseVertexBaseInstance(),
glDrawElementsInstancedBaseInstance(), and
DrawArraysInstancedBaseInstance().
* Disabled ES3_D3D11__DynamicDraw tests due to
angleproject:7441 bug.
Bug: angleproject:6983
Bug: angleproject:7441
Change-Id: Ia664b01c87bc64c05e29adec23a8f80792eaa037
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3697206
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Faye Zhang <ffz@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
878bbfaa
|
2022-06-17T11:48:14
|
|
Vulkan: Account for 2DArray textures during robust resource init
Correctly handle layer count and depth when the texture type is
2Darray. Vulkan requires depth of 1 for 2Darray textures.
This also reverts commit c59a22e587e63cbe9942a7f0b78681ee25084cc4.
Bug: angleproject:3189
Bug: angleproject:4691
Bug: angleproject:7389
Bug: angleproject:7438
Test: DXT1CompressedTextureTestES3.CompressedTexSubImage3DValidationPerSlice*Vulkan
Change-Id: Ifb3b9cabd4786dcced750e3c2db90e350d455098
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3712220
Reviewed-by: Lingfeng Yang <lfy@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
7f57d12b
|
2022-06-17T22:29:36
|
|
Vulkan: Disable cache warmup on ChromeOS SwANGLE
A number of browser tests fail due to the cache warm up changing the
timing of the tests. The bug is in the tests, but this change unblocks
ANGLE roll into Chromium.
Bug: angleproject:7440
Change-Id: Ie2d7618bfc367bd34f9b99982c9323c99188c626
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3708995
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0a7cfa08
|
2022-06-16T16:24:54
|
|
Vulkan: Fix marking external images as renderable
Bug: chromium:1266094
Change-Id: Ie8d7b82f859697530f6581c7109d773d6fa35d37
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3710690
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
6ca9c55e
|
2022-06-13T10:32:39
|
|
Capture/Replay: Allow capturing of external textures
With the support for EGL textures enabled we can actually capture
the texture content.
Bug: angleproject:5822
Change-Id: I386827456d146a54d9790fdd9eadb39b2a6b87e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3702350
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
ea3bd30a
|
2022-06-13T11:44:45
|
|
Capture/Replay: Don't capture tex levels that are out-of-range
Bug: angleproject:6334
Change-Id: I01cb1920154b5fba9554180d2edf5be9dea2b7a2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3702351
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
72e457fe
|
2022-06-03T15:36:01
|
|
Vulkan: Promptly destroy cached framebuffer when it becomes invalid
When Texture gets respecified, the VkFramebuffer cache created out of it
becomes invalid and will never possibly get used. Before this CL, we
never clear such invalid framebuffer objects from the cache. This CL
keeps a reference to the cache key in each attachment and will
immediately destroy the cached VkFramebuffer object when one of the
attachment has become invalid.
Bug: b/234769934
Change-Id: Ib01f6dffe9211084b1ada340081daf905e3f1bef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3682164
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
97a6e581
|
2022-05-30T16:50:26
|
|
Vulkan: Useful implementation of program binaries
ANGLE already serializes the pipeline state for the sake of
OES_get_program_binary. This serialization had limited usefulness
however, since the Vulkan driver hasn't actually created any pipelines
yet (which is a costly part of program creation).
Simultaneously, ANGLE deferred Vulkan pipeline creation to draw time,
which causes hitching.
In this change, a handful of Vulkan pipelines are precreated at
link time; those at least that are sure to create different blobs in the
pipeline cache (different spec consts or SPIR-V generation). These
pipelines are created in the program executable's cache. The cache is
then merged into the shared renderer cache (for potential blob reuse by
other programs).
With this, two goals are achieved:
- Most pipelines created at draw time hit the pipeline cache, avoiding
costly compilation.
- When the program binary is retrieved, the contents of the program
executable's pipeline cache is also returned. On reload, the cache is
recovered, resulting in faster startup.
Bug: angleproject:5881
Change-Id: I46c5451a7d0b16dffd40e44015e094640886880b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3671977
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0bc70e96
|
2022-06-10T22:27:04
|
|
Vulkan: Rename getShareGroupVk to getShareGroup
+ other miscellaneous clean up
Bug: angleproject:7375
Change-Id: I25690860478a2fd181a67ce2b6cb4d7aac7dbaa7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3700197
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8a8b9665
|
2022-06-08T14:54:37
|
|
Vulkan: Prune superseded staged updates in a texture
Add support for pruning superseded staged updates from a client buffer
to the texture. If the staged update count or the cumulative staged
updates' size exceeds a threshold we check for superseded updates and
prune the list.
Bug: angleproject:4691
Bug: angleproject:7389
Test: Texture2DTest.InterleavedSupersedingTextureUpdates*
Texture2DTest.ManySupersedingTextureUpdates*
Change-Id: I4b84f13fa20004a3dc68baa552a0af656d92c0a1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3691092
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
1131f117
|
2022-06-14T11:49:15
|
|
Support BGRX8 for framebuffer blits
For WebGL content, Chrome usually needs to perform MSAA resolve on
the WebGL buffer before compositing via a blit. On ChromeOS, this
read buffer is usually in BGRX as it is the native format for the
display hardware which eventually gets coerced to GL_BGRX8_ANGLEX in
ANGLE.
Unfortunately, ANGLE claims limited support for this format, so the
blit subsequently fails, resulting in a black screen on some WebGL 1
apps. This CL fixes a validation error and marks BGRX8 as filterable
so that ANGLE's blit framebuffer implementation can actually operate
on GL_GBRX8_ANGLEX targets.
Bug: b/233238923
Change-Id: I378c177c9770d98a8fdb8284335ada66f7907a69
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3703621
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Brian Ho <hob@chromium.org>
|
|
3faaded8
|
2022-06-15T11:28:58
|
|
Missing include for std::isdigit
Bug: angleproject:7430
Change-Id: I2b374c826c4b29a4e290378a3cd18d2df49268b6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3708312
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9d08c29a
|
2022-05-25T11:39:29
|
|
Expose the EGL Display Context Set in the DisplayState.
This will let the Vulkan back-end iterate through and flush pending
command buffers in other Contexts.
Bug: angleproject:5664
Change-Id: I0d22eb68fa754a97b4836ec8c59ff8c6e5ef2d96
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3668145
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3c81c9d1
|
2022-06-14T19:24:27
|
|
Enable perFrameWindowSizeQuery on Android
It was decided that Android won't return VK_SUBOPTIMAL_KHR when the
window size changes. Android's Vulkan loader no longer needs IPC to
implement vkGetPhysicalDeviceSurfaceCapabilitiesKHR(). Therefore, we
will call vkGetPhysicalDeviceSurfaceCapabilitiesKHR() per
eglSwapBuffers() on Android.
Bug: b/236026298
Change-Id: I3f66148ef5ed456e4408d64cc38fc6e0fe8b17cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3706160
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
Auto-Submit: Ian Elliott <ianelliott@google.com>
|
|
b257d62c
|
2022-06-15T03:15:56
|
|
Add GL_NV_read_depth_stencil
Bug: angleproject:4688
Change-Id: I44d5846f1ae5382b8c046e59643da4c0bf38e135
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3702356
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Constantine Shablya <constantine.shablya@collabora.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
39df42d3
|
2022-06-13T19:25:42
|
|
Vulkan: set storage external memory before the description
This is a partial revert of 86d9d66dce02f5ae27ca71a94fcdc485bcd7a3ad.
"Vulkan: Determined sized-ness of format in initImageViews."
When the image descriptions are set, then we already need the
storage information, otherwise the Vulkan validation layer may
complain, and the replay part of some Capture/Replay tests
will fail.
Bug: angleproject:7428
Change-Id: I40c70918a439939d3dcbb4aad703fd05eb8104c7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3702357
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
fd1317a7
|
2022-03-22T18:57:30
|
|
Capture/Replay: capture GetProgramBinaryOES parameters
Bug: angleproject:6631
Change-Id: I0582c585bb2f3d14b10f99fe1b88805b9e629b78
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3543805
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3dfc8004
|
2022-06-08T14:24:48
|
|
Vulkan: Optimize sync followed by swap
Previously, inserting a sync object immediately caused a submission.
That was done in
https://chromium-review.googlesource.com/c/angle/angle/+/3200274 to be
able to wait until the sync object is signaled without having to wait
for whatever is recorded after it until a flush naturally happens.
Some applications issue a glFenceSync right before eglSwapBuffers. The
submission incurred by glFenceSync disallowed the optimizations that
eglSwapBuffers would have done, leading to performance degradations.
This could have been avoided if glFenceSync was issued right after
eglSwapBuffers, but that's not the case with a number of applications.
In this change, when a fence is inserted:
- For EGL sync objects, a submission is issued regardless
- For GL sync objects, a submission is issued if there is no render pass
open
- For GL sync objects, the submission is deferred if there is an open
render pass. This is done by marking the render pass closed, and
flagging the context as having a deferred flash.
If the context that issued the fence sync issues another draw call, the
render pass is naturally closed and the submission is performed.
If the context that issued the fence sync causes a submission, it would
have a chance to modify the render pass before doing so. For example,
it could apply swapchain optimizations before swapping, or add a resolve
attachment for blit.
If the context that issued the fence sync doesn't cause a submission
before another context tries to access it (get status, wait, etc), the
other context will flush its render pass and cause a submission on its
behalf. This is possible because the deferral of submission is done
only for GL sync objects, and those are only accessible by other
contexts in the same share group.
Bug: angleproject:7379
Change-Id: I3dd1c1bfd575206d730dd9ee2e33ba2254318521
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3695520
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4c6d47c8
|
2022-06-08T15:20:49
|
|
Vulkan: Optimize glEGLImageTargetTexture2DOES with same args
If we are creating a texture with the same source eglImage, right now we
will release the existing mImage (will not actually destroyed) and then
free VkImageViews. Then it point back to the same mImage and allocate
new VkImageViews. Since these ImageViews have different serial number,
we end up with DescriptorSet cache miss. This CL avoid all these hassles
if we are creating with the exact same image.
Bug: b/234602034
Change-Id: I04cec05716974e274d6e3678e91ff248f50e9355
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3697204
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Auto-Submit: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
ce78f5f8
|
2022-05-10T09:10:30
|
|
Capture/Replay: Reset default uniforms
Extend resource tracking to include default uniforms.
They are tracked per location, per program.
Setup for defaulft uniforms is unchanged, but Reset now
includes a section like this:
glUseProgram(gShaderProgramMap[6]);
UpdateCurrentProgram(6);
glUniform1uiv(gUniformLocations[gCurrentProgram][0], 1,
reinterpret_cast<const GLuint *>(&gBinaryData[30518768]));
glUniform1uiv(gUniformLocations[gCurrentProgram][1], 1,
reinterpret_cast<const GLuint *>(&gBinaryData[30518784]));
glUseProgram(gShaderProgramMap[9]);
UpdateCurrentProgram(9);
glUniform4fv(gUniformLocations[gCurrentProgram][1], 15,
reinterpret_cast<const GLfloat *>(&gBinaryData[30518960]));
glUniform4fv(gUniformLocations[gCurrentProgram][16], 3,
reinterpret_cast<const GLfloat *>(&gBinaryData[30519200]));
glUniformMatrix4fv(gUniformLocations[gCurrentProgram][20], 2, GL_FALSE,
reinterpret_cast<const GLfloat *>(&gBinaryData[30519248]));
...
Test: Animal Crossing MEC, Star Wars KOTOR MEC
Bug: angleproject:7307
Bug: angleproject:7353
Change-Id: Ic344767f5dd4ffc38c15ed6bf81a7d1daf274a7b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3657474
Reviewed-by: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a894cb94
|
2022-05-10T21:15:59
|
|
Bootstrap pixel local storage
This CL creates a very simple prototype that implements pixel local
storage in a thin layer on top of ES 3.1 shader images, and adds a
single test.
Assuming all goes well on the various devices and backends, the next
steps will be:
* Write many more tests.
* Compiler support, switch to API-specific shader images.
* Move the thin layer into ANGLE.
* Thorough validation and error handling.
* Add an implementation that uses render target attachments
(e.g., EXT_shader_framebuffer_fetch).
* Incremental, backend-specific optimizations as needed.
Bug: angleproject:7279
Change-Id: I7f9f0a1fe2d61f570b4105a7380687038ae45f5d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645786
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
715175de
|
2022-06-03T22:11:30
|
|
Vulkan: Don't enable Qualcomm workarounds on OSS driver
Bug: b/217265716
Change-Id: I09cf38a36f8297912f0c26867155cf4f9e145919
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3689810
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Chia-I Wu <olv@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@google.com>
|
|
da9390d6
|
2022-06-08T22:38:18
|
|
Vulkan: Fix the VulkanRenderPassBufferCount overlay widget
This widget was declared as a histogram, but used as a graph. The
graph's add() interface is made hidden in histograms to avoid such
mistakes in the future.
Bug: angleproject:4950
Change-Id: I95a1b6badbe27b870273589271b13c454c8a4e56
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3697438
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0408b129
|
2022-06-08T22:20:32
|
|
Overlay: Support globbing
Makes it less tedious to specify multiple widgets. In particular, it
also makes it possible to select many widgets on Android through
`adb shell setprop debug.angle.overlay` which has a hard limit of 92
characters for the property.
Bug: angleproject:5881
Change-Id: I93bd166cd3dbf8f87e5c6a5fce3f86ebb3e379a3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3697437
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
2587e508
|
2022-05-26T17:44:47
|
|
Vulkan: Remove redundant vertex array dirty bit processing
When BINDING0+n and ATTRIB0+n dirty bits are both set, we are going
down syncState twice. What BINDING0+n covers all the work needed for
attribute and DATA0+n, so we should remove the ATTRIB0+n and DATA0+n.
Similarly if we see DATA0+n, we should skip ATTRIBU0+n as well.
Bug: b/235277703
Change-Id: I5e03c18bac3df30a14f3b6652caff2aff33f2fe6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3669608
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
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>
|
|
5fbb0417
|
2022-05-26T15:05:52
|
|
Vulkan: Handling VK_EXT_load_store_op_none on ARM
There is a bug on at least one ARM device when either
depth or stencil load op is none. Add a temporary work
around to avoid this case for ARM driver until
angleproject:7370 is addressed. Also add a test to
reproduce the deqp test failures with simiplied draw calls.
Bug: angleproject:7370
Bug: angleproject:7351
Change-Id: I74ac49a75f85b1e006ed3b1d77f234f63d314ae0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3671696
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d47c8e0a
|
2022-04-04T15:08:45
|
|
Vulkan: Enable custom border colors on SwiftShader
This extension can now be enabled on SwiftShader after bug fixes that
landed in
https://swiftshader-review.googlesource.com/c/SwiftShader/+/64688 and
https://swiftshader-review.googlesource.com/c/SwiftShader/+/66148
Bug: angleproject:6200
Bug: b/227518327
Change-Id: I65fb342a96c47b1ea5ba2ee773c8ae5539052b94
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3569585
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4b9eb4ba
|
2022-06-03T09:22:41
|
|
Optionally support vulkan_memory_allocator 3.x
Incompatible API is guarded behind a new define, ANGLE_VMA_VERSION.
This allows a soft migration for Chromium and Fuchsia, while allowing
clients like Flutter to roll to a new version that is compatible with
its revision of Skia.
Bug: chromium:1332566
Change-Id: I68cafde13e50445aa8eea2f18203143659a1c627
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3688835
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Dan Field <dnfield@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
48b928d9
|
2022-06-07T16:21:04
|
|
Vulkan: Overlay widgets for pipeline cache/hit stats
Bug: angleproject:5881
Change-Id: I1893e6b76a5a73ea51b67bc4ee8a5d5dfc54166e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3689604
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1834902f
|
2022-06-08T14:22:34
|
|
Revert "GL: Temporarily enable validation for all GL calls."
This reverts commit b6a93d753bdd819ddc0dacb8cea554c86bc4c04e.
Reason for revert: Turning this off for the M104 branch.
Original change's description:
> GL: Temporarily enable validation for all GL calls.
>
> Turn on error checks after each GL call to catch potential driver
> errors in the wild.
>
> Bug: chromium:983167
> Change-Id: Ie8b394384223155cd033baca19306396f406cdbb
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3679483
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Peng Huang <penghuang@chromium.org>
Bug: chromium:983167
Change-Id: I8f3c950c95d6a56cb724905da0288b1f81c7ed3f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3695939
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
4ea62009
|
2022-06-07T15:35:51
|
|
Vulkan: Prefer driver uniforms over spec consts
On hardware that's not seeing any benefit from specialization constants,
this change switches to using driver uniforms to reduce the number of
pipelines created.
Bug: angleproject:7406
Bug: b/173636783
Change-Id: Ic1ea1b389b0b27169427643f811370943195f331
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3692270
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9e47438f
|
2022-06-07T16:34:18
|
|
Vulkan: Fix program creation crash
Due to two CLs going in at the same time.
Bug: angleproject:7366
Change-Id: I8638b95eefd379abbc64f3b52e87b67f25e1ad52
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3693829
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
06ff0e3c
|
2022-06-06T15:29:16
|
|
Implement GL_EXT_base_instance
Added new extension GL_EXT_base_instance to registry_xml.py
and auto-generated the entry point function calls for the
following functions introduced by the extension:
* GL_DrawElementsInstancedBaseVertexBaseInstanceEXT
* GL_DrawElementsInstancedBaseInstanceEXT
* GL_DrawArraysInstancedBaseInstanceEXT
Bug: angleproject:6983
Change-Id: I36167faf3ca98e42acf787dbf09ee7052e15e358
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3691952
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Faye Zhang <ffz@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
d670b5a3
|
2022-06-07T11:43:02
|
|
GL: Disable texture border clamp on imagination.
IMG GPUs generate INVALID_ENUM when setting the texture border color.
Bug: angleproject:7405
Change-Id: I04a28d36943c143ad5e18bf80e618230b116a632
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3692265
Reviewed-by: Peng Huang <penghuang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
68634d5c
|
2022-01-05T20:33:32
|
|
Vulkan: Enable VK_EXT_platform_wayland
Bug: angleproject:6902
Change-Id: I6a27e3f610bd48dd31937255b287b11fe84c05ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3528756
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
35839293
|
2022-05-19T16:18:10
|
|
Vulkan: Fix mutable format check
Check directly with enum instead of using boolean logical operator.
Bug: angleproject:7065
Change-Id: I98b077c9ab18690d915ed3387a4f19404925daaf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645123
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3b988fef
|
2022-06-01T10:54:03
|
|
Vulkan: Remove enableLineRasterEmulation
* Removed the Bresenham line raster emulation specialization
constant, along with related variables and functions.
Bug: angleproject:7366
Change-Id: If17c8ce9b459ad801bae8e887e5674bd9a3ff2bf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3680860
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
aac68adc
|
2022-05-21T22:27:22
|
|
Capture/Replay: Track dirty state per EntryPoint for Reset
This CL introduces a new concept of tracking whether an entry
point has been called. If so, emit Reset calls designed specifically
for that entrypoint.
This will likely only be useful for one dimensional state binding
calls that can easily be tracked and set back.
Only support for EntryPoint::GLUseProgram is added at the moment, but
any entry point can be added.
Reset will now set the active program back to what it was in Setup.
For example:
void ResetReplay()
{
...
glUseProgram(gShaderProgramMap[2]);
UpdateCurrentProgram(2);
}
Test: Animal Crossing MEC, Star Wars KOTOR MEC
Bug: angleproject:7307
Bug: angleproject:7353
Change-Id: I19d238ca13bbfb619e1cf8ed86f15ed6c4255a61
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3656827
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
cb9e1235
|
2022-06-06T14:34:53
|
|
D3D11: fix UAV handling.
For setting UAVs, Microsoft has provided two APIs:
ID3D11DeviceContext::OMSetRenderTargetsAndUnorderedAccessViews()
for pixel and vertex, and
ID3D11DeviceContext::CSSetUnorderedAccessViews()
for compute.
They both take very similar arguments, perform similar functions, but
have one crucial difference: the former will clobber any existing UAV
bindings that are not specified in the call, while the latter will not.
The initial implementation of non-compute UAVs in ANGLE didn't
accomodate this, and sets UAVs individually, as is done for compute,
which clobbers any UAVs set in a previous call.
The fix is to collect all UAVs required for a draw or compute pass,
and set them all at once. This required reworking the internal dirty
bits to reflect the actual D3D requirements (SRV and/or UAV usage),
and to split the sync functions to set only SRV or UAV state.
Also add a two-SSBO fragment shader test.
Bug: angleproject:7385
Change-Id: I0c98e1506d56eccf1db446c0be808f2f3020ae1e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3690735
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
|
|
4b911686
|
2022-06-06T22:25:37
|
|
Converts from sprintf() to snprintf().
sprintf() is deprecated in Xcode 14, so update to safer equivalents in
order to keep the compiler happy on iOS and macOS.
Bug: chromium:1331345
Change-Id: Id5348088bf69cbd360d9251e6323596cb710666d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3690747
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ce3c0fe9
|
2022-06-06T12:09:45
|
|
Vulkan: Make depth-correction uniform controlled
This change makes sure SPIR-V transformations are not required for depth
correction, having the number of potential pipelines.
Bug: angleproject:5881
Change-Id: If3f66b34bdd1127ae588cbc822ea7cf01fa8621f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3691801
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
4868e5a7
|
2022-06-06T15:29:44
|
|
Log the fully formatted message for internal errors.
The formatted message is generated but not used. This is critical to
know the file and line that generated the error.
Bug: chromium:983167
Change-Id: Id4bb1c5b49fa1004728948d87e0270687b82992c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3690738
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
b186991a
|
2022-05-26T11:50:56
|
|
Vulkan: Remove non-current vertex array from buffer's observer list
When app binds a buffer to many VAOs, any buffer modification have to
loop over all VAOs that uses that buffer, even though all these VAOs are
not current except one VAO. That causes significant CPU overhead.
black_desert_mobile has this type of usage. This CL checks number of
observers on each binding and if there are excessive observers, it
removes VAO from the buffer's observer list when it becomes non-current
and adds back to observer list when it becomes current.
This CL reduces CPU overhead of black_desert_mobile (as measured with
--offset --minimumgpuwork) from 21ms to 3.69ms, on par with native GLES
driver. Note that this CL only touches glBindVertexArrayObject call code
path, so no impact to apps not using VAOs. There is also no measurable
CPU time regression on a few other app traces that uses VAOs.
Bug: angleproject:6371
Change-Id: I6b1589f3e3c768d56c1c95cebdb577e3e256737f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3669603
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
28c59d63
|
2022-05-24T17:32:33
|
|
Vulkan: Fix Wayland Display DRM formats
Check whether relevant renderer feature is enabled before querying
supported DRM formats.
Bug: angleproject:6902
Change-Id: Ib6fa28c75f2b7e4c8a750babe97bdeddd2fa1059
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3664477
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7fb021b0
|
2022-05-12T16:19:14
|
|
Reland "Add Vulkan backend support for texture labels"
This is a reland of commit 1afb80587e302e2ce9a901a69fd66e5ef98a73b6
Added check to ensure vkSetDebugUtilsObjectName fcn ptr is valid
before use. Fixes failures on mac-swangle-chromium-try-x64.
Original change's description:
> Add Vulkan backend support for texture labels
>
> Add onLableUpdate support for textures in the Vulkan backend.
>
> Bug: b/229105865
> Change-Id: Id9e5b2b81352e97b7843a63f27709739005dc2f3
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645854
> Reviewed-by: Ian Elliott <ianelliott@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Ian Elliott <ianelliott@google.com>
Bug: b/229105865
Change-Id: I994da6db2771671c204e4ab01c69912c1be4a48f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3674296
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
2fec519f
|
2022-06-02T15:17:28
|
|
Avoid dirty texture swizzle state when there is no change
Some applications (for example surfaceflinger on Android) may set
texture swizzle at every call even though there is no actual swizzle
change. But we are not checking against redundant state calls and is
always setting texture's DIRTY_BIT_SWIZZLE_* bits. This caused vulkan
backend free image views which in turn forces VkFramebuffer recreation.
This CL check the swizzle state and only set dirty bits if it actually
changes.
Bug: b/234602034
Change-Id: I7fab96a957c0b7a7ed318eaccea2d42146ca23cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3688732
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d655ad29
|
2022-05-31T14:20:16
|
|
Vulkan: Add tests for FramebufferCache growth bugs
When texture attached to FBO gets respecified, we shouldn't keep growing
FramebufferCache.
When texture attached to fbo get glTexParameteri(GL_TEXTURE_SWIZZLE_R)
call with the same value, we should also not destroy/recreate
framebuffers (in fact should not recreate VkImageView). We ran into
this usage pattern on surfaceflinger.
When texture attached to fbo get glTexParameteri(GL_TEXTURE_SWIZZLE_R)
call with different value, we should also not destroy/recreate
framebuffers (in fact should not recreate VkImageView). We ran into
this usage pattern on surfaceflinger.
Bug: b/234769934
Bug: b/234602034
Change-Id: I9fc881486f95cc3da843f50fa0a8cdcbfd4fc625
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3681081
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
a9516865
|
2022-06-01T22:48:04
|
|
Vulkan: Output cache look up feedback in pipeline graph
Bug: angleproject:6565
Change-Id: I12bb9ab5756860de9ba26d6b4a9429a78b65df39
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3686029
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bfab7e60
|
2022-06-01T11:22:42
|
|
Ignore eglBind/ReleaseTexImage calls for lost contexts.
eglBindTexImage and eglReleaseTexImage no-op when no context is
current. Extend this to lost contexts to match the behaviour of making
a GL call on a lost context.
This avoids potential unexpected bad accesses in the backends.
Bug: chromium:1316578
Change-Id: I7b309c297e0c803019720733dee2950abb4c4b5f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3683869
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Alexis Hétu <sugoi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
415ff51b
|
2021-12-17T17:20:25
|
|
Metal: Remove use of ANGLE_MTL_AUTORELEASE from mtl_state_cache
The code doesn't use autoreleasepool, instead all instances are
subsequently retained.
Use AutoObjCPtr to adopt the reference and maintain ownership
explicitly.
This is work towards minimizing memory leaks by minimizing the
use of autoreleasepool and accounting for the references explicitly.
Bug: angleproject:6833
Change-Id: I77fe323683e4abb9b4ab17723949c56dd636ae32
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3347643
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: John Cunningham <johncunningham@apple.com>
|
|
53ec886e
|
2022-05-30T16:49:11
|
|
Vulkan: Externally synchronize the pipeline cache
In preparation for a future change that requires this as it may perform
pipeline cache merges during creation of pipelines.
Bug: angleproject:5881
Change-Id: Ic7921b781aa773ae23b60a0bb6fa2111b1fc401e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3679479
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
eb282de0
|
2022-05-20T18:36:46
|
|
Vulkan: Add feature to use VK_FILTER_LINEAR for YUVConversionInfo
VK_FILTER_NEAREST is default for chromaFilter in ConversionInfo.
Add feature to allow VK_FILTER_LINEAR to be used instead. This
feature controls the quality when sampling YUV images.
Bug: angleproject:7382
Change-Id: I3f67d7620d94b5b33c42754adfef84b97c798637
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3684351
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Trevor Black <vantablack@google.com>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Commit-Queue: Brandon Schade <b.schade@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bbf67e2e
|
2022-05-16T12:04:34
|
|
Capture/Replay: support capturing eglCreateImage/eglDestroyImage
Because we support only a few functions the supporting code is not
autogenerated. We don't capture the actual value of the display
variable, because we assume that there is only one display, and
the actual pointer to it is provided by the EGLWindow. The rest
of the capturing works just like with the GLES calls.
Bug: angleproject:4964
Bug: angleproject:5822
Bug: angleproject:6180
Bug: angleproject:6286
Bug: angleproject:6578
Bug: angleproject:7111
Change-Id: I385aa9648f93bf74706e9860e2aee5775eeba220
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3636062
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
94320a83
|
2022-05-27T17:41:29
|
|
Metal: Validate total bits used in color attachments
Metal has 2 limits for color attachments. 1 the number of
attachments supported. 2 the total number of bits it can
write per pixel. So for example Apple4 through Apple8 GPUs
can have 8 attachments but only 512bits of output. That
means you can attach 8 RGBA8 textures (256bits), but you
can't attach 8 RGBA32UI textures (1024bits).
If there are too many bits then return
FRAMEBUFFER_UNSUPPORTED from checkFramebufferStatus
and INVALID_FRAMEBUFFER_OPERATION from draws
Bug: angleproject:7280
Change-Id: I935aebad4d57664f59a60be20a927d6b69afb4ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3674322
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
6a0c779e
|
2022-06-01T14:43:41
|
|
Uptream Vivante and VMWare vendor ID recognition.
Case-insensitively alphabetize the IDs and helper functions.
Bug: angleproject:6839
Change-Id: Ib6746b3e6a8858e85b70c04424093ddbd02285fc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3684955
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Gregg Tavares <gman@chromium.org>
|
|
e04314fd
|
2022-05-30T01:09:31
|
|
Vulkan: Include state in pipeline graph dump
Each program generates a group of nodes. The group's description is the
common state among all nodes. Each node contains the diff with the
shared state. Arrows between nodes indicate the
GraphicsPipelineTransitionBits that have caused the transition. State
that is 0 is not output for brevity.
Bug: angleproject:6565
Change-Id: I7b6a95efcee63f1d7d368d8e062c5c1d221fb8b9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3673829
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8a0351a5
|
2022-05-26T14:29:21
|
|
Metal:Dynamically choose max draw buffers.
The code was hard coded to 4 which is lower than OpenGL's 8.
This implementation keeps a hard coded array of size 8 in
rx::mtl::RenderPassDesc and rx::mtl::RenderPipelineOutputDesc
but only uses up to the display's limit.
Bug: angleproject:7280
Bug: angleproject:5730
Change-Id: Idd7e64dc47697882b44540804159566158e1e924
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3671695
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
17f9e941
|
2022-06-01T15:22:29
|
|
Metal: Upstream clear performance fix
Restricts in-flight render passes per command buffer a
predefined limit. The goal is to reduce the number of
active render passes on the system at any one time.
Patch is from: https://bugs.webkit.org/show_bug.cgi?id=234008
Bug: angleproject:7386
Change-Id: I6712bf38722e2685ed7d21f12ed0a680779b7a41
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3685190
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
e70bea8a
|
2022-06-01T12:30:56
|
|
Metal: Update MAX_LOD_BIAS
The Metal implementation set MAX_LOD_BIAS to 2.0 which is the minimum
the spec requires but setting a limit requires the implementation to
actually respect that limit.
AFAIK the limit on most GPUs, including Metal, is however many
mips are allowed thereby letting you select any mip level.
Note that as far as I can tell, MAX_LOD_BIAS can be larger than
the maxiumum number of mip levels but there's no way to observe
that behavior.
There is a WebGL test for this here
https://github.com/KhronosGroup/WebGL/pull/3419
It passes on OpenGL and fails on Metal without this CL.
Bug: angleproject:7280
Change-Id: I365cb5b3f872cd5036765f4eec932be1e2c07f8f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3684356
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
32a0ee92
|
2022-05-31T10:51:06
|
|
Code Cleanup
In validationES.cpp, the framebuffer is required to have
0 depth bits (to conform to OpenGL ES 3.2 specifications).
That is, ImageHelper::copyImageDataToBuffer() will not
be called on a buffer with combined depth and stencil format.
Replacing the lines relating to testing combined depth and stencil
format ImageHelper::copyImageDataToBuffer() with an assert.
Bug: angleproject:6856
Change-Id: I911500910b2065eb21c72d7f2d8ff481f4afa304
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3680862
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Faye Zhang <ffz@google.com>
|
|
6c0d4658
|
2022-05-27T15:32:42
|
|
D3D11: implement stencil texturing.
When GL_DEPTH_STENCIL_TEXTURE_MODE is set to GL_STENCIL_INDEX, GL
requires the stencil value to be in the R component. However, when
sampling a depth24stencil8 texture in D3D11, the stencil ends up in the
G component. So in this mode, swizzle the result from G to R.
In order to sample stencil, use the appropriate stencil-only format
for the SRV: X24_TYPELESS_G8_UINT for d24s8, X32_TYPELESS_G8X24_UINT
for d32fs8. This required adding a new field to D3D11 Format.
Bug: angleproject:7303
Change-Id: I7cf70efaaf6c833fa0b2497e4080618dfd7103ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3679485
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
28b4c378
|
2022-05-27T15:45:59
|
|
Vulkan: Pipeline creation feedback in perf counters
Bug: angleproject:5881
Change-Id: I42917cab3c97abb50a14035972a96728dcb990b9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3672851
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
b0d75fb5
|
2022-05-31T16:55:23
|
|
Vulkan: Use 64-bit counters
Some upcoming counters don't fit in 32 bits.
Bug: angleproject:5881
Change-Id: I2de8a603cabdb5f7417c29d5f37a50899485d6d3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3679488
Commit-Queue: Charlie Lao <cclao@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
53fb57a6
|
2022-05-31T12:13:59
|
|
Vulkan: Fix xfb emulation bug w.r.t array elements
This change handles corner cases where the 0th element of the array is
not captured.
Bug: angleproject:7376
Change-Id: I358f064abe5e1702985ab0faf7465cef178e7b87
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3679484
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5a2cc71c
|
2022-06-01T12:06:07
|
|
Update extension support (June 1, 2022).
Now includes data for Pixel 6 on Android 13.
Bug: angleproject:7375
Change-Id: I115f8ead1cbfeb55b7314164409b262f58078ca5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3684029
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
da30caec
|
2022-05-26T13:35:24
|
|
Vulkan: Switch resource tracking.
CommandBufferHelpers now determine if a Resource is busy by looking
at the "ResourceCommandBuffers" list in each ResourceUse.
This reduces CPU overhead in the Aztec Ruins trace by up to 3%.
Bug: angleproject:5664
Change-Id: I8d927af7f39db38c98d746ca4cc01f343d0df2e8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3668836
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1ce69722
|
2022-05-18T13:05:22
|
|
Vulkan: Track used command buffers in ResourceUse.
The list of command buffers to ResourceUse will replace tracking
resources in a CommandBufferHelper. Currently the two tracking
methods live side-by-side, and the old method will be removed in
a future CL.
Bug: angleproject:5664
Change-Id: Ia04d77e72c508e10b549db8c8dd5f0472e4edc83
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3656069
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
43b5311f
|
2022-05-31T12:03:23
|
|
D3D11: minor cleanup to getSRVLevel().
Change getSRVLevel() to take an enum rather than a bool.
Bug: angleproject:7303
Change-Id: I5b39b1b6e4f2f3f8a6bc8dd3f5690368f427f574
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3679482
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
|
|
b6a93d75
|
2022-05-31T12:20:37
|
|
GL: Temporarily enable validation for all GL calls.
Turn on error checks after each GL call to catch potential driver
errors in the wild.
Bug: chromium:983167
Change-Id: Ie8b394384223155cd033baca19306396f406cdbb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3679483
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Peng Huang <penghuang@chromium.org>
|
|
d96cee66
|
2022-05-31T02:41:32
|
|
Fix to invalidate cache when binding Transform Feedback.
Bug: chromium:1330379
Change-Id: I091116286ac511c50f9abcffa4d3cf350be920b4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3677115
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
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>
|
|
9f4b9c65
|
2022-05-18T14:39:18
|
|
Vulkan: Refactor command buffer retain calls.
This removes "getResourceUseList" from the command buffers, and
instead we pass around the command buffer helpers. Since future CLs
will change the way we track resources, this provides for a more
stable interface for tracking.
Bug: angleproject:5664
Change-Id: I7118788570eaa3c0ddb6d5ef523e050ad7be00ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645814
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
33b254fe
|
2022-05-28T00:00:00
|
|
Fix ValidateFragmentShaderColorBufferMaskMatch for indexed masks
Adjust WebGL-specific validation, add test.
Bug: angleproject:4394
Change-Id: I4d51d6d7639a4ec3115025c858434491845440a2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3673298
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
23f213d1
|
2022-05-26T23:43:44
|
|
Vulkan: Make drawable size uniform
As a specialization constant, it's impossible to predict the value the
drawable size may take, which in turn makes it impossible to warm up the
Vulkan pipeline cache at link time.
Bug: angleproject:7366
Change-Id: Ia3d1860a4fcb8e3078fdcb8d02a2e0cd173ea028
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3671976
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a2fe4445
|
2022-05-26T12:42:39
|
|
Vulkan: Sync pipeline cache only when truly changed
The Vulkan pipeline cache was considered dirty when ANGLE added a new
pipeline. However, a new pipeline doesn't necessarily translate to new
blobs in the pipeline cache.
With this change, the cache is synced only if its size has changed.
Bug: angleproject:5881
Change-Id: I0226426680f1e6b0e2bfde66ea6409362b8e72c9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3668835
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
9ea3967d
|
2022-05-22T13:06:18
|
|
Bug fix in GL_EXT_YUV_target
Shaders with multiple samplers need to account for conflicting
YUV sampler states and accordingly reevaluate them when sampler
uniforms are updated.
Tests: ImageTestES3.ProgramWithBothExternalY2YAndExternalOESSampler*
Bug: angleproject:4852
Change-Id: Ie633e62f0bbb89f217183623d4fc6ab5b3acfd81
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3661211
Reviewed-by: Trevor Black <vantablack@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@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>
|
|
ee023e6a
|
2022-05-26T15:23:18
|
|
D3D11: fix constant buffer cache lookup.
The code was accessing the constant buffer cache by the buffer index,
but storing it by the register index. The fix is to use the register
index in both cases.
Bug: angleproject:7304
Change-Id: I750ba2911140660b42db8e0035984da5e94b14e4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3668840
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
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>
|
|
757b8497
|
2022-05-25T21:58:29
|
|
Vulkan: Fix reserve varying for xfb (take 2)
When the xfb extension is used, anything that might result in
gl_Position being modified at the end of the shader should cause a
varying to be reserved for capturing it.
Previously, pre-rotation support was added to the condition
(incorrectly, which is fixed in this change), but emulated pre-rotation
and no-negative-viewport-support also results in modifications to
gl_Position, so they are added to the condition as well.
Bug: angleproject:5421
Bug: angleproject:7364
Change-Id: Ieba39b3e9f9de68ca97e94bfc3b75d787e69315b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3668828
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
891dd5b3
|
2022-05-25T23:05:49
|
|
Vulkan: Fix mid-RP draw clear w.r.t growing scissor
UtilsVk::clearFramebuffer didn't grow the render area if scissor had
grown. FramebufferVk::clearWithCommand does that and is unaffected by
the bug.
Normally, ContextVk::updateScissor grows the render area automatically,
but clear is special in that it's not affected by the viewport while
ContextVk::updateScissor is.
Bug: b/232298034
Change-Id: I260a1948ba1b043e5e331e0e5c60d41e5b4cc192
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3668830
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
7ad48b84
|
2022-05-26T00:23:35
|
|
Revert "Add Vulkan backend support for texture labels"
This reverts commit 1afb80587e302e2ce9a901a69fd66e5ef98a73b6.
Reason for revert: Null-dereference crash starting here:
https://ci.chromium.org/ui/p/chromium/builders/ci/mac-swangle-chromium-x64/26323/blamelist
(see angle blamelist)
Crash reason: EXC_BAD_ACCESS / KERN_INVALID_ADDRESS
Crash address: 0x0
Process uptime: 24 seconds
Thread 0 (crashed)
0 0x0
rax = 0x0000011c0113c000 rdx = 0x0000011c09094590
rcx = 0x0000000000000006 rbx = 0x0000011c0e2a0000
rsi = 0x00007ffedfc11500 rdi = 0x0000011c01378010
rbp = 0x00007ffedfc11540 rsp = 0x00007ffedfc114f8
r8 = 0x0000000000000006 r9 = 0x0000000123a6ccc4
r10 = 0x0000011c011018d0 r11 = 0x00007ffdbc1a4834
r12 = 0x0000000000000006 r13 = 0x0000011c090944b0
r14 = 0x0000011c0e34c000 r15 = 0x00007ffedfc11550
rip = 0x0000000000000000
Found by: given as instruction pointer in context
1 libGLESv2.dylib!gl::Context::objectLabel(unsigned int, unsigned int, int, char const*) + 0x156
rbp = 0x00007ffedfc116a0 rsp = 0x00007ffedfc11550
rip = 0x00000001357b38e6
Found by: previous frame's frame pointer
2 libGLESv2.dylib!_GL_ObjectLabelKHR + 0xa5
rbp = 0x00007ffedfc116f0 rsp = 0x00007ffedfc116b0
rip = 0x000000013578e7e5
Found by: previous frame's frame pointer
3 Chromium Framework!gpu::gles2::GLES2DecoderPassthroughImpl::DoBindTexture(unsigned int, unsigned int) + 0x1ea
rbp = 0x00007ffedfc11780 rsp = 0x00007ffedfc11700
rip = 0x000000011e7dcd4a
Found by: previous frame's frame pointer
Original change's description:
> Add Vulkan backend support for texture labels
>
> Add onLableUpdate support for textures in the Vulkan backend.
>
> Bug: b/229105865
> Change-Id: Id9e5b2b81352e97b7843a63f27709739005dc2f3
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645854
> Reviewed-by: Ian Elliott <ianelliott@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Ian Elliott <ianelliott@google.com>
Bug: b/229105865
Change-Id: I5a5e00084e1320a486c43fec9d41b9ae6cb2b1db
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3669657
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
|
|
fea19567
|
2022-05-17T17:44:06
|
|
Vulkan: Remove removeEarlyFragmentTestsOpt flag
* Removed removeEarlyFragmentTestsOptimization and the related
SPIRV transformation and variables.
* Removed mUsesEarlyFragmentTestsOptimization.
* Removed SH_EARLY_FRAGMENT_TESTS_OPTIMIZATION.
* Merged updateUsesEarlyFragmentTestsOptimization() into
updateFragmentInoutRange().
Bug: angleproject:7347
Change-Id: I7299bd4e8ab5363e5cf06eb48419d4f469106e12
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3648217
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
7b880204
|
2022-05-25T10:09:15
|
|
Vulkan: Remove invalid ASSERT in DescriptorSetDesc.
This invalid ASSERT somehow was undetected pre-commit when landing
the descriptor set cache CLs. It was code from before a refactor
that broke the ASSERT's invariant condition.
Bug: angleproject:7354
Change-Id: I4e84c78911e4c6aad826b1acabcd87216884509c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3666250
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4aa0975e
|
2022-05-24T17:34:31
|
|
Vulkan: Support Wayland EGL_DEFAULT_DISPLAY
If native display is EGL_DEFAULT_DISPLAY, then DisplayVkWayland will
create a new wl_display structure by connecting to the default Wayland
socket.
Bug: angleproject:6902
Change-Id: I0765d126f8e809426deaed5d0fb1eb0f7439164b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3664478
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4a20c914
|
2022-05-20T10:26:15
|
|
D3D: Fix race condition with parallel shader compile.
Bug: chromium:1317673
Change-Id: I0fb7c9a66248852e41e8700e80c295393ef941e8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3651153
Reviewed-by: Jie A Chen <jie.a.chen@intel.com>
Reviewed-by: Lingfeng Yang <lfy@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ccca0c25
|
2022-05-22T00:18:41
|
|
libANGLE: Fix evaluating the sample count
OpenGL deals with the maximum number of samples, but
Vulkan provides a mask of supported sample counts, so
extract and limit the maximum sample count accordingly.
Bug: angleproject:7328
Change-Id: If4867b2a5104062ec863eb6eb1e0c8e78e7a9c00
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3652422
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c608df69
|
2022-05-23T17:19:02
|
|
Code Cleanup
In Debug.h, we unconditionally set UNREACHABLE_IS_NORETURN to 0.
Since UNREACHABLE_IS_NORETURN is only used in #if directives
and it is always false, we can remove all uses of
UNREACHABLE_IS_NORETURN.
Bug: angleproject:6134
Change-Id: I3aa88d802099d70990eae697d4f056a3f650b48d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3661376
Commit-Queue: Faye Zhang <ffz@google.com>
Auto-Submit: Faye Zhang <ffz@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Faye Zhang <ffz@google.com>
|
|
8291f2d3
|
2022-05-20T00:00:00
|
|
Fix ValidCompressedSubImageSize for 3D uploads
Add CompressedTexSubImage3DValidation* tests
Bug: angleproject:4056
Change-Id: I088273b6349729fadf2c21ca7b349e44dc9ce5f3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3657408
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
84a0b462
|
2022-05-20T15:51:11
|
|
Vulkan: Bug fix in GL_QCOM_shading_rate
A default value of _1x1 for mShadingRate interacts badly with sample
shading state on some vendors. Instead set the default to Undefined
and return early in such cases.
Bug: angleproject:7172
Change-Id: If0a280090e6611817d2f5d75929ef2b654ddb186
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3658245
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
1afb8058
|
2022-05-12T16:19:14
|
|
Add Vulkan backend support for texture labels
Add onLableUpdate support for textures in the Vulkan backend.
Bug: b/229105865
Change-Id: Id9e5b2b81352e97b7843a63f27709739005dc2f3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645854
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
7a243dbe
|
2022-05-22T19:48:34
|
|
Capture/Replay: Allow repeated Gen-on-Bind for resources
We aren't clearing items from the map of resource IDs used
to track Gen-on-Bind.
Before this CL, an app could Gen-on-Bind, delete the resource
it genned, then Gen-on-Bind again to trigger this error.
The options are to add tracking to remove items from the map
when they are deleted, or just remove the error and allow it
to happen.
Since this happens so rarely, going with the simple approach
of removing the error.
Test: Star Wars: KOTOR MEC
Bug: angleproject:7353
Change-Id: I320771692e1c01e254fc977f5eef99284cc95f67
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3659505
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
|
|
11e9c835
|
2022-05-22T23:52:35
|
|
Vulkan: Dump graphics pipeline cache graph
Bug: angleproject:6565
Change-Id: Ica8fdc40ece3e1c66fae8a4f8f70a3d33374fdb8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3656639
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
35e54dbb
|
2022-05-20T17:24:11
|
|
Vulkan: Fix EXT_texture_buffer support condition
More formats than necessary where required to have the
STORAGE_TEXEL_BUFFER feature. This was based on the table in the
EXT_texture_buffer spec, but that only applies to sampler buffers.
Support for image buffer formats is based on acceptable formats to
glBindImageTexture.
Bug: b/206367167
Change-Id: I0c94c3d5a99c1e99ee1f9b05b1accdfaa38101af
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3658000
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6e258863
|
2022-05-09T18:45:02
|
|
Vulkan: Use packed enum for present modes
This will be useful for cases where ANGLE would need a non-Vulkan
present mode.
Bug: angleproject:7217
Change-Id: I3428ac9fb20788543cb24a0aa5f140e992e94001
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3636057
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e4a517c9
|
2022-05-17T23:58:23
|
|
Vulkan: Rearrange GraphicsPipelineDesc to reduce footprint
Bits for VK_EXT_extended_dynamic_state2 are moved to the end of the
desc. Some bits are also rearranged and some paddings removed for a
total of 4 bytes of reduction in desc size.
Bug: angleproject:7328
Change-Id: I48f20408a8a2cb7bce0d8e2d0d2ccd8a121f7894
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3652747
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
bb3afdf4
|
2022-05-17T16:08:06
|
|
Drop support for 64xMSAA+
Hardware that supports anything more than 32xMSAA is rare (practically
only Nvidia). That high number of samples is hardly useful either way.
This change reduces the number of words for the sample mask to 1,
reducing the amount of state needed to track it.
Bug: angleproject:7328
Change-Id: Iea9add1cbeef494ff9bb383b10c82b839d1e53a4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3652738
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|