|
e8789a53
|
2020-07-29T12:01:49
|
|
Vulkan: Don't always end the render pass when updating the scissor
We don't always need to end the render pass when updating the scissor,
since it will be ended later when necessary.
This change is in preparation for optimizing resolving multisample
images with glBlit, since the render pass needs to be updated before
it's ended.
Bug: angleproject:4753
Test: CQ
Change-Id: Ie657587ca9f4461dcc03f0f9c251ac2c17398f5b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2327334
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
9a9ef0ae
|
2020-07-15T16:50:32
|
|
Vulkan: Fix RTs attached to textures with non-0 mip
Cleared confusion between GL level indices and VK level indices by
adding the corresponding suffix to variables and function arguments. A
handful of places that sent one index and expected the other are fixed.
A couple more places needed this adjustment that were missed in the
first CL. Also included a test to provoke those situations.
The conversion between the two is given by:
levelIndexGL = levelIndexVk + baseLevel;
Bug: angleproject:4695
Change-Id: I3b8e5699abee1b011e52b666e6e245f44cb8ad6f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2302549
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
349b661d
|
2020-07-08T12:50:00
|
|
Metal: fix max point size and RGB565 renderbuffer bug.
- Max point size is set to 64, since this is the max size observed. It
is not 511 as
https://developer.apple.com/metal/Metal-Feature-Set-Tables.pdf claims.
- RGB565 is emulated on macOS by RGBA, needs to disable alpha write for
this format. This was already done for TextureMtl, but wasn't for
RenderBufferMtl.
- Also enable true non-power-of-two textures support (OES_texture_npot).
This was technically already supported, just that the extension wasn't
advertised yet.
- New Test: FramebufferFormatsTest.RGB565Renderbuffer
Bug: angleproject:4816
Bug: angleproject:2634
Change-Id: Ie7e3efb4cb29bb9a3fd706c26e2b50b42ff3f6be
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2281797
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
95bfb3e5
|
2020-07-08T23:07:48
|
|
Vulkan: Fix resolve draw path
If the draw path is taken for resolve, the internal shader previously
calculated (1+sum(sample.a))/sampleCount instead of
sum(sample.a)/sampleCount. Additionally, due to a typo, the result was
rounded.
This change also fixes a number of off-by-one errors when calculating
src/dst offsets in blit/resolve path.
Tests are added to resolve from default to FBO and vice versa to
exercise the draw path which was otherwise never invoked for color
buffers.
Bug: angleproject:4746
BUg: angleproject:4092
Change-Id: I4b9c181339b89af44b27d61d27a6b3d88cde2eea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2288224
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
0bd0a913
|
2020-06-12T15:24:55
|
|
Skip FramebufferTest_ES3. TextureAttachmentMipLevelsReadBack on Mac ASAN.
Reporting out-of-range accesses in the OpenGL driver.
Bug: angleproject:4737
Tbr: syoussefi@chromium.org
Change-Id: Ib2598ba569c395ec39687fd1395149be5110f37f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2243757
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
3d2de99e
|
2020-06-09T01:14:42
|
|
Vulkan: Fix RTs attached to textures with non-0 mip
Cleared confusion between GL level indices and VK level indices by
adding the corresponding suffix to variables and function arguments. A
handful of places that sent one index and expected the other are fixed.
The conversion between the two is given by:
levelIndexGL = levelIndexVk + baseLevel;
Bug: angleproject:4695
Change-Id: I84ecbaf867d00a40fb39b6db7ad79658016f4d9a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2235362
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
dbb18b53
|
2020-06-05T15:23:17
|
|
Add texture base-level related tests
Bug: angleproject:4695
Bug: angleproject:4696
Bug: angleproject:4698
Bug: angleproject:4699
Bug: angleproject:4701
Change-Id: Ia49e2100851c029b1ae05bc1398528170d71c3cb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2233402
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
98865915
|
2020-06-02T14:56:24
|
|
No-op incomplete framebuffer invalidation.
It's always legal in GL to no-op framebuffer invalidation. When the
FBO is incomplete we can't pull RTs safely so no-oping incomplete
invalidate calls saves us from fuzzer bugs and crashes.
Bug: angleproject:3971
Change-Id: Ide550a22e6c17a28e5042165831dd684567d81fe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2227038
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
2a0c3596
|
2020-03-31T15:36:45
|
|
Vulkan: Clean up robust and emulated image clears.
This change consolidates image clears in multiple places into a single
site in ImageHelper initialization. It adds support for appending clear
image commands as well as prepend (the default). We prepend clears
because image initialization happens after data upload.
The Vulkan robust clear path now works like the other back-ends. The
change flushed out a bug where partially uninitialized CopyTexImage was
not correctly initializing a texture before triggering a full resource
clear. Texture::copyImage now uses a workaround where we first init the
image before clearing it. After the init we upload the new data.
We'll use the appending clears path when implementing deferred clears.
Bug: angleproject:4517
Change-Id: If9212f3b8cdd0fc8b7e729d364530801a644e164
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2130627
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
c9c4e4ed
|
2020-04-02T10:29:52
|
|
Track rendering feedback loops by-context.
This fixes an issue where feedback loops detection would trigger false
positives based on texture use in multiple contexts.
1) there are two contexts, C1 and C2, sharing resources
2) in C1, there is a texture T bound to GL_TEXTURE_2D, and a program in
use that will sample C1
3) in C2, a framebuffer is created and T is bound to it
This fix indexes each set of active bindings in an object by ContextID.
We can potentially redo this solution in the future if this proves to
have too much tracking overhead.
Includes a test writen by Ken Russell.
Bug: angleproject:4517
Change-Id: I67012e68947c42d863dca193972576c82d5f3712
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2134406
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
dd00f16b
|
2020-04-02T14:04:44
|
|
Vulkan: Fix FBO cache when updating disabled attachments.
Fix this by consistently checking if the attachment is enabled when we
update the serials.
Also includes a regression test and more ASSERTs.
Bug: angleproject:4540
Change-Id: I154d23cad71f1674d893390f923f45c643a58925
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2134409
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
d03b15b2
|
2020-03-26T17:22:18
|
|
Vulkan: Mask out Depth/Stencil RTs in feedback loops.
This should enable some cases of limited support for feedback loops
with depth/stencil buffers. For example with Manhattan and the Vulkan
back-end.
Increases the number of RenderPasses in Manhattan slightly. This will
regress performance slightly until we can work out a better solution
that is also conformant with the spec.
Bug: angleproject:4517
Change-Id: I2758e6b4c2a930474c09cdc0950f3b6c34541089
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2106670
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
4fb3c28f
|
2020-03-19T19:10:45
|
|
Vulkan: Fix Framebuffer cache depth/stencil issue.
The DrawBuffers resetting logic didn't update the depth/stencil serial.
Fix this and add a regression test that would crash in this situation.
Note that the Manhattan benchmark could trigger this under some cases.
Bug: angleproject:4322
Bug: angleproject:4490
Change-Id: Ie4b24efeb5991ecaa85bf8f964f77476bd6f167d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2111333
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
e28883de
|
2020-01-25T23:25:43
|
|
Vulkan: Fix handling of inactive fragment outputs
These were never assigned a location. They are now removed by the
translator similar to other inactive variables.
Bug: angleproject:4313
Change-Id: I3398d06e1dea3f43b84f206cca07cde5b44b21a8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2021734
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5f857839
|
2019-12-04T15:30:50
|
|
Improve current multisampled renderbuffer/texture support
This is split off from a change to implement multisampled textures for
the Vulkan back-end, and will come before that change. The changes
include:
- Make a common utility rx::GetSamplePosition() function. D3D11 and
Vulkan use the same standard sample positions/locations for 1, 2, 4,
8, and 16 samples. The D3D11 back-end has a utility function for
this, which is being moved to a common location--for use by both the
D3D11 and Vulkan back-ends.
- Texture::setStorageMultisample() handles converting the "requested number of
samples" to the actual number of samples used (e.g. converting 3 to 4),
supported by the underlying back-end). The actual number used is stored in
gl::TextureState::mImageDescs, for use by other GLES commands.
- Change some end2end tests to not make assumptions about the supported number
of samples, but to properly query what is supported.
Bug: angleproject:3565
Bug: angleproject:4196
Change-Id: I1dc12fedd0f8fb4975f90d87486e443b069b7141
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1948535
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
190d9a81
|
2019-11-29T09:57:40
|
|
Fix RenderingLimitToDefaultFBOSizeWithNoAttachments test
MAX_DRAW_BUFFERS has a minimum value of 4. This test was
unconditionally using 6 draw buffers.
Bug: angleproject:4092
Bug: angleproject:4180
Change-Id: I069874a6402da1cb007bf9504e68b9910951cf63
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1944527
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Alexis Hétu <sugoi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c1776c61
|
2019-11-13T11:36:35
|
|
Vulkan:Add Swiftshader configs
Add Swiftshader configs to existing test instantiation macros for all ESX
variants. This causes Swiftshader to be used to run end2end tests.
Added detection code to know when tests are running on Swiftshader and skipping
a number of fails initially.
Note that when running ANGLE end2end tests within Chromium build on Win32 bots
there were crashes with Swiftshader config for tests that should have been skipped.
Due to this, just skipping Swiftshader configs on Win32 for now.
Bug: angleproject:4081
Bug: angleproject:4092
Change-Id: I32527a62304c5fad90f645b372edf9411ca2b212
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1914126
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@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>
|
|
e600ac2a
|
2019-10-04T14:31:57
|
|
Create test to validate scissor size is correct
The concern is that if a user changes the framebuffer's attachment
to one with a different size, contextVk->updateScissor() may not be
called and we may render too much/little. This change creates a test to
verify that when the FBO's attachment size changes, the correct amount
of fragments are drawn.
Bug: angleproject:3754
Test: FramebufferTest_ES3
Change-Id: I47108d6fe3e671ddc8c30cf969f63c1c3ae76f84
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1842128
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
626a7280
|
2019-07-08T15:11:59
|
|
Vulkan: Implement framebuffers without attachments
It is possible to render to a framebuffer object that has no
attachments. However, the rasterization of primitives is always
based on the area and characteristics of the bound framebuffer.
These characteristics (size, number of samples, etc.) would normally be
defined by the attached images. If no images are attached, these
characteristics are defined by their default values.
Bug: angleproject:3579
Test: dEQP-GLES31.functional.fbo.*no_attachments*
Test: dEQP-GLES31.functional.state_query.framebuffer_default.*
Change-Id: I9580b924ac810db573cd8df96273fbb01bbb1f73
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1690688
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
eee67c6e
|
2019-06-18T13:00:43
|
|
Fix Platform.h integration with ANGLE
A function was renamed which broke the platformMethods table strings.
This CL reverts the rename (originally from crrev/c/1660952)
Bug: angleproject:1621
Change-Id: I8121a4956ba1d3e3c5036f72f6f1fdf5509dc491
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1664792
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
beb0eb2d
|
2019-06-14T15:10:33
|
|
Clean up workarounds/features to single location.
Rename all workarounds structs to features, and move the lists to a
shared location in include/platform (to help with documentation,
see:
https://cs.chromium.org/chromium/src/ui/gl/gl_switches.cc?sq=package:chromium&g=0&l=69)
Bug: angleproject:1621
Change-Id: I4069f08131db5e886047a007efb5d7764dfee5f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1660952
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
fce1e2d1
|
2019-06-04T15:02:08
|
|
Extend eglGetPlatformDisplay to allow feature overrides.
Add EGL_FEATURE_OVERRIDES_ENABLED_ANGLE and
EGL_FEATURE_OVERRIDES_DISABLED_ANGLE to submit lists of strings naming
the features that should be overridden (either enabled or disabled) on
display creation.
Bug: angleproject:1621
Change-Id: I4bb75c5dbab0e3b701a72069c38f8c60ecfffad2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1646595
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
776694cd
|
2019-05-08T10:28:55
|
|
Change all ANGLE workarounds to use struct definition with info.
Change each workaround from a simple bool to a struct with info
including name, workaround set, description, and bug IDs. This will help
with future workaround integration with Chrome.
Bug: angleproject:1621
Change-Id: Ia27c180abaf845e280060c803e5994cc3152a057
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1593917
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@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>
|
|
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>
|
|
d8506c7e
|
2019-01-29T15:35:09
|
|
Disable broken tests on Fuchsia (reland)
This disables tests that do not work on Fuchsia. Most of them are related
to cube maps which currently crash inside the intel driver.
Reland disabling -Wextra-semi.
BUG=angleproject:2475, angleproject:3145, angleproject:3081
TEST=angle_end2end_tests on Fuchsia
Change-Id: I65ad84f43c88e8ee83c581cc2f41046d00bbae7f
Reviewed-on: https://chromium-review.googlesource.com/c/1467604
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Michael Spang <spang@chromium.org>
|
|
c66fb571
|
2019-02-12T03:56:16
|
|
Revert "Disable broken tests on Fuchsia"
This reverts commit ad194995ed7228078d5b937dd1eff87c1dcac9c0.
Reason for revert: broke GPU optional bots since the revert of its previous CL
Original change's description:
> Disable broken tests on Fuchsia
>
> This disables tests that do not work on Fuchsia. Most of them are related
> to cube maps which currently crash inside the intel driver.
>
> BUG=angleproject:2475, angleproject:3145, angleproject:3081
> TEST=angle_end2end_tests on Fuchsia
>
> Change-Id: Ifc0be390c6d5c43a756e1afb6ced9e3bd5b6986e
> Reviewed-on: https://chromium-review.googlesource.com/c/1446497
> Commit-Queue: Michael Spang <spang@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
TBR=spang@chromium.org,geofflang@chromium.org,jmadill@chromium.org
Change-Id: Id1861ee94b89020bcd64dd8e7e52588b76830783
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2475, angleproject:3145, angleproject:3081
Reviewed-on: https://chromium-review.googlesource.com/c/1465881
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
|
|
ad194995
|
2019-01-29T15:35:09
|
|
Disable broken tests on Fuchsia
This disables tests that do not work on Fuchsia. Most of them are related
to cube maps which currently crash inside the intel driver.
BUG=angleproject:2475, angleproject:3145, angleproject:3081
TEST=angle_end2end_tests on Fuchsia
Change-Id: Ifc0be390c6d5c43a756e1afb6ced9e3bd5b6986e
Reviewed-on: https://chromium-review.googlesource.com/c/1446497
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@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>
|
|
b980c563
|
2018-11-27T11:34:27
|
|
Reformat all cpp and h files.
This applies git cl format --full to all ANGLE sources.
Bug: angleproject:2986
Change-Id: Ib504e618c1589332a37e97696cdc3515d739308f
Reviewed-on: https://chromium-review.googlesource.com/c/1351367
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4ebd8f3d
|
2018-09-20T11:12:46
|
|
Fix issues with clearing deleted attachments
Deleting an object that was acting as a framebuffer color attachment
in the current framebuffer didn't previously update all of the
framebuffer state correctly. Fix this by going through the usual
resetAttachment path when any framebuffer attachment is deleted
instead of having custom code that only updated part of the state.
Also early out from clearbuffer calls in case of a missing color
buffer - even now that the draw buffer mask is being updated correctly,
some backend code doesn't take it into account. One example is
querying attachment format when the SRGB clear for linear framebuffer
attachments workaround is active.
BUG=angleproject:2831
TEST=angle_end2end_tests
Change-Id: I1071a60dc0251946fed00e88e43a244fe59f4863
Reviewed-on: https://chromium-review.googlesource.com/1235656
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
dbce1f89
|
2018-09-19T15:32:17
|
|
Fix trying to clear nonexistent FBO attachments
The D3D11 backend used to crash to a null pointer dereference if a
glClearBuffer call was done on a nonexistent depth or stencil
attachment. Validate for these conditions so that the backend can't
crash in this case.
BUG=angleproject:2827
TEST=angle_end2end_tests
Change-Id: Iecee78d213d11d492d52f246b4b068e8b6f34244
Reviewed-on: https://chromium-review.googlesource.com/1233675
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
71bb0267
|
2018-09-12T11:09:42
|
|
Vulkan: Implement cube map render targets.
Each TextureVk now stores vectors of RenderTargetVks and ImageViews
associated with the image faces. They are initialized lazily when the
RenderTarget is queried in getAttachmentRenderTarget.
There's still one missing edge case for handling clear with the
Framebuffer when using cube maps. Also one additional test failure on
Android.
Bug: angleproject:2470
Change-Id: Ib959a3434a992cef010a11940cf2ee49e118ac17
Reviewed-on: https://chromium-review.googlesource.com/1220727
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d84b6737
|
2018-09-06T15:54:35
|
|
Cache ValidateDrawStates.
This improves performance of all draw call validation. The error that
should be generated on the draw call is cached in the Context. The
cache is updated in several places.
Bug: angleproject:2747
Change-Id: I178617623731608e2e7166b53ab6489d8b742ff5
Reviewed-on: https://chromium-review.googlesource.com/1158612
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9bf86f07
|
2018-07-26T11:46:34
|
|
Don't sync the read framebuffer on draw calls.
The read framebuffer may not be complete and be incapable of syncing.
Removed the generate syncDirtyObjects method so each caller must make sure they
are only syncing objects that are known to be valid for the operation.
BUG=angleproject:2737
Change-Id: Ia8edf3fca3a8369aa813be46ba99f6b50a36b2e6
Reviewed-on: https://chromium-review.googlesource.com/1151621
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
fa7503ca
|
2018-05-08T11:25:06
|
|
Vulkan: Support EXT_texture_storage
This is a prerequisite to support incomplete textures.
Bug: angleproject:2536
Change-Id: Ica40bbd185a67253f457148007b08f6735da788c
Reviewed-on: https://chromium-review.googlesource.com/1050308
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
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>
|
|
2f23f35a
|
2018-02-11T22:11:37
|
|
Clean up end2end tests for Intel OSX.
BUG=angleproject:2205
BUG=angleproject:2041
BUG=angleproject:2155
Change-Id: I26bcbb63e147787cd342ec80a86d60cf230be4c9
Reviewed-on: https://chromium-review.googlesource.com/913108
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
10d41397
|
2017-12-18T18:13:36
|
|
Fix addDummyTextureNoRenderTarget workaround memory leak
Add dummy attachment in FramebufferD3D as a private member and release
the dummy attchment in destory of FramebufferD3D.
BUG=angleproject:2282
TEST=FramebufferTest_ES31.RenderingLimitToDefaultFBOSizeWithNoAttachments/ES3_1_D3D11
TEST=dEQP-GLES31.functional.fbo.no_attachments.*
Change-Id: I3a17282ef132185fbc25f4076f624e53661d4b20
Reviewed-on: https://chromium-review.googlesource.com/831847
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9fc87331
|
2017-12-13T15:46:52
|
|
Fix Bug in Intel Workaround
Fixes an incorrect assert that is hit when trying to find a program
output when none are present. It is valid to not have an output, so we
should not check for an output when there are none.
Bug:angleproject:2283
Change-Id: Ia640482870c6ee589a933b989272177760237e3b
Reviewed-on: https://chromium-review.googlesource.com/825957
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
98f9f537
|
2017-11-15T19:16:19
|
|
Skip RenderingLimitToDefaultFBOSizeWithNoAttachments on Linux AMD GL
BUG=anglebug:2253
Change-Id: I4c2fc6904f88a6d61c5d847b812a4272a99c1906
Reviewed-on: https://chromium-review.googlesource.com/773063
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
38d92b59
|
2017-09-13T13:47:52
|
|
Workaround Intel driver bug on D3D when renderering with no render target
When rendering with no render target on D3D, two bugs lead to
incorrect behavior on Intel drivers < 4815. The rendering samples
always pass neglecting discard statement in pixel shader.
Two bugs are listed bellow,
1. When a framebuffer has no attachments, the pixel shader will be
recompiled to drop 'SV_TARGET'. On Intel drivers, when using a pixel
shader with no 'SV_TARGET' in a draw, pixels are always generated even
if they should be discard by 'discard' statements.
2. When a framebuffer has no attachments, ID3D11BlendState.RenderTarget
[].RenderTargetWriteMask were set to 0 in angle. If RenderTargetWriteMask
is 0 and rendertarget is not set, then rendering samples also pass
neglecting discard statement in pixel shader on Intel.
So we add a dummy texture as render target to workaround this issue.
BUG=angleproject:2152
TEST=FramebufferTest_ES31.RenderingLimitToDefaultFBOSizeWithNoAttachments/ES3_1_D3D11
TEST=dEQP-GLES31.functional.fbo.no_attachments.*
TEST=dEQP-GLES31.functional.state_query.integer.max_framebuffer*
TEST=dEQP-GLES31.functional.state_query.integer.max_color_texture_samples_*
TEST=dEQP-GLES31.functional.state_query.integer.max_depth_texture_samples_*
TEST=dEQP-GLES31.functional.state_query.integer.max_integer_samples_*
Change-Id: I1cb974703b6c05c39b731d147f7c8c4fb7b5fe68
Reviewed-on: https://chromium-review.googlesource.com/741544
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
8f8edd6e
|
2017-10-31T14:26:30
|
|
attachmentsHaveSameDimensions should not compare depths.
From: https://bugzilla.mozilla.org/show_bug.cgi?id=1372083
BUG=angleproject:2210
TEST=angle_end2end_tests
Change-Id: I00539fb7e0bc9a21f90f5c87d7082c2a6b1ed907
Reviewed-on: https://chromium-review.googlesource.com/747814
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d922775b
|
2017-10-19T16:23:07
|
|
Clean up passed end2end tests on Intel Windows platform
Intel driver has released its latest versions, many intel driver bugs are fixed.
This patch cleans up end2end test cases skipped on windows 10 and windows 7.
The test environment is as follows,
Hardware: Skylake(HD 530), Kabylake(HD 630)
Driver version: 4815, 4821
OS: windows 10(15063), windows 7.
BUG=angleproject:2205
Change-Id: Iae14763aa86a572da1221e9ea35b28da2561d3b0
Reviewed-on: https://chromium-review.googlesource.com/729549
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3db4072a
|
2017-08-28T17:59:13
|
|
Skip end2end test case due to failure on D3D Intel GPU
Test case FramebufferTest_ES31.RenderingLimitToDefaultFBOSizeWithNoAttchments
failed on Intel gpu on D3D.
BUG=angleproject:1594
Change-Id: Icda5179513b697b41aeb39bffad23fdb1977b55f
Reviewed-on: https://chromium-review.googlesource.com/637750
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
511937d9
|
2017-08-03T15:41:29
|
|
ES3.1: Implement framebuffer default parameters for d3d part.
Set framebuffer default params with glFramebufferParameteri and
glGetFramebufferParameteriv, keep framebuffer default parameters
in cache for query.
The es 3.1 spec section 9.2 states that, "If there are no attachments
, rendering will be limited to a rectangle having a lower left of
(0, 0) and an upper right of (width, height), where width and height
are the framebuffer object's default width and height."
If the Framebuffer has no color attachment and the default width or
height is smaller than the current viewport, use the smaller of the
two sizes.
BUG=angleproject:1594
TEST=dEQP-GLES31.functional.state_query.framebuffer_default.framebuffer_default*
TEST=dEQP-GLES31.functional.fbo.completeness.no_attachments
TEST=dEQP-GLES31.functional.fbo.no_attachments.*
TEST=angle_end2end_tests --gtest_filter=FramebufferTest_ES31.*
Change-Id: I8041fd655161390acf115efa08ce0f04b10810a0
Reviewed-on: https://chromium-review.googlesource.com/609414
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a0016b7f
|
2017-07-14T14:30:46
|
|
Check depth-stencil attachment sample count.
Currently we would only check for the color attachment sample count,
which could return incorrect results for depth or stencil-only
Framebuffers.
BUG=angleproject:2108
Change-Id: I378349c91c0139ee507d88fa6a36a86234fea0d4
Reviewed-on: https://chromium-review.googlesource.com/571064
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d178aa46
|
2017-07-13T14:03:22
|
|
Fix attachment validation bug
Passing COLOR_ATTACHMENTm, where m is greater or equal to
MAX_COLOR_ATTACHMENTS, to a FramebufferTexture* function should
generate an INVALID_OPERATION instead of an INVALID_VALUE error.
BUG=angleproject:2106
TEST=angle_end2end_tests
Change-Id: I99045defcbe5eb2afefac1b45062ee4245f50dd3
Reviewed-on: https://chromium-review.googlesource.com/569966
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
857c09db
|
2017-05-16T15:55:04
|
|
Add missing completeness checks for texture attachments.
Texture attachments need to validate that the attached mip level is within
the [baseLevel,maxLevel] range and that the texture is complete if the
attached mip level is not the base level.
BUG=722684
Change-Id: I859766506b295638572b75a0e2e9fed168be047a
Reviewed-on: https://chromium-review.googlesource.com/506928
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: 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>
|
|
461d9a30
|
2017-01-04T16:37:26
|
|
ES31:Check framebuffer status for multisample and default params
This patch implements FRAMEBUFFER_INCOMPLETE_MULTISAMPLE checking for
checkFramebufferStatus, and also modify conditions of
FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENTS when setting default
parameters to fbo.
BUG=angleproject:1594
TEST=angle_end2end_tests --gtest_filter=FramebufferTest_ES31*
TEST=dEQP-GLES31.functional.texture.multisample.negative.fbo_attach_different_fixed_state_tex*
Change-Id: I86954056d3a5d89dca517b267bd16e17b70e5652
Reviewed-on: https://chromium-review.googlesource.com/437991
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
008450ba
|
2017-01-11T22:28:20
|
|
Revert "Fbo attaching non-zero base level texture should be complete"
This reverts commit b293a2601d29a95c0716725e460b395fff29e8e5.
Failing as of:
https://build.chromium.org/p/chromium.gpu.fyi/builders/Linux%20Release%20%28AMD%20R5%20230%29/builds/580
https://build.chromium.org/p/chromium.gpu.fyi/builders/Linux%20Release%20%28AMD%20R7%20240%29/builds/1258
zmo@ wants this reverted.
Change-Id: I457b6127e551c546ed861dd2d9b3f90b7bbab034
Reviewed-on: https://chromium-review.googlesource.com/427222
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b293a260
|
2017-01-09T12:35:36
|
|
Fbo attaching non-zero base level texture should be complete
This is ported from WebGL CTS which is used to verify a ES 3.0 bug in
NVIDIA Linux, Windows OpenGL, and Mac OSX.
BUG=chromium:678526
TEST=angle_end2end_tests
Change-Id: Ifb6e1ba52d45144c544beab21f1ad4a98b1b0f65
Reviewed-on: https://chromium-review.googlesource.com/426007
Commit-Queue: Qiankun Miao <qiankun.miao@intel.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
57e6d50e
|
2016-12-09T14:46:39
|
|
FramebufferAttachment: make attach(nullptr) work like detach
Otherwise when trying to use a DEPTH texture for DEPTH_STENCIL,
attach(nullptr) gets called but the FramebufferAttachment still returns
true when isAttached is called.
BUG=angleproject:1523
Change-Id: I30b78aff619eb6cd63e0befac886bddc177a2e58
Reviewed-on: https://chromium-review.googlesource.com/418403
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
1be913cf
|
2016-07-11T17:59:16
|
|
Add support for ES31 context creation
The dEQP test for context creation passes.
SH_WEBGL3_SPEC has been added, but it should be considered whether we
should keep it, remove it or rename it. It was added so that there is
a webgl mapping to es 310 shaders. Check Compiler.cpp. The bison file
has been modified so that some tokens from es3 can be also used in
es31 as well.
A separate macro ES3_1_ONLY is added so that some tokens are limited
only for es 310 shaders.
BUG=angleproject:1442
TEST=angle_unittests
Change-Id: I2e5ca227c96046c30dc796ab934f3fda9c533eba
Reviewed-on: https://chromium-review.googlesource.com/360300
Reviewed-by: Jamie Madill <jmadill@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>
|
|
bc21e18b
|
2016-02-23T16:04:57
|
|
D3D11 Texture refactoring: Store ANGLEFormat in TextureStorage11
This is needed to enable removing GetDXGIFormatInfo calls, which are
difficult to use correctly due to a texture format being associated
with multiple DXGI formats. This is done in preparation of changing
some of the DXGI formats associated with integer textures.
BUG=angleproject:1244
TEST=angle_end2end_tests,
dEQP-GLES3.functional.fbo.* (no regressions)
Change-Id: I992c4c06189887c1b9de02f9b63dd9a474fcffab
Reviewed-on: https://chromium-review.googlesource.com/329094
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
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>
|
|
1fbc59fe
|
2016-02-24T15:25:51
|
|
D3D11: Enable dirty bits for Framebuffer11.
This patch works using a notification scheme - whenever a Texture or
Renderbuffer changes in such a way as to recreate its RenderTarget, we
pass a signal to the Framebuffer to invalidate some internal state.
Everything is entirely tracked in the Renderer11 layer, and the GL
layer is left untouched.
A RenderTarget11 now tracks points to which it is bound, and the
Framebuffer11 is mostly responsible for managing those links.
The three locations where we notify a Framebuffer when its bound
RenderTargets might be dirty are:
1) RenderTarget11::~RenderTarget
2) EGLImageD3D::copyToLocalRendertarget
3) TextureStorage11_2D::useLevelZeroWorkaroundTexture
This patch gives about a 10% score increase in the D3D11 draw call
benchmark on my system.
BUG=angleproject:1260
Change-Id: Ide38aeadff4a2681bf5bd685e8ca3c9e2612a380
Reviewed-on: https://chromium-review.googlesource.com/327255
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|