|
ab42afa6
|
2019-11-21T10:13:44
|
|
Metal: fix vertex attribute's conversion lost after changing buffer binding.
After vertex buffer's attribute is converted and stored in conversion
buffer. Binding the same attribute to another buffer, then binding it
back to previous buffer will result in previous conversion
information lost. The conversion method would skip the conversion due to
buffer's content hadn't been changed, however it didn't reuse the old
conversion result.
This CL also changed the way binding offset is used in Metal backend.
- Previous, the offset would be assigned to the offset field of
MTLVertexAttributeDescriptor, then the buffer would simply be bound to
the command encoder with offset=0
i.e. setVertexBuffer(buffer, index, 0)
- However this approach has several disadvantages. Since Metal doesn't
allow MTLVertexAttributeDescriptor's offset to be larger than the
vertex attribute's stride, the old approach would force the back-end
to convert the attribute and store in conversion buffer.
New approach:
- MTLVertexAttributeDescriptor's offset will be zero. The offset will be
used to bind the buffer itself to the render command encoder.
i.e. setVertexBuffer(buffer, index, offset)
This way the "offset <= stride" restriction no longer exists. The only
restriction is the offset must be multiple of attribute's size.
Added 3 new tests:
- SimpleStateChangeTest.RebindTranslatedAttribute
- VertexAttributeTest.DrawWithLargeBufferOffset
- VertexAttributeTest.DrawWithLargeBufferOffsetAndLessComponents
Bug: angleproject:2634
Change-Id: I6c2fa8091436e4a24405d791f86d17d97df02d64
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1940009
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
81ee4d29
|
2019-12-04T17:05:11
|
|
Workaround EXT_texture_norm16 for OpenGL ES drivers
Implement a workaround for widespread bugs calling glReadPixels with
RGBA/UNSIGNED_SHORT against R16/RG16 color attachments. Read back the
data using the GL_IMPLEMENTATION_COLOR_READ_FORMAT, and then rearrange
the read back pixels to fit the RGBA layout.
Also skip RGB16/RGB16_SNORM texture sample test on Nexus 5X/Nexus 6P
due to a another driver bug.
Bug: chromium:1000354, angleproject:4214, angleproject:4215, angleproject:4245
Change-Id: Iedea6f4136878cac5ad0dec3757c77b73502e1cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1952166
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Shrek Shao <shrekshao@google.com>
|
|
1fdf6ca5
|
2019-12-31T14:25:35
|
|
D3D11: Restrict to translate uniform block to StructuredBuffer
Only translate uniform block to StructuredBuffer when system is
Windows 10 and later.
Bug: angleproject:3682
Change-Id: I27e3f4503392791883a44e1d486ffe9512e04bd8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1984863
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
87607526
|
2019-12-23T22:48:06
|
|
Disable flaky test on Metal
Bug: chromium:1037665
Bug: angleproject:4177
Change-Id: I38f05f1567803e7ac0c631d94056f26dc122a4f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1980278
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c41f2e56
|
2019-12-23T13:33:58
|
|
Disable UniformBufferTests on Windows 7 / D3D11 / NVIDIA.
Bug: chromium:1037644
Change-Id: Ic8bf76bb0c1b8bdcf36f6af5a8d91ac815334917
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1981070
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
|
|
0af8b596
|
2019-09-03T16:24:45
|
|
D3D11: Translate uniform blocks to StructuredBuffer when necessary
fxc exhibits slow compile performance with dynamic cbuffer indexing.
So when a uniform block contains only one large array member, which is
an array of structures, translate this uniform block to
a StructuredBuffer instead.
Bug: angleproject:3682
TEST=angle_end2end_tests.UniformBufferTest.*
Change-Id: Ife80dba8aae65b761737e095895e00a570230f88
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1782046
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6423b7fc
|
2019-12-04T18:45:24
|
|
Return the correct location count for Matrices
GetLocationCount() is currently returning the number of rows in the
matrix, rather than the columns, which leads to shader validation
errors (and test failures). This fix returns the number of columns
in a matrix.
Bug: angleproject:4200
Test: dEQP-GLES31.functional.separate_shader.random.63
Change-Id: I8d25eb3733c2ddbe53ff54794f480c1d43e22a88
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1952173
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
17b3c2f3
|
2019-10-14T14:13:59
|
|
Implement SamplerVideoWEBGL for WEBGL_video_texture extension on desktop
WEBGL_video_texture is an extension that will improve uploading video frame to WebGL performance.
(https://www.khronos.org/registry/webgl/extensions/proposals/WEBGL_video_texture/)
This extension introduced a new texture type TEXTURE_VIDEO_IMAGE_WEBGL and a new sampler type
samplerVideoWEBGL to sample it.
In chromium implementation, TEXTURE_VIDEO_IMAGE_WEBGL maps to different native texture type
based on platform. On desktop, it maps to GL_TEXTURE2D(Currently supported). On Android, it
should map to GL_TEXTURE_EXTERNAL(TODO). SamplerVideoWEBGL needs to be mapped to sampler2D or
samplerExternalOES according to TEXTURE_VIDEO_IMAGE_WEBGL implementation.
This patch implements samplerVideoWEBGL in Angle to support WEBGL_video_texture on desktop. In
this case, samplerVideoWEBGL should map to sampler2D.
Bug: chromium:776222, angleproject:3889
Change-Id: Idb0a5fcde37ca75ccc1181226b91f257212e7500
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1866274
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
17217c6e
|
2019-12-17T17:31:17
|
|
Vulkan: Fix layers being disabled in tests.
The ANGLE_ENABLE_VULKAN_VALIDATION_LAYERS_BY_DEFAULT define shouldn't
be being checked in tests. Enable the debug layers by default.
Bug: angleproject:4227
Bug: angleproject:4229
Change-Id: I9717cb1c611ebd585a5c03ba2057036e1b086001
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1972497
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
44722daa
|
2019-12-06T22:31:08
|
|
Vulkan: Enable inactive SSBO with unsized array tests
The change introduced in
https://chromium-review.googlesource.com/c/angle/angle/+/1951523
removes inactive shader interface declarations. That automatically
resolves an issue where glslang wrapper doesn't handle inactive SSBO
declarations with unsized arrays, by removing those declarations at
translation time altogether.
Bug: angleproject:3714
Change-Id: I710d59546d716bfb5bc0112b5152fed20a810a52
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1954615
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a5dd3888
|
2019-12-04T14:31:57
|
|
Vulkan: fix handling of inactive atomic counters
The translator emulates atomic counters with a storage buffer array
during translation to Vulkan GLSL. Glslang wrapper then should assign
set/binding to this buffer. However, if the atomic counters are
actually unused in the shader, this assignment is never done.
This change adds a small tree transformation for Vulkan that removes any
uniform or interface block declaration that's not active. In
particular, this makes atomic counter emulation a no-op if no atomic
counters are used. It also has the benefit of not requiring glslang
wrapper to remove such inactive resources.
Bug: angleproject:4190
Change-Id: I286c199854ec2379558ad1ec48b4d2c4bf5544d0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1951523
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
5cfab195
|
2019-10-28T09:12:53
|
|
Vulkan: Add test that logs supported texture formats
Add a whitebox test to log all supported GLES formats
for the active Vulkan ICD. The test object is
dependent on libANGLE's gl_enum_util.* files as
we need it to print out human readable values in
the PrintAllFormatSupport test.
Test: angle_white_box_tests --gtest_filter=*PrintAllSupportedFormats*
Bug: angleproject:4093
Change-Id: I99d74935b705b2984f6320ed80a0e977c8fcd4be
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1930607
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5fd73782
|
2019-08-09T11:46:46
|
|
Vulkan: Use volk to load vk* func ptrs
Thanks to Jamie Madill for some fixes to get all CI test passing w/ volk.
This change updates all ANGLE targets that use Vulkan to dyanmically
link all of the VK entrypoints using the volk OSS library from
https://github.com/zeux/volk.
It's only two source files so baking them directly into ANGLE repo.
Also it's used in both the tests and libANGLE trees so added to
src/common/third_party/volk dir.
Updated volk and the renderer to track latest instance and device
that were loaded and renderer will refresh vk* function pointers if
the current and previous device and/or instance don't match. This
prevents errors in the test framework as we transition between
backends, especially between VK HW & SwiftShader ICDs.
This change rolls the Vulkan Loader forward to use the latest loader
version which no longer allows static linking but requires dynamic
linking.
Bug: angleproject:3740
Bug: angleproject:4092
Bug: angleproject:4162
Bug: angleproject:4210
Bug: angleproject:4225
Change-Id: I8a0b7d24c9545bbfdfaa4b9357a9bfe6793e0140
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1965640
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d1860ea1
|
2019-11-19T23:04:00
|
|
Metal: support OES_depth_texture
Also added Depth32 & Depth16 texture data upload tests.
Bug: angleproject:2634
Change-Id: I103f1cda1dc915f0dc8b04f7aaa2d8c0f9220cda
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1919281
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
caa6eccd
|
2019-10-27T13:46:56
|
|
Vulkan: Implement Transform Feedback support via extension
Implemented transform feedback extension path. Where
VK_EXT_transform_feedback is supported, extension path will be taken
over an emulation path. Extension path has advantages in terms of
performance.
BUG=angleproject:3206
Test: dEQP-GLES3.functional.transform_feedback.*
angle_end2end_tests --gtest_filter=TransformFeedbackTest*
Change-Id: Ia07c23afb289d9c67073469a97b714ec96f5265a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1882767
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
f60da874
|
2019-11-19T18:45:45
|
|
Fix out-of-bounds access bug in ANGLE tests
When not filled in, as in Android, activeGPUIndex is -1. This is fine
for Android because it doesn't use vendorID, but the function computed
vendorID unconditionally without checking for -1.
Default activeGPUIndex to 0 instead of -1. Note code still needs to
check for systemInfo.gpus.empty().
This caused crashes when _LIBCPP_DEBUG=0 was enabled.
Bug: chromium:923166
Change-Id: If4d1dff9553a580fd92bc0497fc092789d07ed93
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1925031
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
c6458072
|
2019-12-05T11:45:10
|
|
Fix multisample renderbuffer compliance (e.g. 3->4 samples)
This change ensures that the following spec language is correctly
implemented:
the resulting value for RENDERBUFFER_SAMPLES is guaranteed to be
greater than or equal to samples and no more than the next larger
sample count supported by the implementation.
For example, if 2, 4, and 8 samples are supported, and if 5 samples are
requested, ANGLE should use 8 samples, and return 8 when
GL_RENDERBUFFER_SAMPLES is queried.
Note: There is a known problem with NVIDIA OpenGL driver that causes
another test to be expected to fail.
Bug: angleproject:2222
Bug: angleproject:4196
Change-Id: I28921badf9568427799b0af347198b5df06c2aaa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1954444
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
d68bf3e2
|
2019-12-04T12:30:56
|
|
Fix image/sampler uniform range in presence of atomic counters
The change that introduced images to the front-end placed them at the
end of the uniforms list, so the loop that was calculating the image
range was starting from the end of that list.
The change that introduced atomic counters to the front-end placed them
at the end of the uniforms list too, but the image range loop was not
adjusted to take this fact into account (neither was the sampler range
loop for that matter).
If a shader used both images and atomic counter buffers, the image range
was calculated as empty. Similar issues would arise if the shader used
both samplers and atomic counters.
A test is added where a shader has a default uniform, a UBO, an SSBO, an
image and an atomic counter, to make sure any combination of these
resources doesn't result in a bug.
Bug: angleproject:4190
Change-Id: I7818ee5258dd964215a18acfd7c3d6515b61c595
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1950655
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
795a3559
|
2019-12-03T11:31:18
|
|
Vulkan: EXT_gpu_shader5 support: precise
The precise keyword is used in tessellation shaders but introduced in
this extension.
EXT_gpu_shader5 introduces a handful of features to shaders. This
change only implements the `precise` keyword.
Bug: angleproject:3569
Change-Id: I2252b79098eb8ba2d2faa040d7eaed7548b7051e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1939851
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
af52f9c6
|
2019-12-03T14:11:17
|
|
Fix tests checking for major version > 3
The tests meant to do getClientMajorVersion() >= 3, but in a few
locations accidentally did > 3.
Bug: angleproject:3569
Change-Id: Ie69898348982c6aae7dac265a18229c257dbfbda
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1947458
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5f857839
|
2019-12-04T15:30:50
|
|
Improve current multisampled renderbuffer/texture support
This is split off from a change to implement multisampled textures for
the Vulkan back-end, and will come before that change. The changes
include:
- Make a common utility rx::GetSamplePosition() function. D3D11 and
Vulkan use the same standard sample positions/locations for 1, 2, 4,
8, and 16 samples. The D3D11 back-end has a utility function for
this, which is being moved to a common location--for use by both the
D3D11 and Vulkan back-ends.
- Texture::setStorageMultisample() handles converting the "requested number of
samples" to the actual number of samples used (e.g. converting 3 to 4),
supported by the underlying back-end). The actual number used is stored in
gl::TextureState::mImageDescs, for use by other GLES commands.
- Change some end2end tests to not make assumptions about the supported number
of samples, but to properly query what is supported.
Bug: angleproject:3565
Bug: angleproject:4196
Change-Id: I1dc12fedd0f8fb4975f90d87486e443b069b7141
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1948535
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
c3f0352d
|
2019-12-04T12:13:00
|
|
Re-enable atomic counter tests on !windows
There is a bug that prevents us from running these tests on the windows
bots. This change enables them on other platforms so we don't lose
coverage.
Bug: angleproject:3738
Change-Id: I9b546c3223499af88b347f8a01be8edb245c19a7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1950654
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ff83dabf
|
2019-12-03T10:10:53
|
|
Skip flaky BlendMinMaxTest.RGBA16F/ES2_Metal.
BUG=angleproject:4185
Change-Id: I236d4372ab22e9083d00cf13fa2ad682a1d42f14
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1947447
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
190d9a81
|
2019-11-29T09:57:40
|
|
Fix RenderingLimitToDefaultFBOSizeWithNoAttachments test
MAX_DRAW_BUFFERS has a minimum value of 4. This test was
unconditionally using 6 draw buffers.
Bug: angleproject:4092
Bug: angleproject:4180
Change-Id: I069874a6402da1cb007bf9504e68b9910951cf63
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1944527
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Alexis Hétu <sugoi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
745999a9
|
2019-11-19T12:59:02
|
|
Add test for multithreaded shared-context resource
The test does this:
1. Context 1: Read Texture 1 and draw into Framebuffer 1
2. Context 2: Read Texture 1 and draw into Framebuffer 2
3. Context 1: Delete Framebuffer 1
4. Context 1: Flush
5. Context 2: Modify Texture 1
Issue is Texture 1's mCurrentReadingNodes contains one node from each
context's command graph, one of which is deleted at step 4. At step 5, a
dependency is added from both nodes (one already deleted) to a new node,
causing use-after-free.
Bug: angleproject:4130
Change-Id: I06720aec20d0b49114937f1cd9b193a4f1df9d8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1924790
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
19f9f414
|
2019-11-29T10:30:25
|
|
Vulkan: Textures incorrect on Android maps with Vulkan Backend
The issue was fixed, but adding a regression test to avoid it
again. glMemoryBarrier inserts a memory barrier and breaks the
submission order, which causes the copyBufferToImage happens
before copyImageToBuffer and image corruption. This test fails
on commit 052167b, and can pass on the latest build.
Bug: angleproject:4074
Change-Id: Icc42dd7b2ba167815b223085ce933682654ce760
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1943848
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
bc82fb14
|
2019-11-28T16:58:19
|
|
Suppress failing end2end tests for ASAN builds
GLSLTest_ES31.StructArraySample and
ComputeShaderTest.DispatchComputeIndirect both hit stack-buffer-overflow
errors with ASAN enabled, using the vulkan backend. Right now ASAN is
only tested on Mac, so these are only hit when Mac is using
swiftshader-vulkan.
Bug: 1029378
Change-Id: Ie590f73c29be44f683fd47fe4da139e1b5f96289
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1943408
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
39f3ccda
|
2019-11-28T17:45:01
|
|
Suppress SimpleStateChange failure on Metal NVIDIA
BUG=angleproject:4177
TBR=geofflang@chromium.org
Change-Id: I642e4bd3650b5b6beb6d9b18106d787c5dbc14f6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1942348
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
fc3ec57d
|
2019-11-27T21:43:22
|
|
Reland "Vulkan: Accelerate Texture PBO updates"
This reverts commit 27d3c9399925d23726880ef910b9068fa39307cf.
Reason for revert: Investigation is unable to reproduce the regresion.
Shows up on the perf CI.
Original change's description:
> Revert "Vulkan: Accelerate Texture PBO updates"
>
> This reverts commit efb45edaefc07fc7120ebbde83bbc84876afda1a.
>
> Reason for revert: Significant perf regression on several benchmarks.
> See bug for more details.
>
> Bug: chromium:1027098
>
> Original change's description:
> > Vulkan: Accelerate Texture PBO updates
> >
> > If the format of the image and the PBO match,
> > use a vkCmdCopyBufferToImage transfer operation.
> >
> > Test: angle_end2end_tests --gtest_filter=*PBOCompressedSubImage*
> > angle_end2end_tests --gtest_filter=*PBOWithMultipleDraws*
> > dEQP-GLES3.functional.texture.specification.tex*image*d_pbo*
> > Bug: angleproject:3777
> > Change-Id: I3f271024a635be113202a16f8893a199c194172d
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1906203
> > Reviewed-by: Cody Northrop <cnorthrop@google.com>
> > Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
>
> TBR=cnorthrop@google.com,syoussefi@chromium.org,jmadill@chromium.org,m.maiya@samsung.com,b.schade@samsung.com
>
> # Not skipping CQ checks because original CL landed > 1 day ago.
>
> Bug: angleproject:3777
> Change-Id: I774655962e9ab5a866b9324002fb8edae8550834
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1939927
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
TBR=cnorthrop@google.com,syoussefi@chromium.org,jmadill@chromium.org,m.maiya@samsung.com,b.schade@samsung.com
Change-Id: I8560a2e70de230eac3256a1df5eb2ecaa6f26bcf
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1027098, angleproject:3777
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1939852
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b6148c3a
|
2019-11-21T10:13:44
|
|
Metal: re-enable end2end tests
Bug: angleproject:4157
Change-Id: Ia7e29c32696c84556e9ea527fc48b086b1bc4766
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1940007
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
27d3c939
|
2019-11-27T11:39:41
|
|
Revert "Vulkan: Accelerate Texture PBO updates"
This reverts commit efb45edaefc07fc7120ebbde83bbc84876afda1a.
Reason for revert: Significant perf regression on several benchmarks.
See bug for more details.
Bug: chromium:1027098
Original change's description:
> Vulkan: Accelerate Texture PBO updates
>
> If the format of the image and the PBO match,
> use a vkCmdCopyBufferToImage transfer operation.
>
> Test: angle_end2end_tests --gtest_filter=*PBOCompressedSubImage*
> angle_end2end_tests --gtest_filter=*PBOWithMultipleDraws*
> dEQP-GLES3.functional.texture.specification.tex*image*d_pbo*
> Bug: angleproject:3777
> Change-Id: I3f271024a635be113202a16f8893a199c194172d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1906203
> Reviewed-by: Cody Northrop <cnorthrop@google.com>
> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
TBR=cnorthrop@google.com,syoussefi@chromium.org,jmadill@chromium.org,m.maiya@samsung.com,b.schade@samsung.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:3777
Change-Id: I774655962e9ab5a866b9324002fb8edae8550834
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1939927
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f8482560
|
2019-11-26T15:47:48
|
|
Don't use too many color attachments in clear test
GL_MAX_COLOR_ATTACHMENTS has a minimum value of 4. The test was
unconditionally using 5 attachments.
Bug: angleproject:4172
Change-Id: I793c297b50e3fdc54f75e2c5608508279028359f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1937808
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
c373dfd8
|
2019-11-22T08:48:22
|
|
Vulkan : Handle dirty state correctly when there are muiltiple VAOs
If vertex array object binding is changed, we need to update
the pipeline cache with the attribute information of the newly
bound VAO. We cache the strides of attributes because emulated
attributes will have strides that don't match the stride info
cached in its binding struct. Also added a test case that
switches between multiple VAOs.
Bug: angleproject:4127
Test: angle_end2end_tests.exe --gtest_filter=SimpleStateChangeTestES31.MultipleVertexArrayObjectRendering
Change-Id: I4f23aec33d5aa5988baa41f3c63db5534daf75ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1917453
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
88752889
|
2019-11-20T14:09:52
|
|
Vulkan: Fix barriers w.r.t sampled->storage image update
df415528411f97454e765ff6a83ed1cbc90a7d13 implemented a feature where
images are not created with the storage flag until needed. This is a
necessary optimization.
There were a few misuses of the BufferHelper::onRead/Write helpers that
set up the appropriate barriers that this change fixes.
Bug: angleproject:3816
Change-Id: I7e62d98b7325f938152a1972f4ebee083ed319c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1924989
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Xinyi He <xinyi.he@arm.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Sunny Sun <sunny.sun@arm.com>
|
|
e5b474c6
|
2019-11-19T23:04:00
|
|
Metal: support ANGLE_instance_arrays/EXT_instance_arrays
Also added TRIANGLE_FAN & LINE_LOOP instanced draws test cases.
Bug: angleproject:2634
Change-Id: I84740a7221ab49710cf23767c81fa2d303aad364
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1919280
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
fb1c2fe8
|
2019-11-13T11:10:39
|
|
EXT_texture_norm16 readpixels fix
Adding validation logic for RGBA16 readpixels.
Change readPixels format from UNSIGNED_BYTE to UNSIGNED_SHORT in the
test.
FYI:
According to https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_norm16.txt
ReadPixels format and type used during CopyTex* are limited to RGBA
Bug: 1024387, 1000354, angleproject:1365, angleproject:4089
Change-Id: I70517f255fe335f60e55bdf15f7ebf82e3de0800
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1914127
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shrek Shao <shrekshao@google.com>
|
|
f3d35f8f
|
2019-11-22T14:24:52
|
|
Suppress flaky failure with Win7/NVIDIA/D3D11
Seeing intermittent failure on this test only on Win7/NVIDIA/D3D11.
Suppress for now.
Bug: angleproject:4163
Change-Id: Idfa44516a194dcd5710622d11801ce089c1e829d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1931338
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
4c7db77e
|
2019-10-31T15:42:31
|
|
Vulkan: Set limitation on maxComputeWorkGroupCount
According to Table 20.45 and Chapter 17 in the ES 3.1 spec, MAX_COMPUTE_WORK_GROUP_COUNT
is get as a GLint by using GetIntegeri_v. However, it is an unsigned integer
in the Vulkan. It needs to set limitation on maxComputeWorkGroupCount[] during
translating.
1. Change the data type to GLint stored in Caps.
2. Ensure that the limitation is set during initialization.
3. Add workaround for angleproject:4120
Bug: angleproject:4066
Change-Id: I1659ba1d560e30b9599cace0feeab8a18890c3ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1890586
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6fcc0bb8
|
2019-11-21T01:19:40
|
|
Metal: Re-add end2end test configs (running test is still disabled)
angle_test_instantiate.cpp & angle_test_instantiate_apple.mm:
- Disabled metal platform selection on pre-10.13 mac devices for
Bug: angleproject:4153
Explicitly disabled tests on metal:
- DifferentStencilMasksTest.DrawWithDifferentMask
- PointSpritesTest.PointSizeAboveMaxIsClamped
- WebGL2ReadOutsideFramebufferTest.CopyTexSubImage3D
This requires the crash fix in http://crrev.com/c/1924101
Bug: angleproject:4153
Bug: angleproject:2634
Change-Id: I95046d731a8ba7414cf1a1f4b6f2940282725872
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1926389
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
05af7590
|
2019-11-20T01:04:00
|
|
Metal: Fix FramebufferMtl's read-after-delete
Due to late verification, ContextMtl might call onFinishedDrawingToFrameBuffer()
on a deleted framebuffer object inside syncState()
Fix:
- Switch to call onStartedDrawingToFrameBuffer() on new FBO instead of
calling onFinishedDrawingToFrameBuffer() on old (and possibly deleted)
FBO.
- Also discard framebuffer only takes effect per render pass. The
discard flag will be reset when render pass starts.
Bug: angleproject:4144
Change-Id: I7c6c96862892f1c241ce4af3b61862fa4b710a94
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1924101
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c1776c61
|
2019-11-13T11:36:35
|
|
Vulkan:Add Swiftshader configs
Add Swiftshader configs to existing test instantiation macros for all ESX
variants. This causes Swiftshader to be used to run end2end tests.
Added detection code to know when tests are running on Swiftshader and skipping
a number of fails initially.
Note that when running ANGLE end2end tests within Chromium build on Win32 bots
there were crashes with Swiftshader config for tests that should have been skipped.
Due to this, just skipping Swiftshader configs on Win32 for now.
Bug: angleproject:4081
Bug: angleproject:4092
Change-Id: I32527a62304c5fad90f645b372edf9411ca2b212
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1914126
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
efb45eda
|
2019-09-24T09:23:53
|
|
Vulkan: Accelerate Texture PBO updates
If the format of the image and the PBO match,
use a vkCmdCopyBufferToImage transfer operation.
Test: angle_end2end_tests --gtest_filter=*PBOCompressedSubImage*
angle_end2end_tests --gtest_filter=*PBOWithMultipleDraws*
dEQP-GLES3.functional.texture.specification.tex*image*d_pbo*
Bug: angleproject:3777
Change-Id: I3f271024a635be113202a16f8893a199c194172d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1906203
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
8392b118
|
2019-11-20T16:57:08
|
|
Revert "Metal: Enable end2end tests."
This reverts commit 0bb42e091b77f174632434a05789b2ce632bd902.
Reason for revert: https://bugs.chromium.org/p/chromium/issues/detail?id=1026633
Causing failures on Mac bots.
Original change's description:
> Metal: Enable end2end tests.
>
> Explicitly disabled tests:
> - DifferentStencilMasksTest.DrawWithDifferentMask
> - PointSpritesTest.PointSizeAboveMaxIsClamped
> - WebGL2ReadOutsideFramebufferTest.CopyTexSubImage3D
>
> Bug: angleproject:2634
> Change-Id: I76ab450c06d0e1be1e7469a8b9c6497684c3ca54
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1906607
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
TBR=geofflang@chromium.org,jonahr@google.com,jmadill@chromium.org,le.hoang.q@gmail.com
Change-Id: Iaa4264834170a49c274f186d3d74f57714c84b32
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2634
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1926378
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
0bb42e09
|
2019-11-19T23:04:00
|
|
Metal: Enable end2end tests.
Explicitly disabled tests:
- DifferentStencilMasksTest.DrawWithDifferentMask
- PointSpritesTest.PointSizeAboveMaxIsClamped
- WebGL2ReadOutsideFramebufferTest.CopyTexSubImage3D
Bug: angleproject:2634
Change-Id: I76ab450c06d0e1be1e7469a8b9c6497684c3ca54
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1906607
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
99bd10b7
|
2019-11-18T15:18:30
|
|
Vulkan:Disable AtomicCounterBuffer tests on Vulkan
These tests were incorrectly turned on for Vulkan during the recent
test macro refactor.
Bug: angleproject:4125
Change-Id: I36940209e4223182e4810c30b0d0098d4abf0222
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1922591
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
9107577c
|
2019-11-18T15:00:29
|
|
Skip TextureNorm16Test on Nexus6P
Since either revert of the original patch or the new fix is failing
some bots, suppress it first.
https://chromium-review.googlesource.com/c/angle/angle/+/1917423
https://chromium-review.googlesource.com/c/angle/angle/+/1914127
TBR=geofflang@chromium.org
Bug: 1024387, angleproject:4089
Change-Id: I56fe0ba7e8a33f72b287528e920d6733e9cb5037
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1922602
Reviewed-by: Shrek Shao <shrekshao@google.com>
Commit-Queue: Shrek Shao <shrekshao@google.com>
|
|
377b8caf
|
2019-11-19T08:57:01
|
|
Add suppressions for failures on Intel/Linux
The refactor to angle_end2end_tests added tests to OpenGL ES and
some of these tests are failing on Intel/Linux. Skip those tests
for now.
Bug: angleproject:4121
Change-Id: I7a56099faac558a4e18d98eb5f0b25522d656e61
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1924061
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1c795d9e
|
2019-11-12T11:03:14
|
|
Add a test to capture bug with LUMA blit workaround
This test captures a bug with state tracking in the BlitGL LUMA
texture workaround.
Bug: 1022080
Change-Id: I22d2eb0d653778be300ab4a1f6b27e67f8cf1cbd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1912140
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
1a01b4b3
|
2019-11-11T16:41:07
|
|
Refactor end2end test macros
This is a foundational CL to enabling the end2end tests on swiftshader.
Refactored infrastructure with new ANGLE_INSTANTIATE_TEST_ES*
macros that will run tests over all various combinations of all
platforms for different ES versions.
Just skipping failing tests initially to get the refactor landed.
Bug: angleproject:4081
Bug: angleproject:4092
Change-Id: I017f6c3267179e49b6ae08cc7488096b423dcdb5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1904635
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
b3c4dffd
|
2019-11-12T14:42:23
|
|
Vulkan: Fix glMemoryBarrier* implementation
The indirect bit handling is no longer necessary, as setup*Indirect
functions already add the barriers if necessary. The framebuffer bit
is unnecessary as the image layout transition from storage image to
framebuffer attachment would already add the necessary barrier. Image
access bit was indeed necessary, but so is shader storage bit which is
added.
Bug: angleproject:3574
Bug: angleproject:3879
Bug: angleproject:3934
Change-Id: I9da722e7a34941932731335af2313783295031ba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1913080
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
4f023f56
|
2019-11-11T15:46:02
|
|
Enable passing end2end test
Bug: angleproject:3361
Change-Id: Ie488f77a7baa0ce66d192c651e826c2fee597af2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1912139
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e33c1582
|
2019-11-06T16:55:29
|
|
Fix EXT_texture_norm16
* Add norm16 format info for OpenGL backend
* Add validation for newly introduced norm16 formats
* Fix some logic of texture tests
Bug: chromium:1000354, angleproject:1365
Change-Id: Ie6d6e5e276da4df4b7c667be28d324d4976b35ec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1902720
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shrek Shao <shrekshao@google.com>
Commit-Queue: Shrek Shao <shrekshao@google.com>
|
|
19dd51b0
|
2019-11-04T11:28:19
|
|
GL: Expose PBO extensions
Ensure WebGLCompatibilityTest.EnablePixelBufferObjectExtensions functions
in surfaceless mode by creating a framebuffer to do the test glReadPixels
from.
BUG=angleproject:4079
Change-Id: I109b3cdeb85625a6a97832ecf8130d53a4074af9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1893058
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
df415528
|
2019-10-24T09:22:39
|
|
Vulkan: Enable VK_IMAGE_USAGE_STORAGE_BIT when it is needed
VK_IMAGE_USAGE_STORAGE_BIT is always enabled for vkImage, this
increases memory bandwidth in some platforms.
This CL changes the behavior to enable VK_IMAGE_USAGE_STORAGE_BIT
when necessary.
Bug: angleproject:3904
Test: angle_end2end_tests
Test: angle_deqp_gles2_tests
Change-Id: I8ffd37efa8d99d04328fa6232de0755be3273d9e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1857799
Commit-Queue: Sunny Sun <sunny.sun@arm.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
422ebad2
|
2019-10-31T16:02:48
|
|
Fix ANGLE_get_image cube map handling.
Was missing a layer parameter. Also includes a regression test.
Also updates incomplete texture handling in Vulkan. Will try to sync
the texture storage if the texture has never been used.
Bug: angleproject:3944
Change-Id: I5fcd6931f9cb9e008faaeaecb1f6df275a2af73f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1894142
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
35f74cd6
|
2019-10-31T16:47:10
|
|
Reorder BaseVertexBaseInstance draw calls parameters
To match the parameter order of MultiDraw* calls.
And potentially expose in chromium directly with ANGLE_ prefix.
Bug: angleproject:3402, chromium:891861
Change-Id: I19548f4c3c7faa422e43905850b218039de43015
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1894241
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
bb35bb4e
|
2019-10-29T17:17:04
|
|
Vulkan: Implement simple case ANGLE_get_image.
A couple cases are left unimplemented:
Incomplete/unused Textures. This leads to a slightly more tricky
implementation. Since we need to read back from the staging buffer
we will need to flush the Image contents to a temporary buffer.
Depth/stencil readback. Requires a more complex pixel packing
step.
3D/Cube/2D Array readback. Also requires a more complex packing
step.
Bug: angleproject:3944
Change-Id: Ic5d9a606177ba7e3e5ab945feb5f555afa11741f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1879964
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
dfc20daf
|
2019-10-28T13:51:42
|
|
Plumb more logic for ANGLE_get_image.
Also implements and tests validation / negative API.
Bug: angleproject:3944
Change-Id: I3385a4255f4fab6a12eee2abfa5ffcce2107359a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1879961
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
77fba58c
|
2019-10-24T19:29:24
|
|
Fix improper vertex array assignment in ANGLE test.
Test: StateChangeTestES3.VertexArrayObjectAndDisabledAttributes
Bug: angleproject:4049
Change-Id: Ibda86585e9117686283081a76df213b2b2db0b6e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1879582
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
7af2676b
|
2019-10-23T16:18:57
|
|
Fix TextureAttachment support for unsized DS formats
Unsized DS formats should not pick up support from ES3 automatically.
Also unsized DEPTH COMPONENT textures should not be allowed as texture
attachments without also having support for GL_ANGLE_depth_texture or
GL_OES_depth_texture extensions.
This change modifies some unsized formats to require extension support
for TextureAttachment use.
There are a couple of tests bugs that were exposed by this change so
updated those tests as well.
This CL only changes TextureAttachment support, but it's quite possible
that renderbuffer (and texture) support may also need to be updated.
Will attempt that in a follow-on.
Bug: angleproject:3952
Change-Id: I75d15330dc418c421cd2855135e1e8100a89b2e8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877135
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b2885bc4
|
2019-10-23T13:33:48
|
|
Vulkan:Enable UpdateBufferInUse test on AMD
Re-tested this and it's now passing so turning it on.
Bug: angleproject:3255
Change-Id: Iccf63cfaa4386dfda5628e189362631e655953f5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1876081
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
b3070102
|
2019-10-18T16:01:34
|
|
Add SH_REMOVE_DYNAMIC_INDEXING_OF_SWIZZLED_VECTOR
This is a workaround for the webgl2 conformance test case
WebglConformance_conformance2_glsl3_vector_dynamic_indexing_swizzled_lvalue.
Dynamic indexing of swizzled lvalue like "v.zyx[i] = 0.0" is problematic on
various platforms. This removes the indexing by translating it this way:
void dyn_index_write_vec3(inout vec3 base, in int index, in float value){
switch (index) {
case (0):
(base[0] = value);
return ;
case (1):
(base[1] = value);
return ;
case (2):
(base[2] = value);
return ;
default:
break;
}
if ((index < 0))
{
(base[0] = value);
return ;
}
{
(base[2] = value);
}
}
...
dyn_index_write_vec3(v.zyx, i, 0.0);
...
Bug: chromium:709351
Change-Id: I971b38eb404209b56e6764af1063878c078a7e88
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869109
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f228038d
|
2019-10-17T11:18:47
|
|
Treat Pixel 2 XL and Pixel 2 the same
When running on a Pixel 2 XL PIXEL2 expecations were not being
applied. Both devices use the same chipset and have same capabilities
so treat them the same for expectations.
Bug: angleproject:4025
Change-Id: I5287e80c21b681765af540ed6dfbd053aa838c1c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1866076
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2d0e5b55
|
2019-08-27T13:49:07
|
|
GL_EXT_multisampled_render_to_texture extension. Part 2.
For textures that use this extension, a multisampled texture is
implicitly created for the texture.
Upon write or read, the multisampled texture is either return
to be drawn to or resolved and returned as a single sampled texture.
This is the functionality change with end2end tests.
Bug: angleproject:980428
Change-Id: I5776875a132fed7a3f4f00fb02f9e8e250684630
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1773717
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c42da4e5
|
2019-10-03T13:46:28
|
|
Extend ANGLE_request_extension with DisableExtension
ARB_texture_rectangle is the only currently supported disablable
extension. This allows us to use ARB_texture_rectangle in WebGL
implementations without exposing it to WebGL user shaders.
Bug: angleproject:3956
Bug: angleproject:3770
Change-Id: I80b10d2e9c9feebe545ce15195721487165ecc51
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1838418
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d192e933
|
2019-09-27T10:27:10
|
|
Vulkan: Support binding texture levels as a rendertarget
This CL refactors how TextureVk handles rendertargets. It removes
the single rendertarget that previously supported 2D, and expands
the layer/level list of rendertargets to handle all cases.
Bug: angleproject:3184
Bug: angleproject:3996
Test: Texture2DTestES3.FramebufferTextureChangingBaselevel/ES3_Vulkan
Test: FramebufferRenderMipmapTest.RenderToMipmap/ES2_Vulkan
Test: FramebufferRenderMipmapTest.RenderToMipmap/ES3_Vulkan
Test: ComputeShaderTest.ImageStoreMipmapSlice/ES3_1_Vulkan
Change-Id: I466d0389cc6744994f88c40cc388fca694b53a99
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1854895
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
bbf0ce28
|
2019-10-11T06:55:36
|
|
Vulkan:Add support to stage D or S textures
Correctly set image aspect for depth or stencil texture staging.
This fixes 6 failing dEQP 3.0 tests and an end2end test.
Note that DS combined aspect textures will need special handling
to read each aspect separately which is not included in this fix.
Bug: angleproject:3949
Change-Id: I8e3f8166bdd31e2c002752b2f5c107ba411b2b0d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1855964
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
8896e18e
|
2019-10-08T16:07:52
|
|
Fix the missing global memory barriers
This adds the transtlations of GL_SHADER_IMAGE_ACCESS_BARRIER_BIT, and
GL_FRAMEBUFEER_BARRIER_BIT to the vulkan backend.
Bug: angleproject:3934
Change-Id: I2bd86a16b461cf7dc01d0d4386f49365a5292446
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1847172
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ee08d924
|
2019-10-10T08:56:12
|
|
Vulkan: Enable GL_OES_EGL_image_external_essl3
GL_OES_EGL_image_external_essl3 support was added a while back.
This patch just enables it for the Vulkan backend
Bug: angleproject:2668
Test: ./angle_end2end_tests --gtest_filter=ImageTestES3*Vulkan
Change-Id: I6b8b1f63ed6e9faafe668ad9a73fc7fbc9c17670
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1852190
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
2fa9d734
|
2019-10-07T16:35:38
|
|
Partially Revert "Convert DXT1 RGB data to DXT3 RGBA when uploading to the GPU."
This reverts commit e6582161b04beaa368f3081897912ede89d7800d.
Remove the DXT1->DXT3 transcoding but leave in the MacOS workarounds for fixing
the alpha channel of DXT1 textures.
BUG=angleproject:3729
Change-Id: Ib276c1e4a58155866da8c661cba2063a4e4304fe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1846015
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
2d5c8d31
|
2019-10-08T22:37:32
|
|
Vulkan: Fix off by one when flushing staged texture updates
When updating ImageHelper::flushStagedUpdates to handle base and
max texture level, we got off by one when deciding if an update
landed in in the range of the current vkImage. When there are 8
mipLevels and we see an update for level 8, that should not be
applied, and should be preserved in updatesToKeep.
Bug: angleproject:3950
Test: MipmapTest.DefineValidExtraLevelAndUseItLater/ES2_Vulkan
Change-Id: I63e0c24f7885f8b0580ce212b531711aebcf0e01
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1848933
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
e600ac2a
|
2019-10-04T14:31:57
|
|
Create test to validate scissor size is correct
The concern is that if a user changes the framebuffer's attachment
to one with a different size, contextVk->updateScissor() may not be
called and we may render too much/little. This change creates a test to
verify that when the FBO's attachment size changes, the correct amount
of fragments are drawn.
Bug: angleproject:3754
Test: FramebufferTest_ES3
Change-Id: I47108d6fe3e671ddc8c30cf969f63c1c3ae76f84
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1842128
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
a787b618
|
2019-10-03T12:59:12
|
|
D3D11: Buffers larger than MAX_UNIFORM_BLOCK_SIZE
We had clamped all UBOs to MAX_UNIFORM_BLOCK_SIZE, when D3D11
allows the underlying buffer to be larger as long as each UBO
binding is still within the max.
Bug: 906683
Bug: angleproject:3388
Change-Id: Id5536302dd73a41c0882fddd77e94f4503f00730
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1837356
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
fb568849
|
2019-10-04T18:45:55
|
|
Suppress failure on Linux FYI Ozone
BUG=angleproject:3969
Change-Id: Idcefab4b5f07b018c58acb27f47721445c6a6316
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1842051
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
6b60dfd8
|
2019-10-02T07:54:18
|
|
Vulkan: Remove image views forced to one mip level
textureSize requires the view to reflect actual mip levels, so
we can't artificially limit the view based on filtering mode.
This CL removes those views.
That unearthed a problem where the VK backend wasn't properly
implementing non-mipmapped filter modes. There is a blurb in
the Vulkan spec about this:
There are no Vulkan filter modes that directly correspond to OpenGL
minification filters of GL_LINEAR or GL_NEAREST, but they can be
emulated using VK_SAMPLER_MIPMAP_MODE_NEAREST, minLod = 0, and
maxLod = 0.25, and using minFilter = VK_FILTER_LINEAR or
minFilter = VK_FILTER_NEAREST, respectively.
So this CL also adds that emulation.
Bug: angleproject:3948
Test: TextureSizeTextureArrayTest.BaseLevelVariesInTextureArray
Test: dEQP-GLES3.functional.shaders.texture_functions.texturesize.*
Change-Id: I81d5c3417e7d9abd0cdd058b935963706024a28f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1835937
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
c2fc8bd8
|
2019-10-01T18:21:22
|
|
GL: Fix support for glCopyTextureCHROMIUM with source rectangle textures.
Shader generation didn't use the correct sampler type and discarded pixels
outside the [0, 1] texcoord which is almost always true when sampling rectangle
textures.
Added end2end test coverage.
BUG=990368
Change-Id: Ifaa73dfa83467d5bfa32e3795b52033254436a77
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1834582
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
5549ef04
|
2019-10-02T09:38:03
|
|
Vulkan: Fix content synchronization for textures bound to images
Added state tracking back for images bound with glBindImageTexture
This fixes a bug where updating a texture with glTexSubImage2D would not
trigger a content update when the same image was re-used in a dispatch
Bug: angleproject:3887
Test: SimpleStateChangeTestES31.DispatchWithImageTextureTexSubImageThenDispatchAgain/ES3_1_Vulkan
Change-Id: I030ec52f1c470f9e9ff7c14f1c24fe213000a3ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1835943
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1d02157e
|
2019-09-24T10:54:40
|
|
Only enable shader array size restrictions for HLSL
Shader arrays are currently restricted to 64K entries for all translator
back ends. This is being changed to just HLSL, since the other back
ends appear to have support for larger sizes.
Bug: angleproject:3865
Test: dEQP-GLES31.functional.compute.basic.copy_image_to_ssbo_large
Test: dEQP-GLES31.functional.compute.basic.copy_ssbo_to_image_large
Test: ComputeShaderTest.VeryLargeArrayInsideFunction/*
Change-Id: I9a9d1322e24b3206debdea6a3fd517b4d6869ed9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1821943
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
c847a75f
|
2019-09-20T14:08:32
|
|
Fix redundant draw in DrawBaseVertexBaseInstanceTest
Discovered this redundant draw issue when writing javascript
webgl conformance test.
Together fix some broken formatting.
TBR=geofflang@chromium.org
Bug: 3402
Change-Id: I29dbcd04da7e47d9e0bc79074ff69202378c1214
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1816822
Reviewed-by: Shrek Shao <shrekshao@google.com>
Commit-Queue: Shrek Shao <shrekshao@google.com>
|
|
1850492e
|
2019-10-02T08:23:03
|
|
Vulkan: Disable OES_vertex_type_10_10_10_2 on GLES 2.0
- Because of the difference in the SNORM to FLOAT conversion formula
between GLES 2.0 and 3.0, OES_vertex_type_10_10_10_2 is disabled
when the context version is lower than 3.0.
- Modify test conversion formula to be compliant with GLES 3.0 equation
Bug: angleproject:3868
Test: angle_end2end_tests --gtest_filter=VertexAttributeTest*Packed*Vulkan
Change-Id: I8b85d8146ee05353bc40fa0022f05d6634c33110
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1792197
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
fd092e85
|
2019-10-02T13:19:00
|
|
Vulkan: Point end2end failure at correct bug
The ComputeShaderTest.BindImageTextureWithOneLayerTexture3D/ES3_1_Vulkan test
is failing because of the previously-reported angleproject:3886.
Switching the comment to so indicate.
Bug: angleproject:3188
Bug: angleproject:3886
Change-Id: Ib62316dcf3935f96bdcab701e8fdb6042a1ab859
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1834837
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
4671fee9
|
2019-10-01T12:28:25
|
|
Don't expose CHROMIUM_color_buffer_float_rgb[a] in ES3.0+
These extensions are superseded by EXT_color_buffer_float and not needed to support
WebGL2. Allowing them to expose rendering to RGB[A]32F when EXT_color_buffer_float
is not supported causes dEQP failures.
BUG=angleproject:3939
Change-Id: Ib50a061526f29fc0628e732123c04a22800345dc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1832525
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Alexis Hétu <sugoi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
f03259ad
|
2019-09-19T11:31:40
|
|
Vulkan: lineloop support for DrawElementsIndirect
Add support for lineloops.
Includes a compute shader for converting lineloop index
buffer with optional restart into linestrip.
Test:
dEQP.GLES31/functional_draw_indirect_*
angle_end2end_tests --gtest_filter=LineLoopIndirectTest.*/*
Bug: angleproject:3564
Change-Id: I12d08db1c8d99867f0611e53be50193647695260
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1797106
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
616a4dc0
|
2019-09-12T16:10:47
|
|
Vulkan: Full support for program interface queries
Program interface queries are a generic way to query attributes of
the program like uniforms, samplers, attributes, etc. This change
supports those queries for program outputs.
Bug: angleproject:3596
Test: dEQP-GLES31.functional.program_interface_query.*
Test: ProgramInterfaceTest.cpp
Change-Id: I0f13692949073b45988b6f930eee9eaa6411bbe2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1801998
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f10bf6bf
|
2019-09-26T10:27:18
|
|
Vulkan: Implement multi-threaded GL.
The main component of this change is to make vk::BufferHelper,
vk::ImageHelper and vk::SyncHelper use a common path. We introduce a
new "vk::SharedGarbage" helper class that stores small lists of garbage
from individual objects like an ImageHelper or BufferHelper. The
SharedGarbage is stored in the RendererVk with the ResourceUse of the
helper object. The ResourceUse tells RendererVk when it is safe to
destroy the GarbageObjects.
New "onGraphAccess" commands are added in a few places to enable the
common garbage collection path. A couple Context-only resources like
default attributes now are referenced where they were not before.
Also reorganizes some functions so we can add a few helpful ASSERTs
to our graph dependencies. Added "updateCurrentAccessNodes" for this.
Also adds a "RendererScoped" helper to replace many uses of
"ContextScoped".
The multithreading EGL tests mostly pass but have some remaining
flakiness so cannot yet be enabled.
Bug: angleproject:2464
Change-Id: Ia3e3ae8848d731abf3f21ebe04c33e381e130be0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1808444
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
988f7170
|
2019-09-30T15:52:37
|
|
Vulkan: Base/max level fixes and cleanup
This CL cleans up references to base/max level bug and fixes
one lingering issue regarding special handling of depth/z for
arrayed surfaces.
Bug: angleproject:3148
Bug: angleproject:3184
Bug: angleproject:3948
Bug: angleproject:3949
Bug: angleproject:3950
Test: dEQP-GLES3.functional.texture.mipmap.*base_level*
Test: dEQP-GLES3.functional.texture.mipmap.*max_level*
Test: Texture2DArrayTestES3.DrawWithLevelsOutsideRangeWithInconsistentDimensions
Change-Id: Iad72005a111507c50b8be9726adc32285bbae52b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1832757
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
4a276034
|
2019-09-30T16:31:00
|
|
Vulkan: Narrow skip lists for 3D and 2DArray tests to Compute
Narrow these skips to just compute shader failures, which
we will tackle as part of the next sprint.
Bug: 3188
Bug: 3189
Bug: 3810
Test: CopyTexImageTestES3.2DArraySubImage
Change-Id: I74c259712e5f3c9296bd3a6241d1da8f1668ca36
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1832881
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
71c1138d
|
2019-08-16T12:23:04
|
|
Vulkan: Emulate instanced attrib divisor
This sets instancedArrays[ANGLE|EXT] extenstions as always
supported regardless of underlying Vulkan HW's max vertex attrib
divisor.
Then detect instances where app sets a divisor that isn't supported
by hardware and emulate those cases. Emulations is accomplished by
copying the instanced attribs to a new buffer where each attrib is
present once per instance, using the attrib divisor value as a
factor to replicate the attribs, and then setting the actual divisor
value for the draw to "1".
Also, we only store 8 bits for the divisor used in the PSO, so this
code also handles emulation of the case where divisor is > 255.
This is passing all of the drawInstanced/Elements dEQP tests
where divisor has to be emulated.
Also enabled end2end InstancingTestES3 for Vulkan backend.
Bug: angleproject:2672
Change-Id: I9932f9eab49b16a19e8bbd35dacaf3b5a27a213f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1758689
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
cb16fb5f
|
2019-08-29T16:53:55
|
|
Vulkan: Support texture base and max levels
The Vulkan backend uses a vkImage that matches the number
of effective levels in the GL texture. This is due to the fact
that GL textures can have really strange layouts that only make
sense when base level and max level are applied.
For instance, take the following layout with disjoint mip levels:
Level 0: 4x4 RGBA
Level 1: 2x2 RGBA
Level 2: 10x10 RGB
If base level is set to zero and max level is set to 1, the image is
still considered mip-complete:
Level 0: 4x4 RGBA ==> Base Level 0 ==> Level 0: 4x4 RGBA
Level 1: 2x2 RGBA ==> Max Level 1 ==> Level 1: 2x2 RGBA
Level 2: 10x10 RGB
If base and max level are then both set to 2, the texture is still
considered complete, but of a different size and format:
Level 0: 4x4 RGBA
Level 1: 2x2 RGBA
Level 2: 10x10 RGB ==> Base/Max Level 2 ==> Level 2: 10x10 RGB
When the base or max level is changed, we must recreate the vkImage to
match the new level count.
To support that, we:
- Stage updates from the current image to the new image
- Only stage updates if there aren't already staged updates for a level
- Free the current image and so it can be recreated at the next draw
This CL does the following:
- Refactors TextureVk::copyImageDataToBuffer to support staging updates
without flush
- Adds TextureVk::copyImageDataToBufferAndGetData to support previous
use model
- Adds TextureVk::changeLevels, triggered during syncState, which stages
updates and releases the current image.
- Updates ImageHelper::flushStagedUpdates to understand base/max levels
- Updates TextureVk::ensureImageInitialized and TextureVk::generateMipmap
to account for base/max level
- Tracks base and max levels in ImageHelper
- Adds ImageHelper::stageSubresourceUpdateFromBuffer to support
this use case
- Adds ImageHelper::isUpdateStaged to determine if changeLevels
should propagate data
- Makes gl::TextureTypeToTarget available for use outside of ImageIndex
- Enables several deqp and end2end tests
Bug: angleproject:3148
Test: dEQP-GLES3.functional.texture.mipmap.*base_level*
Test: dEQP-GLES3.functional.texture.mipmap.*max_level*
Change-Id: I14ca071c9c62eb310dfed7ef9290dc65fc3ff696
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1776933
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
57b37b6b
|
2019-09-25T18:29:28
|
|
Rename util/system_utils to util/test_utils.
This removes a GN naming conflict between util/system_utils and
common/system_utils. This conflict was preventing us from adding
unit tests to utils' version of system_utils. Since these functions are
only useful to tests and samples rename them test_utils for simplicity.
Will enable further development of ANGLE's standalone testing harness.
Bug: angleproject:3162
Change-Id: I9e34fb69f96c5de6dc2453fce4148a0f285e15ed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1825268
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
70d79b76
|
2019-09-11T11:43:55
|
|
GL: Add state validation functions to GL backend
These functions validate that the driver's reported state matches
ANGLE's internal state. Can be useful for debugging
Bug: angleproject:3900
Change-Id: I35d15e991986dcab114939c551a88549f09bd263
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1797254
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d4c75347
|
2019-09-18T10:49:34
|
|
Vulkan: Enable GPU conversion from RGB16F to RGBA16F
- Add proper GPU conversion routine when the source and destination
format of vertex attribute is half float data type.
- Add an end2end test which utilizes half float GPU conversion path.
Bug: angleproject:3802
Test: angle_end2end_tests --gtest_filter=*VertexAttributeTest.HalfFloatBuffer*
Change-Id: Ia88a4984156f8967796bea3852c3cde714f2acab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1824799
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
6d625bfe
|
2019-09-23T20:05:29
|
|
Skip ComputeShaderTest.UniformDirty on Linux Intel Vulkan
Flaky on Linux FYI Release (Intel HD 630) bot.
Bug: angleproject:3934
Change-Id: Ia3092e9c740d0052e106d464c59ceac63d4e434e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1820085
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
8be7a4c7
|
2019-09-19T12:48:31
|
|
Re-land "Vulkan: SwiftShader integration."
Re-land fixes Win7 configs and placement of the SwiftShader module for
ASAN/TSAN configs.
Adds a new EGL extension for picking SwiftShader when using the Vulkan
back-end. Also cleans up ICD enabling code RendererVk. Also includes a
change to a buffer size necessary to support SwiftShader's minimum
limits.
Bug: angleproject:3876
Bug: b/140251624
Change-Id: I5e16057ac4de07bbdbbd248542b1b9103133294f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1810065
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
fea65766
|
2019-09-19T09:30:38
|
|
Vulkan: Add support for OES_vertex_type_10_10_10_2
- Add support to CPU/GPU convert vertex formats
- Add test cases for type conversion in angle_end2end_tests
- Fix a bug in shader script by adding a ceil when calculating bytes
Bug: angleproject:3192
Test: angle_end2end_tests --gtest_filter=VertexAttributeTest*Packed1010102*
Change-Id: I57bab9fc1c1041cd734746d0e52a33717b635ec0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1788495
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
e6582161
|
2019-09-16T12:39:18
|
|
Convert DXT1 RGB data to DXT3 RGBA when uploading to the GPU.
DXT1 has a specific 'BLACK' code that results in transparent black pixels when
sampled. D3D does not have specific RGB-only DXT1 formats like OpenGL does so
when this code is encountered, we sample 0 alpha for these pixels when GL would
expect 1 because the alpha channel should not exist.
Work around this by converting to DXT3 RGBA, adding an extra block of 1.0 alpha
pixels for each color block.
Mac Intel OpenGL requires additional workarounds to always sample 1.0 alpha.
Set the texture swizzle parameters to force it.
BUG=angleproject:3729
Change-Id: Ia3647085acd97bb01af4e95ef3f6f21dcfb6a554
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1804880
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
db7a36f4
|
2019-09-17T00:22:32
|
|
Revert "Vulkan: SwiftShader integration."
This reverts commit 1224802c214d8f3d5b1f31a35d4461ada39b94c1.
Reason for revert: https://bugs.chromium.org/p/angleproject/issues/detail?id=3912
Original change's description:
> Vulkan: SwiftShader integration.
>
> Adds a new EGL extension for picking SwiftShader when using the Vulkan
> back-end. Also cleans up ICD enabling code RendererVk. Also includes a
> change to a buffer size necessary to support SwiftShader's minimum
> limits.
>
> 32-bit is currently left disabled to work around an issue on AMD Win7.
>
> Bug: angleproject:3876
> Bug: b/140251624
> Change-Id: I33c55d994801d6154caca0cad0a608c1e808d517
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1776231
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
TBR=geofflang@chromium.org,jonahr@google.com,jmadill@chromium.org
Change-Id: Id7464250f6941b0228a6b2a9bd0349823727275b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:3876, b/140251624
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1808101
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
|
|
1224802c
|
2019-09-16T15:17:33
|
|
Vulkan: SwiftShader integration.
Adds a new EGL extension for picking SwiftShader when using the Vulkan
back-end. Also cleans up ICD enabling code RendererVk. Also includes a
change to a buffer size necessary to support SwiftShader's minimum
limits.
32-bit is currently left disabled to work around an issue on AMD Win7.
Bug: angleproject:3876
Bug: b/140251624
Change-Id: I33c55d994801d6154caca0cad0a608c1e808d517
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1776231
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
20bb47d3
|
2019-09-16T12:55:30
|
|
Skip a angle_end2end_tests on Linux Intel OZone.
Texture2DFloatTestES2.TextureFloatRenderTest/ES2_OpenGLES
R=jmadill@chromium.org
Bug: chromium:1003971
Change-Id: I96d858bbfbbaa7d98d9a7488cb98e0c1fca18ba3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1807581
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b5560486
|
2019-08-30T17:09:04
|
|
BaseInstance VertexAttribDivisor fix
Add tests not using gl_InstanceID/gl_BaseInstance but set
vertexAttribDivisor which implicitly reference base instance value.
Add fixes and workarounds based on this change.
Bug: chromium:891861, angleproject:3402
Change-Id: I2d93c181029f4ca1741f244363568096964d6b19
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1779350
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|