|
a735ee2f
|
2018-05-18T13:29:09
|
|
ES31: Support shader storage block in D3D11 compiler - Part1
This patch is the first step to implement a basic skeleton to translate
shader storage block to HLSL RWByteAddressBuffer.
In GLSL each shader storage block is just one structured block and in API side
it corresponds to a buffer range where stores the whole structure.
RWStructuredBuffer is an array-like object and can have many structured
elements. The structured element doesn't support unsized array and also have
a small limitation on the element size. So we choose RWByteAddressBuffer as
the counterpart of shader storage block in HLSL.
Due to RWByteAddressBuffer does not support using an index to reference a
specific location, we must use Load and Store to process the read/write
operation of a buffer variable. Moreover, in the compiler tree, since we
can't use variable name to get the resource value in RWByteAddressBuffer,
we have to calculate the offset of buffer variable in a shader storage block,
then call the corresponding wrapper function to get the right value.
In this patch, we only process below situations:
assign_to_ssbo := ssbo_access_chain = expr_no_ssbo;
assign_from_ssbo := lvalue_no_ssbo = ssbo_access_chain;
The translation is like below:
// GLSL
#version 310 es
layout(local_size_x=8) in;
layout(std140, binding = 0) buffer blockA {
float f[8];
} instanceA;
layout(std140, binding = 1) buffer blockB {
float f[8];
};
void main()
{
float data = instanceA.f[gl_LocalInvocationIndex];
f[gl_LocalInvocationIndex] = data;
}
// HLSL
RWByteAddressBuffer _instanceA: register(u0);
RWByteAddressBuffer _blockB: register(u1);
float float_Load(RWByteAddressBuffer buffer, uint loc)
{
float result = asfloat(buffer.Load(loc));
return result;
}
void float_Store(RWByteAddressBuffer buffer, uint loc, float value)
{
buffer.Store(loc, asuint(value));
}
void gl_main()
{
float _data = float_Load(_instanceA, 0 + 16 * gl_LocalInvocationIndex);
float_Store(_blockB, 0 + 16 * gl_LocalInvocationIndex, _data);
}
We will do below things in the following patches:
1. Modify the intermediate tree to flatten all ssbo usages to:
assign_to_ssbo := ssbo_access_chain = expr_no_ssbo;
assign_from_ssbo := lvalue_no_ssbo = ssbo_access_chain;
e.g.
intanceA.a +=1;
->tmp = intanceA.a;
intanceA.a = tmp + 1;
while(++instanceA.a < 16) {
}
->
int PreIncrement(out int a)
{
a += 1;
return a;
}
tmp = instanceA.a;
while(PreIncrement(tmp) < 16) {
instanceA.a = tmp
}
2. Add offset calculation for structure and array of arrays.
TODOs have been marked in the corresponding places in this patch.
3. Improve helper functions so that they can process all possible types.
TODOs have been marked in the corresponding places in this patch.
4. Process the swizzle situation.
TODOs have been marked in the corresponding places in this patch.
A possible method is to extend current helper functions like below:
*_Load(RWByteAddressBuffer buffer, uint loc, bool isSwizzle, uint4 swizzleOffset)
Bug: angleproject:1951
Test: angle_end2end_tests
Change-Id: I68ae68d5bb77d0d5627c8272627a7f689b8dc38b
Reviewed-on: https://chromium-review.googlesource.com/848215
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
1cee0421
|
2018-09-09T17:00:21
|
|
Suppress ...shaders.builtin_variable.fragcoord_w.
Suppress dEQP-GLES2.functional.shaders.builtin_variable.fragcoord_w on
Android Vulkan.
BUG=angleproject:2808
Change-Id: Ib2dcb83bef97352e6a169c0531e2316217d9149e
Reviewed-on: https://chromium-review.googlesource.com/1215382
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
3b968053
|
2018-09-05T14:46:25
|
|
Clean up state in EGLDebugTest.
Reset the EGL error callback for the benefit of following tests.
BUG=chromium:880495
Change-Id: Idd94fe032b89b8a0fe829cb4656e4204d9d71b53
Reviewed-on: https://chromium-review.googlesource.com/1208310
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
fb19e084
|
2018-09-06T15:39:09
|
|
Vulkan: Correct gl_FragCoord with default FBO.
The viewport flipping we use would give incorrect values. Correct
them using the same logic we do for gl_PointCoord.
Also corrects the viewport scale driver uniform. It was not being
updated after the draw framebuffer setting was adjusted.
Also corrects the naming of the replaced builtin variables so it
can't possibly conflict with a user variable.
This was affecting the OpenGL line raster emulation.
Bug: angleproject:2598
Change-Id: I843b5ac7b02160a5ec81a6f8ed2d937b0937198b
Reviewed-on: https://chromium-review.googlesource.com/1208515
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
55b03d0e
|
2018-09-07T00:15:46
|
|
Fix ClearTest.RGB8WithMaskFramebuffer.
Clear all channels to known state before clearing with one masked,
so we know what to expect in the masked one.
BUG=angleproject:2674
Change-Id: Icbe58615c68e2b282a27d8f29c2f2a48fb8b1c3e
Reviewed-on: https://chromium-review.googlesource.com/1212822
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
d84b6737
|
2018-09-06T15:54:35
|
|
Cache ValidateDrawStates.
This improves performance of all draw call validation. The error that
should be generated on the draw call is cached in the Context. The
cache is updated in several places.
Bug: angleproject:2747
Change-Id: I178617623731608e2e7166b53ab6489d8b742ff5
Reviewed-on: https://chromium-review.googlesource.com/1158612
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
dff32a0d
|
2018-08-28T14:35:50
|
|
Support multisample arrays in shader programs
The added tests check that using textureSize() and texelFetch() on
textures with a fixed point format return expected results. texelFetch
is also covered for integer format textures.
dEQP GLES 3.1 tests also cover a variety of multisampled array texture
formats.
BUG=angleproject:2775
TEST=angle_end2end_tests, angle_deqp_gles31_tests
Change-Id: I99b422e24b39e3563ed72f0fb85c9c1907df807d
Reviewed-on: https://chromium-review.googlesource.com/1196521
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
155bfd11
|
2018-08-31T17:27:10
|
|
Fix that same resource is bound on SRV and UAV simultaneously
This change makes sure that resource being set to UnorderedAccessView slot is
not bound on ShaderResourceView and resource being set to shader resource slot
is not bound on UnorderedAccessView.
Bug: angleproject:2768
Change-Id: I52fc5bf5e76ccf8be61c59b2195459728f95e536
Reviewed-on: https://chromium-review.googlesource.com/1201324
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
9137adea
|
2018-08-27T14:22:37
|
|
Add support for EGL_ANDROID_blob_cache
The functionality of MemoryProgramCache is divided up in two. BlobCache
is now a generic binary cache, which interfaces with the callbacks from
EGL_ANDROID_blob_cache. MemoryProgramCache handles program
[de]serialization and interacts with BlobCache.
Bug: angleproject:2516
Change-Id: Ie4328a2e56a26338e033d84f4e53a1103411937d
Reviewed-on: https://chromium-review.googlesource.com/1194285
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
913ff54d
|
2018-08-07T15:14:05
|
|
ES31: support compute shader uniform buffer on D3D backend
BUG=angleproject:2759
TEST=angle_end2end_tests.ComputeShaderTest.UniformBuffer/ES3_1_D3D11
Change-Id: I92326c3a84f13b364aed0daf567b68f8a411ed2b
Reviewed-on: https://chromium-review.googlesource.com/1164843
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
|
|
3e29cf31
|
2018-08-31T17:19:17
|
|
Vulkan: Fix redefining TexStorage after TexImage.
This can be easily implemented via a release call.
Bug: angleproject:2651
Change-Id: I0adb3ed385284c6342716cd7c347de9966a81bab
Reviewed-on: https://chromium-review.googlesource.com/1200368
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a792193e
|
2018-08-31T17:19:18
|
|
Vulkan: Enable StateChangeTest.DisablingBufferedVertexAttribute.
This was likely fixed with default vertex attribute support.
Bug: angleproject:2650
Change-Id: Ibbc19013ed8227c6fe32ae186b0fa88e5c837589
Reviewed-on: https://chromium-review.googlesource.com/1200369
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a153eddb
|
2018-08-31T17:19:19
|
|
Vulkan: Enable UniformTest.Sampler.
This test was fixed quite some time ago.
Bug: angleproject:2462
Change-Id: I49714dd08a5e477d72337147f83b80945a8486ee
Reviewed-on: https://chromium-review.googlesource.com/1200370
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
fda46aa5
|
2018-08-31T17:19:15
|
|
Vulkan: Enable GLSLTest.ScopedStructsOrderBug.
This was fixed upstream in glslang.
Bug: None
Change-Id: I21751dba101fe39f94c91de6e73853ee9ad8c8f2
Reviewed-on: https://chromium-review.googlesource.com/1200366
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
bf4dc156
|
2018-08-31T17:19:15
|
|
Vulkan: Enable BindUniformLocationTest.Compositor.
This was probably fixed some time ago. Possibly due to matrix uniform
support.
Bug: angleproject:2642
Change-Id: Ic4b9524d82e6770dcba117f5c155c413074ec172
Reviewed-on: https://chromium-review.googlesource.com/1200365
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
44558e37
|
2018-08-31T17:19:14
|
|
Vulkan: Enable TextureLimitsTest.
Seems to pass possibly because of a prior bug fix.
Bug: angleproject:2654
Change-Id: I53e67bfa28e5429c51720fa71d9168d2f1cf1ece
Reviewed-on: https://chromium-review.googlesource.com/1199928
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
73d15ba4
|
2018-08-31T17:19:13
|
|
Vulkan: Enable a dEQP point raster test.
This passes on the bots. It fails on 5x but passes on Pixel 2.
Bug: angleproject:2599
Change-Id: Ib71dcaf6adff104d7f70d1d6fe800e78c6778e66
Reviewed-on: https://chromium-review.googlesource.com/1199725
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
30b5d84c
|
2018-08-31T17:19:12
|
|
Vulkan: Fix line width caps.
We would need to enable the wide lines feature to support non-unit line
widths. For now just disable the caps.
Bug: angleproject:2598
Bug: angleproject:2706
Change-Id: I0dd228fc2c357bdd9442c3d841be769987a53f72
Reviewed-on: https://chromium-review.googlesource.com/1127303
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0a17e484
|
2018-08-31T17:19:11
|
|
Vulkan: Fix sync of initially disabled attributes.
If an attribute was never enabled or disabled the default state was not
properly synced in our implementation. This wasn't caught by currently
enabled tests. Those tests are now enabled in VertexAttributeTest.
Bug: angleproject:2800
Change-Id: I97c063651911379e16de4ee557d9840782114c54
Reviewed-on: https://chromium-review.googlesource.com/1199724
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9808d38c
|
2018-08-31T13:12:14
|
|
Fix that image texture works incorrectly when loading from program
binary
This bug is introduced when we implement image texture robust
initialization, where we forgot to update active image units mask in program
cache.
Bug: angleproject:2766
Change-Id: I01de02803173f2cf5b7b9ff740175a4d7cbee4ba
Reviewed-on: https://chromium-review.googlesource.com/1198683
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
89e82979
|
2018-08-28T11:32:53
|
|
Vulkan: Allow gaps in vertex attributes by packing them.
Work around restrictions with setting null vertex buffers on command buffers
by binding ranges of non-null buffers.
Enable VertexAttributeTest on ES2/Vulkan
BUG=angleproject:2792
BUG=angleproject:2797
Change-Id: Ief9db1e60c8c9045a4101abe859302d529decbcb
Reviewed-on: https://chromium-review.googlesource.com/1194282
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
70a4ef10
|
2018-08-30T15:55:41
|
|
Vulkan: Fix depth range scaling.
We were using a formula that didn't work for some of the clipping
tests.
Bug: angleproject:2601
Change-Id: I60d965c2701656ad590c3b250c2cc777fb432421
Reviewed-on: https://chromium-review.googlesource.com/1194919
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
161a89b1
|
2018-08-31T10:12:38
|
|
Skip DrawElementsIndexOutOfRangeWithStaticDraw on NVIDIA D3D11 FL9.3.
This test started consistantly failing after changing the shard count on
this test suite.
BUG=angleproject:2799
Change-Id: I75769b08f9d4dda1d436facc34a8292193b4538e
Reviewed-on: https://chromium-review.googlesource.com/1199723
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
064458a8
|
2018-08-30T14:02:02
|
|
Remove separate ANGLE_texture_multisample_array
We can just expose OES_texture_storage_multisample_2d_array instead.
The compiler was already changed to accept
OES_texture_storage_multisample_2d_array, and now the change is made
also at the API level.
Out-of-bounds access guarantees provided by ANGLE were the only big
difference between the ANGLE spec and the OES spec, so it's simpler
to just expose the native extension. Safe out-of-bounds accesses can
be guaranteed without having them in the extension spec.
This also adds missing texStorage3DMultisample entry point to the proc
table, which will enable running dEQP tests.
BUG=angleproject:2775
TEST=angle_end2end_tests
Change-Id: Idf376ee877a3374a33de177df023f0531ec8f01d
Reviewed-on: https://chromium-review.googlesource.com/1196722
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
fd162107
|
2018-08-27T16:14:57
|
|
Support multisample arrays as framebuffer attachments
This contains tests for framebuffer completeness when layers of
multisample array textures are attached.
Simple clearing of a layer of a multisample color texture array and
blitting the result to a non-multisampled texture is also covered.
BUG=angleproject:2775
TEST=angle_end2end_tests
Change-Id: Idf383cab69587dbd8157ab9a2b7c47e5a90b3cf7
Reviewed-on: https://chromium-review.googlesource.com/1190184
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
1bf963b6
|
2018-07-19T14:56:37
|
|
Clean up PlatformMethods attribute enum
Centralize definition of EGL_PLATFORM_ANGLE_PLATFORM_METHODS_ANGLEX
in Platform.h.
Bug: angleproject:2528
Change-Id: Id2b022c4ea08d2e98cbd6c3b248b58d096c20dfb
Reviewed-on: https://chromium-review.googlesource.com/1144265
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e1037e9b
|
2018-08-29T20:49:49
|
|
Avoid rebase_path() in tests/BUILD.gn.
Adjust source paths so we don't need to use rebase_path() on all of them.
BUG=angleproject:1569
Change-Id: I1af7678dd8961405446fec49731eba5294bcb586
Reviewed-on: https://chromium-review.googlesource.com/1196046
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0c5a9e22
|
2018-08-27T14:36:23
|
|
Implement TexStorage3DMultisample on the GL backend
BUG=angleproject:2775
TEST=angle_end2end_tests
Change-Id: Ic980d86cd787bcf29f622e68b0c38b0eb6ca5688
Reviewed-on: https://chromium-review.googlesource.com/1190182
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
f0d0408a
|
2018-08-28T16:02:13
|
|
Use OES_texture_storage_multisample_2d_array
There's an OES extension for multisample texture arrays,
OES_texture_storage_multisample_2d_array. Change references from
ANGLE_texture_multisample_array to the native extension in the shader
compiler.
ANGLE still needs to have robust behavior for out-of-range texel
fetches that's not found in the original extension, but this does not
need to be spelled out in the extension spec.
BUG=angleproject:2775
TEST=angle_unittests
Change-Id: Ie80ae767cc92ccaf7389af28789f45547f86978f
Reviewed-on: https://chromium-review.googlesource.com/1193266
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ddc41208
|
2018-08-23T22:11:55
|
|
Rename .gypi -> .gni.
Rename and reformat all gyp files. They were previously converted to
gn but not renamed to preserve continuity in git. This rename completes
the removal of all traces of gyp.
BUG=angleproject:1569
Change-Id: I50123105d8881583184ffc564bed65d9fbe4d41c
Reviewed-on: https://chromium-review.googlesource.com/1187885
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a7f97a27
|
2018-08-21T00:04:05
|
|
Gyp is dead. Long live gn.
Remove the gyp build. The .gypi files were not renamed so that diff and
rebase would work on this change. They will be renamed in a separate
change.
BUG=angleproject:1569
Change-Id: If8a217027633293664b820104f91a4ca5889b24e
Reviewed-on: https://chromium-review.googlesource.com/1187380
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
d310a434
|
2018-08-24T15:40:23
|
|
Add validation and negative tests for multisample arrays
This adds errors for binding and allocating multisample array
textures. New tests in TextureMultisampleTest.cpp check that the
errors are generated as specified.
Tests for querying supported sample counts are also improved and
extended for multisample array textures.
BUG=angleproject:2775
TEST=angle_end2end_tests
Change-Id: I6a0fe7ae04bb3d0072f6cbe09026b05e2bc47325
Reviewed-on: https://chromium-review.googlesource.com/1188576
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
47f6dd0d
|
2018-08-10T13:36:32
|
|
Implement robust initialization for image texture
This change fixes a bug that the image texture initialization time is not
correct. It happens when we use compute shader to write data to an
uninitialized texture, then use readPixels to read the result which
results that texture initialization falls behind image store and
covers the real result.
Bug: angleproject:2766
Change-Id: I4e986972096857afc975c40dfa4d559a2f31194c
Reviewed-on: https://chromium-review.googlesource.com/1170569
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4e877ad3
|
2018-08-28T00:18:47
|
|
Suppress TransformFeedbackNegativeAPI test on Mac AMD.
Seems to be failing on Mac Pro FYI Release (AMD). Unclear exactly the
scope of the problem so suppress it on all Mac AMD for now.
Bug: angleproject:2747
Change-Id: I7a5da00b9056839f3ed01fc4c83fa7993019bda7
Reviewed-on: https://chromium-review.googlesource.com/1192550
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6dfdca83
|
2018-08-03T17:10:55
|
|
ES31: support compute shader sampling on D3D backend
BUG=angleproject:2756
TEST=angle_end2end_tests.ComputeShaderTest.SamplingAndImageReadWrite/ES3_1_D3D11
Change-Id: I8f112227c5703fcaafffbd2262e6a039f869c483
Reviewed-on: https://chromium-review.googlesource.com/1161754
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
33dab025
|
2018-08-24T10:00:16
|
|
Add test for transform feedback state change validation.
This test covers several validation edge cases with detecting feedback
loops and buffers bound to multiple types of binding.
Bug: angleproject:2747
Change-Id: I612a4fcf1870667a821ebcba2d3948695b3cabd5
Reviewed-on: https://chromium-review.googlesource.com/1174094
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
22f7aafb
|
2018-08-23T14:13:51
|
|
Add webgl checks in GetActiveUniformsiv.
Add validation that disallows GL_UNIFORM_NAME_LENGTH from being used.
BUG=angleproject:1523
TEST=angle_end2end_tests
Change-Id: Id70e25ab79fd93ae4eb8b8343819458a4a0e4a71
Reviewed-on: https://chromium-review.googlesource.com/1187511
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Bryan Bernhart <bryan.bernhart@intel.com>
Commit-Queue: Bryan Bernhart <bryan.bernhart@intel.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c14ab2a7
|
2018-08-24T13:57:55
|
|
Fix dEQP_GLES3.functional.negative_api.shader.program_binary
The frontend was not taking into account the fact that some drivers do
not support program binaries. The fix is that now
glGetProgramiv(GL_PROGRAM_BINARY_LENGTH)
returns 0 under such circumstances.
Bug: angleproject:2780
Change-Id: I4ea2cda6bb4612e69dbd7e00b3d43b97ee3b3c3d
Reviewed-on: https://chromium-review.googlesource.com/1188768
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8707af51
|
2018-08-23T15:49:14
|
|
Add a test case for enabled-but-inactive vertex attributes
Bug: angleproject:2138
Change-Id: Ia5331845d34f60a31280e6da041d13dc3da29232
Reviewed-on: https://chromium-review.googlesource.com/1187364
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
dc248f71
|
2018-08-24T10:12:27
|
|
Re-enable dEQP_GLES3.functional.negative_api.texture.bindtexture
The test no longer fails on any platform
Bug=angleproject:2779
Change-Id: I1b184b41be23a25fb01a54587eda88fac470b7de
Reviewed-on: https://chromium-review.googlesource.com/1188604
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
8ca60805
|
2018-08-23T14:10:02
|
|
Add 2D MS array sampler support to compiler
This also places textureSize(gsampler2DMS) correctly in the ESSL 3.10
builtins instead of ESSL 3.00 builtins.
BUG=angleproject:2775
TEST=angle_unittests
Change-Id: Ieb0f7a7424a5558a5569af6d4fcbcc9b12ec9840
Reviewed-on: https://chromium-review.googlesource.com/1186466
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d6781dce
|
2018-08-23T10:51:06
|
|
Extend LinkProgramPerfTest to support compile only
Add an option for "compie_only" and "compile_and_link".
Bug: chromium:849576
Change-Id: Id796ebb85ad5aff1a5272173f11ce2ff42685dce
Reviewed-on: https://chromium-review.googlesource.com/1186159
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
221fa261
|
2018-08-23T10:12:09
|
|
Re-enable BlitFramebuffer tests
Accidentally disabled in 265811130, which intended to disable tests
requiring GL_ANGLE_framebuffer_blit, but also disabled glBlitFramebuffer
tests. glBlitFramebuffer is core, but was conditioned to
EXT_framebuffer_blit.
Bug: angleproject:2773
Change-Id: I0468af8874dc8676a4eb6214b111c08aadc0e2fc
Reviewed-on: https://chromium-review.googlesource.com/1186543
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
eef9de68
|
2018-08-23T11:03:22
|
|
Add validation state change test for draw framebuffer.
This test covers feedback loops and invalid component types.
Bug: angleproject:2747
Change-Id: I3e3c762c5457afef59311f7c5843e464fa386cd6
Reviewed-on: https://chromium-review.googlesource.com/1174093
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c4097441
|
2018-08-22T12:14:52
|
|
Fix x64 visual studio build errors
Bug: angleproject:2740
Change-Id: I44fd2a1daf3dca764e2eef73e437feb32b36dbaa
Reviewed-on: https://chromium-review.googlesource.com/1185234
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9259fd0d
|
2018-08-22T12:12:00
|
|
Clean and enable NoLeakingFragments multiview test
Use helper to create multiview backing textures in NoLeakingFragments
test instead of doing FBO attachments twice.
The test seems to pass on Windows after the recent fixes that have
been done to the tests, or possibly due to other earlier fixes.
BUG=angleproject:2687
TEST=angle_end2end_tests
Change-Id: I6015a5b44fdd06faf7b9375bad501355be8d7732
Reviewed-on: https://chromium-review.googlesource.com/1184713
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
a7b35c33
|
2018-08-21T16:32:24
|
|
Add helpers for multiview framebuffer init
Multiview tests now use common helpers to create textures for
multiview framebuffers and often also to attach the textures to the
framebuffers.
The tests now rely on uploaded texture data to initialize the buffers
instead of clearing the framebuffers with glClear.
BUG=angleproject:2765
TEST=angle_end2end_tests
Change-Id: I7d6d63add5943cab610ab888045d5b0f8ba29215
Reviewed-on: https://chromium-review.googlesource.com/1184712
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
5fea1b76
|
2018-08-22T10:05:07
|
|
Add state change test for uniform buffer validation.
Bug: angleproject:2747
Change-Id: Ia808e26a48ecf432cc29ebd8514f265ff3e15ce8
Reviewed-on: https://chromium-review.googlesource.com/1169825
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
4b4197af
|
2018-08-22T15:24:41
|
|
Ignore D3D11 debug layer messages in multiview tests
This is better than skipping the tests entirely. The debug layer
messages appear incorrect and may be specific to Windows 7 and
Windows Server 2008.
BUG=angleproject:2778
TEST=angle_end2end_tests on Windows Server 2008
Change-Id: Ief81fbe22f518c393a37a0969c8987ed9500fbed
Reviewed-on: https://chromium-review.googlesource.com/1184918
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
02cd1526
|
2018-08-22T13:46:21
|
|
Temporarily suppress multiview test failure due to debug layers
On example of the debug layer warnings:
[ RUN ] MultiviewRenderTest.ProgramRelinkUpdatesAttribDivisor/ES3_D3D11_force_geom_shader_side_by_side
Message 0: ID3D11DeviceContext::DrawInstanced: Vertex Buffer at the input vertex slot 1 is not big enough for what the Draw*() call expects to traverse. This is OK, as reading off the end of the Buffer is defined to return 0. However the developer probably did not intend to make use of this behavior.
BUG=angleproject:2765
Change-Id: Ic7f45d7965162640d41d27c4b746e1048de59e15
Reviewed-on: https://chromium-review.googlesource.com/1184906
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
44ae899a
|
2018-08-20T15:37:09
|
|
Fix resource init/teardown in multiview tests
This calls TearDown functions properly in MultiviewDrawTest test
classes.
GL RAII objects can't be used as test class members since the GL
objects need to be deleted before the test class TearDown is called.
Since now the tests call ANGLETestTearDown, this causes D3D debug
layer messages to be checked. It turns out that there are some
seemingly incorrect debug layer messages generated on AMD bots, so
the failing tests are now disabled on AMD/Windows.
BUG=angleproject:2765
TEST=angle_end2end_tests
Change-Id: Ifa0fe4d19b76aa84bb3b6b18c8f66a8ab6bd893e
Reviewed-on: https://chromium-review.googlesource.com/1179839
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
70aeda49
|
2018-08-20T12:17:40
|
|
Add gl::Program::syncState and dirty bits.
Currently this handles uniform block bindings. Cleans up some logic in D3D.
Bug: angleproject:2747
Change-Id: I8c2989738d50a77d6f6d90a9ff11dceab6d3129c
Reviewed-on: https://chromium-review.googlesource.com/1172085
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a4e40b72
|
2018-08-21T17:19:40
|
|
Revert "Expect pass on pointcoord test on Pixel 2"
This reverts commit d710fee3861a6afcd01a993090cb70a535b2f73f.
Reason for revert: pointcoord test still failing on Pixel 2 bot
Original change's description:
> Expect pass on pointcoord test on Pixel 2
>
> Just ran this locally and it passed so re-enabling.
>
> Bug: angleproject:2727
> Change-Id: I10368664dc68f360474dda8534e1fd28875ff4e8
> Reviewed-on: https://chromium-review.googlesource.com/1183528
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Tobin Ehlis <tobine@google.com>
TBR=ynovikov@chromium.org,jmadill@chromium.org,tobine@google.com
Change-Id: If7a3e5dfb12c7b392ae91c477ad9fd9169912f90
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2727
Reviewed-on: https://chromium-review.googlesource.com/1183503
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
ac6d90ea
|
2018-08-21T13:10:36
|
|
Add more test param documentation to perf tests.
Also add links from other pages.
Bug: angleproject:1944
Change-Id: I344ce075973bd45942d52b819385cb74a5a073ca
Reviewed-on: https://chromium-review.googlesource.com/1183629
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
de8d4cb0
|
2018-08-21T12:58:19
|
|
Optimize BindingsBenchmark::drawBenchmark.
Fix contributed by matavenrath@nvidia.com.
This fixes BindingsBenchmark::drawBenchmark to take only 3% instead of
15% of the time spent in
BindingsBenchmark.Run/gl_100_objects_allocated_at_initialization.
Bug: angleproject:2777
Change-Id: I5b5b6f167289b947767b40e7761d90cf06c49816
Reviewed-on: https://chromium-review.googlesource.com/1181868
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d710fee3
|
2018-08-21T08:29:33
|
|
Expect pass on pointcoord test on Pixel 2
Just ran this locally and it passed so re-enabling.
Bug: angleproject:2727
Change-Id: I10368664dc68f360474dda8534e1fd28875ff4e8
Reviewed-on: https://chromium-review.googlesource.com/1183528
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
4bcaf998
|
2018-08-17T17:18:28
|
|
Inherit MultiViewProgramGenerationTest from MultiviewTest
It doesn't need to inherit from MultiviewRenderTest since it doesn't
need a framebuffer.
BUG=angleproject:2765
TEST=angle_end2end_tests
Change-Id: I77b232a907afcae7f2f93cbf9da47ca7bd93c959
Reviewed-on: https://chromium-review.googlesource.com/1179881
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
7a4f6b8c
|
2018-08-17T11:38:11
|
|
Fix resource init/teardown in FramebufferMultiviewTest
GL RAII classes can't be used as test class members since the GL
objects need to be deleted before the test class TearDown is called.
BUG=angleproject:2765
TEST=angle_end2end_tests
Change-Id: If19d33bd044c9e74e46f35183e8ca1bc6a96d6cf
Reviewed-on: https://chromium-review.googlesource.com/1179159
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
4836acc5
|
2018-08-20T15:23:18
|
|
Rename and reorganize MultiviewRenderTestBase
MultiviewRenderTestBase is renamed to MultiviewFramebufferTestBase
since the functionality it has is mostly to set up a framebuffer.
This cleans up the test class without including functional changes to
ease diagnosis of issues with resource init/teardown.
BUG=angleproject:2765
TEST=angle_end2end_tests
Change-Id: I0debd6a7a53a2e6bff7100d07b29313d66a79cb5
Reviewed-on: https://chromium-review.googlesource.com/1181052
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
f26b27e2
|
2018-08-17T11:01:19
|
|
Add some shared utilities for multiview tests
This prepares for fixing multiview test resource init/teardown order.
BUG=angleproject:2765
TEST=angle_end2end_tests
Change-Id: I841327416fa76ac682310ef1b2309f5bb4e9fbac
Reviewed-on: https://chromium-review.googlesource.com/1179155
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d731ff82
|
2018-08-13T18:18:51
|
|
Vulkan: support depth offset.
Update pipeline description with depth offset state. Enable test.
BUG=angleproject:2353
Change-Id: Ib087bbff8e145b0e6e862eb6616a4943a989a7b2
Reviewed-on: https://chromium-review.googlesource.com/1173447
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
6e5bf36f
|
2018-08-15T09:53:17
|
|
GLES1: Fixes for Gets() test
- Fixed wrong face parameter for glGetMaterial*.
- Enabled GL_LINE_SMOOTH capability in state only (no rendering yet)
- Enabled logical operation capability in state only (no rendering yet)
- Fixed wrong handling of GL_RGB/ALPHA_SCALE and
GL_POINT_COORD_REPLACE_OES
Test: Enable and pass Gets() GLES1 conformance test
BUG=angleproject:2306
Change-Id: Ib5c50a2055129b76ad24053baf0dac24dcc00761
Reviewed-on: https://chromium-review.googlesource.com/1176161
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
|
|
c1551dc2
|
2018-08-15T17:04:49
|
|
D3D11 fix: Mipmapping was used although disabled via Sampler
When using a sampler the texture was created as if it has mipmaps,
regardless what you specified in GL_TEXTURE_MIN_FILTER via
glSamplerParameteri() -- mistakenly the default value
GL_NEAREST_MIPMAP_LINEAR or the value set via glTexParameteri() was
evaluated.
If you didn't provide mipmaps and didn't let the driver generate them
this led to not sampling your texture data when minification occurred.
BUG=angleproject:2772
TEST=angle_end2end_tests.Texture2DTestES3.MinificationWithSamplerNoMipmapping
Change-Id: I195147e208129c6fa8686bb0d9aea6931b2f20b1
Reviewed-on: https://chromium-review.googlesource.com/1175910
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2363356f
|
2018-07-17T15:02:36
|
|
Make sure index ranges outside of the GLint range are handled correctly.
IndexRange uses size_t values but DrawCallParams::mFirstVertex is a GLint. This
makes sure all casting is safe.
BUG=864528
Change-Id: Iaa95019615af4d3f79b12bbcb0df13b44cb54339
Reviewed-on: https://chromium-review.googlesource.com/1140898
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
35bc74d6
|
2018-08-03T14:07:59
|
|
ES31: Support atomic functions on D3D11 - Part II
This patch adds the support of translating atomicExchange and
atomicCompSwap without return value on D3D11 back-ends.
As the last parameter of the HLSL intrinsic functions
InterlockedExchange and InterlockedCompareExchange is not optional,
when there is a call of either atomicExchange or atomicCompSwap
without return value, we add a temporary variable for it, so that
we can directly translate all of such calls in outputHLSL.cpp.
BUG=angleproject:2682
TEST=angle_end2end_tests
Change-Id: I7e9c6d3c7d1846c865909b2f5a26592846c82582
Reviewed-on: https://chromium-review.googlesource.com/1161744
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
|
|
7ae70d8f
|
2018-07-06T13:47:01
|
|
ParallelCompile: Parallelize D3D linking
This adds a new linking state to Program. If a Program is in linking
state, on the one hand the foreground thread may continue issuing more
GL calls, and on the other hand the background linking threads may be
accessing Program internally too. Without a proper constraint there
must be conflicts between them. For this purpose, we block any further
GL calls to Program until it's actually linked. In addition, we
prohibit parallel linking an active program, so that ProgramD3D does
not have to worry about such similar conflicts.
Also changes the WorkerThread to support limiting the number of
concurrently running worker threads.
BUG=chromium:849576
Change-Id: I52618647539323f8bf27201320bdf7301c4982e6
Reviewed-on: https://chromium-review.googlesource.com/1127495
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ea926a36
|
2018-08-10T15:22:30
|
|
Add angle_perftests README file.
Bug: angleproject:1944
Change-Id: I93f363dc5fb6096baec01584bbd2fb525a84909c
Reviewed-on: https://chromium-review.googlesource.com/1171502
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ec1fe5b7
|
2018-08-10T10:05:52
|
|
D3D: Use angle::Result error pattern.
This completes the refactor for the D3D9/D3D11 back-ends.
Bug: angleproject:2752
Change-Id: Ie35a925f75c902d8f9fdab6bc33b3bb9c937f85b
Reviewed-on: https://chromium-review.googlesource.com/1167209
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b0c8be85
|
2018-08-10T14:36:39
|
|
Fix AMD detection in angle_end2end_tests.
Some Radeon cards in D3D11 would not report AMD or ATI in the
Renderer string. Fix this by also checking for 'Radeon'.
Bug: angleproject:2572
Change-Id: I866c3042e35448deff627efdb8e94fcbc68abf01
Reviewed-on: https://chromium-review.googlesource.com/1171363
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
077cd858
|
2018-08-06T10:46:22
|
|
Vulkan: Introduce Command Buffer Perf Test
Implemented command buffer performance test based on
LunarG samples. Includes a lot of utility functions and
should build/run on Linux, Android
Bug: angleproject:2758
Change-Id: I8606802fb3e8e0621856860c45ef50ba836c26f8
Reviewed-on: https://chromium-review.googlesource.com/1162119
Commit-Queue: Omar El Sheikh <theoking@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
04c084dd
|
2018-08-08T15:49:28
|
|
Extend MultiviewDrawValidationTest.
These tests need to use a valid program for some operations. Also make
them run in a D3D11 config since the OpenGL extension doesn't seem to
be available on the GPU config we run on the ANGLE CQ.
Also add tests that cover various subtle state change validation cache
bugs.
Bug: angleproject:2747
Change-Id: Idbd1d66854f2e3ca67b59836a370928e1fe8c3b3
Reviewed-on: https://chromium-review.googlesource.com/1167980
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f2c6faf5
|
2018-08-09T10:54:08
|
|
Remove some Vulkan perftest configs.
We don't support ES 3.0 or ES 3.1 in Vulkan yet. Remove Vulkan configs
from tests that don't support the higher features levels. We can
re-add them once we improve Vulkan support.
Bug: angleproject:2604
Change-Id: Icca57b5ec696aaeb2a571b79cd1a7869f806c176
Reviewed-on: https://chromium-review.googlesource.com/1169306
Reviewed-by: Omar El Sheikh <theoking@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
cc1dc5ee
|
2018-08-07T15:27:49
|
|
Add a perf test for draw calls with texture changes.
This perf test highlights the performance hotspots with
State::syncProgramTextures.
Also includes a fix to the perf test runner script.
Bug: angleproject:2763
Change-Id: I69ffa0cc0d5e023944495b7a1c844770a54f7ddc
Reviewed-on: https://chromium-review.googlesource.com/1166041
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
88602e6e
|
2018-08-08T12:49:30
|
|
Fix vertex array element limit condition.
Certain overflows wouldn't be detected when the attribute size was less
than the attribute size and we were drawing a small number of vertices.
Fix this and also set the sentinel value for an integer overflow to be
negative maxint instead of -1 to more effectily distinguish the cases.
Bug: angleproject:1391
Change-Id: I970d5e2a630c0a84c2c02ac0ac41ab1a395819fe
Reviewed-on: https://chromium-review.googlesource.com/1162264
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
1bd4bfb0
|
2018-08-03T14:24:22
|
|
Add draw call perf tests that use the driver.
Also moves some code to the cpp.
Bug: angleproject:2747
Change-Id: I38468e6276d52d11d5751df6917c66f15ae61246
Reviewed-on: https://chromium-review.googlesource.com/1163822
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
d69a5f12
|
2018-08-01T11:34:48
|
|
Cache VertexArray::hasMappedBuffer.
This can be updated in several places. Also adds a test which covers
some of the paths.
Bug: angleproject:2746
Change-Id: Id119e527fd0064998d7ad5011a9d8376e7b9dab0
Reviewed-on: https://chromium-review.googlesource.com/1153569
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
2da5356e
|
2018-08-01T11:34:47
|
|
Final cleanup to ValidateDrawAttribs.
This moves the client attribs check into a shared place. This cleans up
some of the surrounding code. Also get rid of the vertex count
parameter.
Bug: angleproject:1391
Change-Id: I9c688895c2cc5650d7b395497d69033093916f21
Reviewed-on: https://chromium-review.googlesource.com/1150517
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
a2d1d2db
|
2018-08-01T11:34:46
|
|
Context: Cache VAO element limits.
Cache the minimum value for non instanced and instanced active
attributes. The cache is updated in the following places:
1. Context: bindVertexArray.
2. Context: any executable change (linkProgram/useProgram/programBinary).
3. Vertex Array: any state change call.
4. Buffer: a dependent buffer resize.
This greatly reduces the time we're spending in ValidateDrawAttribs.
Bug: angleproject:1391
Change-Id: I84bb222a1b9736e6165fe40e972cd4299ca1178d
Reviewed-on: https://chromium-review.googlesource.com/1150516
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
dc358af7
|
2018-07-31T11:22:13
|
|
Context: Cache attributes masks.
This cache is updated in the following locations:
1. GLES1: clientActiveTexture.
2. GLES1: disableClientState/enableClientState.
3. Context: linkProgram/useProgram/programBinary.
4. Context: bindVertexArray.
5. Vertex Array: most state changes.
Improves performance by about 6% in the GL no-op test. Also includes
fixes for keeping the client memory attribs mask in sync. The cache
also includes a boolean if there are any enabled client attributes.
Bug: angleproject:1391
Change-Id: I93b6a2c8492355958fd5483f14b70535729091d6
Reviewed-on: https://chromium-review.googlesource.com/1147437
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
8acb1b61
|
2018-07-30T16:20:54
|
|
Allow reads from a multiview framebuffer with one view
It's safe to read from a multiview framebuffer if it is layered and
has just one view. The native OVR_multiview spec supports this as
well.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: I04e1364390574075f7e06e39a64e3bf05a539a05
Reviewed-on: https://chromium-review.googlesource.com/1156509
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
67c388e6
|
2018-07-19T19:16:11
|
|
Vulkan: support GL_FIXED vertex data.
Override fixed to float, generate code, enable tests.
BUG=angleproject:2405
Change-Id: Ic3e9a31eaf22372023b94081b0f4a83770dcabbe
Reviewed-on: https://chromium-review.googlesource.com/1144455
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
e452382a
|
2018-07-19T16:10:53
|
|
Vulkan: convert/align vertex data from buffers
When we get a buffer with vertex data in an unsupported format or
alignment, correct that as we copy it to a DynamicBuffer, then use
the copy. Enable tests.
BUG=angleproject:2405
Change-Id: I2132abea4d936f6b53d9209be7f99a0e2d8de219
Reviewed-on: https://chromium-review.googlesource.com/1141277
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
5b3b5cc1
|
2018-07-27T16:49:57
|
|
Suppress more tests on Android for NVIDIA Shield TV bot.
BUG=angleproject:2507
TBR=geofflang@chromium.org
Change-Id: I6788303bdca8739c42b1f43e45b5b2c16cea4ed3
Reviewed-on: https://chromium-review.googlesource.com/1154127
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
|
|
c0b61500
|
2018-07-27T15:59:32
|
|
Fix/supress issues with EGL images on Android.
ChromeOS devices share some of the same driver bugs as Qualcomm.
NVIDIA devices require the image to be preserved.
BUG=angleproject:2507
Change-Id: I2750f78c219490fcd7e6abd224adf8d8e96b7848
Reviewed-on: https://chromium-review.googlesource.com/1153606
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
9bf86f07
|
2018-07-26T11:46:34
|
|
Don't sync the read framebuffer on draw calls.
The read framebuffer may not be complete and be incapable of syncing.
Removed the generate syncDirtyObjects method so each caller must make sure they
are only syncing objects that are known to be valid for the operation.
BUG=angleproject:2737
Change-Id: Ia8edf3fca3a8369aa813be46ba99f6b50a36b2e6
Reviewed-on: https://chromium-review.googlesource.com/1151621
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
03d132eb
|
2018-07-14T13:31:35
|
|
Support EGL_(WIDTH|HEIGHT) in eglSurfaceAttrib(), fixed resize
Setting EGL_WIDTH or EGL_HEIGHT results in mFixedWidth and mFixedHeight
changing their values.
Whenever the swap chain is tested for needing a resize, surfaces with
mFixedSize are treated as if they should be resized to mFixedWidth and
mFixedHeight from their current size. This way fixed-size surfaces
can be resized - it's enough to do a couple of eglSurfaceAttrib() calls
and then either let ANGLE check surface for needing a resize in due course,
or force that by calling eglWaitNative().
BUG=angleproject:2725
Change-Id: I2932d8ecd5a2f10500e4aa8583a169aa09bf01bb
Reviewed-on: https://chromium-review.googlesource.com/1139055
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
854429de
|
2018-07-27T08:12:48
|
|
D3D: Return error from getVertexSpaceRequired.
This removes another use of the gl::ErrorOrResult pattern. Unblocks
error refactoring.
Bug: angleproject:2738
Change-Id: Ib611a3b68f8995469befd51797dfed34eaeee84e
Reviewed-on: https://chromium-review.googlesource.com/1151450
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
b1565903
|
2018-07-27T08:12:48
|
|
D3D: Pass gl::Context to many more functions.
This makes the Context more available for logging errors.
Also includes more refactoring to VertexDataManager to ensure we can
access the gl::Context.
Bug: angleproject:2738
Change-Id: Iae3d22a1403078d236bfe63a3e2d203c13678dc4
Reviewed-on: https://chromium-review.googlesource.com/1151449
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
604d873e
|
2018-07-20T11:02:43
|
|
Fix multiview combined with flat interpolation
Declaring HLSL outputs with SV_* semantics after the ones with
TEXCOORD* semantics makes multiview shaders that contain a flat
varying run correctly. This is a workaround for what seems to be a
bug in the DX runtime, reproducible on at least NVIDIA and Intel.
This also adds another, clearer test case for flat interpolation used
together with multiview.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: I127b85497aa4fee58b74893165a980cbdd4444d6
Reviewed-on: https://chromium-review.googlesource.com/1146809
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
dbd16127
|
2018-07-19T11:30:21
|
|
EGL: Implement EGL Image extensions.
BUG=angleproject:2507
Change-Id: Ica33166e9e23e933977c3ab034d4f5a8cada9fb1
Reviewed-on: https://chromium-review.googlesource.com/1143454
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
eb4b8697
|
2018-07-17T10:55:40
|
|
Introduced eglMakeCurrent Perf Test
Currently disabled test on android
Also made the default EGL device type be
EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE
Updated destroy function of RendererVk to properly
reset the mMemoryProperties member variable
Bug: angleproject:2735
Change-Id: Ie1f8ab1ac93b18eda4c10c3b10ecd4756f1d8543
Reviewed-on: https://chromium-review.googlesource.com/1140508
Commit-Queue: Omar El Sheikh <theoking@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
76301e09
|
2018-07-19T11:48:30
|
|
Vulkan: Fix compound nested sampler struct params.
Replace the struct type of binary and symbol parameter nodes with a
lookup of the struct type in the tree.
Bug: angleproject:2494
Change-Id: I1e892e0f1b1f97302d1cdce1035f51c01d0efd9e
Reviewed-on: https://chromium-review.googlesource.com/1135695
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
df0e48fe
|
2018-07-24T11:06:46
|
|
Buffer11: Don't use ErrorOrResult.
This pattern isn't available when using angle::Result instead of
gl::Error. Refactor the Buffer11 class to use gl::Error instead. This
unblocks further return value refactoring for perf.
Bug: angleproject:2738
Change-Id: I739044ae318c6b1fc40756a4f1fcadf609276c1a
Reviewed-on: https://chromium-review.googlesource.com/1142952
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0359b697
|
2018-07-23T17:22:00
|
|
Vulkan: Check mInFlightCommands doesn't grow too fast
The mInFlightCommand vector could grow faster than
the GPU can complete tasks. Check for this edge case
and give the GPU a chance to catch up with work.
Also allows us to enable performance tests for Draw
Calls on vulkan since it was affected by this limit
check before.
Bug: angleproject:2742
Change-Id: I66a86ea6b5300fa3d74b07dc341aa597824b5f09
Reviewed-on: https://chromium-review.googlesource.com/1147607
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
ddd6e874
|
2018-07-24T10:49:06
|
|
Vulkan: Suppress 3 failing blit tests on Pixel 2.
Bug: angleproject:2743
Change-Id: I1693a5b301fa10a92263aab0cec14829851fe21f
Reviewed-on: https://chromium-review.googlesource.com/1148461
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
06235df9
|
2018-07-20T14:26:07
|
|
Make HLSL shaders use only one main function
Instead of having separate main() and gl_main() functions in HLSL
shaders, add initializing outputs and inputs directly to the main
function that's in the AST.
This works around some HLSL bugs and should not introduce name
conflicts inside main() since all the user-defined variables are
prefixed.
BUG=angleproject:2325
TEST=angle_end2end_tests
Change-Id: I5b000c96aac8f321cefe50b6a893008498eac0d5
Reviewed-on: https://chromium-review.googlesource.com/1146647
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
b436aac3
|
2018-07-18T17:23:48
|
|
Vulkan: Support inverted blit for depth/stencil.
Depth/stencil formats are packed tightly when reading back Images with
vkCmdCopyImageToBuffer. Same for the reverse. Thus we need to take this
into account when doing our blitWithReadback implementation.
This splits the depth/stencil blit into two separate steps. Fixes all
the remaining blit failures in BlitFramebufferANGLETest.
Bug: angleproject:2673
Change-Id: Ie9f43f782a82b5a0746d00122b24f81088d57c4c
Reviewed-on: https://chromium-review.googlesource.com/1140740
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
cd7cd2a8
|
2018-07-19T11:25:54
|
|
Pass Context to EGLImage creation and Display to EGLImage initialization.
BUG=angleproject:2507
Change-Id: I6c195434131709203f892be6037e974002c174c2
Reviewed-on: https://chromium-review.googlesource.com/1143453
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
0df813c3
|
2018-07-12T12:52:06
|
|
GLES1: GL_OES_draw_texture
BUG=angleproject:2306
This implements GL_OES_draw_texture using a few bits of new state
in the renderer and adding a code path for it in the shader, using
gl_VertexID to draw the quad backing the texture draw. This allows us
to avoid allocating a separate vertex array for the texture draw and
reuses the current shader as much as possible, plugging in to the
existing multitexturing pipeline.
- Add unit test and sample
- No new test expectations, but advertising GL_OES_draw_texture makes
the DrawTex GLES1 conformance test non-trivial and actually test
glDrawTex*.
Change-Id: I1485098249fe44d46a01cab4bb7b2c39d0492923
Reviewed-on: https://chromium-review.googlesource.com/1135930
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
|
|
94c91a95
|
2018-07-19T15:10:24
|
|
Don't allow multiview clear during timer query
This brings the ANGLE_multiview spec in line with WEBGL_multiview.
This also fixes the test so that the timer query extension is
requested when it is being tested.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: Ibd5c117a5ae2642d26137d9ad44420d6601ba762
Reviewed-on: https://chromium-review.googlesource.com/1143283
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|