|
70642e42
|
2019-06-05T14:55:49
|
|
Vulkan: Implement ES 3.0 rasterizer discard
Rasterizer discard is a feature that allows the graphics pipeline
to skip the fragment shader stage.
Implementing rasterizer discard in Vulkan is as easy as not binding
a fragment shader binary.
Tests for rasterizer discard live in
dEQP-GLES3.functional.rasterizer_discard.*.
Bug: angleproject:3214
Test: dEQP-GLES3.functional.rasterizer_discard.*
Change-Id: I0815df3b70f6f9cdc6c8c87ec4813bb629d8bd5f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1646692
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ed65dc43
|
2019-06-03T11:21:00
|
|
Vulkan: implement glSampleCoverage
Emulated by applying a mask on top of the mask from glSampleMask.
Bug: angleproject:3204
Change-Id: I4c80ab0a3261cbf1b8a43c270fe13c2a247ea663
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1639749
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b407e1a0
|
2019-06-03T17:15:51
|
|
Vulkan: implement ES3 blit
Augment the resolve shaders to be able to stretch and blit too. The
UtilsVk resolve function is accordingly expanded to include blit.
Bug: angleproject:3200
Change-Id: I30b172a5e388089735ab494f55cbfdc2781a8bf9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1635753
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
a4a24af3
|
2019-06-06T10:50:21
|
|
Vulkan: fix uint indices causing incomplete buffer
Fixes buffer size calculation when uploading element buffer
to account for 4-byte (uint) indices.
Bug: angleproject:2902
Change-Id: Id70fc0fdffecd0b27995820bd0ad88e4cb61e013
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1648325
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
266a9e8d
|
2019-06-05T15:15:10
|
|
Vulkan: Move descriptor pools into ProgramVk.
Previously ContextVk owned the descriptor pools. We were trying to
maximize descriptor reuse to conserve memory. However the default
uniforms would have no possible sharing. And because uniform buffers
are usually unique to a program it's likely there would be less reuse.
Image descriptors could be shared. But with the advent of a descriptor
cache in the Program it becomes difficult to manage the cache through
descriptor pool recycling. Moving the pools into the Program simplifies
the cache management. We could look at adding back more reuse in the
future.
Also shifts driver uniforms back into the end of the descriptor sets
to make indexing into the Program's descriptor pools simpler.
Bug: angleproject:3117
Change-Id: I52bb49cf322d944ad7cf08791efdf24b7fe573ce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1644775
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e431aaa1
|
2019-06-04T11:36:43
|
|
Rename EGL_ANGLE_workaround_control to EGL_ANGLE_feature_control.
For consistency, call these ANGLE "features", a subset of which may be
workarounds. Also, whether the feature is enabled/disabled should be
publically visible as "status".
Bug: angleproject:1621
Change-Id: I0de90a932fbfe1fc9b59138153d616d29fa7268b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1643410
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
2dd40a44
|
2019-05-30T16:40:13
|
|
Add eglQueryDisplayAttribANGLE to query workarounds count.
Add eglQueryDisplayAttribANGLE based on eglQueryDisplayAttribEXT to add
behavior for quering the count of all workarounds available. Used
externally to build a list of workarounds.
Bug: angleproject:1621
Change-Id: I793acedc76111fd018600169d58bf5d8cf4a63ee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1637817
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
20d380fa
|
2019-06-03T15:21:47
|
|
Print stack backtrace on critical failure.
We reuse code from Skia to walk the stack on Posix platforms. See:
https://github.com/google/skia/blob/master/tools/CrashHandler.cpp
On Windows we use a BSD-licensed tool called StackWalker. See:
https://github.com/JochenKalmbach/StackWalker
This allows us to get high quality stack traces on Win/Linux/Mac.
Bug: angleproject:3162
Change-Id: I9c50ede2c6a41ed0ee85a0507372df42a487bcef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1632950
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
5993d899
|
2019-06-03T13:05:38
|
|
Vulkan: Use storage buffers for index conversion shader.
This allows us to use the shader regardless of driver support for
texel buffer views. It also allows us to convert indices on the GPU
unconditionally.
We add a new internal compute shader that converts pairs of indices
into a packed single uint value that stores two 16-bit values. In the
future we could add support for converting primitive restart indices.
Should speed up benchmarks on systems which didn't have R8_UINT support
for compute shader buffers.
Bug: angleproject:3490
Change-Id: I56ca0cabb094e97f36ab4edc779e6c8ad2d2601e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1639058
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
4a757416
|
2019-06-03T14:04:01
|
|
D3D: Fix heap corruption when copying texture arrays
Do not use depth dimension when copying normal 2D textures of a 2d texture
array. It copies past the end of the buffer obtained via
ID3D11DeviceContext::Map().
Fixes a case which can be reproed with the payload disabled:
gn args out\debug --args="is_debug=true"
ninja -C out\debug angle_end2end_tests
out\debug\angle_end2end_tests ^
--gtest_filter=Texture2DArrayCopy.SnormFormats* --gtest_catch_exceptions=0 ^
--gtest_repeat=-1
Bug: angleproject:2865
Change-Id: Id9bc5489fa41749d1b1d2e87992166b1a0af76fc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1641247
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
12a52423
|
2019-06-03T10:39:54
|
|
Sharpen GL test skip condition for NVIDIA
The skip condition for GLSLTest_ES3.VaryingStructNotInitializedInVertexShader
is modified to not skip NVIDIA on windows.
Bug: angleproject:3413
Change-Id: I126d9fa9e36c3b6c07abfd24bdaf6feb76ac4f6f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1640208
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0730e630
|
2019-05-31T14:25:37
|
|
Fix needStructMapping
In previous logic, we didn't check the structure field member type. So
when passing the non-struct member of a structure to a function, it
would think that struct mapping was needed.
In this patch, we add more checking so that struct mapping only happens
when there are structure copy or passing a structure to a function.
BUG=angleproject:2967
Change-Id: Ic98e884c8f8540e180cdf40a0e036ffef18c1689
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1638227
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c104b2d2
|
2019-05-31T16:25:02
|
|
Re-enable WGL perf test configs.
These were accidentally dropped in https://crrev.com/c/1574674 .
Re-enable so we can gather better perf stats on Windows machines.
Bug: angleproject:3494
Change-Id: I92e9ba7e7783fddde1a47c0ffe056da7750d2c3b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1639063
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
0a56f0e3
|
2019-05-14T17:07:27
|
|
Vulkan: Update front face mode during syncState()
When handling DIRTY_BIT_DRAW_FRAMEBUFFER_BINDING in syncState(), the
call to update the front face was missing, so culling could be enabled
for the wrong front faces.
Bug: angleproject:3237
Test: Verify 3D apps render (more) correctly
Test: New SimpleStateChangeTest end2end tests
Change-Id: I1d94a977bea9e48d90b5346861e5565d2371cadd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1611753
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
172e5d37
|
2019-05-29T10:00:50
|
|
Vulkan: Implement universal stencil resolve
This is done by resolving stencil into a temporary buffer and copying
that into the stencil aspect of the resolved image.
Bug: angleproject:3200
Change-Id: I29111b44db2cb093acc4544034fbe61178f055a1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1635709
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
f52f2637
|
2019-05-23T13:52:52
|
|
Add EGL_ANGLE_workaround_control extension.
This extension is used to query strings from an array based on index,
which will be used to query all the information about workarounds in
ANGLE.
Bug: angleproject:1621
Change-Id: I27157f278f7f17c92c8b4fd7753e2a5ecd0528f6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1627723
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
06055b5e
|
2019-05-29T14:31:42
|
|
Update Windows AMD suppression.
Should have been specified for OpenGL instead of D3D11.
Bug: chromium:967796
Change-Id: I099ab51709f69e7abb7fe698e6010241bdccb4bf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1635751
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f2a1c384
|
2019-05-21T16:32:49
|
|
Vulkan: Implement multisampled framebuffers
Simultaneously implements ANGLE_framebuffer_multisample and ES3
multisampled framebuffers.
Additionally, implements ES3 framebuffer blitting where multisampled
framebuffers are involved.
Bug: angleproject:3203
Bug: angleproject:3204
Bug: angleproject:3200
Change-Id: I5694a30f71168e807688a9568e3742b81d907918
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1622667
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
262e2824
|
2019-05-20T14:24:40
|
|
Use D3D11 GetDimensions driver workaround for 3D textures
Some NVIDIA D3D11 drivers are buggy and interprets the level passed to
GetDimensions as being relative to 0, rather than the SRV's MostDetailedMip.
This affects all integer format textures, because the dimensions are used for
sample position calculations with integer format textures, which leads to
sampling outside texture when the base level is non-zero.
Bug: angleproject:3441
Change-Id: Ic54328e3d712e28a40efb4e63b8fce0baeb4ef42
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1619785
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ded5f903
|
2019-05-01T13:58:27
|
|
Vulkan: Make the Vulkan renderer thread safe.
Gate all access to the queue and caches with mutexes. Does not handle sharing
of resources in share groups across threads yet.
BUG=angleproject:2464
Change-Id: I297f8f1a535b99efca663cf72bac3d90df8b5d97
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1592253
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
29ac274f
|
2019-05-28T15:53:00
|
|
D3D11: Suppress failing Texture test on AMD.
Bug: chromium:967796
Change-Id: I48280909db9c927c12d3c0d97f1ad451dffb849e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1632949
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
69d04939
|
2019-05-20T14:04:13
|
|
Use D3D11 GetDimensions driver workaround for 2D array textures
Some NVIDIA D3D11 drivers are buggy and interprets the level passed to
GetDimensions as being relative to 0, rather than the SRV's MostDetailedMip.
This affects all integer format textures, because the dimensions are used for
sample position calculations with integer format textures, which leads to
sampling outside texture when the base level is non-zero.
Bug: angleproject:3441
Change-Id: Ic012cac94ce0a627221087ecb2ee6aa3665900d1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1617780
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kimmo Kinnunen FI <kkinnunen@nvidia.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1b6aded6
|
2019-05-20T12:56:34
|
|
Test D3D11 GetDimensions driver workaround for textureProjOffset
Some NVIDIA D3D11 drivers are buggy and interprets the level passed to
GetDimensions as being relative to 0, rather than the SRV's MostDetailedMip.
This affects all integer texture formats because the dimensions are used for
sample position calculations on integer format textures, which leads to sampling
outside the texture when the base level is non-zero.
Bug: angleproject:3441
Change-Id: I9d2f8fa8e66caca704cbc46d4933d3f97aaf93ea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1617779
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kimmo Kinnunen FI <kkinnunen@nvidia.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3fe06eb3
|
2019-05-21T17:37:25
|
|
D3D: Make sure Lod0 functions are never referenced in non-fragment shaders.
The lod0 functions would not be declared but could still be referenced by
vertex shaders.
BUG=angleproject:3471
Change-Id: I635a8465ce68dc22a6f7387b30bf7e93b14dd67d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1622741
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
|
|
6722009e
|
2019-05-20T11:12:53
|
|
Vulkan: Handle dirty RTs with state messages.
Prior to this CL we were handling dirty state change notifications by
flushing the RT Images just prior to use or just after they were
changed. This could lead to a few redundant checks in several places.
It also meant we needed an owner pointer from the RT to the parent
Image. This pointer would be null for Surfaces and Renderbuffers.
This cleans up the image flushing logic to be handled by dirty bit
notifications. When an app updates an attached Texture with TexSubImage
or related calls it will send a notification to the Framebuffer. The
Framebuffer then sets a dirty contents bit that is handled in the
implementation. In Vulkan this means flushing the dirty bits.
Requires adding a flag to the FramebufferImpl class to determine if we
need to syncState before we checkStatus. Adding the option allows us to
only call syncState for the GL back-end. Not calling syncState allows
the robust resource init operation to happen *before* we syncState.
Which in turn allows FramebuffeVk to initialize the VkImages in one go.
Added new regression tests for Texture updates. This might not cover
all cases. I found it was very hard to trigger some of the resource
update staging in TextureVk.
Bug: angleproject:3427
Change-Id: Idfa177436ba7fcb9d398f2b67922e085f778f82a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1601552
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3f3a05d4
|
2019-05-27T09:08:46
|
|
Fix KHR dEQP test data dir.
Had an extra "gl_cts" appended.
Bug: angleproject:3353
Change-Id: I962cd0196b898e5fdd631790d88bfb1d478d16b9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1630292
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d68aff6c
|
2019-05-22T13:01:50
|
|
Fix the crash when the array size is not big enough.
Previously, we used IMPLEMENTATION_MAX_DRAW_BUFFERS(8) as the array
size of 'previouslyBound' which is used to record whether more than two
different blocks are bound to a single buffer. However, when the
underlying driver is d3d11_1, the max allowed shader storage blocks will
be 64 which is larger than 8. An assert error will be met in
push_back like below:
Test case
'dEQP-GLES31.functional.ssbo.layout.random.all_per_block_buffers.45'..
ERR: push_back(250): ! Assert failed in push_back
(../../src\common/FixedVector.h:250): mSize < N
So we use 64 as the upper limit of max shader storage blocks.
Bug: angleproject:3447
Change-Id: Ie76bfd15486c1ed02afca4283d6e70bdb4298cb6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1623794
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
431ef2fd
|
2019-05-21T17:13:08
|
|
Add support for EXT_blend_minmax
This is to add additional modes (MIN, MAX) to "BlendEquation".
- add cases for "GL_MIN" and "GL_MAX" into "PackGLBlendOp()" in
vk_cache_utils.cpp
- add enabling "blendMinMax" codes into vk_caps_utils.cpp
And, AUTHORS and CONTRIBUTORS are updated.
BUG=angleproject:2897
Tests: dEQP-GLES3.functional.fragment_ops.blend.*min*
dEQP-GLES3.functional.fragment_ops.blend.*max*
Change-Id: I13a1d6d28a104b18e21697f9f23d77e4eda2d1a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1621582
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e794ddc8
|
2019-05-10T11:05:10
|
|
OpenGL: Remove all attachments before executing internal clear
This patch fixes a bug in BlitGL::clearRenderbuffer() by removing
all the attachments of mScratchFBO before attaching the real
target of clear to keep mScratchFBO always being incomplete.
Without this fix, the WebGL CTS tests mentioned in issue 2760 will
fail on Intel OpenGL drivers when Chromium is using pass through
command buffer because when a multisampled depth renderbuffer is
attached to mScratchFBO, mScratchFBO will sometimes become
incomplete because it may already have a non-multisampled color
attachment.
Bug: angleproject:2760
Test: angle_end2end_tests
Change-Id: Id206fb4b338545ab46aba118e80d288158dcd8ec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1612305
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d2683459
|
2019-05-23T16:11:19
|
|
Skip Texture2DIntegerTestES3.IntegerTextureNonZeroBaseLevel
on Win AMD OpenGL
Bug: angleproject:3478
Change-Id: I8f0ffeb0da31d08f4f4f45048d295c847cf095bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1626328
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
6bb193c8
|
2019-05-22T16:32:21
|
|
Vulkan: Implement glImportSemaphoreFdEXT
Allow importing file descriptors into semaphores on linux. This can be
used to synchronize ANGLE's GL renderer with respect to vulkan
composition in chromium.
Bug: angleproject:3289
Change-Id: I04ba3bbb2e343baa000ff89c21c03ca36163a713
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1623812
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d9fa0744
|
2019-04-25T14:57:26
|
|
Emit OVR_multiview2 on ESSL/GLSL outputs.
Add ARB_shader_viewport_layer_array support to
SH_SELECT_VIEW_IN_NV_GLSL_VERTEX_SHADER.
Bug: angleproject:3404
Change-Id: Ia89517d0cc92400ce47c9118e8c1abf8285aec41
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1585452
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8224a58b
|
2019-05-20T12:39:29
|
|
Normalize fragment color in Texture2DIntegerTestES3
The sampler returns colors with components in the range 0-255.
Bug: chromium:963595
Change-Id: I7030ab9da6e0803e3aaf8aef4691ce7276636b10
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1617778
Reviewed-by: Kimmo Kinnunen FI <kkinnunen@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5093ba67
|
2019-05-14T17:36:36
|
|
Implement resource management for GL_EXT_semaphore
This implements glGenSemaphoresEXT, glDeleteSemaphoresEXT, and
glIsSemaphoreEXT. It's not possible to do anything useful with them yet.
Bug: angleproject:3289
Change-Id: I20ad90dbcd3fc573a4650c8531d6e1b8ccf7ca9b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1623811
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e4452440
|
2019-05-09T13:29:49
|
|
Fix integer cube map sample HLSL calculation
This patch fixes two issues in the HLSL generated to sample an integer cube map.
The first issue was that an inappropriate major axis was selected when sampling
from corners of the cube map. In particular, the added test case demonstrates a
situation where a major axis of length 0 was selected, which lead to an infinite
LOD being calculated. The fix was to adjust inequalities such that always
exactly one of xMajor, yMajor and zMajor is true.
The second issue was that the derivative functions ddx and ddy were being used
on values that depended on the choice of major axis, which is not continuous at
the corners of a cube map. This lead to a finite but incorrect LOD being
calculated. The fix was to make sure major axis choice is not included when
estimating the scaling factor.
Bug: angleproject:3442
Change-Id: Ia3eb8c89f47d1bfdadc18aec989e8cbebc088ec0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1601515
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
fb8e1b25
|
2019-05-17T13:18:40
|
|
Vulkan: Fix multisampled clear
UtilsVk::clearFramebuffer was not setting the sample count.
Bug: angleproject:3204
Change-Id: Iab7d385ec58b12f21d888c5dfc9e94b7846ac40c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1616858
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
01f98cbf
|
2019-05-21T12:21:36
|
|
Skip failing MultisampleTest on Nexus 6P and NVIDIA Shield TV
Bug: angleproject:3464, angleproject:3470
Change-Id: Ie864118ceebfc0d72aa95928a02ef0939be5b89a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1620992
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
08146a27
|
2019-05-17T10:40:44
|
|
Remove non-source sources from binary targets
No behavior changes.
BUG=chromium:964411
Change-Id: I843757e65f110882c01514fe6bf4aed28e07dd21
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1617011
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7a026133
|
2019-05-20T10:34:08
|
|
Fix Android data dir for KHR dEQP tests.
Also includes a fix for case list paths on developer machines. Also
includes a test expectation update for GLES2.
Bug: angleproject:3353
Change-Id: Idb01eb8d806067739253a6676a6d2d8ee1199929
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1616853
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
70958d15
|
2019-04-17T13:59:45
|
|
Let attribute aliasing logic detect overflow
Checking against the max attribute count is not needed
as aliasing is implemented correctly below. If not enough
locations are available, linking will fail.
This works for backends that support aliasing (Vulkan, GLES),
but not for D3D11, which asserts. To handle this, add a
limitation that informs the frontend of aliased attribute support.
Bug: angleproject:3252
Bug: chromium:964404
Change-Id: Ib9ae5d381bbb2e6bf496272fc3d9e88467c17290
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1572817
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b16d69c3
|
2019-05-13T16:28:27
|
|
Vulkan: Add support for surface multisampling
A multisample image is created for the surface if multisampling is
enabled. Prior to present, this multisample image is resolved into the
swapchain image.
FramebufferVk::readPixelsImpl similarly has got the ability to resolve
the region of interest into a temporary image prior to readback.
Tests are added to render a point, line and a triangle on a 4x
multisampled surface.
Bug: angleproject:3204
Change-Id: I34aca502fa1918b5cbf000ff11521c350372e051
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1610188
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
09eabed9
|
2019-04-03T19:20:21
|
|
Allow attribute linking for ES2
* Pipe webGL compatibility down to allow attribute aliasing.
* Reject aliasing if shader level is too high, or webGL is in use.
Bug: angleproject:3252
Change-Id: I3378fe707e3795a4b8a424989afccff42bc84344
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1556538
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
cafd7736
|
2019-05-17T09:33:41
|
|
Fix KHR-GLES dEQP test paths.
Our GN was using the incorrect path for the new test sets. This was
showing up as an isolate_tests failure when running the new tests.
Also fixes incorrect search paths for the case list directory when used
in a Chromium checkout. And adds a few other missing data dependencies.
Bug: angleproject:3353
Change-Id: I602db1e5debdad88b6eace76416fc2c10c059f8b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1616021
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
06de90c6
|
2019-05-16T12:46:54
|
|
Vulkan: Re-enable a handful of suppressed ES3 tests
Few features are already implemented but the suppressions were not
removed.
Bug: angleproject:2392
Bug: angleproject:2394
Bug: angleproject:3199
Bug: angleproject:3219
Bug: angleproject:3423
Change-Id: Iefd6c10f5ec774e174901114b35410c0d397085f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1614428
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
aefbea29
|
2019-05-16T13:33:27
|
|
Fix Clang warning in dEQP-KHR tests.
Due to complex and slow process of upstreaming it's easier to disable
this warning than to fix it upstream. Only happens in a Chromium build
because Chromium uses a specialized standard library.
Bug: angleproject:3353
Change-Id: I01607a00e469110c87458458d3b205fd59ea3db3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1614426
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
cfffc138
|
2019-05-16T11:35:01
|
|
Add KHR-GLES dEQP tests.
This reorganizes the dEQP build targets to allow for better reuse with
the new KHR test set. It also adds a single new test target called
"angle_deqp_khr_tests" that houses all the new test sets.
The new test targets can be compiled now but cannot yet be executed.
That new functionality will follow in a subsequent CL. Along with test
expectations and integration.
Uses a new template type in the build to conslidate GN customization.
Adds the GLES 2.0 and 3.0 tests for now. We can follow up with
additional work for the GLES 3.1+ tests. Also adds test expectations.
Bug: angleproject:3353
Change-Id: Ib0673e97f679c8aa46e27dfa616845a2014a75fe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1604070
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
60cc751a
|
2019-05-06T09:25:27
|
|
Use D3D11 GetDimensions driver workaround for integer cube maps
Some NVIDIA D3D11 drivers are buggy and interprets the level passed to
GetDimensions as being relative to 0, rather than the SRV's MostDetailedMip.
This affects integer cube maps because the dimensions are used for sample
position calculations, which leads to sampling outside the cube side textures
when the base level is non-zero.
Bug: angleproject:3441
Change-Id: I151f9336b9c6d8ec7012bf5010a2d45fb2951e73
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1595688
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
311e8086
|
2019-05-15T13:25:56
|
|
Do struct mapping under conditions
Struct mapping consumes lots of time when the array lengh is very large.
And it's done unconditionally. This CL does struct mapping only if it's
a struct assignment or passing the struct to a function.
In the next step, we can use a function to do struct mapping instead of
struct array initialization.
Bug: angleproject:2967
Change-Id: Ie5a74fa05dbc0255ad664d6265dbb880a624f01e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1612978
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
6ddb7768
|
2019-05-15T15:25:36
|
|
Remove angle:: prefix in angle_deqp_gtest.
Refactor and cleanup only.
Bug: angleproject:3353
Change-Id: I2a01ddf71ba44b8f1a1fc2c4ccbac9edc7c80174
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1613893
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b4ca09ac
|
2019-05-15T15:23:12
|
|
Add IsDirectory helper function to system_utils.
This was previously a method in dEQP only. Cleanup change only.
Bug: angleproject:3353
Change-Id: I9ac58ab52516f75efbb08bddb39466a40c07cbb8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1613892
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
38ff3c70
|
2019-05-15T10:07:09
|
|
Vulkan:Allow same-named var in nested scope
ESSL 1.00 spec allows for variable with same name to override outer variable
inside of a nested scope. This change adds new scope to symbol table inside
of a function defintion, but after function parameters for ESSL 1.00
shaders (but not webGL). This prevents an error while parsing.
This also includes some new code in translator to rename any vars that are
redefined between the function body and the function parameters. This
prevents an error later on when the translated shader is then parsed as
a desktop GLSL version.
Bug: angleproject:3287
Change-Id: I3f025805cf8d65bf912283bb15e6dad6e5e9b967
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1601553
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
af6a51e0
|
2019-05-15T15:08:00
|
|
dEQP: Make deqp_path GN variable public.
This allows us to reuse it in our other BUILD.gn files.
Bug: angleproject:3353
Change-Id: Ic88f7781010d7319dfe3bb8f2f942fa08d37e4dc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1614097
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
36f47169
|
2019-05-15T15:36:06
|
|
Suppress flaky OpenGL ES3 test.
Texture2DIntegerTestES3.IntegerTextureNonZeroBaseLevel/ES3_OpenGL
Bug: chromium:963595
Change-Id: I6cdd845a5b7bc1a4b5a16029eaf170db40f1787c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1613894
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
32a1b0f7
|
2019-05-15T15:00:20
|
|
Update dEQP build config to use GN templates.
Templates make it easier to override parts of test configs. Instead
of if statements we can use forwarded variables to override specific
settings. This refactor makes it easier to integrate the "KHR" tests.
Bug: angleproject:3353
Change-Id: Ia6e9c6d01864e5253db5d28dc087bf954aee226c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1612297
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
eaf2d928
|
2019-04-18T16:31:25
|
|
Add support for OES_depth_texture
Note: Includes workaround for http://anglebug.com/3452 - some Android
devices do not indicate filtering support on VK_FORMAT_D16_UNORM.
Bug: angleproject:3103
Test: angle_end2end_tests --gtest_filter=DepthStencilFormatsTest.DepthTexture/*
angle_end2end_tests --gtest_filter=DepthStencilFormatsTest.PackedDepthStencil/*
angle_end2end_tests --gtest_filter=DepthStencilFormatsTest.DepthTextureRender/ES2_VULKAN
Change-Id: Ic325fb94ab0e619a17c2e149e0e0865fa4142f3a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1575426
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b783fbc7
|
2019-05-10T23:16:17
|
|
Vulkan: Fix matrix uniforms
A piece of code shared with d3d was used to implement this feature.
However, we store the uniform data transposed and row-major in d3d to
accomodate the fact that matrix indexing in HLSL is the opposite of GLSL
(mat[row][col] in HLSL as opposed to mat[col][row] in GLSL).
There were two functions that copied the source matrix fields either as
column-major or source-major (corresponding to `transpose` false or true
respectively in glUniformMatrix*) into a row-major destination. These
functions are refactored into one, which copies from any-major source to
any-major destination. The HLSL backend uses the "to row-major" variant
and the Vulkan backend uses the "to column-major" variant.
Bug: angleproject:3198
Change-Id: I7254da4fbe6916af78c5906abcb82ca01674ab9f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1607541
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7d798558
|
2019-05-13T13:40:09
|
|
Skip validating draw buffers when RASTERIZER_DISCARD is enabled.
Bug: 962555, 962636
Change-Id: I4a22f83689252b7b7e51bbb3fc80e8f0d601a43f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1610701
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shrek Shao <shrekshao@google.com>
|
|
cc5199af
|
2019-05-13T09:44:40
|
|
Roll dEQP (May 2019)
Removes the EGL 1.5 overrides now that they are upstreamed.
Bug: angleproject:3446
Change-Id: I4b17354518534ea821bba83a4b1e00f83f80ac37
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1605786
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9d519ab1
|
2019-05-09T23:09:46
|
|
Vulkan: Rework layout block storage conversion
Previously, a pass over the shader was made, converting shared and
packed interface blocks with block storage to std140. This resulted in
link success between interface blocks with different storage as they
were all translated to std140.
With this change, this pass is removed. The link step proceeds with the
block storage specifiers as seen by GLES, and only upon Vulkan GLSL
shader generation "shared" and "packed" are converted to std140.
Bug: angleproject:3199
Change-Id: I069415ab9c9b4e1034bc00f64cd2d9e2d73f5956
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1605262
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0ae59f2a
|
2019-05-10T15:45:27
|
|
Add test to verify uniform matrix upload
Bug: angleproject:3198
Change-Id: Icb63d036a756b849c44d36342c7ba2fc2db0f910
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1604069
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
3dbe480b
|
2019-05-06T15:59:07
|
|
Validating draw buffers now also considers color mask settings
It will always return true if all 4 channels of color mask are set
to false.
This should only apply to WebGL. Will fix this in a later patch.
Bug: chromium:958374
Change-Id: I46befaf3ae1b63027dfbb309ac32724c616025d3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1594629
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
fdbece20
|
2019-05-09T18:06:34
|
|
Vulkan: Support unsigned int uniform types
Bug: angleproject:3198
Change-Id: Iac5d1389f4f466b7886246d8ca529e8f26a6a5bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1603629
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7ef73a52
|
2019-05-08T10:48:15
|
|
Vulkan: Support flat and centroid qualifiers
Bug: angleproject:3219
Change-Id: I2e0b60bda9c3af2b9eadf2efd3899250925897f4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1600335
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5517ce95
|
2019-05-07T00:27:06
|
|
Vulkan: fix qualifier erase for unused vertex attributes
Bug: angleproject:3219
Change-Id: I8f8f5572eed5126ab03702953883b313f022a264
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1598548
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9fa248e1
|
2019-05-06T14:55:18
|
|
Vulkan: Implement EXT_draw_buffers
In GLES, color attachments are referenced by their indices. These
indices match between the API and GLSL. For example, if a shader has:
layout(location=0) out color;
layout(location=3) out roughness;
Then GLES would bind and enable GL_COLOR_ATTACHMENT0 and
GL_COLOR_ATTACHMENT3.
In Vulkan, the framebuffer object and the corresponding renderpass
define the color attachments, and they don't allow gaps in color
attachments as GLES does. A render subpass creates the mapping between
the color attachments as defined in the framebuffer and the attachments
used by the shader (with possible gaps).
This change packs the enabled GL color attachments for the sake of the
framebuffer, and sets the subpass up in such a way that the shaders
continue to use the same color output indices as GLES.
In the example above, we have the attachment indices as follows:
Status | GLES | GLSL | RenderPass | Subpass
enabled 0 0 0 0
disabled 1 - VK_ATTACHMENT_UNUSED
disabled 2 - VK_ATTACHMENT_UNUSED
enabled 3 3 1 1
That is, the array of color attachments in the Vulkan
framebuffer/renderpass is:
[0] = GL color attachment 0
[1] = GL color attachment 3
And the array of color attachment references in the Vulkan render
subpass is:
[0] = 0 (index 0 of the renderpass attachment array)
[1] = VK_ATTACHMENT_UNUSED
[2] = VK_ATTACHMENT_UNUSED
[3] = 1 (index 1 of the renderpass attachment array)
Bug: angleproject:2394
Change-Id: Ib6cd2b60882643ea152986eee453270d09cd4aed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1595442
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@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>
|
|
ebab670c
|
2019-04-19T14:36:45
|
|
Adding new extension GL_OVR_multiview
GL_OVR_multiview functions exactly the same as GL_OVR_multiview2.
All GL_OVR_multiview2 tests now also repeat the same test using GL_OVR_multiview
Bug: angleproject:3341
Change-Id: I7e5294fb6bbf7692535174a15da6a42e1b5fc4e2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1575904
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
52e0e65a
|
2019-05-08T12:54:41
|
|
Vulkan:Exclude pragma_vertex test on MAC
With recent pragma invariant(all) fix the pragma_vertex test is failing
on MAC so excluding it from testing.
Bug: angleproject:3285
Bug: angleproject:3433
Bug: angleproject:3434
Change-Id: I59079afdbef2d23a593fe0fe061997624fea5cde
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1601364
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
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>
|
|
19905aea
|
2019-04-26T01:48:31
|
|
Vulkan: Set the Vulkan scissor to the GLES viewport
Some Vulkan drivers are not clipping rendering that is outside of the viewport,
and the Vulkan spec has some language that indicates that ANGLE should set the
scissor:
The application must ensure (using scissor if necessary) that all rendering
is contained within the render area.
In this case, ANGLE is "the application".
Bug: angleproject:3253
Bug: angleproject:3254
Change-Id: I6885a3aa6daed57f6ae1c3d974663d763cad10c9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1553973
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
e9421b2c
|
2019-04-08T15:16:56
|
|
Vulkan:Only apply invariant pragma to output vars
The "#pragma STDGL invariant(all)" directive should only be applied to
shader output vars. This change also removes the workaround
SH_DONT_REMOVE_INVARIANT_FOR_FRAGMENT_INPUT which is no longer needed.
This change fixes two tests that were incorrectly assuming that the
pragma would be applied to inputs: GLSLTest.InvariantAll[Both|In].
Bug: angleproject:1293
Bug: angleproject:3285
Change-Id: I4eb03fa89fbc7c560150ee0cc32382024b0cb3e3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1558678
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
216f73d0
|
2019-04-12T13:32:30
|
|
Vulkan: add uniform buffer object support
Support for layout qualifiers in interface blocks are added. All
interface blocks are adjusted to either be in std140 or std430.
In the Vulkan backend, a new descriptor set is added for UBOs. A dirty
bit is added for UBO updating and pipeline layouts and descriptor
bindings are updated.
Bug: angleproject:3199, angleproject:3220
Change-Id: I271fc34ac2e1e8b76dee75e54a7cff0fe15fe4ee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1565061
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e76c5c3c
|
2019-05-03T15:51:30
|
|
Vulkan: Enable drawRangeElements()
Enable drawRangeElements() for the Vulkan backend and the associated
tests.
Test: angle_deqp_gles3_tests
Bug: angleproject:3420
Change-Id: I98770631ce1387131bb45e2c1e9df24e911bc692
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1595101
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f6cbe44a
|
2019-04-18T15:32:07
|
|
Use D3D11 GetDimensions driver workaround for 2D integer textures
Some NVIDIA D3D11 drivers are buggy and interprets the level passed to
GetDimensions as being relative to 0, rather than the SRV's MostDetailedMip.
A test is added which reads from non-zero base level integer texture. When the
workaround is not being used, reads outside the first quadrant return black.
Bug: chromium:679639
Change-Id: I5282a1ba207b2d553d1836f9460ec09cb5590ea6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1591594
Commit-Queue: Kimmo Kinnunen FI <kkinnunen@nvidia.com>
Reviewed-by: Kimmo Kinnunen FI <kkinnunen@nvidia.com>
|
|
d7d42395
|
2019-05-06T13:15:35
|
|
Format all of ANGLE's python code.
BUG=angleproject:3421
Change-Id: I1d7282ac513c046de5d8ed87f7789290780d30a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1595440
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
3e62561c
|
2019-05-06T11:48:52
|
|
Suppress test hitting Nvidia shield driver bug
The same test was hitting a bug with the Nvidia driver on windows+gles.
Bug: angleproject:3413, angleproject:3417
Change-Id: I39426291eac731bcda068829686e09cf406ff661
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1595438
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
66e4850d
|
2019-04-25T10:49:05
|
|
Use EnumAdapters to properly detect primary GPU on Win
EnumDisplayDevicesA returns the card that's connected to the display,
but EnumAdapters return the adapter which the desktop primary is
displayed at index 0. We can use this to determine the device used for
graphics.
Also cleans up the discrepancy between platforms on finding "primary" vs
"active" GPU. Asserts that the GPU expected to run ANGLE commands is the
active GPU, and deprecates the primary GPU to be equal to the active
GPU.
Bug: angleproject:3383
Change-Id: I422fba1bbe47d85b7c09e378d559eaebf89e2625
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1584360
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
e25ff9d8
|
2019-05-01T00:02:05
|
|
Vulkan: Fix qualifiers for varyings
`out` variables in the vertex shader and `in` variables in the fragment
shader were not decorated with `layout(location=?)` as they should
according to the Vulkan GLSL spec. This change makes sure these
decorations are present regardless of whether the compiler sees these
variables as EvqVaryingIn/Out or EvqVertexOut/FragmentIn.
Bug: angleproject:3412
Change-Id: I66473e876cb989a60b0c6d6a5850a8b2c763d8e2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1590694
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
58957f3d
|
2019-05-03T12:52:22
|
|
Add option to run each test config in a separate process.
This CL adds a command line option to angle_end2end_tests that will
iterate over all test configs. For each config it'll fork a new child
process that will run only a single config. This will allow us to
isolate each config to a specific child process. Hopefully this will
reduce test flakiness due to driver issues with multiple configs.
The command line option is "--separate-process-per-config".
Note that there are about 25 configs right now.
Bug: angleproject:3393
Change-Id: Ia117b371bbe159c1b0d28d82befffeb0f40467a9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1591428
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
80147d11
|
2019-04-30T16:21:24
|
|
Add support for dynamically allocate initial stack for Angle
By updating YYLTYPE_IS_TRIVIAL to true, YYSTACK_RELOCATE can be enabled, so
we can dynamically allocate stack size based on needs.
BUG=angleproject:3028
Change-Id: I1b9cc0768cd0c6955589695e703595c56d43f24a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1593954
Commit-Queue: Yi Xu <yiyix@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
467f174f
|
2019-05-03T12:52:21
|
|
Remove EGLTest.
Consolidate these tests into ANGLETest. Add a new parameter to
PlatformParameters that lets us skip normal test setup.
This removes the last 'configless' tests from angle_end2end_tests.
Bug: angleproject:3393
Change-Id: I87186698ade90f95577534eb8ed1dfd4245f740e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1590467
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
97f0affb
|
2019-05-03T12:52:21
|
|
Add command line option to filter by test config.
This allows us to run angle_end2end_tests with a single config without
using gtest_filter. It will also allow us to run each test config in
a separate process.
Bug: angleproject:3393
Change-Id: I09aaf9cfe55a117b0af8d79ecfd129f3d0f1d7c8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1591427
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
051b0896
|
2019-04-15T15:39:39
|
|
Vulkan: Fix layout substitution for struct varyings
If the shader contains code such as the following:
struct S {
vec4 field;
};
out S varStruct;
The layout qualifier macro is defined as @@ LAYOUT-varStruct @@.
However, the Vulkan backend was replacing @@ LAYOUT-field @@.
Bug: angleproject:3220
Change-Id: Iae15003867e0bed2cc939159a6653429c7a431e0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1571389
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3e251337
|
2019-05-02T16:12:54
|
|
Removed SizedFloat helper class from upload tests.
This helper was redundant with the image utils library. Switch the test
to use the existing methods. Doesn't affect test correctness.
This removes more 'configless' tests from angle_end2end_tests.
Bug: angleproject:3393
Change-Id: I49cfbd95c3713b2b4b25c4716a7a279d84ddf994
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1591426
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
926f1caa
|
2019-05-01T14:03:05
|
|
Add support for GCC Compilers
Add support for GCC Compilers, so it can be build on Ubuntu.
BUG=angleproject:3392
Change-Id: I2f5ac7355a40f52123bd465f86b1e966c59c943d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1592062
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Yi Xu <yiyix@chromium.org>
|
|
69f72b41
|
2019-05-02T16:12:54
|
|
Simplify ANGLE test config names.
We don't need to use upper case. Lower case can be more readable.
Skip a test on Linux/NV/Vulkan that became flaky after changing
the test order.
Bug: angleproject:3393
Change-Id: Ie027e08ddc9d47b9484cf5b1aaca72a05dd60517
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1574676
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ddc4d33a
|
2019-05-01T15:11:46
|
|
Remove several underused platform configs.
* Removes D3D11 Warp and Reference configs from tests.
* Removes several permutations of OpenGL back-end specific configs.
* Removes FL 9_3 since it is no longer supported.
* Removes present path "Copy" since it's redundant with normal D3D11.
Reduces number of configs from over 60 to 25.
Bug: angleproject:3393
Change-Id: Ia5a23de3c4865b17ee50673a4066757b901a4b5a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1574675
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3089f92e
|
2019-05-01T15:11:46
|
|
Move EGL Display config into EGLPlatformParameters.
This CL moves all of the EGLDisplay configuration into an EGL platform
struct. Consolidating display configuration in the struct allows us to
move configuration out of the test constructor. Then when we filter
test configs we don't need to wait for the individual test setup.
Bug: angleproject:3393
Change-Id: I5bd06dcdc9f2867ebc43c1d4984077ada35cafc8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1574674
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
fc0be049
|
2019-04-18T09:44:06
|
|
Fix GL_MAX_COMBINED_UNIFORM_BLOCKS query
This was previously returning maxCombinedTextureImageUnits instead of
maxCombinedUniformBlocks. Fixing that exposed a bug in the GL backend
where the combined values were sometimes capped to vertex+fragment
values and sometimes not capped at all.
The reasoning for such capping was that the combined limits as queried
from GL contains stages not available in GLES (such as tessellation).
However, the capping failed to take geometry shader limits into account.
This change adjusts such capping to vertex+fragment+geometry. It also
applies the cappping to all combined limits, rather than a select few.
Bug: angleproject:2099
Change-Id: I7231058b5d7f80b1b2452d9f87d4b0ab6e1cdb17
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1572487
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@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>
|
|
0659c991
|
2019-04-30T16:14:43
|
|
Set swap interval explicitly.
The swap interval can be changed independent of the Surface config.
Thus it makes more sense to set it explicitly in test setup. This
simplifies the test config.
Also updates some of the API for GLWindowBase. Return an explicit
error from makeCurrent.
Bug: angleproject:3393
Change-Id: Ic62b33018e872bc0e38f2848e2427ed898b60749
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1574672
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
15ce8227
|
2019-03-18T19:25:21
|
|
Fix error report when active color buffer has no fs output
Also modify or remove some tests to sync up with the expected behavior
stated in spec.
Related to https://github.com/KhronosGroup/WebGL/pull/2780
If any draw buffer with an attachment does not have a defined fragment shader output,
draws generate INVALID_OPERATION.
Also remove Framebuffer masking for inactive outputs.
This workaround is no longer necessary as the WebGL spec has changed.
It also was never fully working and had bugs with certain orders of
calls.
Bug: angleproject:2872
Bug: chromium:927908
Bug: chromium:943538
Change-Id: I73715a6ab851ae3db7096f49ea0a9fdd6f576703
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1530018
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
1ad7a072
|
2019-04-26T14:05:25
|
|
Clean up unexpected passed/failed test behavior for generate_stats
The lists of tests can't be added to the sheets if more than 50,000
lines. Since the goal is to get rid of all unexpected passes/failures,
it's reasonable to clip the lists by length. Other formatting changes
too.
Bug: angleproject:3398
Change-Id: Ice461862fb4266e0ad1280f20de85224fc6d7e97
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1585612
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
6f691fbb
|
2019-04-25T11:01:52
|
|
Port the WebGL2 framebuffer-texture-changing-base-level test to native
A nearly direct port of the https://www.khronos.org/registry/webgl/sdk/tests/conformance2/rendering/framebuffer-texture-changing-base-level.html
test for easier debugging.
BUG=angleproject:2291
Change-Id: Ibc8a7e77629f1ea3f15e92ea93f1210fa850c524
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1584361
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shrek Shao <shrekshao@google.com>
|
|
51ac37ee
|
2019-04-25T13:32:16
|
|
Print unexpected passed/failed tests with formatting for generate_stats
The stats generation should pick up a list of unexpected failed/passed
tests, so the tests should be printed with the format used by this
script.
Bug: angleproject:3398
Change-Id: I96a8eba6c2e294f64ca59ec60042cc688d1133c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1584363
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
fb6fbdbc
|
2019-04-12T15:16:30
|
|
Return that polling queries have completed after context loss.
KHR_robustness says that certain queries that poll such as GetSynciv with
SYNC_STATUS should still generate errors after context loss but also return
that the result is available.
BUG=angleproject:3379
Change-Id: Ibf61f8481bc7c3d1b4fa8979dc404d0ca3952fcd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1566142
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
5a0f64b6
|
2019-04-23T16:06:47
|
|
D3D: Require cube completeness to create render targets
TextureD3D_Cube::isFaceLevelComplete skips checks for the base level
because it assumes that isCubeComplete has already been called to
verify the base level. This assumption is not correct for some cases
like glCopyTextureCHROMIUM which attempts to create a render target
from cube maps that may not be complete.
This caused us to create render targets from incomplete cube maps and
then fail to upload data to the cube faces because the sizes or formats
did not match between the images and render target.
TEST=conformance/more/conformance/quickCheckAPI-S_V.html
BUG=angleproject:3384
Change-Id: Iceb9415debfa07436fea1eb4bc23d0ec05679839
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1578957
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
1b0acbb5
|
2019-04-23T15:17:56
|
|
Add cases with multiple draws and dispatches
D3D11 cannot allow the same (sub)-resource bound as both
a SRV and an UAV at the same time. If render pipline and
compute pipeline access the same texture, must unset
conflicting SRVs and UAVs before drawing and dispatching
on D3D backend. Currently, these cases could not pass
on D3D11 backend.
Bug: angleproject:3152
TEST=angle_end2end_tests.ComputeShaderTest.*
Change-Id: I3ed19d7586625aac7fe9f46f86341d136d148019
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1578131
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
|
|
47b5b1c2
|
2019-04-22T13:32:31
|
|
Vulkan:Improve white box test documentation
Add target for angle_white_box_perftests to DevSetup.md Android build
instructions. Generously comment the test source to clarify various
tests and how to run them.
Bug: angleproject:3136
Change-Id: Ie4f0ec6951d354ebac861f727c9d550a93ad48c9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1577740
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
0631e19b
|
2019-04-18T16:09:12
|
|
Vulkan: Rename Vulkan "Texture" format to "Image"
Also adds some comments to vk_format_utils.h.
Bug: angleproject:3372
Change-Id: I529b9b189e4cdfd400c3c981a47139727d9954ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1565062
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|