|
dfd9bdfd
|
2021-01-16T11:32:30
|
|
Reland "Vulkan: Generate gl_Position pre-rotation in SPIR-V"
This reverts commit 3d39b7c5eab88c420d982155ffbb6181c678ceea.
Reason for revert: Fixed interaction with the
`forceDriverUniformOverSpecConst` workaround.
Original change's description:
> Revert "Vulkan: Generate gl_Position pre-rotation in SPIR-V"
>
> This reverts commit 0f86b196ffaffeeee3460e3188f20a7ac120796d.
>
> Reason for revert:
> Breaks pre-rotation for all apps, so they are displayed in portrait instead of landscape.
>
> Original change's description:
> > Vulkan: Generate gl_Position pre-rotation in SPIR-V
> >
> > Instead of having the translator output pre-rotation code in the vertex
> > stage based on a specialization constant, this change makes the SPIR-V
> > transformer perform pre-rotation of gl_Position on the last geometry
> > stage.
> >
> > An alternative solution would be to generate pre-rotation code in the
> > translator in every geometry stage, each controlled by a separate
> > specialization constant. This change avoids unnecessary modifications
> > to earlier stages. The generated shaders are also smaller, as they
> > don't contain a mat2[8] pre-rotation constant matrix. The SPIR-V
> > transformer knows the pre-rotation at transformation time, so it can
> > simply use swizzles to achieve the same results.
> >
> > This also ties in with upcoming changes which move gl_Position.z
> > correction to the last geometry shader stage, which is trivially done
> > piggy-backing on the infrastructure in this change.
> >
> > Bug: angleproject:5478
> > Change-Id: I9d5d9d19f3ccda665f5504368ce5ddfa5f383faf
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2598584
> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> > Reviewed-by: Charlie Lao <cclao@google.com>
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
>
> TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
>
> Change-Id: I81f237fa6b10c7d59831363bee8999e7ad2f09be
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: angleproject:5478
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2633694
> Reviewed-by: Tim Van Patten <timvp@google.com>
> Commit-Queue: Tim Van Patten <timvp@google.com>
TBR=timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
Bug: angleproject:5478
Change-Id: I7c5eaeef03d9520abd36a1c4a766b6abbf4fdb45
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2633709
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
60015ff6
|
2021-01-14T02:03:07
|
|
Vulkan: Redo RewriteStructSamplers
This transformation is split into two. The first transformation solely
takes out the samplers out of structs, and potentially generates array
of array of samplers. A second transformation is added that takes any
array of array of opaque uniforms and flattens it.
A follow up change will simplify RewriteAtomicCounters which also
handles array of arrays (which is no longer possible), and removes
dependency on shaderStorageBufferArrayDynamicIndexing.
Bug: angleproject:2703
Bug: angleproject:3881
Bug: angleproject:4071
Bug: angleproject:4211
Change-Id: I352bb2bbe65ac49f4d7d753c0ba3160fa3cc925a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2628138
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9f09435b
|
2021-01-14T08:13:47
|
|
Vulkan: Rename ReplaceClipDistanceVariable files
With the addition of EXT_clip_cull_distance extension
the files are renamed like so -
ReplaceClipDistanceVariable.h -> ReplaceClipCullDistanceVariable.h
ReplaceClipDistanceVariable.cpp -> ReplaceClipCullDistanceVariable.cpp
Bug: angleproject:5458
Change-Id: I277b2d4b6eea6f2014e10acb251284a159292dbc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2617572
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ff170c6f
|
2021-01-12T10:16:43
|
|
Tests: Add Real Gangster Crime trace
Note: Hand edits required to capture this trace:
CaptureMidExecutionSetup():
// Check for supported textures
ASSERT(index.getType() == gl::TextureType::_2D ||
index.getType() == gl::TextureType::_3D ||
index.getType() == gl::TextureType::_2DArray ||
index.getType() == gl::TextureType::CubeMap ||
index.getType() == gl::TextureType::External); <<--- add
Test: angle_perftests --gtest_filter=TracePerfTest.Run/*real_gangster_crime*
Bug: angleproject:5550
Change-Id: I32391cc8de0b4307334bb873af4f3c5899b584f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2626357
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3d39b7c5
|
2021-01-16T00:15:14
|
|
Revert "Vulkan: Generate gl_Position pre-rotation in SPIR-V"
This reverts commit 0f86b196ffaffeeee3460e3188f20a7ac120796d.
Reason for revert:
Breaks pre-rotation for all apps, so they are displayed in portrait instead of landscape.
Original change's description:
> Vulkan: Generate gl_Position pre-rotation in SPIR-V
>
> Instead of having the translator output pre-rotation code in the vertex
> stage based on a specialization constant, this change makes the SPIR-V
> transformer perform pre-rotation of gl_Position on the last geometry
> stage.
>
> An alternative solution would be to generate pre-rotation code in the
> translator in every geometry stage, each controlled by a separate
> specialization constant. This change avoids unnecessary modifications
> to earlier stages. The generated shaders are also smaller, as they
> don't contain a mat2[8] pre-rotation constant matrix. The SPIR-V
> transformer knows the pre-rotation at transformation time, so it can
> simply use swizzles to achieve the same results.
>
> This also ties in with upcoming changes which move gl_Position.z
> correction to the last geometry shader stage, which is trivially done
> piggy-backing on the infrastructure in this change.
>
> Bug: angleproject:5478
> Change-Id: I9d5d9d19f3ccda665f5504368ce5ddfa5f383faf
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2598584
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
Change-Id: I81f237fa6b10c7d59831363bee8999e7ad2f09be
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:5478
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2633694
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
e3c35736
|
2021-01-16T00:12:54
|
|
Revert "Vulkan: Generate gl_Position.z correction in SPIR-V"
This reverts commit 1e4f8b02ae0603e7034c37e0ff6cee39c38771a9.
Reason for revert:
Earlier CL breaks pre-rotation:
https://chromium-review.googlesource.com/c/angle/angle/+/2598584
Original change's description:
> Vulkan: Generate gl_Position.z correction in SPIR-V
>
> Instead of having the translator output code to transform gl_Position.z
> to Vulkan clip space in the vertex stage, this change makes the SPIR-V
> transformer perform this operation on the last geometry stage.
>
> An alternative solution would be to generate this transformation in the
> translator in every geometry stage, each controlled by a separate
> specialization constant. This change avoids unnecessary modifications
> to earlier stages. Additionally, the transformer is already modifying
> gl_Position.xy for pre-rotation, so the addition of a small
> transformation of gl_Position.z in the same spot is rather trivial.
>
> Bug: angleproject:5479
> Change-Id: Id971179ba47b206204bfdaf3b2b295ef97dd5117
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2598585
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
Change-Id: I3bdf3d6f743125eaf552608f2664b715bd6935c5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:5479
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2634203
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
b4b59726
|
2021-01-16T00:12:00
|
|
Revert "Vulkan: Move xfb position decl to translator in extension path"
This reverts commit 8f5ca26678c12d54d2981a84e48a5304746ec824.
Reason for revert:
Earlier CL breaks pre-rotation:
https://chromium-review.googlesource.com/c/angle/angle/+/2598584
Original change's description:
> Vulkan: Move xfb position decl to translator in extension path
>
> This change removes the @@ XFB-DECL @@ marker. The ANGLEXfbPosition
> output is unconditionally emitted in VS, TES and GS by the translator,
> and is appropriately decorated or removed by the SPIR-V transformer.
>
> Bug: angleproject:3606
> Change-Id: Ia76224f5a6d147362eeb2d288f05e333aaf75481
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2617658
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Charlie Lao <cclao@google.com>
TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
Change-Id: Ia03988b9c17639513576e82e8f11cd4c7b52640b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:3606
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2634202
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
d0906276
|
2021-01-16T00:11:27
|
|
Revert "Vulkan: Generate xfb support code in SPIR-V for extension path"
This reverts commit d06feeac1e79d6102e01c123a360bc9099d5bba3.
Reason for revert:
Earlier CL breaks pre-rotation:
https://chromium-review.googlesource.com/c/angle/angle/+/2598584
Original change's description:
> Vulkan: Generate xfb support code in SPIR-V for extension path
>
> The only piece of code that's needed to be generated for the extension
> path is the following, at the right spot (right before depth correction
> and pre-rotation):
>
> ANGLEXfbPosition = gl_Position;
>
> The SPIR-V transformer already has gl_Position loaded for depth
> correction and pre-rotation, so this change simply adds an OpStore to
> ANGLEXfbPosition.
>
> As a result of this change, @@ XFB-OUT @@ is no longer emitted if
> the transform feedback extension is supported. With the above code now
> placed correctly for geometry shaders, transform feedback tests for
> geometry shaders are enabled.
>
> Bug: angleproject:3606
> Change-Id: I13a7956ab62a1a6b4196ff999442b99b50226c0f
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2617659
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
Change-Id: I74fa9fafe3c922cdb7cd09ee6351534e38528da9
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:3606
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2634048
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
9173e017
|
2021-01-16T00:10:34
|
|
Revert "Cleanup translator option checks"
This reverts commit 9710c4e473c88a38f11eb10c600717181d6e24df.
Reason for revert:
Earlier CL breaks pre-rotation:
https://chromium-review.googlesource.com/c/angle/angle/+/2598584
Original change's description:
> Cleanup translator option checks
>
> Use comparison with 0 for explicit conversion to bool.
>
> Bug: angleproject:3606
> Change-Id: Ie0a76d7df829227c1376894535813b54e13491b4
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2631689
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
Change-Id: Ib597a62f3c7078d28f7f5b79d1cc9f8d9e469c31
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:3606
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2634047
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
9710c4e4
|
2021-01-14T22:41:48
|
|
Cleanup translator option checks
Use comparison with 0 for explicit conversion to bool.
Bug: angleproject:3606
Change-Id: Ie0a76d7df829227c1376894535813b54e13491b4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2631689
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
cea86910
|
2021-01-14T08:13:00
|
|
Vulkan: Support EXT_clip_cull_distance extension
EXT_clip_cull_distance extension is supported except for
some features related to EXT_tessellation_shader and
EXT_geometry_shader. Also added a few compiler tests to validate
the transformation from ESSL to GLSL for Vulkan backend.
Bug: angleproject:5458
Tests: angle_end2end_tests --gtest_filter=Clip*DistanceTest*
angle_unittests --gtest_filter=*Clip*Distance*
Change-Id: Ie74e6b2b55112ad92ad111191d629b63506032ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2585987
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
dc99fc40
|
2021-01-13T00:21:41
|
|
Vulkan: Translator pass to monomorphize problematic functions
With array of array of samplers and images, we currently require the
shader*ArrayDynamicIndexing Vulkan features. With atomic counters, we
require the shaderStorageBufferArrayDynamicIndexing feature.
The above features are required to enable passing opaque uniforms to
functions. This change introduces a translator pass that monomorphizes
functions that receive atomic counters, or partially subscripted array
of array of samplers or images, etc by removing those arguments and
using the opaque uniform directly.
Follow up changes will include:
- Great simplification to RewriteStructSamplers, and removal of
RewriteStructSamplersOld. This will drop dependency to
shaderSampledImageArrayDynamicIndexing and
shaderStorageImageArrayDynamicIndexing.
- Great simplification to RewriteAtomicCounters. This will drop
dependency to shaderStorageBufferArrayDynamicIndexing.
- Emulation of imageAtomicExchange for r32f formats, but changing the
qualifier to r32ui.
Note that parts of RewriteStructSampler are obsolete with this change,
but will be refactored as a follow up.
Bug: angleproject:3881
Bug: angleproject:4071
Bug: angleproject:5535
Change-Id: Ifd1435b2a31ebf364815046886aeded60297da79
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2628127
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
d06feeac
|
2021-01-08T00:48:18
|
|
Vulkan: Generate xfb support code in SPIR-V for extension path
The only piece of code that's needed to be generated for the extension
path is the following, at the right spot (right before depth correction
and pre-rotation):
ANGLEXfbPosition = gl_Position;
The SPIR-V transformer already has gl_Position loaded for depth
correction and pre-rotation, so this change simply adds an OpStore to
ANGLEXfbPosition.
As a result of this change, @@ XFB-OUT @@ is no longer emitted if
the transform feedback extension is supported. With the above code now
placed correctly for geometry shaders, transform feedback tests for
geometry shaders are enabled.
Bug: angleproject:3606
Change-Id: I13a7956ab62a1a6b4196ff999442b99b50226c0f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2617659
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8f5ca266
|
2021-01-07T16:04:16
|
|
Vulkan: Move xfb position decl to translator in extension path
This change removes the @@ XFB-DECL @@ marker. The ANGLEXfbPosition
output is unconditionally emitted in VS, TES and GS by the translator,
and is appropriately decorated or removed by the SPIR-V transformer.
Bug: angleproject:3606
Change-Id: Ia76224f5a6d147362eeb2d288f05e333aaf75481
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2617658
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
ebdd8abb
|
2021-01-13T23:42:44
|
|
OpenGL: Remove avoidDXT1sRGBTextureFormat workaround
Bug: angleproject:5543
Change-Id: I2a7e2d563aa60e6e53dd6b6c32fbc449368e4e06
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2627425
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
738cb55b
|
2021-01-14T17:33:20
|
|
Capture/Replay tests: Fixes and improvements.
The script was broken after the change to build to a separate shared
library. Also fixes issues on Windows and cleans up the code. State
comparison is still broken on every test from what I can see.
Bug: angleproject:5530
Change-Id: I23e77e56fadedfb85d7afdb59dddac5558a71a56
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2630232
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
1e4f8b02
|
2020-12-21T23:47:47
|
|
Vulkan: Generate gl_Position.z correction in SPIR-V
Instead of having the translator output code to transform gl_Position.z
to Vulkan clip space in the vertex stage, this change makes the SPIR-V
transformer perform this operation on the last geometry stage.
An alternative solution would be to generate this transformation in the
translator in every geometry stage, each controlled by a separate
specialization constant. This change avoids unnecessary modifications
to earlier stages. Additionally, the transformer is already modifying
gl_Position.xy for pre-rotation, so the addition of a small
transformation of gl_Position.z in the same spot is rather trivial.
Bug: angleproject:5479
Change-Id: Id971179ba47b206204bfdaf3b2b295ef97dd5117
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2598585
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0f86b196
|
2020-12-21T22:54:05
|
|
Vulkan: Generate gl_Position pre-rotation in SPIR-V
Instead of having the translator output pre-rotation code in the vertex
stage based on a specialization constant, this change makes the SPIR-V
transformer perform pre-rotation of gl_Position on the last geometry
stage.
An alternative solution would be to generate pre-rotation code in the
translator in every geometry stage, each controlled by a separate
specialization constant. This change avoids unnecessary modifications
to earlier stages. The generated shaders are also smaller, as they
don't contain a mat2[8] pre-rotation constant matrix. The SPIR-V
transformer knows the pre-rotation at transformation time, so it can
simply use swizzles to achieve the same results.
This also ties in with upcoming changes which move gl_Position.z
correction to the last geometry shader stage, which is trivially done
piggy-backing on the infrastructure in this change.
Bug: angleproject:5478
Change-Id: I9d5d9d19f3ccda665f5504368ce5ddfa5f383faf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2598584
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
29eeb610
|
2021-01-12T11:59:48
|
|
Vulkan: Fix validation of MSRTT framebuffer attachment
The attachment was being accessed before being validated. A fuzzer test
was giving this function texture ID -1.
Bug: chromium:1146753
Change-Id: Ic48f5fd2eed4252e90be5d63fd698b38bd3ef85f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2623814
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
50c82f42
|
2021-01-14T15:15:10
|
|
Don't index into SystemInfo gpus if it's empty.
angle::GetSystemInfo may return success on some platforms without
writing any entires into the gpus vector. Make sure we don't index
into this vector when it's empty.
Bug:chromium:1166338
Change-Id: I4cafeadf7aa9ac55b25a1afa04c8d28a2edf52e0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2628140
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
861378be
|
2021-01-12T11:12:56
|
|
Tests: Add Magic Tile 3 trace
Test: angle_perftests --gtest_filter=TracePerfTest.Run/*magic_tiles_3*
Bug: angleproject:5540
Change-Id: I6d6f144d4c2a38cfc55724f7e454f756a162d054
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2622611
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c07ef602
|
2021-01-05T12:26:05
|
|
Vulkan: Move xfb buffer decl to translator in emulation path
This makes @@ XFB-DECL @@ empty on this path. Ultimately, this is
working towards removing both @@ XFB-DECL @@ and @@ XFB-OUT @@ macros
for both the emulation and extension paths, allowing the shaders to be
compiled at compile time rather than link time.
Bug: angleproject:3606
Change-Id: If16e9d92c419a04ecd3094481ed546d0708cdb43
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2611305
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
a1b4a1f3
|
2021-01-14T11:02:43
|
|
Capture/Replay: Only get source for linked programs
CaptureMidExecutionSetup() currently assumes that all created programs
have also been linked, since mCachedProgramSources is only updated when
glLinkProgram() is called. However, a call to glCreateProgram()
doesn't necessitate a call to glLinkProgram().
This leads to hitting an assert in
FrameCaptureShared::getProgramSources() when iterating all
glCreateProgram()'ed programs, but doesn't find that it in the list of
linked programs. This fix is to move the program->isLinked() call
earlier.
Bug: angleproject:5545
Change-Id: I49fdec08de1c2767fe7f6a08fd0a9d53fa865167
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2629789
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
e357cc6f
|
2021-01-14T14:47:02
|
|
Revert "Vulkan: Prefer host cached memory for Buffers"
This reverts commit 326f128b941d54c0277178f87e784da8ce2190eb.
Reason for revert: Fails of Mali platform. See bug:
Bug: angleproject:5544
Original change's description:
> Vulkan: Prefer host cached memory for Buffers
>
> This improves perf because vertex data upload uses host visible memory,
> and uncached memory can be slow.
>
> Test:
>
> Android on Windows with 1080Ti:
> glmark2 [build] vbo=false 265 -> 3900 fps
>
> Bug: angleproject:5515
> Change-Id: Ib75582bbdb4ca4a22d3a121c7b477a23a8a809ef
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2615742
> Commit-Queue: Lingfeng Yang <lfy@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Tim Van Patten <timvp@google.com>
TBR=geofflang@chromium.org,lfy@google.com,doughorn@google.com,timvp@google.com,jmadill@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:5515
Change-Id: I59695b1981b43471dbd309d4e859bae7a4821969
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2627604
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Lingfeng Yang <lfy@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0056151c
|
2021-01-12T16:49:46
|
|
Fix call to getImageFormatFeatureBits() in SurfaceVk.cpp
The function getImageFormatFeatureBits() was recently refactored which
changed its parameters. One call to this function in SurfaceVk.cpp is
underneath a #if ANGLE_ENABLE_OVERLAY though, so it was missed.
This CL updates the call to getImageFormatFeatureBits() with the correct
paramater as well as moves the code outside of the #if and into a normal
conditional to prevent similar issues in the future.
Bug: angleproject:5438
Change-Id: I499c25d98e4e22b5e1bb14e6e6c9ef378d77307f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2626348
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
198dc345
|
2020-08-06T16:32:03
|
|
Support importing NV12/P010/P016 D3D textures as EGLImage
Allow importing individual planes of NV12/P010/P016 D3D textures with
supported SRV/RTV formats. Restrict these to GL_TEXTURE_EXTERNAL_OES to
limit to using as shader inputs or render targets and prevent
unsupported operations like ReadPixels.
Test: D3DTextureYUVTest*
Bug: angleproject:5538, chromium:1116101
Change-Id: If5bf54f4f75bb2c703890ce3f5fbd67e4461c98f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2338827
Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
124cdcb5
|
2021-01-13T16:36:18
|
|
Don't build angle_end2end_tests_mac_sources on iOS
Getting a compile error for them:
../../third_party/angle/src/tests/egl_tests/
EGLIOSurfaceClientBufferTest.cpp:16:10:
fatal error: 'IOSurface/IOSurface.h' file not found
include <IOSurface/IOSurface.h>
^~~~~~~~~~~~~~~~~~~~~~~
../../third_party/angle/src/tests/egl_tests/
EGLIOSurfaceClientBufferTest.cpp:16:10:
note: did not find header 'IOSurface.h' in framework 'IOSurface'
(loaded from '/opt/s/w/ir/cache/xcode_ios_12a7209.app/Contents/
Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
iPhoneOS14.0.sdk/System/Library/Frameworks')
Bug: angleproject:5417
Change-Id: I60198bbacc0726a9842fe37fad5b10b9afff37a4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2628129
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
6c79df68
|
2021-01-11T09:07:08
|
|
Allow attributes and uniforms to have the same name
It is valid for an attribute and a uniform to have the same name
as long as they are declared in different stages.
Prior to this patch, if any shader stage declares a uniform we
disallowed reusing that name for an attribute.
From GLSL ES Spec 3.00.6, section 4.3.5:
If a uniform variable name is declared in one stage (e.g., a vertex
shader) but not in another (e.g., a fragment shader), then that name
is still available in the other stage for a different use.
This change allows Egginc game to work with ANGLE
Bug: angleproject:5497
Tests: angle_end2end_tests -
*UniformVariableNameReuseAcrossStages*
*GlobalNamesConflict*
Change-Id: I8f5657d40a213600d6fb48f63e37e4cdbae120b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2608865
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
d654ac9b
|
2020-12-30T12:28:41
|
|
Program: Support multiple varying packings.
Instead of using a single varying packing for all program stages,
we switch to using a varying register packing for each pair of
input/output shaders. This allows several valid use cases that use
many varying to succeed. For instance Geometry Shaders have both
an input and output varying packing. With tessellation shaders the
upper bound of valid varying packings in one Program goes up even
more.
We keep multiple varying packings at once inside a new
"ProgramVaryingPacking" class. Internally the class keeps a unique
varying mapping for each input/output interface in the program.
Separable programs with "open" interfaces are handled specially.
Fixes a bug where varying counting was artificially limited for
programs with more than two shaders.
This CL also disables GS support when we're emulating line raster
so we don't have to figure out the details on how to place the
special position varying.
Bug: angleproject:5496
Change-Id: I1f9a327c4750caef570c608d86953e9d0cc5eea3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2606532
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
8943d1e2
|
2021-01-12T22:21:38
|
|
Capture/Replay: Add DrawBuffer state to MEC
This results in calls like this added to Setup*:
const GLenum glDrawBuffers_bufs_38[] =
{ 36064, 36065, 36066, 36067, 0, 0, 0, 0 };
...
glDrawBuffers(8, glDrawBuffers_bufs_38);
Test: Aztec Ruins MEC
Bug: b/160808198
Bug: angleproject:3662
Bug: angleproject:5541
Change-Id: I1c6282e292f225684c99b5de65daf8ad15b0db56
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2627907
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
e4b4ff7a
|
2021-01-12T13:48:20
|
|
Test Runner: Add a slow tests list.
Each slow test in the list will use a 3x longer timeout. The list is
implemented using the same filter wildcard we use in the test
expectations logic.
We can test this out using a slow D3D11 varying test.
Bug: angleproject:5076
Bug: angleproject:5496
Change-Id: I31cf45e6ee8a8bbd6e460d675ff8a0cf5f19a504
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2625172
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
47e9aed2
|
2021-01-12T13:50:56
|
|
Remove Sleep() from PrimitivesWrittenAndGenerated test.
Attempt to fix timeouts due to test ordering.
Bug: angleproject:5496
Change-Id: I323e85c372c8b4a5e9fc4201004f39bffb1676d4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2625169
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2ed9671a
|
2021-01-12T09:44:03
|
|
State: Provide reference to image unit binding vector
This allows iterating through the entries without creating a copy
of the vector. This was causing an assertion in FrameCapture when
deconstructing the copy, which we don't need.
RefCountObject.h (~BindingPointer): ! Assert failed in ~BindingPointer
(src/libANGLE/RefCountObject.h:93): mObject == nullptr
It also probably matches the intent of the function.
Test: Aztec Ruins MEC
Bug: angleproject:4048
Change-Id: I9588af3859b4d3edb5859530def1bb3992530403
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2622610
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
2e9161e4
|
2021-01-12T11:29:29
|
|
Vulkan: Add YUV G8_B8_R8_3PLANE_420_UNORM format.
Bug: angleproject:5438
Change-Id: I525a51256a5ee83fa69c8705aa90790fb32a6602
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2623813
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d38b9f86
|
2020-12-02T09:20:09
|
|
Allow GL_OES_shader_image_atomic when non-conformant
On Android, force allowing it with:
adb shell setprop debug.angle.feature_overrides_enabled \
exposeNonConformantExtensionsAndVersions
If enabling multiple features, switch to using settings which
don't have a character limit, but persist across reboots:
adb shell settings put global angle_egl_features \
exposeNonConformantExtensionsAndVersions:foo:bar
Test: Fortnite on ANGLE
Bug: b/170755560
Bug: angleproject:5503
Change-Id: I58e3b265daa8ea1f645f47e0971c4454b8ddb3f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2570775
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fb4eea2e
|
2021-01-11T16:58:02
|
|
Vulkan: Index mandatory support table by ANGLE format.
This removes another instance of indexing a flat array by VkFormat.
With the introduction of YUV formats we no longer have a compact
table. Switching to ANGLE format indexing allows us to keep a flat
array and avoid using an unordered map.
Bug: angleproject:5438
Change-Id: I96caa19e3b7ce419ce09680399919447f002b0bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2622238
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
8db7915e
|
2021-01-12T10:56:47
|
|
Vulkan: Increment buffer view serials only when used
This avoids the texel buffer view serials (shared with image view
serials) recklessly getting large.
Bug: angleproject:5185
Change-Id: I0debe73771094b395f6526475aa3c22a91f9e05e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2623811
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a4b582e8
|
2021-01-11T15:31:13
|
|
Vulkan: Notify ContextVk when UtilsVk binds compute pipelines
This issue was fixed for graphics pipelines (in
UtilsVk::clearFramebuffer), but remained for compute pipelines. If
UtilsVk issues a dispatch call, it now notifies ContextVk to rebind the
pipeline and descriptor sets.
Bug: angleproject:5529
Change-Id: Ic52f91bdc70d02c065ec2d5e2a3614c11fd62a9f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2622236
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
6e9018bd
|
2020-06-25T12:58:14
|
|
GL: Clean up Display code related to multithreading
Rename mCurrentData to mCurrentNativeContexts, and clean up some logic
to be easier to read.
Bug: angleproject:4724
Change-Id: I6fd6d99d4f9a3af808d0baa665edfbdde7fb0500
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2267424
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
5b8dec52
|
2021-01-12T04:11:56
|
|
Reland "Use is_apple instead of is_mac and is_ios everywhere"
This reverts commit 51603c63d1cb9e36afaf2069fc069e542ac2f3fb.
Reason for revert: Fixed issue that broke Skia build
Original change's description:
> Revert "Use is_apple instead of is_mac and is_ios everywhere"
>
> This reverts commit 2762641a3a1edf9665a61f40da6c160338056cb0.
>
> Reason for revert: is_apple is not universally defined. Breaks ANGLE roll into Skia.
>
> Original change's description:
> > Use is_apple instead of is_mac and is_ios everywhere
> >
> > Bug: chromium:1161513
> > Change-Id: Id7d582f127f4b79ea6fc5b8ad39fff768c45f477
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2611312
> > Reviewed-by: James Darpinian <jdarpinian@chromium.org>
> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
>
> TBR=jdarpinian@chromium.org,syoussefi@chromium.org
>
> Bug: chromium:1161513
> Change-Id: I831e60149f410044a79d9f66aa9ddd9902410fd7
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2618039
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
TBR=jdarpinian@chromium.org,syoussefi@chromium.org
Bug: chromium:1161513
Change-Id: I3cf30aa047a1f208fa7d1acda1d6d4e5da7b6ad5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2622244
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2e9706d8
|
2021-01-08T17:29:42
|
|
Vulkan: Use angle::FormatID instead of VkFormat.
This change switches the internal enums we pass around from VkFormat
to FormatID. The end goal of the refactor is to allow the Vulkan
back-end to store packed tables indexed by FormatID. Because VkFormat
has large gaps in its enum space we'd otherwise need to use unordered
data structures like unordered_map.
The change removes the redundant VkFormat storage from vk::Format and
uses a new table query to return the VkFormat that 1:1 matches an
angle::FormatID. We also include a reverse mapping for use with native
Vulkan get functions for Android.
Also moves sRGB conversion functions into renderer_utils. A couple
sRGB formats that don't exist in GL are no longer handled by the sRGB
conversion functions. These formats should be extremely rare.
Bug: angleproject:5438
Change-Id: Id8b49773ca0c556f9f5a6a10fcf0d9762b93bbea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2618204
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
d21d682d
|
2021-01-11T12:59:53
|
|
libstdc++: fix incomplete type for FramebufferCache
libstdc++ does not allow incomplete type for T2 with std::pair<T1,T2>
and fails with:
.../../src/libANGLE/renderer/vulkan/vk_cache_utils.h:1570:64:
required from here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/include/g++-v9/bits/stl_pair.h:215:11:
error: std::pair<_T1, _T2>::second has incomplete type
215 | _T2 second; /// @c second is a copy of
the second object
| ^~~~~~
https://chromium-review.googlesource.com/c/angle/angle/+/2580111
added class FramebufferCache with incomplete type in |mPayload| to
vk::FramebufferHelper. Changing include order is not an option.
However, FramebufferCache is only used in FramebufferVk and we
can make it local there.
Bug: chromium:957519
Change-Id: I5fbdca23adbb9f4aecc266988c02fb0d051504cb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2621473
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
de32c3d2
|
2020-11-04T13:16:31
|
|
Reland "Created test and fixed texture storage bug in d3d11"
This is a reland of 03f3ba5b1454ee7c15cd9391e77307cf1d274b48
Original change's description:
> Created test and fixed texture storage bug in d3d11
>
> Bug: b/172489285
> Change-Id: If7d88cf50d99da3380082c60fb3936ae0b20c4e5
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2519876
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Bug: b/172489285
Change-Id: I6b8226164a09aed208c56cb78b5d2c1385298cbe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2546034
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Trevor David Black <vantablack@google.com>
Commit-Queue: Trevor David Black <vantablack@google.com>
|
|
326f128b
|
2021-01-07T14:25:44
|
|
Vulkan: Prefer host cached memory for Buffers
This improves perf because vertex data upload uses host visible memory,
and uncached memory can be slow.
Test:
Android on Windows with 1080Ti:
glmark2 [build] vbo=false 265 -> 3900 fps
Bug: angleproject:5515
Change-Id: Ib75582bbdb4ca4a22d3a121c7b477a23a8a809ef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2615742
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
4dd9a5e1
|
2021-01-11T14:22:44
|
|
Enable building angle_white_box_tests on Fuchsia
Builds fine.
Bug: angleproject:2475
Change-Id: I96b2b03e1be2b801c3d8579ebf44d51b6faa3e57
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2622235
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
16dbcc13
|
2021-01-08T20:50:16
|
|
dEQP: Avoid undefined right-shift behavior for GLhalf
The FloatToHalf() function in "es31cVertexAttribBindingTests.cpp" will
attempt to right-shift more than the number of bits in an integer
(i.e. by 70) when converting 0.0f to GLhalf.
Bug: angleproject:5500
Change-Id: I587e71a2cb1377b95ed74a1bba5f4ceef6a4a516
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2618665
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
51603c63
|
2021-01-08T17:49:52
|
|
Revert "Use is_apple instead of is_mac and is_ios everywhere"
This reverts commit 2762641a3a1edf9665a61f40da6c160338056cb0.
Reason for revert: is_apple is not universally defined. Breaks ANGLE roll into Skia.
Original change's description:
> Use is_apple instead of is_mac and is_ios everywhere
>
> Bug: chromium:1161513
> Change-Id: Id7d582f127f4b79ea6fc5b8ad39fff768c45f477
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2611312
> Reviewed-by: James Darpinian <jdarpinian@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
TBR=jdarpinian@chromium.org,syoussefi@chromium.org
Bug: chromium:1161513
Change-Id: I831e60149f410044a79d9f66aa9ddd9902410fd7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2618039
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6e909d94
|
2020-12-30T19:40:21
|
|
Tests: Add Saint Seiya Awakening: Knights of the Zodiac trace
Test: angle_perftests --gtest_filter=TracePerfTest.Run/*saint_seiya_awakening*
Bug: angleproject:4048
Change-Id: Idf187b9c9298d184f1e0dd13f8a9aa0de7c2beb8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2612523
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7cdda2dc
|
2021-01-07T16:46:54
|
|
Vulkan: Add a perf test for pre-rotation code injection
A test is added that dispatches a large number of vertex shaders,
generating primitives that are all culled. The vertex shaders are
simple so that code injected for pre-rotation would make up the majority
of the shader code.
Bug: angleproject:5478
Change-Id: I75092cb25e6427449251985f56e54f89813dec32
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2615821
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2aa4f7e5
|
2021-01-08T16:35:29
|
|
Fix translator fuzzer
Since some ASTs are now disabled on certain conditions, this change lets
the fuzzer know when it has generated invalid translator options.
Bug: chromium:1164448
Change-Id: I1f1b120c33fb70f9776df858db033ec914d7ad89
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2618203
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
767af74e
|
2021-01-06T17:30:21
|
|
Tests: Add World War Doh trace
Test: angle_perftests --gtest_filter=TracePerfTest.Run/*world_war_doh*
Bug: angleproject:4048
Change-Id: I047ed1ccd06cd3707065fe8afed3ad7af5cd7dcc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2606645
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
43366979
|
2021-01-08T15:39:02
|
|
Add OWNERS info for Vulkan test utils.
Bug: chromium:1164084
Change-Id: I83cb75f2a0b4ad3f616d1b64beb34310cc23dd12
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2618202
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
038ae144
|
2020-12-31T21:23:30
|
|
Vulkan: Fix up varying component limits.
We weren't subtracting reserved varying vectors from component limits.
We also were using an incorrect value for fragment input components.
Bug: angleproject:5496
Change-Id: I44fc3b2f15687f4dee7a1498d50378e69d74afe3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2606536
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e4497d60
|
2020-12-31T20:12:13
|
|
Program: Move more common code to ProgramLinkedResources.
Refactoring change only.
Bug: angleproject:5496
Change-Id: Ic1c8301a070e91ad28791c23831b8236058ab9ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2606535
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
68f35f24
|
2021-01-07T14:42:57
|
|
Vulkan: Add GL_EXT_clip_control entry points
Addition of the entry points for GL_EXT_clip_control extension.
Bug: angleproject:5471
Change-Id: If17ba0120bdb226cc5728bfea83e9085260eba19
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2615862
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
fa449cf3
|
2021-01-06T10:02:12
|
|
Fix separable Geometry Shaders.
Was a needed fix for a new varying test.
Bug: angleproject:3571
Bug: angleproject:5496
Change-Id: I49ae69967510b7a6330ea217a0e0e19e3bebe865
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2613198
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3e33db95
|
2020-12-30T17:17:17
|
|
Merge Program/ProgramPipeline::getMergedVaryings().
This merges two very similar pieces of code into one simpler function.
The function doesn't use any maps or indirection to build the merged
varyings list. It also fixes a potential bug with IO blocks and name
matching due to the code bifurcation.
Bug: angleproject:5496
Change-Id: Ibf54faeeb01d1940570b366ed153fff7c9135c52
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2606533
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f99ccb08
|
2021-01-06T23:29:21
|
|
Vulkan: Add a perf warning when dropping superseded updates
If an update to an image subresource is entirely superseded by a
following update, the former update is dropped. This change adds a perf
warning for this.
Bug: angleproject:3461
Change-Id: Iaf4984ba52f3dfc86d5cc87f8be82123badebd04
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2613203
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a392a81d
|
2021-01-06T12:26:44
|
|
GLX: Avoid creating child window when X visual ID is specified.
ANGLE's GLX backend creates a child ID because the visual of the X
window must match that of the GLX window, and we can't always be
certain.
EGL_ANGLE_x11_visual allows applications to specify the visual ID
of the window passed to ANGLE via EGL_X11_VISUAL_ID_ANGLE. When this
is the case, we don't need to make a child window.
Since Chrome always passes this information, this may help optimize
ANGLE's GLX usage in Chrome, because we don't have to poll the parent
window to manage the child window's properties.
Bug: chromium:1132827
Change-Id: If8082d2d07469905afffab01dde2ec9fca8d4eb9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2611556
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
2d1406a8
|
2020-12-29T18:11:33
|
|
Capture/Replay: Capture glBindBufferBase during MEC setup
"World War Doh" binds uniform buffers via glBindBufferBase() calls
before any frames have rendered and then uses those bound buffers for
all subsequent frames. ANGLE's frame capture was failing to perform
these calls during the mid-execution capture setup phase, leading to
the replay generating VVL errors:
VUID-vkCmdDispatch-None-02699
Descriptor in binding #0 index 0 is being used in draw but has never
been updated via vkUpdateDescriptorSets() or a similar call.
This CL adds those calls to the MEC setup phase, allowing the replay to
execute without any errors.
Bug: angleproject:5495
Test: angle_perftests --gtest_filter="*world_war_doh*"
Change-Id: I751c9c6f60bf78c13428a9d1d6a06dbfe600c24b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2606806
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
a7158eb5
|
2021-01-06T21:33:24
|
|
Vulkan: Fix image leak in staged updates in ImageHelper
When removing superseding updates, the superseded update was not
released, causing a memory leak. This change also makes
SubresourceUpdate non-copyable and correctly implements the move
assignment operator such that swap between different update types are
correct. As a result, the destructor can now ASSERT that the image is
not leaked.
Bug: chromium:1146516
Bug: chromium:1163354
Change-Id: I7531c91d8559c23b2e09159118fe645d12fc601f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2613201
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
157ddfdc
|
2021-01-06T23:20:36
|
|
Build compiler_tests only if GLSL or ESSL build is enabled
Most of these tests use TranslatorGLSL or TranslatorESSL (often through
ShaderCompileTreeTest). In specialized builds that disable GLSL and
ESSL shader generation, disable these unit tests.
Bug: chromium:1161513
Change-Id: Ib87e651706f141a41ffdaebfb0cbe5168582e341
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2613202
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
acdb63b8
|
2020-12-23T12:57:08
|
|
Remove the checking before accessing to function pointers
Bug: angleproject:5490
Bug: chromium:1161513
Change-Id: I96c5c463a9fd5a337d09f6cefe7836ff52bea90f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2601071
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
e2a8a69a
|
2021-01-04T23:52:02
|
|
Vulkan: Move xfb emulation offset calculation to translator
A new function is added by the translator to calculate the transform
feedback offsets in the emulation path. This function makes the
generated code for transform feedback smaller.
Bug: angleproject:3606
Change-Id: I01460f907e20e2887cb720bddad96697fdcb0cf3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2607492
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
07d619cb
|
2021-01-06T11:36:40
|
|
Vulkan: Fix missing xfb buffer rebind on new command buffer
When a command buffer is ended, bindings are lost. This adds a dirty
bit to `mNewGraphicsCommandBufferDirtyBits` to make sure transform
feedback buffers are bound again on the new command buffer.
Bug: angleproject:5428
Change-Id: I7733c93b1eb5d33a77cbee231a83199be950e19f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2611552
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5e280545
|
2021-01-06T14:13:29
|
|
Move RegenerateStructNames AST transformation to gl/
This AST transformation is used by the chromium validating command
decoder on Linux/AMD/GL as well as MacOS.
Bug: chromium:1161513
Change-Id: I67e40215ae5576819ba5a58987ceb1776c86c731
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2613195
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
ca94d1da
|
2021-01-04T21:51:33
|
|
Vulkan: Refactor generated code in xfb emulation path
The index expression was regenerated for every component written to the
output. This change refactors the generated code such that common
values are calculated once.
This is in preparation for moving some of this code to the translator
and reducing the amount of code generated at link time.
Bug: angleproject:3606
Change-Id: Ib180d245218f8f6f18c57c0ea092e8c45cbffd1a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2607490
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
46d3f02a
|
2021-01-05T17:56:24
|
|
Suppress dEQP.KHR_GLES31/core_vertex_attrib_binding_basicinputcase5
on Vulkan Pixel2 and SwiftShader.
Ignore device and vendor in test config
if we are running on SwiftShader.
Bug: angleproject:5500
Change-Id: Ib07240dfe1c2ae1d6d081ffa389d041d97b22b36
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2611309
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
ebf00703
|
2020-12-29T16:25:54
|
|
angle_end2end_tests passes on iOS!
Miscellaneous test skips and fixes for iOS.
Bug: angleproject:5417
Bug: angleproject:5491
Change-Id: Id0785e6243949fc756e4d7923dbbe77a411052f3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2606656
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
|
|
2762641a
|
2021-01-05T23:00:14
|
|
Use is_apple instead of is_mac and is_ios everywhere
Bug: chromium:1161513
Change-Id: Id7d582f127f4b79ea6fc5b8ad39fff768c45f477
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2611312
Reviewed-by: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
56479b06
|
2020-12-21T13:03:50
|
|
Tests: Add FIFA Mobile trace
Test: angle_perftests --gtest_filter=TracePerfTest.Run/*fifa_mobile*
Bug: angleproject:4048
Change-Id: I5cc731ada3ddd9adcb247d7c6f8cf5d823bdc2a3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2600098
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
956a358d
|
2020-12-23T15:43:00
|
|
GL: Add function pointers for EXT/NV_framebuffer_blit
Allow the GL backend to call BlitFramebuffer through these
extensions.
Bug: angleproject:5474
Change-Id: Ic19b0535056c3e2b098dedc60e2eb8da5f862433
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2602702
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
dc2cf6fc
|
2021-01-06T11:35:53
|
|
Roll third_party/vulkan-deps/ b08eace32..cbab63796 (17 commits; 1 trivial rolls)
https://chromium.googlesource.com/vulkan-deps/+log/b08eace32e9c..cbab637962d0
$ git log b08eace32..cbab63796 --date=short --no-merges --format='%ad %ae %s'
2021-01-06 chromium-autoroll Roll SPIRV-Tools from d630e5f8c10c to 37c03859de9e (1 revision)
2021-01-06 chromium-autoroll Roll Vulkan-ValidationLayers from 2468aa9630c2 to 98382948dfea (1 revision)
2021-01-06 chromium-autoroll Roll SPIRV-Tools from 1bb80d2778a3 to d630e5f8c10c (1 revision)
2021-01-06 chromium-autoroll Roll glslang from 9325cc013e3d to f77085c307fc (1 revision)
2021-01-05 chromium-autoroll Roll Vulkan-ValidationLayers from 57255a663ed9 to 2468aa9630c2 (1 revision)
2021-01-05 chromium-autoroll Roll Vulkan-Loader from 1f0c7868a438 to 9ba835885ffe (1 revision)
2021-01-05 chromium-autoroll Roll Vulkan-ValidationLayers from 56a96658b750 to 57255a663ed9 (3 revisions)
2021-01-05 chromium-autoroll Roll Vulkan-Loader from 294480cb7f3e to 1f0c7868a438 (1 revision)
2021-01-05 chromium-autoroll Roll Vulkan-Tools from 7554321b88ae to 4cc0932495ec (2 revisions)
2021-01-05 chromium-autoroll Roll Vulkan-Loader from 66a23ac8c566 to 294480cb7f3e (1 revision)
2021-01-05 chromium-autoroll Roll Vulkan-Headers from 85470b32ad5d to 9efc4a631161 (1 revision)
2021-01-05 chromium-autoroll Roll Vulkan-ValidationLayers from aa076dae88e2 to 56a96658b750 (25 revisions)
2021-01-05 chromium-autoroll Roll glslang from f426f652299d to 9325cc013e3d (1 revision)
2021-01-05 chromium-autoroll Roll SPIRV-Cross from e50f7d1ce8e1 to 7b7a21c4058c (3 revisions)
2021-01-05 chromium-autoroll Roll SPIRV-Tools from 17ffa89097b2 to 1bb80d2778a3 (1 revision)
2020-12-21 jmadill Rolling 8 dependencies
Created with:
roll-dep third_party/vulkan-deps
Bug: angleproject:5390
Change-Id: I6f4a499099211e8990ed038984f41bc5f881c71f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2601340
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d9669322
|
2020-12-30T14:33:02
|
|
Remove "init" from VaryingPacking.
Instead we can pass the pack mode and size to the collectAndPack
method. This cleans up the interface and also allows us to merge
two separate code blocks in Program and ProgramPipeline.
Bug: angleproject:5496
Change-Id: I390b5d2e8a3b033374ccc5a250597be1f03dec96
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2606531
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
d33ffb22
|
2020-12-30T11:14:00
|
|
Organize VaryingPacking methods.
This clarifies the difference between "collect" and "pack" methods.
Previously the naming was overlapping between the two. Also makes
the "packUserVaryings" method private.
Refactoring change only. Will enable further improvements for
capturing varyings with multiple shader stages.
Bug: angleproject:5496
Change-Id: I854590ceab39f3a0e7a785516e0d1fd44e4ccc98
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2606529
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
92e7bc89
|
2020-12-23T15:18:42
|
|
Remove ProgramLinkedResources from ProgramExecutable.
Instead of storing the entire LinkedResources struct, we can keep it
only for the duration of the linking calls. Refactoring change only.
It sets the stage for more refactoring. This change also switches the
link call to use LinkingState's ProgramLinkedResources directly to
avoid the need to copy the varying packing or use a pointer.
Bug: angleproject:4514
Bug: angleproject:5496
Change-Id: Iefea3c16a33213dc338cc54efaa7c3064ea6ae08
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2601403
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e09e947d
|
2020-12-29T18:21:36
|
|
Capture/Replay: Don't force built-in attribs to have a location
CaptureMidExecutionSetup() hits an assert while capturing "World War
Doh":
ANGLE : FATAL: FrameCapture.cpp:2876 (CaptureMidExecutionSetup):
! Assert failed [[[...]]] attrib.location != -1
This is due to CaptureMidExecutionSetup() enforcing that all attributes,
including built-ins, have a location. However, in the case of "World War
Doh", the built-in 'gl_GlobalInvocationID' does not have a location.
Moving the assert to after the gl::IsBuiltInName() check allows the
capture to complete without hitting any asserts.
Bug: angleproject:4048
Test: Capture "World War Doh"
Change-Id: Ice96dec629b1477b11a710283c4ec4bf1c95c6e2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2606807
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
bf6cc88a
|
2021-01-05T22:17:41
|
|
Vulkan: Remove duplicate shaderType parameter to SPIR-V transformer
The passed-in GlslangSpirvOptions already has the shaderType, so this
extra parameter was not necessary.
Bug: angleproject:4524
Change-Id: Ibbc7442b3173b26825f3cb9e2365789fade92cfc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2611311
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
382bf288
|
2020-12-24T23:56:39
|
|
Organize AST transforms per backend
Most of the AST transforms are written as a workaround to an issue that
affects a single backend. This change identifies such transforms and
organizes them by backend. They are then only built if the respective
backend is.
Additionally, about half of the GL transforms are due to mac
workarounds, including the large RewriteRowMajorMatrices transform.
Mac-specific workarounds are additionally only built on said platform.
This change reduces the ANGLE binary size:
- 106KB in a Vulkan-only build on Linux
- 27KB in a GL-only build on Android (60KB on Linux)
Bug: chromium:1084580
Bug: chromium:1161513
Change-Id: I64b334332c0d4f848756c6538af0d8d96864c7e9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2601346
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
e91097bf
|
2020-12-29T14:05:56
|
|
Vulkan: Clean up "actual"/"intended" naming.
Clarifies that the GL internal format is an "intended" format
and the Vulkan formats are "actual" formats. This makes all the format
fields use the same consistent naming pattern.
Bug: angleproject:5438
Change-Id: I935a49895109e9e06eae5ef98d5614dfd1128ff8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2605728
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
973bd4ba
|
2020-12-21T13:45:36
|
|
Complete I/O block GLSL tests
The tests meant to perform a draw call and validate the correctness of
the shaders.
Bug: angleproject:3580
Change-Id: I3a008d204ae3d7dceb731ba7a815ab54f38c2920
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2599938
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
aff17499
|
2020-12-23T14:40:06
|
|
Vulkan: Directly capture non-gl_Postion builtins
Building on support for transform feedback capture of I/O block members,
this change optimizes capture of builtins other than gl_Position by
directly decorating members of gl_PerVertex. Most importantly, this
allows us to reserve only one varying for transform feedback, instead of
as many builtins there could be (up to 4).
Bug: angleproject:3606
Change-Id: Ie0957802c657ed6c5aac538d92b860582ed6da45
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2601072
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b6ea6edc
|
2020-12-29T16:30:29
|
|
Remove tabs from volk.c/h
WebKit's SVN continues to abhor tabs.
Bug: angleproject:3439
Change-Id: Ib97fc97c0eb7401f73ea493a7b679f78afc1a8c4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2606658
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
|
|
6c608e94
|
2020-12-29T16:24:08
|
|
iOS sRGB mipmap generation is broken too
Enable the encodeAndDecodeSRGBForGenerateMipmap workaround for iOS.
Bug: angleproject:5417
Change-Id: I39d9e7c371f0ee5ec5119669f3b855251691f9e2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2606657
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: James Darpinian <jdarpinian@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>
|
|
de62b251
|
2020-12-29T17:07:06
|
|
Make sure the queried resources are active
In GLES 3.1 spec, sesion 7.3.1 program interfaces, it says that
'Resources referenced in shader code are considered active unless the
compiler and linker can conclusively determine that they have no
observable effect on the results produced by the executable code of the
program.'. Variables might be considered inactive if they are used only
in computations of temporary variables having no effect on any shader
output. So we should use atomicCounterIncrement instead of atomicCounter
in case the resources are marked as inactive on some platforms.
Bug: angleproject:5494
Change-Id: Ic04bd4a2936e97776fc680b5ef8273f0944d7480
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2605917
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
47ee6a7b
|
2020-12-23T13:31:23
|
|
Add build flags to disable desktop gl backend
This change saves about 100KB on Android
Bug: angleproject:5490
Change-Id: Ieca0e597423f74a917197f381560af5409a9e874
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2601341
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
093250e0
|
2020-12-23T12:07:46
|
|
Vulkan: Make shader variable info maps a class.
Instead of using a map type directly we abstract the info maps into an
encapsulated class. We can enforce a specific API set instead of using
the same API as the map class. This also cleans up a few of the APIs
related to these maps.
This change will allow future changes to the way the variables are
stored in the class without drastically changing the interface.
Bug: angleproject:3572
Bug: angleproject:4524
Change-Id: Ic1a63e1776c39f49b895a1274bae8282d7a6b9b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2600080
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
c2847bbc
|
2020-12-23T15:59:59
|
|
[GLX] Don't request exposure events for child windows
After [1], Chrome and ANGLE use separate X11 connections, so in order
for Chrome to receive exposure events, it must select for them its own
connection, which is done in [2].
The events selected by ANGLE's connection are never dispatched, so
they queue up indefinitely and leak until the connection is closed
(when happens when Chrome closes). This change removes the request
to receive exposure events.
[1] https://chromium-review.googlesource.com/c/chromium/src/+/2492177
[2] https://chromium-review.googlesource.com/c/chromium/src/+/2602441
Change-Id: Ie47c3700855aeeecc8efa1b379df60c344b1b70a
Bug: chromium:1158170
R=jonahr
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2602705
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
220642a9
|
2020-12-16T21:10:37
|
|
Allow Drawing with Immutable Persistent Mapped Buffers
From the EXT_buffer_storage overview:
The GL_EXT_texture_storage extension added immutable storage for
texture objects (and was subsequently incorporated into OpenGL ES
3.0). This extension further applies the concept of immutable
storage to buffer objects.
[T]his extension introduces the concept of persistent client
mappings of buffer objects, which allow clients to retain pointers
to a buffer's data store returned as the result of a mapping, and to
issue drawing commands while those mappings are in place.
The initial implementation of EXT_buffer_storage didn't enable this
portion of the extension, so ANGLE is generating errors while attempting
to draw with an immutable buffer mapped with the GL_MAP_PERSISTENT_BIT
flag.
This CL enables that functionality, since apps (e.g., FIFA Soccer) rely
on it.
Bug: angleproject:5473
Change-Id: Icf1c0597156044a342aac5e4d2abbc29b34f46b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2596957
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
c6e63da8
|
2020-12-24T21:32:42
|
|
Suppress IOBlocksSeparate xfb test on AMD/Linux/GL
Bug: angleproject:5487
Bug: angleproject:5493
Change-Id: I6e15c35eacafef0ac4b7c7789619470501e31402
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2601345
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9f0748ea
|
2020-12-24T16:05:24
|
|
Skip TransformFeedbackTestES31.IOBlocks* on Linux AMD Vulkan
Bug: angleproject:5493
Change-Id: I5e0b0ec478807ebfe7a0ec114adaba13ea103ea0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2601344
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@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>
|
|
939195a0
|
2020-12-23T15:12:30
|
|
Skip tests using unimplemented features on iOS
Bug: angleproject:5485
Change-Id: I3248126060b9957596f65221c60f42f213e9a9dc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2601377
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
|
|
7061af26
|
2020-12-22T10:43:45
|
|
Fix BlitFramebuffer issues with large rects on iOS
Enable adjustSrcDstRegionBlitFramebuffer workaround on iOS and fix
a conflict when it is enabled in combination with
clipSrcRegionBlitFramebuffer.
Bug: angleproject:5417
Change-Id: I1de0f9f392643fbcf6900bad86d83084cb6d4009
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2601106
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
|
|
88fec1e8
|
2020-12-23T11:53:55
|
|
Code generation for NV_framebuffer_blit
Generate the entry points for NV_framebuffer_blit.
Bug: angleproject:5474
Bug: chromium:1157057
Change-Id: Iadffa24ce7368d8ab6c4bf9d5b6c016276e762f5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2602242
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
0dbe7cdd
|
2020-12-08T12:24:35
|
|
iOS testing support
angle_white_box_tests build and runs and passes on the iOS
simulator with this change. angle_end2end_tests builds and runs but
crashes.
Bug: angleproject:4256
Bug: angleproject:5417
Change-Id: I8817e46415c4598cbfae49804727a2e9b21baff1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2600361
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
eeb14308
|
2020-12-23T01:45:35
|
|
Vulkan: Support xfb capture of I/O block fields
In the emulation path, it's ensured that the generated code references
the I/O block field correctly (using the instance name if provided, and
without it otherwise).
In the extension path, the info map is augmented with an array of xfb
decorations for its fields. Then when `OpDecorate %IOBlockId Block` is
encountered, the transform feedback decorations on the fields are
inserted:
OpMemberDecorate %IOBlockId MemberN XfbBuffer buffer
OpMemberDecorate %IOBlockId MemberN XfbStride stride
OpMemberDecorate %IOBlockId MemberN Offset offset
Future work includes removing the duplicate varying added for
gl_PointSize and use this mechanism to decorate gl_PerVertex directly.
Bug: angleproject:3606
Change-Id: I6fed0b1ee7245fe695337043b40b281fb01a1fb0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2599953
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8065aa82
|
2020-12-22T23:38:42
|
|
Front-end support for xfb capture of I/O block members
Validation and generation of transform feedback varyings that specify an
I/O block member are implemented in this change. The GL backend is able
to pass the added tests.
Bug: angleproject:3606
Change-Id: I66d02bed8ca9161555d0d1e7a32ae9ef4d9e813f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2599952
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
b91afcfd
|
2020-12-11T10:58:54
|
|
Bump implementation max textures/images limit to 96.
We need the higher limit for tessellation shaders and ES 3.2.
Unfortunately this means we are no longer using a packed 64-bit bitset
for the active textures and images. We fallback to using std::bitset.
Also keeps the 64 texture limit if tessellation is not available. The
higher limits was causing timeouts in WebGL tests.
Bug: angleproject:3572
Change-Id: I1953955600b56d7c66178bd610de53453151dc8f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2586996
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|