|
87815de2
|
2022-12-01T00:00:00
|
|
Adjust GetFramebufferAttachmentParameterivBase validation
GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT state queries
should be allowed for ES 2.0 clients when floating-point
color buffer extensions are enabled.
Bug: angleproject:7853
Change-Id: I4a0a3b336e44648635233be54f598a3ab20cf717
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4071926
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f17cb883
|
2022-11-30T17:23:12
|
|
Vulkan: Add two tests for per context queue serial work
SubmittingOutsideCommandBufferTriggersEndRenderPass: This test is added
to test outside command buffer uploads that triggers endRenderPass works
properly.
CreateMultiSharedContextAndDraw: This test is added to test draw with
shared vertex buffer in the shared context group works properly.
Bug: b/255414841
Change-Id: I8b4f343fe220a9f0b7c6e042f4663e23ae6f4c9d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4064148
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
aaee3c23
|
2022-11-30T14:24:13
|
|
Build and test ANGLE with Vulkan secondary CBs.
This will allow us to run tests with both permutations of
ANGLE (custom secondaries & Vulkan secondaries) in the same
build directory. It will also allow us to run these configs
as tests on our infra. This CL adds a few simple test to CI.
Bug: angleproject:6811
Change-Id: I053f8cc5bafc2a7ab7d0665da9301f0ba7f8417f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4067806
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a4db9477
|
2022-10-06T10:35:39
|
|
Implement pixel local storage with metal::read_write textures
Metal's programmable blending feature isn't available on non-Apple
Silicon, so on these devices we have to polyfill pixel local storage
using read_write textures, which can also be coherent if
raster_order_groups are supported.
This change leverages the existing PLS transformation to images, and
implements just enough shader image functionality in Metal to support
the pixel local storage usecase. Missing shader image features are
marked with UNIMPLEMENTED().
Bug: angleproject:7279
Bug: angleproject:7792
Bug: angleproject:7794
Bug: angleproject:7797
Bug: angleproject:7803
Change-Id: Ia96a714693d352d57351a1bae4f45437dde000e4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3993363
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
|
|
fa37af38
|
2022-07-12T22:47:22
|
|
Translator: Support SSO's built-in redeclaration
EXT_separate_shader_objects requires that gl_Position and gl_PointSize
be redeclared in the vertex shader. This is not adopted by GLES3.2, but
is nevertheless required to be supported if the shader enables this
extension explicitly.
Bug: angleproject:6590
Change-Id: I3428851ff9f00fb63573e4322bb62fe04bf0a095
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3757918
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7f4caaf5
|
2022-11-23T15:40:53
|
|
Vulkan: Fix VulkanPerformanceCounterTest.SubmittingOutsideCom
VulkanPerformanceCounterTest.SubmittingOutsideCommandBufferDoesNotCollectRenderPassGarbage
depends on the implementation detail on how we flush and submit
commands. The recent change crrev.com/c/4038095 fixes one issue that we
are now having one less submission on pixel 6 device. This CL adjust the
test to account for that.
This CL also changed to set mHasDeferredFlush to true only when there is
a started renderpass upon FBO bind.
This CL also opt in swiftshader into preferSubmitAtFBOBoundary feature
for test coverage and ease of debugging since ARM GPU (which enables
this flag) is not been tested on CI.
Bug: b/255414841
Change-Id: I295cec33a8ca257a5d5a98604b8c4c0c29e97cdf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4054101
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
c5724a8d
|
2022-11-17T15:48:16
|
|
Vulkan: Retain mCurrentGraphicsPipeline if RP started
ContextVk::mCurrentGraphicsPipeline is created before renderpass
started. Right now we retain mCurrentGraphicsPipeline immediately. In
future CL of per context queue serial, renderpass will not have queue
serial until started, which means we can only retain pipeline object
after renderpass started. This CL moves the
mRenderPassCOmmands.retain(mCurrentGraphicsPipeline) call to renderpass
start time. This exposed a bug that ContextVk may have a dangling
mCurrentGraphicsPipeline pointer to an already destroyed object, if the
program has been destroyed. When ProgramExecutableVk::resetLayout()
calls ContextVk::onProgramExecutableReset () we early out because
executable no longer matches. This causes mCurrentGraphicsPipeline still
point to now deleted pipeline object. This CL fix this dangling pointer
bug by always clear mCurrentGraphicsPipeline to null in
ContextVk::onProgramExecutableReset() without checking if program
executable is the one gets reset.
Bug: b/255414841
Change-Id: I6d698c517d7a948b65c465eaaa59ea0bca24e2c8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4035107
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
fc1c8cd1
|
2022-11-01T00:00:00
|
|
Refactor validation of partial compressed texture uploads
Optimized ValidCompressedSubImageSize for valid usage
and simplified its control flow.
Fixed false negative validation when the replaced
image region does not fill the entire level but
nevertheless reaches the image boundaries.
Updated InternalFormat::getCompressedImageMinBlocks
to use IsPVRTC1Format helper function.
Fixed InternalFormat::computeCompressedImageSize for
3D compressed texture blocks.
Removed redundant checks from ValidateES3TexImageParametersBase.
Optimized IsPVRTC1Format helper function to be a constexpr.
Adjusted tests, added suppressions for Intel and Adreno.
Bug: angleproject:7473
Change-Id: I6fadce949785a35e2706b06eeb00e878aa3710a7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4037671
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
68b47e58
|
2022-11-16T10:46:59
|
|
Vulkan: Initial support for VK_EXT_graphics_pipeline_library
When available, this change uses VK_EXT_graphics_pipeline_library to
create pipelines. Currently, it is only used when
graphicsPipelineLibraryFastLinking is available. This restricts the use
of this extension to devices where monolithic pipelines are not any more
performant than linked libraries.
A future change adds support for other implementations by providing
async pipeline creation.
Bug: angleproject:7369
Change-Id: I1e3b7ac4aa56e75c7d6f4d0d5ea91cb0b862e581
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031489
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Steven Noonan <steven@valvesoftware.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
81e9dc56
|
2022-11-04T00:00:00
|
|
Reland "Metal: Skip disabled draw buffers"
This is a reland of commit 4b084310d7bbb33631d58a461eb5814c12220926
Do not try to create a command encoder with no attachments
since it may crash some Metal drivers.
Do not reset pipeline descriptors.
Original change's description:
> Metal: Skip disabled draw buffers
>
> When creating render pass descriptors, do not
> assign textures to disabled color attachments.
>
> When creating pipeline descriptors, reset
> pixel formats of disabled color attachments.
>
> Exit early when MTLRenderCommandEncoder is not created.
>
> Added:
> * DrawBuffersTest.None
> * DrawBuffersTest.NoneWithDepth
> * DrawBuffersTest.NoneWithStencil
> * DrawBuffersTestES3.DrawWithDisabledIncompatibleAttachment
>
> Fixes:
> * conformance2/rendering/fs-color-type-mismatch-color-buffer-type.html
>
> Bug: angleproject:6430
> Change-Id: I7f650c761f757985b027388c350c01340a83fd51
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4003180
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Bug: angleproject:6430
Change-Id: I13977bd7ef32c4c85420706215b4f4d3a65629ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4030310
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
91ee237f
|
2022-11-17T03:19:34
|
|
Revert "Metal: Skip disabled draw buffers"
This reverts commit 4b084310d7bbb33631d58a461eb5814c12220926.
Reason for revert: Crashing in webgl2_conformance_metal_passthrough_tests https://chromium-review.googlesource.com/c/angle/angle/+/4003180/comments/6e35ee21_38288238a
Original change's description:
> Metal: Skip disabled draw buffers
>
> When creating render pass descriptors, do not
> assign textures to disabled color attachments.
>
> When creating pipeline descriptors, reset
> pixel formats of disabled color attachments.
>
> Exit early when MTLRenderCommandEncoder is not created.
>
> Added:
> * DrawBuffersTest.None
> * DrawBuffersTest.NoneWithDepth
> * DrawBuffersTest.NoneWithStencil
> * DrawBuffersTestES3.DrawWithDisabledIncompatibleAttachment
>
> Fixes:
> * conformance2/rendering/fs-color-type-mismatch-color-buffer-type.html
>
> Bug: angleproject:6430
> Change-Id: I7f650c761f757985b027388c350c01340a83fd51
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4003180
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Bug: angleproject:6430
Change-Id: I485691bdcc4214ed6958f606591f23331bfbea53
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4032391
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Austin Eng <enga@google.com>
Reviewed-by: Austin Eng <enga@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4b084310
|
2022-11-04T00:00:00
|
|
Metal: Skip disabled draw buffers
When creating render pass descriptors, do not
assign textures to disabled color attachments.
When creating pipeline descriptors, reset
pixel formats of disabled color attachments.
Exit early when MTLRenderCommandEncoder is not created.
Added:
* DrawBuffersTest.None
* DrawBuffersTest.NoneWithDepth
* DrawBuffersTest.NoneWithStencil
* DrawBuffersTestES3.DrawWithDisabledIncompatibleAttachment
Fixes:
* conformance2/rendering/fs-color-type-mismatch-color-buffer-type.html
Bug: angleproject:6430
Change-Id: I7f650c761f757985b027388c350c01340a83fd51
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4003180
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
44d8fef8
|
2022-11-01T00:00:00
|
|
Add ANGLE_provoking_vertex spec
Renamed provoking vertex enums to use _ANGLE suffix.
The newly defined enums alias those from the
desktop OpenGL extensions.
Updated tests to use the new enum names.
Bug: angleproject:2829
Change-Id: I72b686773536d3d54a653114cee5292007510a55
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4013700
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
40e4bc63
|
2022-11-09T12:40:48
|
|
Make DrawRangeElements validation consistent with DrawElements
According to the WebGL specification, when an empty buffer is bound to
GL_ELEMENT_ARRAY_BUFFER binding point, one of the possibilities is to
return an error when trying to draw with an index count other than
zero. This is the behavior of DrawElements variants but not
DrawRangeElements.
This change brings variants of DrawRangeElements behavior in line with
that of DrawElements.
Bug: angleproject:7822
Change-Id: I6844efd1038d95c652b72e52209dfdd74f006f9b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4015418
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
78e28cb8
|
2022-11-03T11:05:48
|
|
Vulkan: Remove glslang fallback
ANGLE's SPIR-V generator is battle tested by now.
Bug: angleproject:6210
Change-Id: I2ed88642e3ede435e3f906fbd701133be6873fb7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4002868
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
9bda9a79
|
2022-10-22T22:05:11
|
|
Add Store Ops to pixel local storage
Browsers will need the ability to pre-empt pixel local storage, which
means every plane will need a backing store to dump to. Store Ops allow
the app to still avoid memory transactions at the end of PLS even if
their plane has a backing texture.
Bug: angleproject:7279
Change-Id: I3a3efa21773f87c03cd346a996e3c638028c68ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3974652
Commit-Queue: Chris Dalton <chris@rive.app>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
3605b399
|
2022-10-20T17:00:02
|
|
Move PLS clear values back into context state
The API that required packing raw data into a buffer was un-ergonomic
for developers and difficult to implement for WebGL vendors.
Bug: angleproject:7279
Change-Id: If7c98908c285462c5775e8e2d8811883be139f64
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3972376
Commit-Queue: Chris Dalton <chris@rive.app>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5e95a4d9
|
2022-10-07T00:52:38
|
|
Add an EXT_shader_pixel_local_storage impl of PLS
Translates ANGLE_shader_pixel_local_storage shaders directly to
EXT_shader_pixel_local_storage.
Polyfills load/store operations using internal fullscreen draws.
Since the ANGLE extension needs the ability to preserve all active PLS
planes to textures, we can only support this extension when the backend
context also has access to ES 3.1 shader images.
Bug: angleproject:7279
Bug: angleproject:7771
Change-Id: Id348bde412efcc081ff29ee05ec59ad652f77569
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3966075
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9f693aa3
|
2022-10-22T14:45:59
|
|
Implement an allow list for PLS
In order to guarantee no data is lost while using the
EXT_shader_pixel_local_storage extension, we need to restrict
applications to a small subset of commands while pixel local storage is
active. This CL implements the allow list for GL entrypoints using
wildcard matching inside the code generator, and adds custom validation
for the more specific restrictions that go into effect when PLS is
active.
Bug: angleproject:7279
Change-Id: I5dd48bd93c10e8775f32be32a4fcf17855eb2f0e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3932552
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
805e00b8
|
2022-10-27T00:00:00
|
|
D3D11: Add clip and cull distance support
Added gl_ClipDistance and gl_CullDistance
support to HLSL translator.
Added enabled clip distance GL state emulation.
Added limitSimultaneousClipAndCullDistanceUsage
limitation.
Expanded and optimized related end2end tests.
Bug: angleproject:4452
Change-Id: Id66312505254ceff43d5258d486ddcdb0462db47
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3990944
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
a77a80a1
|
2022-10-25T13:54:33
|
|
Wait for DestroyNotify and ConfigureNotify events.
There appears to be a race condition where
XDestroyWindow+XCreateWindow ignores the new size
(the same window normally gets reused but this only happens
sometimes on some X11 versions).
Wait until we get the destroy notification which should avoid races
between termination and initialization.
However, it turns out just doing that breaks things because tests get to
termination before even giving the window a chance to set up fully
(e.g. ConfigureNotify) which only happens after making the window
visible.. so additionally block in setVisible until we get
ConfigureNotify.
aaand turns out RobustBufferAccessBehaviorTest requires
setVisible(true) - tests fail when running on my local Linux and pass
now that I added setWindowVisible!
Bug: angleproject:7620
Change-Id: I93f2f05cb9d1c62776636bec976d94ead4cf0fd1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3979168
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
ef8350a6
|
2022-10-21T06:30:51
|
|
GLES1Renderer: Handle GL_BGRA the same way we handle GL_RGBA
Fixes minetest
Bug: angleproject:7774
Change-Id: Iacbe8cb9aa434ec624bfaf056092b77bda468b3f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3970417
Commit-Queue: Constantine Shablya <constantine.shablya@collabora.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Constantine Shablya <constantine.shablya@collabora.com>
|
|
5c0b329e
|
2022-10-19T16:59:58
|
|
Vulkan: Clean up rotation spec const update
Update during makeCurrent was done by invalidating the program, and then
at pipeline creation time the spec const was updated. This is changed
so that makeCurrent updates the spec const directly, and avoid
invalidating the pipeline.
Also removes spec const usage calculation, as it's unused.
Bug: angleproject:7369
Change-Id: I79444ce4173c4db9c6800fb02afd9e8447a25f82
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963853
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
4bfb749f
|
2022-10-10T20:59:48
|
|
Capture/Replay: Move shared trace code into src/common.
This will let them be accessible to the test harnesses. The
trace tests interpreter will need direct access to the classes
that we move in this CL.
This CL also moves the GLenum utils into the common folder,
where they were already used by some other tests.
Bug: angleproject:7752
Change-Id: I97ad607938ef29bc316f6d40098478e002ea8128
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963362
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
8403e4c5
|
2022-10-10T20:59:29
|
|
EGL: Resource IDs for Surface, Context and EGL Image.
This will make these classes play nicely with resource maps. As these
objects are used in a lot of places, and simplified C can't handle
unordered_map, it's necessary to index the maps by simple packed IDs
in capture/replay code. This indirection will also have increased
safety as we validate EGL resource ID handle values before accessing
the memory directly.
Also hides some of the other EGL capture methods behind helper methods
to simplify the C code and hide assignments and other complex maps.
Bug: angleproject:7758
Change-Id: Ibc7bb56430d3068bd38877c9dfb011979d4ea234
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3957164
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
7b4b56f0
|
2022-10-19T00:05:22
|
|
Vulkan: Missing output mask in GraphicsPipelineDesc
Currently, there's some program state used in creating pipelines
alongside what's in GraphicsPipelineDesc. This works because the
pipeline cache lives in the program executable.
With VK_EXT_graphics_pipeline_library however, we could create vertex
input and fragment output partial pipelines that are independent from
and are shared between multiple programs. To support this, any program
state that's necessary for pipeline creation should be part of the
GraphicsPipelineDesc structure.
This change places the state affecting fragment output in
GraphicsPipelineDesc.
Bug: angleproject:7369
Change-Id: I2e48fc9da220475e1b2ed376fc947ce13489610e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963652
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
f0e3d8f9
|
2022-10-18T13:51:31
|
|
Vulkan: Shader component type in GraphicsPipelineDesc
Currently, there's some program state used in creating pipelines
alongside what's in GraphicsPipelineDesc. This works because the
pipeline cache lives in the program executable.
With VK_EXT_graphics_pipeline_library however, we could create vertex
input and fragment output partial pipelines that are independent from
and are shared between multiple programs. To support this, any program
state that's necessary for pipeline creation should be part of the
GraphicsPipelineDesc structure.
This change places the state affecting vertex input in
GraphicsPipelineDesc. A follow up change will do the same for state
affecting fragment output.
Bug: angleproject:7369
Change-Id: Iccf691a1597d786efa1625f7b1c22f906201f2e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3964751
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
025504b9
|
2022-10-17T17:03:03
|
|
Pass worker pools to image load functions
In preparation for the ASTC decoder using threaded decoding.
Bug: b/250688943
Change-Id: I70d669bcb57b900dbb633304182e174aec362203
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3961339
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Greg Schlomoff <gregschlom@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
03eccad2
|
2022-10-18T10:39:53
|
|
Tests: Add reduced crashing shader test
Reduced case of a shader that crashes an app during SPIR-V compile.
Test: GLSLTest_ES3.NestedPowFromUniform
Bug: b/217922015
Change-Id: I8d0ccd8b2c4f4e8e51ac39c9dbfaafbf48423157
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3965051
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fec93f40
|
2022-10-14T00:00:00
|
|
GL: Support clip and cull distance extensions
Use EXT_clip_cull_distance on OpenGL ES to expose
APPLE_clip_distance; use ARB_cull_distance on OpenGL
to expose EXT_clip_cull_distance.
Added disableClipCullDistance OpenGL workaround.
Bug: angleproject:4452
Change-Id: I458cad29c10b9d9193c5233e24bac53361ba104e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3956075
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
968041b5
|
2022-08-19T12:11:23
|
|
Metal: Optimized BufferSubData per device
Adds a staging buffer path which means there are 4 paths
for bufferSubData.
1. direct copy
* get a pointer to the buffer
* copy the new data to the buffer
* if the buffer is managed, tell metal which part was updated
2. use a shadow copy
* copy the data to a shadow copy
* copy the entire shadow to a new buffer
* start using the new buffer
3. use a new buffer
* get a new buffer (or unused)
* put the new data in the new buffer
* blit any unchanged data from the old buffer to the new buffer
* start using the new buffer
4. use a staging buffer
* get a staging buffer
* put the new data in the staging buffer
* blit from the staging buffer to the existing buffer.
Further, there are 3 types of memory storage modes.
Managed, Staged, Private.
Based on the GPU type different storage modes and different
paths in different sitatutions are more performant.
So, add feature flags to select paths by GPU.
Bug: angleproject:7544
Change-Id: I741dd1874201043416374194bd2001ded8dbd9b4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3842641
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
eaa71709
|
2022-10-14T11:47:07
|
|
Vulkan: s/ContextVk/Context in pipeline creation
With VK_EXT_graphics_pipeline_library, pipeline creation may happen on a
thread. This change prepares the interface such that only a vk::Context
is needed, instead of ContextVk.
Bug: angleproject:7369
Change-Id: Ib7e9e7e140e27a4af71bffee069c88e3d7f47dfa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3956935
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
19fb11b6
|
2022-10-14T11:12:20
|
|
Vulkan: Merge warmed up compute cache into renderer
It was done for graphics, but was accidentally missing for compute.
Bug: angleproject:5881
Bug: angleproject:7629
Change-Id: I28a4c2e38b07b08e1636b443f2c0963130965ebb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3956496
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
c22f091d
|
2022-09-29T18:58:33
|
|
Replace Hard-Coded egl image attribs
This change is adapted from https://crrev.com/c/3838866
Added two hash maps to track below information:
EGLImage* --> EGLint* attrib
TextureID --> EGLImage*
During the CaptureShareGroupMidExecutionSetup,
when we iterate through all the textures the app created,
if the texture is bound to External target,
we will refer to the hash map TextureID --> EGLImage*
to find the EGLImage* pointer, and then use the result
as the key to refer to the other hash map
EGLImage* --> EGLint* attrib to find the attributes used
to create that EGLImage object. We can then use the
attributes to populate eglCreateImage or eglCreateImageKHR
calls in the trace calls.
Bug: angleproject:7570
Change-Id: I729de4ddea59242ccbe6243e036451f290545185
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3928212
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
9b5fff82
|
2022-10-05T21:56:00
|
|
Vulkan: Emulate shader stencil export for MSRTT
The MSRTT emulation code had one corner case issue that could lead to
performance and memory inefficiencies. That is when stencil needs to be
unresolved and VK_EXT_shader_stencil_export is not supported.
This change adds a path to emulate VK_EXT_shader_stencil_export and
removes this inefficiency.
This should help Chromium on older Android devices that lack both this
and the recent VK_EXT_multisampled_render_to_single_sampled extensions.
Chromium frequently breaks the render pass (crbug.com/1336981), which
easily leads to this situation.
Bug: angleproject:4836
Change-Id: Ifceec43f7f3807b7e32f4b379edcd4351ae76414
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3935892
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
76f377c5
|
2022-06-17T16:05:16
|
|
Vulkan: Break renderpass when switch from query to non-query
getQueryResult will wait for query result to be available, which means a
potential CPU bubble if the result is not yet available. On tiler GPUs
it will at least wait for renderpass to complete. Usually query enabled
draws are very tiny (usually just draw a point to see if it is occluded
or not), and query disabled draws are expensive. Some apps do issue a
glFlush when switch from query draw to non-query draw, but app like
dead_by_daylight does not issue such flush. In order to reduce the
bubble, this CL ends renderpass and issue a flush when we switch from
query enabled draws to non-query enabled draw so that the result will be
available much earlier, this reduce the CPU bubble. This result in
dead_by_daylight frame time improves from 5.45ms to 3.5ms (35%
improvement).
Bug: b/250706693
Change-Id: Ia3a32a9fb336e6f256809b3cad83f61a45415fb1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3931739
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
496b3532
|
2022-10-07T15:49:08
|
|
fix typo
Bug: None
Change-Id: Ieca7fcd5b8172ad16cc73f453f6e2e2f29ae6016
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3939221
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c19ec948
|
2022-08-23T10:43:59
|
|
Vulkan: Implement imageless framebuffers
* Added the attachment image and create info objects to be used
for imageless framebuffers created in getFramebuffer().
* New helper class for framebuffers in RenderPassCommandBufferHelper:
MaybeImagelessFramebuffer, which includes a framebuffer object, if
the framebuffer is imageless, and the image views. This is to make
sure that the args for render pass begin info will be correctly set
up according to the status of the used framebuffer.
* Refactored the collection of attachments in getFramebuffer() into
a new function, getAttachmentsAndImagesFromRenderTargets(). It also
returns their corresponding ImageHelper* objects used to create the
framebuffer (from their image properties).
* New struct: RenderTargetInfo; which keeps track of render targets
and whether resolve image should be used for the render pass in the
form of the enum class RenderTargetImage.
* Added a new arg to getFramebuffer(): resolveRenderTargetIn; to use
when there is a valid resolveImageViewIn.
* Without using the framebuffer cache, we would require to handle
the framebuffer destruction by adding it to the garbage instead
of releasing it. For example, FramebufferVk::destroy() now adds
mCurrentFramebuffer to the garbage.
* Added new framebuffer unit tests.
* Added tests where two textures with different attributes are bound
to the same framebuffer before drawing, one after another.
* Added test where a blit occurs from a multisample texture into a
non-zero level of a resolve texture, each bound to a separate FBO.
* Added a new perf test to compare performance for enabled imageless
framebuffers vs disabled. (Credit: cclao)
Bug: angleproject:7553
Change-Id: Iacdbd73aaa01cbb0e37abf01ae4892bdfdd4b12f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827644
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
4ebdac79
|
2022-08-29T16:25:46
|
|
Vulkan: Ensure we sync the draw FB before beingQuery.
Bug: chromium:1354271
Change-Id: I5fe3649d9d39de37d0a59c80a4f31a17d1a72838
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3863145
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2d31fe98
|
2022-09-22T21:04:22
|
|
Implement PLS on Apple Silicon
Implements a subset of EXT_shader_framebuffer_fetch in the Metal
translator that is sufficient to support pixel local storage. Metal's
"programmable blending" feature is available on all Apple family GPUs
beginning with version 2.
Support for non-Apple GPUs will come later via readWrite textures,
which can also be coherent by annotating them with
[[raster_order_goup(0)]].
Bug: angleproject:7279
Change-Id: Ic74f6c0d21e87eb919e1f487163388d08d126857
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3916794
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
Reviewed-by: Gregg Tavares <gman@chromium.org>
|
|
13195f8a
|
2022-10-05T11:17:35
|
|
Vulkan: Fix missing input attachment usage on MSRTT
When combined with advanced blend (or framebuffer fetch for that
matter), MSRTT attachments could be used as input attachments. This
change fixes the missing usage bit.
Bug: angleproject:7739
Change-Id: I2190e4a6e534e120357dd68189fb9de07b6c54fa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3936444
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
b5514bb2
|
2022-09-21T20:47:00
|
|
Support pixel local storage on ES 3.0
Now that the application-facing API is implemented, we don't have to
rely on ES 3.1 anymore. Expose and test the extension on ES 3.0.
Bug: angleproject:7279
Change-Id: I5635620b9088201c20bafd283813092a329225d6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3915327
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Chris Dalton <chris@rive.app>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
5b3781ec
|
2022-10-03T16:09:35
|
|
Remove namespacing from all ANGLE loaders.
This will make it easier to work with pure C files.
Bug: angleproject:7731
Change-Id: I2fe9af486af5f339d973c9149f082eb1f2efa8c4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3925426
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5d7c4eca
|
2022-10-02T02:27:27
|
|
Vulkan: Don't flush depth/stencil on color blit
When syncing the read framebuffer for blit, deferred clears are picked
up for the attachments that are not being synced. They are then
redeferred so a future command would pick them hopefully as loadOp.
This change improves the frame time of Pretty Derby on Pixel 6 by ~23%.
Bug: angleproject:7727
Change-Id: Ie7d84c58315cd09204e5229f1ec73605d5a7f639
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3931973
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1d73bad5
|
2022-10-01T22:50:48
|
|
Vulkan: Fix reclear of rendered-to depth/stencil
An optimization drops re-clears of images to the same value. When a
render pass does:
- clear
- render
- store
the "cleared" status of the image was removed because at the end of the
render pass, the image no longer has the cleared value. However, this
was mistakenly only done for color, but should have been done for depth
and stencil as well.
Bug: b/239430388
Change-Id: Ib99e0df460eaa82ce87b593276abd9b07f0a8375
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3931972
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a7dc51f2
|
2022-10-01T08:49:11
|
|
Add a framebuffer fetch implementation of PLS
The framebuffer fetch implementation works by attaching PLS backing
textures to the framebuffer, and then rewriting PLS uniforms as "inout"
fragment variables. The compiler's existing machinery takes it from
there and makes it work on GL and Vulkan, and soon Metal.
EXT_shader_framebuffer_fetch is now the preferred backend for pixel
local storage, but we also use EXT_shader_framebuffer_fetch_non_coherent
if shader images can't be coherent. This is especially interesting for
Vulkan, since noncoherent framebuffer fetch is possible without any
extensions.
Bug: angleproject:7279
Bug: angleproject:7683
Bug: angleproject:7684
Bug: angleproject:7724
Change-Id: I33f3b2c6df9a5709969d9165c448ea71b096c9e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3900142
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
836cc5e2
|
2022-09-09T22:06:22
|
|
Vulkan: add etc to bc compute transcoding.
use compute shader to transcode etc format to bc format.
Bug: b/243398683
Change-Id: Idbd0820a2df8d92fe690055dae2933bc559e9bfd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3888501
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
|
|
943d71e1
|
2022-08-11T10:17:06
|
|
gl_test: add a test to capture/replay MEC with EGL images
Bug: angleproject:7564
Change-Id: I1cb84c5bccd20b5614ddd400797f112138f8c200
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3826162
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
ff7aa214
|
2022-09-29T19:56:28
|
|
GL_PALETTE* sampling
Implement GL_PALETTE* formats by decoding them into
a R8G8B8A8_UNORM image at load time.
Test: angle_end2end_tests --gtest_filter="PalettedTextureTest.*"
Bug: angleproject:7599
Bug: angleproject:7688
Bug: angleproject:7710
Change-Id: I94d51e2c480fcdd39f1a0ad241b311d3b4de1579
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3863251
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Constantine Shablya <constantine.shablya@collabora.com>
|
|
053c6a06
|
2022-09-20T15:17:28
|
|
Vulkan: Add more tests for attachmentless framebuffer
This CL adds below test scenarios for attachmentless framebuffer:
1. Create first attachmentless framebuffer with larger size,
and create second attachmentless framebuffer with smaller size.
2. Create an attachmentless framebuffer with smaller size,
and grow its default width and height.
3. Create an attachmentless framebuffer with larger size,
and shrink its default width and height.
4. Create an attachmentless framebuffer with larger size,
given it an attachment with a medium size,
and shrink its default width and height.
This CL also splits the test failure bugs on different
vendor and renderer to different bug tickets.
This CL addresses a bug on vulkan backend:
only skip onFramebufferChange()
if the framebuffer has at least one attachment,
and mCurrentFramebufferDesc equals to priorFramebufferDesc.
Otherwise in test scenario 2 and 3 above,
we will use the wrong scissor size,
because the FramebufferDesc remains the same before and after
changing the default width and height,
and we will wrongly skip onFramebufferChange() where we update scissor
area to match with the new default width and height.
Bug: angleproject:7666
Bug: angleproject:7697
Bug: angleproject:7699
Bug: angleproject:7700
Bug: angleproject:7705
Change-Id: Ieb143b27f8c1a229dab8f43d0a16e3e871185941
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3908332
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bc447ca4
|
2022-09-20T22:38:16
|
|
GLES1: Move lighting to vertex shader
In the spec, lighting is done as part of vertex processing, and results
in a new vertex color. Texturing is applied later. ANGLE however did
lighting in the fragment shader.
With this change, lighting is moved to the vertex shader. This fixes
rendering of lit objects, as interpolation is done linearly or flat
between the vertices per spec, instead of done precisely per fragment.
While typically this is inferior to per-fragment lighting, it's what the
spec mandates.
On the dr_driving trace, this reduces the render pass time by ~20% on
Pixel 6.
Bug: angleproject:6201
Bug: angleproject:6644
Change-Id: I10e37df8c56c22d520a738af8f8630bc6a01ca7f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3906394
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2debd07d
|
2022-09-21T11:40:18
|
|
Automatically query status of features for tests
Now tests can skip based on what features exist, compared to what
features are explicitly asked for. For example, a test suite may
override-enable a (normally disabled) feature that depends on a hardware
capability. With this change, it can be skipped if said hardware
capability doesn't exist.
As a bonus, tests now correctly skip if the feature is overriden through
an environment variable. This change also cleans up
VulkanPerformanceCounterTest tests which did the same for a number of
specific features.
Bug: b/243398683
Change-Id: I84f026e3394eab56fd123e02bee72720c7ed94c6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3909789
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
7d712c47
|
2022-09-08T09:42:10
|
|
Metal: ProvokingVertexHelper stop using a separate cmdbuffer
This simplifies the code. Without this you always need to be
aware that the provoking vertex helper's command buffer might
have commands in it that need to be committed before starting
other operations.
Bug: angleproject:7643
Change-Id: I1c73d451c12c268ecbdb6a1cd63a77c291949ef9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3884275
Commit-Queue: Gregg Tavares <gman@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
|
|
8b2aff28
|
2022-09-12T10:27:28
|
|
Implement the ANGLE_shader_pixel_local_storage API
Implements the OpenGL ES API for ANGLE_shader_pixel_local_storage and
adds thorough validation and testing as outlined in the spec. This
feature is still implemented entirely in the frontend, but the extension
now works end-to-end with a passing test suite, and can be used
externally. Over time we can start gradually moving the implementation
into backends as appropriate.
Bug: angleproject:7279
Bug: angleproject:7647
Change-Id: I1c861a0fca96423be02e17bbe1fb7f57b99ea63f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3886462
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
9393fd54
|
2022-09-13T20:06:57
|
|
FrameCapture: Ignore GetActiveAttrib
Similar to how we skip glGetActiveUniform, we also need to skip
glGetActiveAttrib. Attribute active status varies based on the
underlying shader compiler. More aggresive stacks can find ways to
eliminate them. If the application asks about attributes above
GL_ACTIVE_ATTRIBUTES, a GL error is thrown, causing a trace to be
non-portable.
Tested with Eve Echoes and Monster Hunter Stories.
Also added an end2end test that showcases a way apps ask about
attributes, verified we can capture and replay it across multiple
vendors now.
Test: VertexAttributeTestES3.UnusedAttribsMEC
Bug: angleproject:7215
Bug: angleproject:7557
Bug: angleproject:7402
Change-Id: I3c655bcead0ddb1677f8e1d49cb7d3f3c6b4feba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3866041
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
79c30913
|
2022-09-08T03:34:25
|
|
Add GLES 1.x lighting tests
These tests check pixel values produced by fixed
function lighting.
Test: angle_end2end_tests --gtest_filter="LightsTest.*"
Bug: angleproject:6201
Change-Id: I54ff5fd34089f71e7438167607de6f150aeb56bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3881463
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Constantine Shablya <constantine.shablya@collabora.com>
|
|
f6a171d5
|
2022-09-20T16:05:20
|
|
GLES1: Fix Fog rendering
The spec requires that:
- The fog factor is clamped to [0, 1]
- The fog only affects RGB, and not alpha
Bug: angleproject:7598
Change-Id: Iaea2933b5ccfa79b7db0a3e74193b1c5c10f11e6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3907881
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
ba3b4515
|
2022-09-15T01:06:51
|
|
Vulkan: Implement GL_ANGLE_logic_op
Enabled if the logicOp device feature is available. According to
gpuinfo, it's pretty much universal except for ARM.
Bug: angleproject:7654
Change-Id: I4808b519fdd6273b2f8c1bb17f59517eb65bfe8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3898317
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
81811166
|
2022-09-19T00:00:00
|
|
Reject GL_HALF_FLOAT_OES on WebGL 2.0
This type enum is not exposed in WebGL 2.0 contexts.
Skipped OES enum testing on ES 3.0 contexts
in half-float texture WebGL compatibility tests.
Bug: angleproject:7668
Change-Id: I56138aa686192a873b308ba58633e6a1fc808a1d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3900019
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
97926f80
|
2022-09-15T00:10:49
|
|
GL: Implement GL_ANGLE_logic_op
Enabled only on Desktop GL where logic op is available.
Bug: angleproject:7654
Change-Id: I3c17ffb5b21abf31aec247319a625526f1bec37d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3898316
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0fefbe83
|
2022-09-14T15:20:00
|
|
Vulkan: Do not cache the FramebufferHelper with no attachment
If two FBOs don't have any attachments,
and their GL_FRAMEBUFFER_DEFAULT_WIDTH
and GL_FRAMEBUFFER_DEFAULT_HEIGHT are
different, there is no difference in
their cache key (vk::FramebufferDesc).
Therefore the Vulkan backend is not able
to distinguish between the two FBOs.
This can create issues when we
1. create first FBO with a smaller size, renders to it
2. create second FBO with a bigger size, renders to it
The second renderpass will use the FBO created
in the first renderpass, because it managed to
retrieve the first FBO from the cache with
the same cachekey. This triggers the
vulkan validation error:
VUID-VkRenderPassBeginInfo-pNext-02853,
saying the render area exceeds the
framebuffer size.
This CL fixed it by not adding the FramebufferHelper
to the cache, if it doesn't have any attachment.
These framebufferHelpers are cheap, without
cache there should not be much performance
drop.
Bug: angleproject:3579
Bug: angleproject:7351
Bug: angleproject:7666
Bug: b/246334302
Change-Id: Iddecafddb042bd16401f983f9ee1a021b845d8bb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3891543
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
04f46f39
|
2022-09-12T10:15:16
|
|
Reland "Generate stubs for ANGLE_shader_pixel_local_storage"
This is a reland of commit 8208e8a234d05b413d79e7a93b6a428adea41b33
In Take 2 we omit the GLenum groups PixelLocalLoadOpANGLE and
PixelLocalInternalFormatANGLE. We can add these back once the extension
is published and we can update Khronos's gl.xml, or else once we figure
out how to make this work without updating the Khronos gl.xml.
Original change's description:
> Generate stubs for ANGLE_shader_pixel_local_storage
>
> Bug: angleproject:7279
> Change-Id: I41548ad35c236b67372a12fecaa9a1b9c556d232
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3891972
> Commit-Queue: Chris Dalton <chris@rive.app>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:7279
Change-Id: I02f42c1cfc685ed95164744108e0c185d3a7fefb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3900491
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
8c45e3c4
|
2022-09-15T01:07:47
|
|
Revert "Generate stubs for ANGLE_shader_pixel_local_storage"
This reverts commit 8208e8a234d05b413d79e7a93b6a428adea41b33.
Reason for revert: Compile failures
Original change's description:
> Generate stubs for ANGLE_shader_pixel_local_storage
>
> Bug: angleproject:7279
> Change-Id: I41548ad35c236b67372a12fecaa9a1b9c556d232
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3891972
> Commit-Queue: Chris Dalton <chris@rive.app>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:7279
Change-Id: Ic9a232f9d722b42e615de3827ce118616f3acc71
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3897425
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Chris Dalton <chris@rive.app>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Chris Dalton <chris@rive.app>
|
|
3657b0ca
|
2022-09-14T11:24:00
|
|
Vulkan: Add end2end test for fbo with no attachment
Add a test for fbo with no attachment and then change the fbo size.
There is a bug in vulkan backend that discovered with deqp tests, and
this CL creates a end2end test for that.
Bug: b/246334302
Change-Id: I9b70afb958cda02140bf1007b71095ee3f922e38
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3893015
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
8208e8a2
|
2022-09-12T10:15:16
|
|
Generate stubs for ANGLE_shader_pixel_local_storage
Bug: angleproject:7279
Change-Id: I41548ad35c236b67372a12fecaa9a1b9c556d232
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3891972
Commit-Queue: Chris Dalton <chris@rive.app>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
18f90857
|
2022-09-09T11:28:00
|
|
Vulkan: Use DontCare if attachment is invalidated
If an attachment is invalidated, there is no need to preserve the old
content. NONE means old content is still preserved, DontCare means
discard old content. In this case we do want to discard instead of
preserve old content.
Bug: b/243711628
Change-Id: I242ac86db6993574b5627d61f7185d155beec0ba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3888938
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
7822c9df
|
2022-09-10T14:17:21
|
|
Delete FramebufferPixelLocalClearValue{f,i,ui}vANGLE
Instead, BeginPixelLocalStorageANGLE just accepts a buffer containing
clear values. In WebGL, the clear data can be an array of Numbers. This
makes the API smaller, simpler, and less stateful and bug-prone.
Bug: angleproject:7279
Change-Id: I8b3fa4ae7f20ba3ad72beb01f275acf50eee803c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3888960
Commit-Queue: Chris Dalton <chris@rive.app>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d375547c
|
2022-08-12T15:54:39
|
|
Do not link program pipeline in glUseProgramStages
1. The commit 3a9f18f135fe82 caused a link to occur everytime
glUseProgramStages is called. This is redundant since the program
pipeline can be linked just before usage, thus allowing for multiple
stages to be bound before linking the executable.
2. Mark PPO as a dirty object and link the PPO in dirty object handler
3. Early return if the same program is being bound to the same stage
of the pipeline.
4. Added ProgramPipelineObjectBenchmark perf test that switches programs
before a draw and observed following data -
1. vulkan profile -
1. wall_time before patch - 102000 ns
2. wall_time after patch - 38000 ns
2. vulkan_null profile -
1. wall_time before patch - 125000 ns
2. wall_time after patch - 52000 ns
Bug: angleproject:5102
Bug: angleproject:6566
Test: ContextNoErrorPPOTest31.*Vulkan
Test: ProgramPipelineTest31.*Vulkan
Test: ProgramPipelineObjectBenchmark*
Change-Id: Idbc2fcb4875bbd040e9ec847eb2a8f96f287173c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3830170
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
a2f00721
|
2022-06-19T15:17:22
|
|
Vulkan: Extend bounding box when pruning updates
Add support for extending the bounding box when there are updates that
enclose the current bounding box.
Bug: angleproject:4691
Bug: angleproject:7389
Test: Texture2DArrayTestES3.TextureArrayPruneSupersededUpdates*
Change-Id: Ie7e3cc28f17213361b1be407dbb2d984865fe6bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3712897
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
34332f85
|
2022-09-13T13:54:14
|
|
Fix UninstantiatedParameterizedTestSuite errors on iOS.
Some test suites are instantiated only on ES31 or Vulkan,
which iOS doesn't support.
Bug: angleproject:5417
Change-Id: Iea202934edb3804993dabd38f2629d4992eb2095
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3892013
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
|
|
8fb77b5a
|
2022-09-06T14:33:40
|
|
gles1/FogTest: Add test that combines blending and fog.
Add a test that draws a texture with a shadow effect by using fog and
blending functionality. This fails on all ANGLE configs like
ES1_Vulkan and ES1_OpenGL but succeeds on native drivers using ES1_EGL.
Test: angle_end2end_tests --gtest_filter="FogBlendTest.ShadowEffect/*"
Bug: angleproject:7598
Change-Id: I454735c3257e6986a6b1af1bc993a609e776419b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3876222
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
61e905af
|
2022-09-07T15:47:26
|
|
Move out of bounds buffer access tests under correct extension
A few tests in RobustResourceInitTest are testing for out of bounds
values but RobustResourceInitTest is only checking
GL_ANGLE_robust_resource_initialization which does not do anything
for out of bounds access.
I moved them to the RobustBufferAccessBehaviorTest.
Bug: angleproject:7638
Change-Id: If542ce2f1711e4b1980bf52cabfa3cff71480536
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3880833
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
526e8e64
|
2022-09-07T17:44:56
|
|
Fix UNSYNCHRONIZED glMapBufferRange test
The test makes a buffer and puts in
[red, red, red, zero, zero, zero]. It then maps the
zero, zero, zero portion with
glMapBufferRange(...GL_MAP_UNSYNCHRONIZED_BIT...).
It writes green over the zeros, and unmaps.
But, because GL_MAP_UNSYNCHRONIZED_BIT was passed in there
is no guarnatee the original values have been put in the buffer
yet. If they have not then the greens will be over-written.
Bug: angleproject:7640
Change-Id: I7d3bf54afb01bca3cc440f998ae1fad0ce1e5e8e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3881166
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f99e255b
|
2022-09-02T10:19:46
|
|
GL: Unbind buffers after mapping them.
Qualcomm drivers generate errors if a bound array buffer is
mapped during a draw call even if it is not used by the draw.
Bug: chromium:1345777
Change-Id: I0639caf5d74c8cbdc7245324fdcb136bd3d51b86
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3871333
Reviewed-by: Peng Huang <penghuang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
|
|
1d04539f
|
2022-09-06T15:20:32
|
|
Fix xfb tests rendering points
Some xfb tests render points and verify a coordinate away from the
points is unchanged as a means to break the render pass. Due to lack of
output to gl_PointSize, these tests are flaky on SwiftShader.
Bug: angleproject:7625
Change-Id: I7347516bb755ace87d57df3467c59055f28f1d69
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3877783
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
80f6a63a
|
2021-11-11T10:40:26
|
|
Tests external image uploads with colorspace
Repros of
android.hardware.nativehardware.cts.AHardwareBufferNativeTests#SingleLayer_ColorTest_GpuSampledImageCanBeSampled_R8G8B8A8_UNORM_sRGB
android.hardware.nativehardware.cts.AHardwareBufferNativeTests#SingleLayer_ColorTest_GpuSampledImageCanBeSampled_R8G8B8X8_UNORM_sRGB
These two pass:
- RGBAAHBUploadData
- RGBXAHBUploadData
but these two fail:
- RGBAAHBUploadDataColorspace
- RGBXAHBUploadDataColorspace
Bug: b/205995945
Test: newly added tests
Change-Id: I1a27be43ae73b08b406f8f60fd6eec3dc28d8229
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276713
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
38a38b8d
|
2022-09-01T17:10:39
|
|
Revert "EndXfbAfterRenderPassClosed expectation (0,0) -> (w/2,h/2)"
This reverts commit 2dc1c609dea184e5e51a8136df71ae14f4481f52.
Reason for revert: Doesn't fix the issue
Original change's description:
> EndXfbAfterRenderPassClosed expectation (0,0) -> (w/2,h/2)
>
> Bug: None
> Change-Id: I6a8006be39ff8b8208004f533157f27da8e7fe24
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3863143
> Auto-Submit: Roman Lavrov <romanl@google.com>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Bug: None
Change-Id: Ifbb8f12798c9b5bf1f77f997302114263eceaf75
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3868935
Auto-Submit: Roman Lavrov <romanl@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
2dc1c609
|
2022-08-29T15:31:56
|
|
EndXfbAfterRenderPassClosed expectation (0,0) -> (w/2,h/2)
Bug: None
Change-Id: I6a8006be39ff8b8208004f533157f27da8e7fe24
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3863143
Auto-Submit: Roman Lavrov <romanl@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d0fad24c
|
2022-08-30T23:24:06
|
|
Add noncoherent PLS tests
Coherent pixel local storage is so widely supported now that we have a
testing gap on the noncoherent version. This change adds backend
features to disable the extensions we use for fragment synchronization
and tests that disable them.
Bug: angleproject:7279
Change-Id: If71a1a1016922cb9e3b68024dd2616483c700395
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3866163
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c6ad305c
|
2022-08-25T11:53:46
|
|
Vulkan: No depth load/store if depthFunc==ALWAYS/NEVER && mask==FALSE
If depthFunc is set to always or never pass with depthMask disabled, and
the entire render pass is drawing with that state, then there is no need
to load or store depth value.
Bug: b/243711628
Change-Id: I71d470bda49abc48a4a6e20895b7e056c33fa33a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3858143
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
7428369a
|
2022-08-29T17:59:38
|
|
Vulkan: Use macros for load/store Op check
Use macro instead of inline function for result check so that the
correct line number gets print out for the failed check.
Bug: b/243711628
Change-Id: I1141f6a63fd01bb9fe0cf5c06b81b378e8acc08e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3864347
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
00411e2c
|
2022-08-25T00:00:00
|
|
Support provoking vertex state query
When ANGLE_provoking_vertex is enabled, glGetIntegerv
should accept GL_PROVOKING_VERTEX parameter name.
Bug: angleproject:2829
Change-Id: I6316de2c6b4cdbf4365df3ffb88f75c4b095f99c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3858264
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
70c434b2
|
2022-08-29T17:09:23
|
|
Check max shader storage blocks support in test
If the shader source code uses shader storage
buffer objects, we need to check the corresponding
GL_MAX_*_SHADER_STORAGE_BLOCKS is at least of size 1.
Bug: angleproject:7583
Change-Id: I7f0e537e4dcfca8414cccb0088be8d34735633d1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3863111
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
64f41972
|
2022-08-25T11:16:23
|
|
Use canonical gl.xml and update enum to string function.
This replaces our copy of gl.xml with the upstream canonical copy.
Note that one patch is required before we can remove ANGLE's copy:
https://github.com/KhronosGroup/OpenGL-Registry/pull/538
Because the upstream version uses a new method of enum groups, we
also update our enum-to-string generator to use the new groups.
This new code includes many more enums and groups in the mapping.
Bug: angleproject:6461
Change-Id: I1c0ab44c36afce8db04c9661b377bbe5762c913e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3856649
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
32072905
|
2022-08-25T15:17:13
|
|
d3d11: Support rendering to GL_TEXTURE_2D target for YUV images
YUV D3D11 texture plane EGLImages can be bound to TEXTURE_EXTERNAL_OES,
but don't support rendering because ExternalImageSibling11::IsYUV()
returns true. While it might appear that IsYUV() should return true for
YUV D3D11 textures, the EGLImage siblings are actually for individual
planes which are R/RG 8/16 and they can indeed be bound as render
targets if we just return false for IsYUV().
This CL makes IsYUV() return false and adds a test for rendering to
YUV EGLImages.
Bug: angleproject:7610
Change-Id: I6c95a9521448e83a53153c1efaca70bd73e49818
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3856660
Auto-Submit: Sunny Sachanandani <sunnyps@chromium.org>
Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b9df3551
|
2022-08-15T17:42:53
|
|
update CopyTextureCHROMIUM to match Chromium
Overview:
This CL makes the validation of *CopyTextureCHROMIUM* and
*CopySubTextureCHROMIUM* in ANGLE behave consistently with CHROMIUM.
The new behavior is:
```
INVALID_OPERATION is generated on ES 2.0 if <sourceId> refers to an
external texture (OES_EGL_image_external), <destId> refers to a texture
with an integer-type internal format, and the underlying context does
not support OES_EGL_image_external_essl3.
```
Tests:
===== CopyTextureCHROMIUM =====
add a test in ES 2.0 to test the API with the error case.
===== CopySubTextureCHROMIUM =====
add a test in ES 3.0 to test the error case. in ES 2.0, the error case
cannot happen because "glTexImage2D()" doesn't support integer formats
- ran all CopyTextureTest on gLinux: ```autoninja -C out/Debug &&
xvfb-run out/Debug/angle_end2end_tests
--gtest_filter=*CopyTextureTest* --verbose```
- ran all CopyTextureTest on Android test phone: ```autoninja -C
out/Android && out/Android/angle_end2end_tests
--gtest_filter=*CopyTextureTest* --verbose```
Bug: angleproject:4228
Change-Id: I1cb77c72750add5f399013d3d30eed7acf8d0a50
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3826166
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ac2aeccd
|
2022-08-25T17:43:43
|
|
Check GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS in test
If the vertex shader uses shader storage buffer objects,
we need to check GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS
is at least of size 1.
Bug: angleproject:7185
Change-Id: I98d83f9f0cc30e92fdcaee15541fdde96652b38e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3858144
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2d48a370
|
2022-08-26T11:11:19
|
|
Vulkan: Support passthrough of colorspace attributes
On Android, the EGL loader supports and implements the necessary
functionality for the following colorspace extensions -
1. EGL_EXT_gl_colorspace_display_p3
2. EGL_EXT_gl_colorspace_display_p3_linear
3. EGL_EXT_gl_colorspace_display_p3_passthrough
4. EGL_EXT_gl_colorspace_scrgb
5. EGL_EXT_gl_colorspace_scrgb_linear
Add support for "EGL_ANGLE_colorspace_attribute_passthrough"
extension that allows vendors that support wide color gamut
to passthrough colorspace attribute values to the underlying
Vulkan implementation to be used during VkImage creation.
Bug: angleproject:7319
Test: PbufferColorspaceTest.CreateSurfaceWithColorspace*
Change-Id: Ibd78bb5fea4ede394f4dc5027c1d4a730746f2ee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3855048
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
320bfde0
|
2022-08-22T00:00:00
|
|
Hide emulated ETC2/EAC formats from WebGL contexts
In addition to not exposing the dedicated ANGLE-specific
extension name, do not add these formats to the internal
formats table.
Bug: angleproject:7601
Change-Id: I2e3fdd99129823b8092bfa35cb95023ae5008edd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3853591
Auto-Submit: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
51de3837
|
2022-07-28T00:05:54
|
|
Enable PLS on D3D
Bug: angleproject:7279
Change-Id: Ide498e6ebadc5cd567dc64cd1efed52e777aa32e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3790473
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5317b778
|
2022-08-23T08:58:04
|
|
Enable desktop GLSL for desktop GL frontend
Bug: angleproject:7533
Change-Id: I91bd0c217880b05683b86449a9211b9844575ebc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3850471
Commit-Queue: Eddie Hatfield <eddiehatfield@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
41c01134
|
2022-08-23T06:00:04
|
|
Extend the image test to verify RGBX AHB and GL_RGB upload
This changes updates the RGBXAHBImportThenUpload test to do texture
upload to the right side and adds a new helper to validate the render
result on both sides to check the upload respects the GL_RGB channels.
Bug: b/238460927
Test: ImageTestES3.RGBXAHBImportThenUpload
Change-Id: I61723e7db99dab78b7828b783bb7cdf062f39ad9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3849462
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b32091b4
|
2022-08-17T16:00:02
|
|
Vulkan: Bug fix related to pre-rotation code
Account for possiblity that the draw and read surfaces are different
when querying pre-rotation information. When updating
mCurrentRotationDrawFramebuffer and mCurrentRotationReadFramebuffer,
make sure to query pre-rotation information from current draw and
read surfaces.
Bug: angleproject:7581
Test: FramebufferTest_ES3.BlitWithDifferentPreRotations*
Change-Id: Ibe7a2450907e53aa5c33e13cff00059ab2f6602e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3836491
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
952d6e8f
|
2022-08-21T21:51:03
|
|
Vulkan: Workaround ARM driver bug with dynamic vertex strides
According to ARM, vkCmdBindVertexBuffers2EXT is broken when more than
one attribute binding is involved. In this change, the vertex strides
dynamic state is avoided altogether on ARM.
Bug: fuchsia:107106
Change-Id: Ie41fc07037083214d2dc99e4ed062485384911c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3844640
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9a258281
|
2022-08-17T17:47:22
|
|
Fix submit-count perf counter test on ARM
On ARM, the preferSubmitAtFBOBoundary feature causes extra submissions
that need to be taken into account.
Bug: chromium:1337538
Change-Id: Id545ee3e65fc943aff51ea3721e9c19bc0afd4a5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3835168
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
955adb77
|
2022-08-12T10:14:48
|
|
Cache compiled shader
By storing the compiled shader in the blob cache, the time to
recompile the same shader is reduced.
Based on work by <hckim.kim@samsung.com>
Bug: angleproject:7036
Change-Id: I884ae40e715c49a9ccd12903012e8327811e3557
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3808235
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
213a1ee6
|
2022-08-16T12:44:35
|
|
Vulkan: Enable VK_EXT_primitives_generated_query
Added a test to make sure PGQ works with indirect draws too.
Bug: angleproject:5430
Change-Id: Ic91e11906ca34c4f9a50f3442709e544f7f6744c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3826165
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
4c941149
|
2022-08-12T11:42:07
|
|
External Texture Support In MEC
Bug: angleproject:4964
Change-Id: I5cfbadf515a30fb20d75b2d745fdecdafa12268f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3812378
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Faye Zhang <ffz@google.com>
Commit-Queue: Faye Zhang <ffz@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
58392791
|
2022-04-07T16:14:12
|
|
Translator: Fix crashes with monomorphizing loops
Monomorphize functions crashes when trying to deep-copy a while loop,
and a continue statement. Null check these values before performing
a copy, as this is still valid AST syntax.
Bug: angleproject:7190
Change-Id: I822c0aa062ed844f86aa2b603899d73cbd48255e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3573079
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
4a636cdd
|
2022-07-20T22:44:30
|
|
Require all PLS formats to consume exactly 4 bytes of storage
D3D 11.0 UAVs only support R32_FLOAT, R32_UINT, R32_SINT formats.
EXT_shader_pixel_local_storage explicitly states that all PLS variables
consume exactly 4 bytes.
ESSL images can only have both read and write access if their format is
r32f, r32i, r32ui. (We were able to circumvent this via aliasing, but it
was a huge source of bugs.)
There is a large precedent for only supporting 4 bytes of storage in the
capabilities we use for PLS, so this CL removes support for all PLS
storage formats that are not 4 bytes. It also implements an "R32" mode
for PLS, that does manual packing and unpacking of r32* image formats.
If the application wants larger formats, it can always define multiple
PLS planes and piece them together.
Next up we ought to be able to support rg16* types with more
packing/unpacking.
With aliasing gone, and with a bit of tweaking, the PLS tests now pass
on the Pixel 4 GLES bot.
Bug: angleproject:7279
Bug: angleproject:7388
Bug: angleproject:7524
Bug: angleproject:7527
Change-Id: I6b8f62c2428ade6cb5413e33360d734e55dda0eb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3782579
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|