|
0dbe85f3
|
2024-10-15T13:54:36
|
|
Increase the size of vector WriteImages to max
ANGLE limits the size of vector which represents the write images when
resolving images. So when blit a multisample buffer to mrt, the sum of
write images is more than 1 and app will abort while checking the size
of the vector.
This patch increases the size of vector WriteImages to max.
Add end2end test to test blit multisampled framebuffer to MRT
framebuffer.
Bug: angleproject:361369302
Change-Id: I2d892bcd3411f2bca2ff514f6f0b6055d872668a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5872512
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
aec90a8d
|
2024-10-07T10:56:24
|
|
Fix ignoring blit bits when attachments are missing
GLES requires that the bits provided to glBlitFramebuffer are silently
ignored if either the read or draw framebuffer is missing the
corresponding attachment.
In WebGL, this is forbidden. ANGLE was forbidding this because of
WebGL, but a recent CTS test revealed that we shouldn't be doing that
when !WebGL.
Bug: angleproject:370917919
Change-Id: I202fbf665d8a102f0aea72709b80dfdabeb71a2e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5912614
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d193d51b
|
2024-06-17T22:46:08
|
|
Replace issue ids post migration to new issue tracker
This change replaces anglebug.com/NNNN links.
Bug: None
Change-Id: I8ac3aec8d2a8a844b3d7b99fc0a6b2be8da31761
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5637912
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
57eded36
|
2024-04-03T23:02:39
|
|
Vulkan: Fix off-by-one error in compute-based stencil blit
The coordinates used for sampling were calculated based on pixel's
top-left (integer) coordinates and used with a NEAREST sampler. This
resulted in two bugs:
- When X was flipped, the bounds check rejected the first column
- The sampling could pick the wrong pixel as the on-the-edge coordinates
could map to either of 4 pixels that share that corner.
This change moves the sampling coordinates to the pixel's center.
Bug: angleproject:8652
Change-Id: I0b54fa0bad366f52f8e6c17bb0054fa373af8b5c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5420834
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
58065d07
|
2024-03-14T16:00:20
|
|
Vulkan: Add test that destroys view after the image
A depth/stencil blit path can create temp views. Temp objects are added
to ContextVk::mCurrentGarbage, which is **appended** to the Renderer's
garbage list. If the image from which the view was created is released
before the next submission (i.e. it's appended to the garbage list
before ContextVk::mCurrentGarbage), the image can be destroyed before
its dependent view is.
This is not triggering any validation error however, so there doesn't
seem to be a need for a fix. For posterity, if this ordering needs to
be fixed in the future, we can simply remove
`ContextVk::mCurrentGarbage` and add garbage to the renderer directly.
This was made possible a while back when the context was able to
allocate its submission serial right away. (Previously, the serial had
to be determined after submission, which is why temp objects were kept
in ContextVk until that serial is known)
Bug: chromium:40942995
Change-Id: I8a1270e635193dd7aff5b63cbf63c0c6a1fc061f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5370782
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b3ab67d3
|
2024-03-14T15:06:02
|
|
tests: Remove unnecessary .get() from RAII objects
Bug: chromium:40942995
Change-Id: I82509869bce3ad8f51811188fe04267f2de04786
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5370904
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4cc9e0af
|
2023-10-31T11:19:51
|
|
Capture Tests: Fix unintentional gen-on-bind usage
A handful of tests are binding handles without glGen'ing them first.
This causes mismatched handles in capture_replay_test.py now that replay
inserts additional gen calls for resources that aren't explicitly gen'd.
For handles that are intentionally gen-on-bind, clean up the GL state so
it doesn't miscompare.
Test: capture_replay_tests.py --gtest_filter=*/ES3_Vulkan_SwiftShader
Bug: b/303100333
Change-Id: I5ce8060ff62264b3d648722b3c4542a136d95db5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4994414
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Mike Schuchardt <mikes@lunarg.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
113f847b
|
2023-06-26T12:07:52
|
|
centralize basic OS/platform detection functions
We had multiple different places that defined these, and with varying
naming schemes. Centralize them to be defined in platform_helpers.h.
Also renaming the IsApple(uint32_t) functions to IsAppleGPU(uint32_t) to
avoid ambiguous meaning: "IsApple" should mean "is Apple-vended OS"
while "IsAppleGPU" should mean "is Apple GPU vendor ID".
Bug: angleproject:8229
Change-Id: If4e3fc5ac1b5b8ad416663950a1b2ee912ccad99
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4647291
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Steven Noonan <steven@uplinklabs.net>
Auto-Submit: Steven Noonan <steven@uplinklabs.net>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b0e9bbd7
|
2023-05-31T14:23:40
|
|
Vulkan: Split features for dynamic state
When a driver bug with dynamic state is encountered, it is hard to debug
which dynamic state exactly is causing an issue, due to the current
granularity of disabling all entire state from an extension. With this
change, every dynamic state gets its own ANGLE feature, and can be
toggled as necessary.
Disabling the supportsExtendedDynamicState* features implicitly
disables all dependent features.
Bug: b/285124778
Bug: b/275210062
Bug: fuchsia:107106
Bug: angleproject:5906
Change-Id: Ic291279872df2d0eb58618ff364ab118bdcc4a9f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4577553
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
2f19bb74
|
2023-03-16T16:03:29
|
|
Reland "Vulkan: Reactivate already started render pass when possible"
This is a reland of commit ad9537af7f2bb5e22bc73f4e833fd3789adaa217
Original change's description:
> Vulkan: Reactivate already started render pass when possible
>
> In some usage case (such as lineage_mobile), we are seeing in the middle
> of render pass, app switch to another fbo just to issue a glClear()
> call, which the clear call itself gets deferred. Application then switch
> back to the original frame buffer. Before this CL, the render pass gets
> recreated due to frame buffer binding change, even though the clear gets
> deferred and new render pass and the previous render pass are
> essentially the same. This CL detects this situation and reactivate the
> current render pass instead of creating a new one. With this CL,
> lineage_m app trace reduces frame time from 3.86ms to 3.7ms, and only
> one render pass is used instead of two.
>
> This CL also allows the render pass started by BlitFramebuffer reused by
> subsequent draw calls. Asphalt_9 is hitting this use pattern and this CL
> reduces frame time by 0.1245 ms (from 5.6203 ms to 5.4958 on pixel 7
> pro)
>
> Bug: b/273808966
> Change-Id: I48c2671cbef3ff9d6cf59caae88c37c77828ee07
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4348713
> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Charlie Lao <cclao@google.com>
Bug: b/273808966
Change-Id: Ice9062122ae320b1a0108ff981bc65bd13b2ada0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4406888
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
41f0a321
|
2023-04-03T21:58:43
|
|
Revert "Vulkan: Reactivate already started render pass when possible"
This reverts commit ad9537af7f2bb5e22bc73f4e833fd3789adaa217.
Reason for revert: Suspected cause for flakiness. anglebug.com/8118
Original change's description:
> Vulkan: Reactivate already started render pass when possible
>
> In some usage case (such as lineage_mobile), we are seeing in the middle
> of render pass, app switch to another fbo just to issue a glClear()
> call, which the clear call itself gets deferred. Application then switch
> back to the original frame buffer. Before this CL, the render pass gets
> recreated due to frame buffer binding change, even though the clear gets
> deferred and new render pass and the previous render pass are
> essentially the same. This CL detects this situation and reactivate the
> current render pass instead of creating a new one. With this CL,
> lineage_m app trace reduces frame time from 3.86ms to 3.7ms, and only
> one render pass is used instead of two.
>
> This CL also allows the render pass started by BlitFramebuffer reused by
> subsequent draw calls. Asphalt_9 is hitting this use pattern and this CL
> reduces frame time by 0.1245 ms (from 5.6203 ms to 5.4958 on pixel 7
> pro)
>
> Bug: b/273808966
> Change-Id: I48c2671cbef3ff9d6cf59caae88c37c77828ee07
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4348713
> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Charlie Lao <cclao@google.com>
Bug: b/273808966
Change-Id: I81cc2dcacb52466808b2ccf5819feda466c39fc5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4396502
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ad9537af
|
2023-03-16T16:03:29
|
|
Vulkan: Reactivate already started render pass when possible
In some usage case (such as lineage_mobile), we are seeing in the middle
of render pass, app switch to another fbo just to issue a glClear()
call, which the clear call itself gets deferred. Application then switch
back to the original frame buffer. Before this CL, the render pass gets
recreated due to frame buffer binding change, even though the clear gets
deferred and new render pass and the previous render pass are
essentially the same. This CL detects this situation and reactivate the
current render pass instead of creating a new one. With this CL,
lineage_m app trace reduces frame time from 3.86ms to 3.7ms, and only
one render pass is used instead of two.
This CL also allows the render pass started by BlitFramebuffer reused by
subsequent draw calls. Asphalt_9 is hitting this use pattern and this CL
reduces frame time by 0.1245 ms (from 5.6203 ms to 5.4958 on pixel 7
pro)
Bug: b/273808966
Change-Id: I48c2671cbef3ff9d6cf59caae88c37c77828ee07
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4348713
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
fcf0ddeb
|
2023-03-27T15:27:29
|
|
Vulkan: Add more blitFramebuffer test
UtilsVk::blitResolveImpl() implementation will set up customized program
and scissor rect to implement blit. In other CL we may reuse the
render pass that started by blit. This CL adds more test to ensure that
continiued draw without any state change will continue work properly
(i.e, the state destroyed by blit gets restored properly for the follow
up draw calls issued by application).
Bug: b/273808966
Change-Id: I164803512b334ca467ca08ea3b008b153fac334d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4375099
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
410d8ba5
|
2022-12-21T13:27:00
|
|
Vulkan: Cleanup ContextVk::hasStartedRenderPass APIs
ContextVk has a few hasStartedRenderPass APIs which interpret "start"
inconsistently. A RenderPassCommands' life should be notStarted,
started, requestEnd, and end (which is equivalent to notStarted). When
someone calls onRenderPassFinished on a started renderpass, it does not
immediate endRenderPass, but it will set DIRTY_BIT_RENDER_PASS dirty bit
so that next draw call will trigger endRenderPass and start a new
renderPass. We do not have a name for this state, which adds some
confusion. This CL renames the stage between start and
onRenderPassFinished to be "active" renderpass, when you have
mRenderPassCommandBuffer pointer being valid and you can actively adding
draw commands into the renderPass. For this purpose, I haves renamed
hasStartedRenderPass to hasActiveRenderPass. This CL also simplifies
hasStartedRenderPass implementation to only check
mRenderPassCommandBuffer and turned mRenderPassCommands.started as
assertion. This CL also changes hasStartedRenderPassWithQueueSerial to
actually check mRenderPassCommands.started instead of being "active", so
that name reflects what it is actually checking. This CL also changed
hasStartedRenderPassWithCommands to hasActiveRenderPassWithCommands to
make name and implementation consistent. One added benefit of this is
that after this CL we now allow load/store optimization on a started but
inactive renderPass as well (for example glInvalidateFramebuffer call
after glFenceSync call, or invalidate after FBO blit as demonstrated by
MultisampleResolveTest.ResolveD32FSamples tests).
Bug: angleproject:7903
Bug: angleproject:7551
Change-Id: I8c8ec4c0d54b9ad0a9e373108dfce6b151c8fe0e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4119693
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
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>
|
|
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>
|
|
8e63c6e8
|
2022-07-25T15:10:11
|
|
Remove suppressions for tests which pass with Intel Mesa 20.0.8
Bug: angleproject:3616, angleproject:3614, angleproject:2782
Change-Id: I220d71593270164f77bda92f533608e431c6c9b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780159
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
|
|
89e38b57
|
2022-06-22T15:04:08
|
|
Refactor to use ANGLETest vs ANGLETestWithParam
Bug: angleproject:6747
Change-Id: I72ad52d0268eae0e1a401f12f3e94cc5efa402f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3719002
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
7c83a363
|
2022-05-16T22:22:44
|
|
Vulkan: Dynamic state for rasterizer discard enable
Interaction with primitives generated query are tested by those tests
added in
https://chromium-review.googlesource.com/c/angle/angle/+/2976181
Bug: angleproject:5906
Change-Id: I0ab9f54995504be770a93bf13337a5ffe20bf7eb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3651582
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
66dcca5e
|
2022-05-12T11:14:27
|
|
Vulkan: Dynamic state for depth test/write/op
Bug: angleproject:5906
Change-Id: Ie48a0780406c6dbbdd47639f2e185dc854879140
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3646429
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e9dc0f86
|
2022-05-10T12:44:28
|
|
Cleanup from glBlitFramebuffer() 3D texture fix.
Some minor refactoring.
Move skips to test expectations and add a bug ID.
Bug: angleproject:7291
Change-Id: I8d900a26508a28f6202a009c770cffb0e623dc5b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3638985
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
fcec6904
|
2022-04-13T14:18:06
|
|
Generate feature variable names from display names
The json file now only contains the feature display name. The variable
name is automaticaly derived.
For consistence with Chromium and other Chromium-based projects, the
display name is now always snake_case, and that's what's specified in
the json files. This also makes camelCase variable name generation
trivial (as opposed to the other way around).
Feature overrides now accept both snake_case and camelCase names to
ensure compatibility with existing scripts. This is done by removing _
and comparing override names with feature names in lower case.
Bug: angleproject:6435
Change-Id: I0b6ed2bbf5c312bc4f4be7b3c7d55dbaca2a9886
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3584630
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a0b5299b
|
2022-04-12T00:38:50
|
|
Vulkan: Fix resolve with subpass into smaller framebuffer
The condition to optimize resolve with subpass did not take into account
that the resolve area must match the render pass are, neither did it
disallow flipping and rotation.
Bug: angleproject:7196
Bug: chromium:1314383
Change-Id: I57e50da4d6e04dfebcce3c0a5061015e5ee8773b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3581055
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
797e627e
|
2022-04-08T22:49:51
|
|
Autogenerate list of features as enum
The WithX() and WithNoX() helpers are removed and replaced with enable()
and disable() member functions that take the name of the feature (as a
Feature::X enum constant). This has two benefits:
- Adding tests that override a feature no longer requires additional
helper functions to be written.
- There's no mistaking the feature name.
This change doesn't yet fix the main issue in anglebug.com/6435, but
does fix the following helpers using an old feature name (so they were
ineffective):
- WithMetalForcedBufferGPUStorage
- WithNoVulkanViewportFlip
A follow up would remove the old way of overriding features in tests and
replaces them with the new way.
Bug: angleproject:6435
Change-Id: Ida02b26ec72bc40d7a8938c76a93815bb903ca05
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3580982
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a947c5f5
|
2022-04-11T14:19:08
|
|
Skip BlitFramebufferTest.ScissoredMultisampleStencil
This test started flaking recently on Mac/NVIDIA. Suppress the
failures for now. Also update existing suppression to be in the main
test expectations file.
Bug: angleproject:7191
Bug: angleproject:3496
Change-Id: I54c4def7382bee4784dcfe8ffdc3c51db1cc91d5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3582638
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
02ad19e3
|
2022-02-07T13:46:46
|
|
Vulkan: Fix vkCmdResolveImage offsets
glBlitFramebuffer takes identical regions for src and dst when
resolving. vkCmdResolveImage should use the clipped area instead of
using the actual offsets passed to this function.
Bug: chromium:1292537
Change-Id: I13b91a4e14bdb3fcbf8f01edb36d7fb4110429ea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3444340
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
33427a4b
|
2022-01-31T12:07:43
|
|
Vulkan: Fix vkCmdResolveImage extents
The source framebuffer's extents were accidentally used instead of the
blit area extents.
Bug: chromium:1288020
Change-Id: Ib723db50d9687fee0453d027141a94ea26d8a4b8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3427561
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4572a176
|
2022-01-03T13:29:59
|
|
Add support for GL_MESA_framebuffer_flip_y 3/*
This is a third CL that adds tests that exercise
the extension in various use cases.
Bug: chromium:1231934
Change-Id: Iae3192cd0985150b6844a2855a9a048a54353655
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3365195
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Maksim Sisov <msisov@igalia.com>
|
|
4f42a4d3
|
2021-12-01T18:57:48
|
|
Add more support for GL_RGBX8_ANGLE
Update EquivalentBlitInternalFormat(), ValidReadPixelsFormatEnum(), and
ValidReadPixelsFormatType() to support GL_RGBX8_ANGLE.
Also update ANGLE_rgbx_internal_format.txt to indicate the new support
in glBlitFramebuffer() and glReadPixels() for GL_RGBX8_ANGLE.
Bug: angleproject:6690
Test: BlitFramebufferTestES31.BlitMultisampledRGBX8ToRGB8
Test: WebGL2CompatibilityTest.ReadPixelsRgbx8AngleUnsignedByte
Change-Id: I75b6d5cb46eebbc904b86cc8e6bd18aca5403684
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3312367
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
5862234e
|
2021-10-07T13:15:31
|
|
Remove old AMD/Windows/GLES expectation.
Bug: angleproject:2486
Change-Id: Ia7cb1195cabe79b0e93f2787ba627999636a2305
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212609
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
212f4592
|
2021-09-22T12:02:47
|
|
Enable direct-to-metal backend by default
We are switching over to Apple's direct-to-metal backend instead
of generating SPIRV in the metal backend. This CL enables the
direct-to-metal generation by default, but the SPIRV backend is
still accessible by overriding the feature directMetalGeneration.
This CL comes with a change in test expectations to catch new
failures and clean up newly passing tests.
Bug: angleproject:6080
Change-Id: I4b10ad93c641b88857079a08fb45d3dc575d71f1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3175664
Reviewed-by: Gregg Tavares <gman@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
58626b82
|
2021-10-04T13:01:17
|
|
Vulkan: Enable BlitFramebufferANGLETest tests
The following tests were disabled for the Vulkan backend, but appears to
now be working locally:
BlitFramebufferANGLETest.MultisampledBGRAToRGBA
BlitFramebufferANGLETest.MultisampledRGBAToBGRA
Bug: angleproject:4694
Test: BlitFramebufferANGLETest.MultisampledBGRAToRGBA
Test: BlitFramebufferANGLETest.MultisampledRGBAToBGRA
Change-Id: Icd88c484fbbbe65561634e97df43c51841d61c10
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3198402
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e70a1444
|
2021-08-05T12:49:21
|
|
Vulkan: Fix draw FBO1 followed by resolve FBO2
When syncing the framebuffer for blit/resolve, the render pass was not
closed. This would be done later when necessary, except that
onFramebufferChange called from FramebufferVk::syncState attempted to
adjust the render area of the render pass (as it considered it open). If
FBO2 is larger than FBO1, this would cause the render area of the
previous render pass to become larger than the framebuffer size.
This change makes sure that onFramebufferChange considers the render
pass closed no matter what.
Test is based on patch from steven@valvesoftware.com
Bug: angleproject:6244
Change-Id: Iaec04232cfd2af04ba2564fd2de1dd5f08a40df6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076620
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b202d5cf
|
2021-07-13T13:34:19
|
|
Suppress BlitFramebufferTest.MultisampleDepth on Metal
This test is failing on Intel as well, expand the suppression.
Bug: chromium:1228433
Bug: angleproject:5505
Change-Id: I98e240897b996d5d8d9a5977ef777f928b25c9dd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3024591
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
d33a2222
|
2021-04-26T16:56:15
|
|
Upstream Apple's direct-to-Metal backend: compile libANGLE.
This change is meant to merge the metal backend changes from Apple's
direct-to-Metal backend. Taken from Kyle Piddington's CL:
https://chromium-review.googlesource.com/c/angle/angle/+/2857366/
The goal of this CL is to merge the metal backend code in a state
that compiles, but not to switch the Metal backend over to using
the direct-to-metal backend yet.
Bug: angleproject:5505
Bug: angleproject:6127
Change-Id: If6783e06e0086b3a1dd25c6f53caca5cfc96cb86
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2950067
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
a34f668d
|
2021-07-09T10:55:48
|
|
Skip BlitWithDepthUserToDefault for Linux+Intel+OpenGL
The test BlitFramebufferANGLETest.BlitWithDepthUserToDefault/ES2_OpenGL
is failing on Linux+Intel. This CL skips the test to unblock the
vulkan-deps roll into Chromium.
Bug: angleproject:6154
Change-Id: I098622ca23b79027e6166d3308c3c41948eca285
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3018109
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
9f256d10
|
2021-07-07T02:14:13
|
|
D3D11: Fix incorrect bounds checking in Blit11
This could lead to blitting depthStencil buffer incorrectly.
Bug: angleproject:6140
Change-Id: I2c5786c0375f8e2fefe862da68929340844ce9ae
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3009736
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
bd797f75
|
2021-06-14T11:27:27
|
|
D3D11: Fix OOB write in Blit11.
This could happen for specific values of the 'dest' target.
Bug: chromium:1219082
Change-Id: Ic19a5dc4a95531f9513403ad9c97a4b4c5dc5a6f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2961070
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b574643e
|
2021-04-19T12:47:05
|
|
D3D11: Skip blits if there is no intersection of dest areas
Blit11 would clip the destination rectangle with the destination size
but ignore the result. gl::ClipRectangle returns false when the
rectangles do not intersect at all, indicating the blit can be skipped.
This could lead to an out-of-bounds write to the GPU memory for the
destination texture.
Mark ClipRectangle as nodiscard to prevent future issues.
Bug: chromium:1199402
Change-Id: I260e82d0917b8aa7e7887f2c9f7ed4b1a03ba785
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2836786
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
a6b16d29
|
2021-03-02T19:04:57
|
|
Suppress UNINSTANTIATED_PARAMETERIZED_TEST failures on Ozone
We only support ES2 on Ozone, so tests that depend on ES3 or ES31
support are not instantiated there.
Bug: chromium:1183147
Change-Id: Id58bcd9b44a5b9a70b5ae8115e27c44f5dc81226
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2726550
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
c03a4235
|
2021-02-20T16:14:37
|
|
Suppress UNINSTANTIATED_PARAMETERIZED_TEST failures on Nexus 5X
GTest complains that we don't run some tests on GLES backend.
Bug: chromium:1180570
Change-Id: I9427ac25c3b6f06f3c042caa3c0afc7000cf1599
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2710783
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
fb35201a
|
2020-12-22T13:14:41
|
|
GL: Expose NV_framebuffer_blit for ES2 contexts when available
ANGLE_framebuffer_blit is already exposed but has restrictions on
scaling/flipping and mismatched color buffer formats. When
NV_framebuffer_blit, EXT_framebuffer_blit, or an ES3 context is
available we can expose a less restrictive BlitFramebuffer.
Bug: angleproject:5474
Bug: chromium:1157057
Change-Id: I916ee39c8d6120216f91461080eb3ee9ca777e29
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2601165
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cde0e3ab
|
2020-12-22T16:38:47
|
|
Don't use optional BGRA_EXT by default
It's not currently exposed on iOS.
Bug: angleproject:5417
Change-Id: I2564d3363f8f8bddad4da7d8a9d7dac9bea15897
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2600454
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
|
|
10b22c11
|
2020-11-24T15:28:05
|
|
Skip failing tests on Win AMD RX 5500 XT
BlitFramebufferANGLETest.BlitStencil
ClearTestES3.ClearMaxAttachments
RobustResourceInitTest.MaskedDepthClear
RobustResourceInitTestES3.InitializeMultisampledDepthRenderbufferAfterCopyTextureCHROMIUM
RobustResourceInitTestES3.MaskedDepthClearBuffer
RobustResourceInitTestES3.MultisampledDepthInitializedCorrectly
RobustResourceInitTestES3.TextureInit_IntRGB8
RobustResourceInitTestES3.TextureInit_UIntRGB8
VertexAttributeTest.DrawArraysWithShortBufferOffsetNotMultipleOf4
Bug: chromium:1004356, angleproject:5396, angleproject:5397
Bug: angleproject:5398, angleproject:5399
Change-Id: I5a6f16b38696b7cf3bb007363160d2ecbb06ac9a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2558932
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
b10a0dfc
|
2020-11-12T14:51:05
|
|
Fix flip info of colorBlit with pre-rotation.
Get wrong colorBlit results on android if there is
flip operation added by glBlitFramebuffer API.
Fix the implementation and add related end2end tests.
Bug: angleproject:5044
Change-Id: I797f8858b3943b5effe27261e954ca1405960ef0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2534210
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8a275449
|
2020-10-25T03:22:10
|
|
Metal: Add ES3_METAL to ANGLE_ALL_TEST_PLATFORMS_ES3
Bug: angleproject:2634
Change-Id: Iacc3aaf17565c7b16879897db4b9dac16826d829
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2494526
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b0db7cca
|
2020-10-23T17:37:41
|
|
Vulkan: Initial emulated prerotation support
This is currently only supported for end2end tests (those which use
ANGLETestBase, excluding those that use WithNoFixture) and Vulkan. Use
WithEmulatedPreoration(*_VULKAN(), degree) where degree is either 90,
180 or 270.
With emulated prerotation, the window dimensions are physically swapped
if 90 and 270 degrees, while the width and height is still reported as
requested by the test. In the Vulkan backend, the width and height are
swapped after getting queried from the surface, and prerotation is
assumed.
Bug: angleproject:4901
Change-Id: I294436be4c7015d2a63463c4d61de7b67f38c95d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2495544
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9a47fe71
|
2020-10-26T10:43:45
|
|
Use 4 colors in Checkered test shader
This shader previously output red and green in a checkered pattern (with
four regions). This makes it hard to verify that the output is not
rotated / flipped.
This change makes the shader output:
+--------+--------+
| red | blue |
+--------+--------+
| green | yellow |
+--------+--------+
Bug: angleproject:4901
Change-Id: I02723306dec17d1419f11d9f76e96b1cefc3bf06
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2498261
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1c881dad
|
2020-09-27T01:35:31
|
|
Metal: Implement glRenderbufferStorageMultisample(ANGLE)
Bug: angleproject:2634
Change-Id: Ia4dd477cfbad298994036705b43f3a5877e3c9cc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2433330
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b3c7d39a
|
2020-09-03T15:51:02
|
|
Align the sample position in blitResolveStencil compute shader
The input coordinates of blitResolveStencil compute shader start
from 0,we need to align the sample position to start from 0 if x/y
is flipped.
Test: dEQP-GLES3.functional.fbo.invalidate.*.unbind_blit_msaa_*
Bug: b/159995959
Change-Id: If0c9f5b7cacddbe1a2d7062469a757a63bcc1378
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2392162
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a1d5ebbf
|
2020-08-31T17:29:49
|
|
Suppress flaky failure on Win Intel OpenGL
TBR=syoussefi@chromium.org
Bug: angleproject:5003
Change-Id: I4bc2c963d69ba529d62e01c21080540e54b46796
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2385497
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
a0d048a4
|
2020-08-27T12:03:02
|
|
Vulkan: Fool-proof usage of GL and VK level indices
Using boxed types, this change allows the compiler to catch errors when
a level index in one space (e.g. GL) is mistakenly used in another space
(e.g. VK).
This change uncovered a number of bugs due to such mistakes which are
fixed.
Mistakes are still possible when the index is explicitly extracted, for
example to be given to a Vulkan command, or when it's created, for
example when retrieved from gl::ImageIndex::getLevelIndex. Future work
can include using gl::LevelIndex in gl::ImageIndex directly to alleviate
the latter at least.
Bug: angleproject:4880
Change-Id: I6427c68c3bc096f771402f51c8554d8171758aa9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2380232
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
4f247baf
|
2020-08-23T22:58:56
|
|
Metal: Implement EXT_draw_buffers & ANGLE_framebuffer_blit
Bug: angleproject:2634
Change-Id: I769ca7e113e660870e9b31dafb706c313db8ac24
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2332146
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
925d1e7b
|
2020-06-05T14:37:03
|
|
Skip MultisampledBGRAToRGBA, MultisampledRGBAToBGRA tests on Vulkan
VVL report VUID-vkCmdResolveImage-srcImage-01386 in these two.
Bug: angleproject:4694
Change-Id: I4a4af598cfa77af18ccf6e322cde92749cb9ad70
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2233401
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
2d5da029
|
2020-04-15T17:15:37
|
|
Minor angle_end2end_tests cleanups.
Minor refactoring and call consolidation. Was done while working on
deferring clears in the Vulkan back-end.
Bug: angleproject:4517
Change-Id: I60d80d4f9646c990c4cb8bbc349fc0051389bf02
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2151171
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
1a01b4b3
|
2019-11-11T16:41:07
|
|
Refactor end2end test macros
This is a foundational CL to enabling the end2end tests on swiftshader.
Refactored infrastructure with new ANGLE_INSTANTIATE_TEST_ES*
macros that will run tests over all various combinations of all
platforms for different ES versions.
Just skipping failing tests initially to get the refactor landed.
Bug: angleproject:4081
Bug: angleproject:4092
Change-Id: I017f6c3267179e49b6ae08cc7488096b423dcdb5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1904635
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
0716ce0a
|
2019-07-22T15:20:47
|
|
Re-add case to blitframebuffer workaround where src is outside of bounds.
On Mac, blitFramebuffer calls fail if the source region is not enclosed
by the framebuffer. In this case, we must naively clip the source region
and adjust the dest region accordingly. This is slightly different
behavior and may cause issues with scaling so we use a separate
workaround.
Also, Windows NVIDIA has a driver bug that affects Vulkan device
creation after blitting large textures, so it should be included in the
original workaround.
This CL cleans up the workaround to use more helpers from ANGLE and to
generally improve readability.
Bug: chromium:830046
Change-Id: I50bd97449725b738036e6bd3af82362020d7eda8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1713090
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f857b501
|
2019-06-26T20:15:46
|
|
Skip end2end tests failing on Intel Ubuntu 19.04 Mesa 19.0.2
Failing:
MaskedScissoredClearTest.Test/ES2_OpenGL_clear_cd
MaskedScissoredClearTest.Test/ES2_OpenGL_clear_cd_mask_c
MaskedScissoredClearTest.Test/ES2_OpenGL_clear_cds
MaskedScissoredClearTest.Test/ES2_OpenGL_clear_cds_mask_c
MaskedScissoredClearTest.Test/ES2_OpenGL_clear_cds_mask_cs
MaskedScissoredClearTest.Test/ES2_OpenGL_clear_cds_mask_s
MaskedScissoredClearTest.Test/ES2_OpenGL_clear_d
MaskedScissoredClearTest.Test/ES2_OpenGL_clear_ds
MaskedScissoredClearTest.Test/ES2_OpenGL_clear_ds_mask_s
MaskedScissoredClearTest.Test/ES3_OpenGL_clear_cd
MaskedScissoredClearTest.Test/ES3_OpenGL_clear_cd_mask_c
MaskedScissoredClearTest.Test/ES3_OpenGL_clear_cds
MaskedScissoredClearTest.Test/ES3_OpenGL_clear_cds_mask_c
MaskedScissoredClearTest.Test/ES3_OpenGL_clear_cds_mask_cs
MaskedScissoredClearTest.Test/ES3_OpenGL_clear_cds_mask_s
MaskedScissoredClearTest.Test/ES3_OpenGL_clear_d
MaskedScissoredClearTest.Test/ES3_OpenGL_clear_ds
MaskedScissoredClearTest.Test/ES3_OpenGL_clear_ds_mask_s
BlitFramebufferTest.MultisampleDepthClear/ES3_OpenGL
DrawBuffersTest.FirstHalfNULL/ES2_Vulkan
DrawBuffersTest.Gaps/ES2_Vulkan
WebGLCompatibilityTest.DrawBuffers/ES2_Vulkan
Crashing:
Texture3DTestES3.DrawWithLevelsOutsideRangeWithInconsistentDimensions/ES3_OpenGL
Bug: angleproject:2782, angleproject:3614, angleproject:3616
Change-Id: Ib9bc72d8fd050ba1db1269d5fb3b38e80636211e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1679630
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
b407e1a0
|
2019-06-03T17:15:51
|
|
Vulkan: implement ES3 blit
Augment the resolve shaders to be able to stretch and blit too. The
UtilsVk resolve function is accordingly expanded to include blit.
Bug: angleproject:3200
Change-Id: I30b172a5e388089735ab494f55cbfdc2781a8bf9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1635753
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
172e5d37
|
2019-05-29T10:00:50
|
|
Vulkan: Implement universal stencil resolve
This is done by resolving stencil into a temporary buffer and copying
that into the stencil aspect of the resolved image.
Bug: angleproject:3200
Change-Id: I29111b44db2cb093acc4544034fbe61178f055a1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1635709
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
f2a1c384
|
2019-05-21T16:32:49
|
|
Vulkan: Implement multisampled framebuffers
Simultaneously implements ANGLE_framebuffer_multisample and ES3
multisampled framebuffers.
Additionally, implements ES3 framebuffer blitting where multisampled
framebuffers are involved.
Bug: angleproject:3203
Bug: angleproject:3204
Bug: angleproject:3200
Change-Id: I5694a30f71168e807688a9568e3742b81d907918
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1622667
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
5cbaa3f8
|
2019-05-07T15:49:22
|
|
Don't inherit ANGLETest SetUp and TearDown.
Instead of inheriting from testing::Test's SetUp and TearDown we add
new methods 'testSetUp' and 'testTearDown'. This helps prevent a common
error of forgetting to call the base class method.
Also add a check in the ANGLETest destructor that SetUp and TearDown
have been called.
Bug: angleproject:3393
Change-Id: Iab211305cc06ffea9ca649e864ddc9b180f2cba0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1593960
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ddc4d33a
|
2019-05-01T15:11:46
|
|
Remove several underused platform configs.
* Removes D3D11 Warp and Reference configs from tests.
* Removes several permutations of OpenGL back-end specific configs.
* Removes FL 9_3 since it is no longer supported.
* Removes present path "Copy" since it's redundant with normal D3D11.
Reduces number of configs from over 60 to 25.
Bug: angleproject:3393
Change-Id: Ia5a23de3c4865b17ee50673a4066757b901a4b5a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1574675
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b8149075
|
2019-04-30T16:14:44
|
|
Clean up ANGLE test extension functions.
None of these functions needed to be member functions. Also make the
naming more consistent.
Bug: angleproject:3393
Change-Id: I7aafe2269a48af703a87bd9a8cf4cfab9e177dd3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1574673
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
35cd7332
|
2018-12-02T12:03:33
|
|
Refactor test shader style.
This change enforces a lot more consistency. We pass const char * to
the Compile functions instead of std::string. Also fixes the
indentation of C++11 block comments to be more consistent.
Bug: angleproject:2995
Change-Id: Id6e5ea94055d8cbd420df4ea2e81b2d96cb5ce78
Reviewed-on: https://chromium-review.googlesource.com/c/1357103
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
221fa261
|
2018-08-23T10:12:09
|
|
Re-enable BlitFramebuffer tests
Accidentally disabled in 265811130, which intended to disable tests
requiring GL_ANGLE_framebuffer_blit, but also disabled glBlitFramebuffer
tests. glBlitFramebuffer is core, but was conditioned to
EXT_framebuffer_blit.
Bug: angleproject:2773
Change-Id: I0468af8874dc8676a4eb6214b111c08aadc0e2fc
Reviewed-on: https://chromium-review.googlesource.com/1186543
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ddd6e874
|
2018-07-24T10:49:06
|
|
Vulkan: Suppress 3 failing blit tests on Pixel 2.
Bug: angleproject:2743
Change-Id: I1693a5b301fa10a92263aab0cec14829851fe21f
Reviewed-on: https://chromium-review.googlesource.com/1148461
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b436aac3
|
2018-07-18T17:23:48
|
|
Vulkan: Support inverted blit for depth/stencil.
Depth/stencil formats are packed tightly when reading back Images with
vkCmdCopyImageToBuffer. Same for the reverse. Thus we need to take this
into account when doing our blitWithReadback implementation.
This splits the depth/stencil blit into two separate steps. Fixes all
the remaining blit failures in BlitFramebufferANGLETest.
Bug: angleproject:2673
Change-Id: Ie9f43f782a82b5a0746d00122b24f81088d57c4c
Reviewed-on: https://chromium-review.googlesource.com/1140740
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ddd8eaa8
|
2018-07-16T14:28:58
|
|
Suppress reverse blits tests on Qualcomm/Vulkan
BUG=angleproject:2732
Change-Id: I1fa3c46654c7e6d446ec3bb43eb3a6c01a15e8f9
Reviewed-on: https://chromium-review.googlesource.com/1138234
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
f786b706
|
2018-07-10T11:01:43
|
|
Vulkan: Enable viewport Y flipping
Bug: angleproject:2728
Bug: angleproject:2726
Bug: angleproject:2673
Bug: angleproject:2729
Change-Id: Iad657a116bf9fcd06c3d4cf1918aaacba4f1fd38
Reviewed-on: https://chromium-review.googlesource.com/1131515
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
1617e69e
|
2018-07-11T11:08:19
|
|
Vulkan: Implement depth/stencil blit with flip of the viewport
- This makes all end2end tests pass successfully on Win/Nvidia
with viewport flipping enabled.
Bug: angleproject:2673
Change-Id: I031c0a0f5fb0aede58b59479e57c2c127bcb964c
Reviewed-on: https://chromium-review.googlesource.com/1133703
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
5c8113d3
|
2018-07-10T15:03:01
|
|
Vulkan/D3D11: Improve blit framebuffer tests and fix bug in D3D11
- Improving the tests revealed a bug in D3D 11 Fast Path rendering.
- These changes here are preliminary to implementing the blit for
depth/stencil in Vulkan when using the viewport flipping.
Bug: angleproject:2673
Bug: angleproject:2719
Change-Id: I6d55084e559d3110c8eeb0e7acb4e6fb09b6c1b5
Reviewed-on: https://chromium-review.googlesource.com/1132125
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
82eda93f
|
2018-07-09T15:10:22
|
|
Vulkan: Fix for framebuffer blit and Y flip
- The depth/stencil related tests are now disabled since I found out
that the tests are too simple to find issues if there is a flip since
they use only a single color and no gradient / checked board.
This is left to implement in the Vulkan backend later on.
Bug: angleproject:2673
Change-Id: I8f7091d4b9c8c3bec0353ebab28304b6209ea350
Reviewed-on: https://chromium-review.googlesource.com/1129629
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
be30c4fb
|
2018-06-21T09:43:08
|
|
Vulkan: Framebuffer blit support for depth/stencil cases
Bug: angleproject:2643
Change-Id: Ib50e4051f5b3965c2a752cf2cd45d3470312cdcf
Reviewed-on: https://chromium-review.googlesource.com/1115370
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
26581113
|
2018-06-21T09:43:08
|
|
Vulkan: Support for framebuffer blit extension
- No support for formats that do not support vulkan blit.
- The depth/stencil format used in the tests do not support
blit, so currently no tests validate the depth/stencil blits.
Bug: angleproject:2643
Change-Id: I89a0d5b102396d8254fe272681326615bd6800ed
Reviewed-on: https://chromium-review.googlesource.com/1111611
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
af883628
|
2018-06-08T15:57:31
|
|
Vulkan: enable as many end2end tests as possible
Bug: angleproject:2615
Change-Id: I918cc18984b2e5b22b5e13398355a2fd60e4eb00
Reviewed-on: https://chromium-review.googlesource.com/1093564
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d7b56642
|
2018-04-27T16:59:36
|
|
Fix blit rect calculations on D3D11 backend
The D3D11 backend used to calculate the blit areas incorrectly when
the source blit area provided via the API stretched outside the source
framebuffer in all directions.
This is now fixed and the code is also simplified.
BUG=angleproject:2521
TEST=angle_end2end_tests
Change-Id: I46d5de27464a8455b3956c0be598f75550ca1616
Reviewed-on: https://chromium-review.googlesource.com/1032787
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
9aef81c7
|
2018-04-30T14:56:15
|
|
Validate blitFramebuffer for overflows on all platforms
We can validate to avoid triggering driver issues even if the native
GLES spec is not telling us to.
This will fix WebGL in Chromium when it's being run with the
--use-cmd-decoder=validating --use-angle=gl config.
BUG=chromium:830046
TEST=WebGL conformance tests
Change-Id: I2d61182cb6cbe46b52e1d9b7ed6b4035defee082
Reviewed-on: https://chromium-review.googlesource.com/1033743
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
f1bcd017
|
2018-04-27T14:21:55
|
|
Supress failures in BlitFramebufferTest.MultisampleDepth on Mac OpenGL
BUG=837717
Change-Id: I1ac659b18bd9aef2f24f798d23f49d1efbb81938
Reviewed-on: https://chromium-review.googlesource.com/1033478
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
de279590
|
2018-04-26T12:25:13
|
|
Add test coverage for BlitGL
Scaling and flipping of the framebuffer with blitFramebuffer are now
covered by end2end_tests. The test configurations are set so that the
BlitGL shader-based blit is also covered.
The tests reveal a bug in the D3D11 backend implementation of
blitFramebuffer when using an oversized source area.
BUG=angleproject:2486
BUG=angleproject:2519
BUG=angleproject:2521
TEST=angle_end2end_tests
Change-Id: Ica48e564a5b4180241ec4c4c6be06c58cc6dc29b
Reviewed-on: https://chromium-review.googlesource.com/1030171
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
5804dc8e
|
2018-04-13T14:11:46
|
|
Refactor GL tests to use a shader library
Instead of having the same simple shaders repeated over and over in
the test code, reuse a single shader library.
BUG=angleproject:2474
TEST=angle_end2end_tests
Change-Id: I13f8ca8c0125e6d30f1761639bf8c3f69e0e77d2
Reviewed-on: https://chromium-review.googlesource.com/1012078
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
9550c603
|
2018-02-13T14:47:05
|
|
Code refactoring for end2end tests.
This change:
1) uses the new style ANGLE_SKIP_TEST_IF to skip tests.
2) replaces compile-time definition for OSX to skip tests by run-time
function IsOSX() to skip tests, in order to align with ANGLE_SKIP_TEST_IF.
3) fixes a couple of typos.
BUG=angleproject:2005
Change-Id: I5af77d82257536b9eb79e26afa502f5b91ff6d31
Reviewed-on: https://chromium-review.googlesource.com/915861
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
a20af6d7
|
2017-09-18T13:32:29
|
|
Use C++11 raw string literals instead of SHADER_SOURCE macro
This is better in many ways:
1. It doesn't confuse clang format
2. \n doesn't need to be included after preprocessor directives like
the version directive.
3. It's using built-in functionality instead of something custom.
Raw string literals should be the preferred way to include shader
source in C++ files going forward.
BUG=angleproject:2157
TEST=angle_end2end_tests
Change-Id: I8b236a6e2d5c25d920297e5bc5b5b143eddeba1f
Reviewed-on: https://chromium-review.googlesource.com/671046
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
4dac6798
|
2017-09-12T22:22:35
|
|
Lift AMD blit suppressions.
BUG=angleproject:1474
Change-Id: Ie80385a9c89453694f1411e49dba7b298c3a1a6c
Reviewed-on: https://chromium-review.googlesource.com/664478
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6938285b
|
2017-07-21T16:38:44
|
|
Fix BlitFramebuffer validation for BGRA sources and targets.
It is legal to blit between GL_RGBA8 and GL_BGRA8 sources and
destinations when resolving multisampled renderbuffers. Expand
BlitFramebuffer's validation to handle this case.
Query GL_MAX_VERTEX_OUTPUT_COMPONENTS on the Core Profile to work
around an error generated on macOS when querying
GL_MAX_VARYING_COMPONENTS.
Expand the BlitFramebuffer tests to cover these cases and start
running them on the OpenGL backend.
Fix detectition of multisampled D3D11 rendertargets when the sample count
is 1.
BUG=angleproject:891
Change-Id: Ief5531756651caa66f612e647d3d5c05c8c51ff5
Reviewed-on: https://chromium-review.googlesource.com/587459
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
26cf35a8
|
2017-07-26T11:01:02
|
|
Revert "Fix BlitFramebuffer validation for BGRA sources and targets."
This reverts commit 17d270311efcd8c72f251a67e726518278e81c26.
Reason for revert:
- New test fails on NVIDIA and AMD on Windows when using the backbuffer FAST_PATH.
- SetUp code ASSERT_GL_NO_ERROR (line 269) but a GL error happens on all Windows and Linux Intel OpenGL.
Original change's description:
> Fix BlitFramebuffer validation for BGRA sources and targets.
>
> It is legal to blit between GL_RGBA8 and GL_BGRA8 sources and
> destinations when resolving multisampled renderbuffers. Expand
> BlitFramebuffer's validation to handle this case.
>
> Work around a bug in macOS' OpenGL driver querying the number of
> samples for GL_BGRA8.
>
> Query GL_MAX_VERTEX_OUTPUT_COMPONENTS on the Core Profile to work
> around an error generated on macOS when querying
> GL_MAX_VARYING_COMPONENTS.
>
> Expand the BlitFramebuffer tests to cover these cases and start
> running them on the OpenGL backend.
>
> BUG=angleproject:891
>
> Change-Id: I4829585d2b6428ce0bc7509c4734d33709a0930b
> Reviewed-on: https://chromium-review.googlesource.com/582268
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
TBR=geofflang@chromium.org,kbr@chromium.org
Change-Id: I220bc482194cf7fad5e7e732a6d043ce0d504d79
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:891
Reviewed-on: https://chromium-review.googlesource.com/586428
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
17d27031
|
2017-07-21T16:38:44
|
|
Fix BlitFramebuffer validation for BGRA sources and targets.
It is legal to blit between GL_RGBA8 and GL_BGRA8 sources and
destinations when resolving multisampled renderbuffers. Expand
BlitFramebuffer's validation to handle this case.
Work around a bug in macOS' OpenGL driver querying the number of
samples for GL_BGRA8.
Query GL_MAX_VERTEX_OUTPUT_COMPONENTS on the Core Profile to work
around an error generated on macOS when querying
GL_MAX_VARYING_COMPONENTS.
Expand the BlitFramebuffer tests to cover these cases and start
running them on the OpenGL backend.
BUG=angleproject:891
Change-Id: I4829585d2b6428ce0bc7509c4734d33709a0930b
Reviewed-on: https://chromium-review.googlesource.com/582268
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c4e93668
|
2017-05-01T10:45:59
|
|
Update end2end tests to function without EXT_texture_storage.
This also exposed an issue in our glTexSubImage2D validation where the
sized format would be used for the texture support check when the unsized
format was provided. The GL_ALPHA32F format is not valid unless
EXT_texture_storage is present but using GL_ALPHA + GL_FLOAT is valid.
BUG=angleproject:1958
Change-Id: Ice0b7549c39559990942176481c5175df17aaf92
Reviewed-on: https://chromium-review.googlesource.com/491246
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
66a41a28
|
2016-12-15T16:45:05
|
|
Generate errors when read buffers are missing in BlitFramebuffer.
The corresponding gl_tests has been updated too.
BUG=672719
Change-Id: Ief37bc397f7aa065bf99d6ebad0a1b50b1917dac
Reviewed-on: https://chromium-review.googlesource.com/420469
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1200c41b
|
2016-08-16T14:09:14
|
|
Suppress two new AMD failures.
These failures were exposed with the new R7 240 card.
BUG=chromium:637037
Change-Id: I1fe5add2fc08d5c93e338250efb2af62712d0e53
Reviewed-on: https://chromium-review.googlesource.com/371318
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
196ca36c
|
2016-07-12T10:54:04
|
|
D3D11: Implement multisample depth resolve.
This uses a pretty slow path with readback to the CPU. It should be
possible to use SV_Depth in HLSL to resolve without a readback, but
that will be left for a future optimization.
Enables the WebGL 2 tests gles3/fbomultisample and fboinvalidate/sub.
BUG=angleproject:1246
Change-Id: Id67178b0f6374cf53e4e107428637546ecca4124
Reviewed-on: https://chromium-review.googlesource.com/359956
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
78a9c733
|
2016-07-15T11:22:43
|
|
D3D11: Implement multisampled stencil resolve.
This implements a fairly slow path with readback for stencil blits,
and depth/stencil resolve. In a subsequent patch I'll implement the
depth blits.
BUG=angleproject:1246
Change-Id: I04151d1f49ca404d858172dff8286608eae29864
Reviewed-on: https://chromium-review.googlesource.com/359955
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
518b9fab
|
2016-03-02T11:26:02
|
|
Suppress some failing end2end_tests on Intel.
BUG=589851
Change-Id: Ia580cee30e6842aaddb4683025f425166f0f6120
Reviewed-on: https://chromium-review.googlesource.com/329735
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f09bf669
|
2016-03-02T11:26:01
|
|
Revert "Suppress some failing end2end_tests on Intel."
This reverts commit 7208f6994cf7d810c2226965362aad43d2a66f53.
Still some failures on Intel, requires a slightly different solution.
BUG=589851
Change-Id: I6ac6599249e9e0f6319c917e04734cd48ca9274d
Reviewed-on: https://chromium-review.googlesource.com/329734
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7208f699
|
2016-02-29T10:47:35
|
|
Suppress some failing end2end_tests on Intel.
BUG=589851
Change-Id: I91588014784a8a9b75389aeb596923458c30d80a
Reviewed-on: https://chromium-review.googlesource.com/329427
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2a63b3f8
|
2016-02-08T12:29:08
|
|
Re-land "Implement EGL_experimental_present_path_angle"
- Re-land with clang fix.
This allows ANGLE to render directly onto a D3D swapchain in the correct
orientation when using the D3D11 renderer.
The trick is to add an extra uniform to each shader which takes either
the value +1.0 or -1.0. When rendering to a texture, ANGLE sets this
value to -1.0. When rendering to the default framebuffer, ANGLE sets
this value to +1.0. ANGLE multiplies vertex positions by this value in
the VS to invert rendering when appropriate. It also corrects other
state (e.g. viewport/scissor rect) and shader built-in values
(e.g. gl_FragCoord).
This saves a substantial amount of GPU time and lowers power
consumption. For example, the old method (where ANGLE renders all
content onto an offscreen texture, and then copies/inverts this onto the
swapchain at eglSwapBuffers() time) uses about 20% of the GPU each frame
on a Lumia 630.
Verification:
+ dEQP GL ES2 tests pass when "present path fast" is enabled
+ all ANGLE_end2end_tests pass when "present path fast" is enabled
BUG=angleproject:1219
Change-Id: I56b339897828753a616d7bae837a2f354dba9c63
Reviewed-on: https://chromium-review.googlesource.com/326730
Tryjob-Request: Austin Kinross <aukinros@microsoft.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d1c46228
|
2016-02-08T14:51:18
|
|
Revert "Implement EGL_experimental_present_path_angle"
Compile failure on Clang/Win:
The reason for reverting is: FAILED: ninja -t msvc -e environment.x86 --
"..\..\third_party/llvm-build/Release+Asserts/bin/clang-cl" -m32 /nologo
/showIncludes /FC
@obj\third_party\angle\src\tests\egl_tests\angle_end2end_tests.EGLPresentPathD3D11Test.obj.rsp
/c ..\..\third_party\angle\src\tests\egl_tests\EGLPresentPathD3D11Test.cpp
/Foobj\third_party\angle\src\tests\egl_tests\angle_end2end_tests.EGLPresentPathD3D11Test.obj
/Fdobj\gpu\angle_end2end_tests.cc.pdb
In file included from
..\..\third_party\angle\src\tests\egl_tests\EGLPresentPathD3D11Test.cpp:7:
In file included from
..\..\third_party\angle\src\tests\test_utils/ANGLETest.h:13:
..\..\testing\gtest\include\gtest/gtest.h(1392,16) : error: comparison of
integers of different signs: 'const int' and 'const unsigned int'
[-Werror,-Wsign-compare]
if (expected == actual) {
~~~~~~~~ ^ ~~~~~~
..\..\testing\gtest\include\gtest/gtest.h(1422,12) : note: in instantiation of
function template specialization 'testing::internal::CmpHelperEQ<int, unsigned
int>' requested here
return CmpHelperEQ(expected_expression, actual_expression, expected,
^
..\..\third_party\angle\src\tests\egl_tests\EGLPresentPathD3D11Test.cpp(281,9) :
note: in instantiation of function template specialization
'testing::internal::EqHelper<false>::Compare<int, unsigned int>' requested here
ASSERT_EQ(mWindowWidth * 4, mappedSubresource.RowPitch);
^
..\..\testing\gtest\include\gtest/gtest.h(1960,32) : note: expanded from macro
'ASSERT_EQ'
# define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2)
^
..\..\testing\gtest\include\gtest/gtest.h(1943,67) : note: expanded from macro
'GTEST_ASSERT_EQ'
EqHelper<GTEST_IS_NULL_LITERAL_(expected)>::Compare, \
^
BUG=angleproject:1219
This reverts commit 6b3c1db5170450bbc4946d8f18ba0d8619da43a0.
Change-Id: Ia67ab82dd13295dc03235d57fa417c73f20a49e6
Reviewed-on: https://chromium-review.googlesource.com/326680
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6b3c1db5
|
2015-12-18T14:01:46
|
|
Implement EGL_experimental_present_path_angle
This allows ANGLE to render directly onto a D3D swapchain in the correct
orientation when using the D3D11 renderer.
The trick is to add an extra uniform to each shader which takes either
the value +1.0 or -1.0. When rendering to a texture, ANGLE sets this
value to -1.0. When rendering to the default framebuffer, ANGLE sets
this value to +1.0. ANGLE multiplies vertex positions by this value in
the VS to invert rendering when appropriate. It also corrects other
state (e.g. viewport/scissor rect) and shader built-in values
(e.g. gl_FragCoord).
This saves a substantial amount of GPU time and lowers power
consumption. For example, the old method (where ANGLE renders all
content onto an offscreen texture, and then copies/inverts this onto the
swapchain at eglSwapBuffers() time) uses about 20% of the GPU each frame
on a Lumia 630.
Verification:
+ dEQP GL ES2 tests pass when "present path fast" is enabled
+ all ANGLE_end2end_tests pass when "present path fast" is enabled
BUG=angleproject:1219
Change-Id: Ib6eeea46bafa6ebce4adada0ae9db3a433b8fc4c
Reviewed-on: https://chromium-review.googlesource.com/321360
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tryjob-Request: Austin Kinross <aukinros@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
e0cc2a4a
|
2016-01-20T10:58:17
|
|
Enable all angle_end2end_tests targeting OpenGL and OpenGL ES backends.
Added failure supressions and filed bugs for failing tests.
BUG=angleproject:1145
BUG=angleproject:1289
BUG=angleproject:1291
BUG=angleproject:1292
BUG=angleproject:1293
BUG=angleproject:1296
Change-Id: Ida78ba855500fe8a6ce6154d43ee01520330e3b1
Reviewed-on: https://chromium-review.googlesource.com/322695
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
322653bf
|
2015-06-17T18:33:56
|
|
Fix Chromium build of angle_end2end_tests
BUG=angleproject:892
Change-Id: I9922046fc9e4d82d7034405f5952263f982c6529
Reviewed-on: https://chromium-review.googlesource.com/278159
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|