|
5cf7472d
|
2020-11-20T13:07:53
|
|
Vulkan: Ignore glFlush to reduce vkQueueSubmits in Asphalt 9
Multithreaded apps can use the following pattern:
glDrawElements()
glFenceSync()
glFlush()
glWaitSync()
This currently results in a vkQueueSubmit for every glFlush() to ensure
that the work has landed in the command queue in the correct order.
However, ANGLE can instead avoid the vkQueueSubmit during the glFlush()
in this situation by instead flushing the ContextVk's commands and
ending the render pass to ensure the commands are submitted in the
correct order to the renderer. This improves performance for Asphalt 9
by reducing frame times from 150-200msec to 35-55msec.
Specifically, ANGLE will call flushCommandsAndEndRenderPass() when
there is a sync object pending a flush or if the ContextVk is currently
shared.
Additionally, on all devices except Qualcomm, ANGLE can ignore all other
glFlush() calls entirely and return immediately. For Qualcomm devices,
ANGLE is still required to perform a full flush (resulting in a
vkQueueSubmit), since ignoring the glFlush() reduces the Manhattan 3.0
offscreen score by ~3%.
Bug: angleproject:5306
Bug: angleproject:5425
Change-Id: I9d747caf5bf306166be0fec630a78caf41208c27
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2552718
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4abf3788
|
2020-12-15T13:44:53
|
|
Tests: update WhatsApp trace
The WhatsApp trace was previously captured with the
GL_NV_shader_noperspective_interpolation extension enabled. This
re-capture was made with the extension disabled so the trace can
replayed on devices that don't support the extension.
Test: angle_perftests --gtest_filter="*whatsapp*"
Bug: b/174256233
Change-Id: I9dbf580ed5849b919a72944879be35193632e34a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2593191
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
64508f44
|
2020-12-12T18:00:10
|
|
Vulkan: Reduce driver uniform data to minimum if specConst is used
If specialization constant is used, driver uniform data structure should
be reduced to minimum to increase cache locality.
Bug: b/175479076
Change-Id: I1fc50666542c6763c60bfe011cde5bc77ccc08e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2588549
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
8f9e17d5
|
2020-12-14T14:11:11
|
|
Add EXT_clip_cull_distance extension autogen code
Addition of shader autogen code for EXT_clip_cull_distance extension.
Bug: angleproject:5458
Change-Id: I299528957c0e747fd84987c420588c314f54aae0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2590989
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
46eaba7f
|
2020-12-12T10:31:26
|
|
Vulkan: Add support for internal cache hit and miss counts
Add a CacheStats class that provides cache hit and miss bookkeeping.
All internal caches make use of this class to keep track of its stats.
This provides a means to profile cache hit ratios a.k.a Vulkan object
reuse for any application.
Bug: angleproject:5447
Test: Manual verification with angle_end2end_tests
Change-Id: I44eeb0c2b9b291ec1cdd156fb2be4a5fe80d2848
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2580111
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f32fbb51
|
2020-12-14T14:42:58
|
|
Add EXT_shader_framebuffer_fetch_non_coherent entry points
Addition of the entry points for
EXT_shader_framebuffer_fetch_non_coherent extension.
Bug: angleproject:5454
Change-Id: I2b8ba5141eed61a0c3ba58aeb2eec12a2071e7f1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2590991
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9229b805
|
2020-12-14T14:10:28
|
|
Vulkan: Add the tests for EXT_clip_cull_distance
Before supporting EXT_clip_cull_distance extension,
some tests are added to validate the implementation
of EXT_clip_cull_distance extension. These tests are
implemented based on the tests for APPLE_clip_distance
Bug: angleproject:5458
Tests: angle_end2end_tests --gtest_filter=Clip*DistanceTest*
angle_unittests --gtest_filter=*Clip*Distance*
Change-Id: I018c72ae8f0aff616c9d2600e63246e9609cf3de
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2585986
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e8c5525c
|
2020-12-09T09:41:21
|
|
Vulkan: flushCommandsAndEndRenderPass during glFenceSync()
The description for glFenceSync states:
glFenceSync — create a new sync object and insert it into the GL
command stream
ANGLE needs to break the render pass and flush any prior commands to
ensure that the newly created Fence object lands with the correct
ordering. This will be done by calling
ContextVk::flushCommandsAndEndRenderPass() before creating the Vulkan
Event object.
Bug: angleproject:5306
Change-Id: I3a460bb559acf8eb4b3041065ec743938d44d823
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2582199
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
c47b951e
|
2020-12-15T13:17:28
|
|
Capture: Disable GL_NV_shader_noperspective_interpolation
Skia uses the extension GL_NV_shader_noperspective_interpolation, which
is implemented by ANGLE. This leads to traces with shaders that use the
extension. Such traces do not replay on some native GLES drivers, as the
extension is not available.
The fix is to disable the GL_NV_shader_noperspective_interpolation
extension when capturing, so that apps do not use this extension.
Bug: b/174256233
Change-Id: I5265cab2a56be488669ed31aa2ea8ec7b7fad8fd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2593190
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Paul Thomson <paulthomson@google.com>
|
|
4798c8cf
|
2020-12-14T16:35:27
|
|
Introduce GN variables for Vulkan repos.
This will allow them to be seamlessly overrideen in other repos.
Bug: angleproject:5390
Change-Id: I973cae48b5683e39ea3b07898b95956511260319
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2591107
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
cb8903b1
|
2020-12-08T01:08:00
|
|
Metal: Ignore OS's internal shader cache when testing.
Internal shader cache caused timeout in some dEQP tests.
Work-around: ignore the cache by hooking fopen function and return null
when the cache related files are accessed.
Bug: angleproject:5354
Change-Id: I12ca228540925e67454bf24ce1ba83d703882c87
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2580918
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
fd7733e9
|
2020-12-14T19:04:28
|
|
GeometryTest: Expand suppressions to AMD Intel OpenGL
TBR=syoussefi@chromium.org
Bug: angleproject:5463
Change-Id: I3bdd17b5f9fd413e8fcbe734c6cb6f2110364e30
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2590185
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
a62ee4d1
|
2020-12-11T14:28:42
|
|
Vulkan: Add test for Pixel bug with passthrough GLSL function
Passing in a sampler2D's values using texture2D through a
function generates unexpected results on a Pixel device
with the Vulkan backend.
1. SamplerPassthroughFailedLink - program fails to link.
2. SamplerPassthroughIncorrectColor - output color is incorrect.
These tests have no issues with SwiftShader ICD.
Tests: angle_end2end_tests --gtest_filter=*SamplerPassthrough*Vulkan*
Bug: angleproject:5457
Change-Id: I9c43062e98c7b3637bb8a2b00a957141da821f0a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2586059
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d0f99d54
|
2020-12-03T11:06:56
|
|
Vulkan: Fix build issue in vulkan display/headless backend.
In Linux + Vulkan display/headless backend, angle tests such as
angle_unittests/angle_perftests/angle_white_box_perf_tests could
not be compiled successfully, fix build issues on vulkan
display/headless backend in angle tests.
1. Add EGL_NO_X11 flag into vulkan display/headless backend.
2. Disable angle_white_box_perf_tests on vulkan display/headless
backend.
Bug: angleproject:5260
Change-Id: I579aee8b0bfaa4c0d7fdf9a6df91c1b78ec4373e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2585256
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
282fb409
|
2020-12-11T16:09:10
|
|
Fix link validation of I/O block members
Location and struct name matching for fields was missing as they only
apply to I/O blocks and not varyings of struct type.
Bug: angleproject:3580
Change-Id: I69083f39088458da72828b418be3068187a30fcc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2587456
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
da8c2261
|
2020-12-12T16:39:55
|
|
Vulkan: Enable FramebufferVk cache on Apple
This effectively reverts ff60aba. The crash no longer
occurs on Apple.
Bug: angleproject:4442
Change-Id: I4aa745c80a482eb99311f3810e34124afe950cfe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2588429
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
56330564
|
2020-12-10T00:46:04
|
|
Vulkan: Support layered framebuffers
This feature is introduced by geometry shaders, where all the layers of
a texture can be attached to a framebuffer. The geometry shader would
use gl_Layer to decide which layer the primitive should be rendered to.
Bug: angleproject:3571
Change-Id: Ib2ae8e227b226295f9e2f62f6b230839070bc95c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2582711
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
8326b26a
|
2020-12-11T13:59:40
|
|
Fix link validation with ambiguous instanceless interface blocks
The following interface blocks should fail link:
VS:
layout(binding=0) buffer BufferBlockNameA
{
mediump float variable;
};
FS:
layout(binding=1) buffer BufferBlockNameB
{
mediump float variable;
};
Because `variable` is ambiguous.
Bug: angleproject:3580
Change-Id: I29576a6f152780819af0e9fb63249dbee7d9f2fc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2587450
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d9318acc
|
2020-12-11T10:40:21
|
|
Roll VK-GL-CTS from 41331850eb21 to 54509765b18d (18 revisions)
https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/41331850eb21..54509765b18d
2020-12-10 boris.zanin@mobica.com Basic tests for VK_EXT_conservative_rasterization
2020-12-10 ari.suonpaa@siru.fi Add test for image copy special case
2020-12-10 mikko.tiusanen@siru.fi Add tests for GLES3 vector construction from other types
2020-12-10 alexander.galazin@arm.com Merge vk-gl-cts/opengl-es-cts-3.2.6 into vk-gl-cts/master
2020-12-09 alexander.galazin@arm.com Merge vk-gl-cts/vulkan-cts-1.2.5 into vk-gl-cts/master
2020-12-09 ari.suonpaa@siru.fi Add drawing tests for Android hardware buffer based color buffer
2020-12-09 rgarcia@igalia.com Test data spilling and unspilling around RT shader calls
2020-12-09 dominik.witczak@amd.com Add new tests that verify IgnoreIntersection/TerminateRay corner cases.
2020-12-09 rgarcia@igalia.com Test maxPipelineRayRecursionDepth can be zero
2020-12-09 gleese@broadcom.com Enable YCbCr filtering tests for non-separable chroma
2020-12-07 slawomir.cygan@intel.com Fix clang 10.0 build of ray tracing control flow tests
2020-12-07 slawomir.cygan@intel.com Remove merge conflict markers from mandatory_features.txt
2020-12-07 jan.mroczkowski@mobica.com Vulkan Portability support
2020-12-07 piotr.byszewski@mobica.com Disable conflicting fragment shading rate features
2020-12-07 alexander.galazin@arm.com Update Vulkan headers
2020-12-07 tzlatinski@nvidia.com Select SPIR-V for the robustness' compute shaders
2020-12-07 rgarcia@igalia.com Fix buffer offsets in push descriptor tests
2020-12-07 rgarcia@igalia.com Destroy deferred ops before destroying devices
Bug: angleproject:5461
Change-Id: I86f70ea9b77c114ed9495215d83a6fee61adc76a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2586995
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ec1ff8f5
|
2020-12-09T14:25:56
|
|
Add a scissored MSRTT test
Covers a bug Skia's implementation of unresolve uncovered. ANGLE's
implementation is slightly different (in that the unresolve pass is full
screen), so it's not affected by this bug.
Bug: angleproject:4836
Change-Id: Ibc8010b0b5ef6912a45fd5f2612fb8b619e4407e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2582707
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c75473c2
|
2020-11-23T14:26:32
|
|
Vulkan: Generalize FlipRotationSpecConst to SpecializationConstant
Specialization constant are used not just for flip/rotation. It also
used for other things. This CL merges all specialization constant usage
(lineRasterEmulation, flip, rotation, halfRenderArea) into one class and
rename FlipRotationSpecConst to SpecConst.
Bug: b/173800146
Change-Id: I8dc3354b6caedbb183cec29855fc1c301ec8872a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2555812
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
dcc0bebf
|
2020-12-10T13:43:03
|
|
Vulkan: clean up comments, rename per request
Bug: b/170312581
Change-Id: Iefecb5776cac07477266e6a2e77af7d3c9f38ad6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2585745
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
6d94471b
|
2020-11-19T16:53:09
|
|
Vulkan: Eliminate fence wait from SyncVk
Waiting on a fence is problematic if using threaded worker to submit
work since code needs to know if the work has been submitted or not
before doing the wait.
Eliminate the wait by using a serial if available or if no serial check
the file descriptor directly. If no serial it's because we are waiting
on an imported file descriptor. Could call fence.wait in that
case but can also wait on the file descriptor.
Test: angle_end2end_tests --gtest_filter=EGLSyncTest.*/ES2_Vulkan
Bug: b/170312581
Change-Id: I392a5e73ac8f851d0d5bc53f06063568c0c90d2c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2579042
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
f6df8692
|
2020-12-09T12:46:35
|
|
Vulkan: Support XFB in non-Vertex stages.
This updates the code in several places to support Geometry and
Tessellation Evaluation shaders to output transform feedback.
Does not turn on any new tests but enables support for XFB when we
turn on GS/TS.
Bug: angleproject:3571
Bug: angleproject:3572
Change-Id: I6dcb768f2df4eeee81a4a500e999fcf16716f58f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2581941
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4d9157a5
|
2020-12-09T16:41:31
|
|
Increase internal max uniform blocks limit to 60.
This will make space for the tessellation / ES 3.2 limit of 60 blocks.
Bug: angleproject:3572
Change-Id: Ie6cc6b24bdce2f5f67f62d11cdeefb10f3bd01d0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2582708
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
108b759e
|
2020-12-04T15:15:49
|
|
EGL: Update EGL headers/xml
The new EGL headers introduced 'EGL_NO_X11' which we could use
for ANGLE vulkan display/headless backend.
Changes in CL:
1. Updated include/EGL/egl*.h and scripts/egl.xml based on latest
EGL repo: https://github.com/KhronosGroup/EGL-Registry
Note: local modifications to the file were preserved in
eglext.h, search keyword 'eglext_angle.h' for detail
2. run scripts to update entry_points/loader
scripts/generate_entry_points.py
scripts/generate_loader.py
scripts/run_code_generation.py
3. Update ANGLE code on API 'eglSwapBuffersWithDamage'
4. Format with 'git cl format'
Bug: angleproject:5260
Change-Id: I70ed0dccecf0426929ef8b4775605554d66c5724
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2576314
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
067a12f0
|
2020-11-19T16:47:25
|
|
Reland "Vulkan: Use specialization constant for halfRenderAreaWidth"
This is a reland of ff38106d62fca2e36ec2db1cd580b546fd53ae43
Original change's description:
> Vulkan: Use specialization constant for halfRenderAreaWidth
>
> halfRenderArea is used by fragment shader to adjust gl_FragCoord for
> rotation and yflip compensation. This CL bakes halfRenderAreaWidth into
> shader via specialization constant, thus allow compiler to consolidate
> the calculation into one MAD instruction.
>
> Bug: b/173800146
> Change-Id: Id66301278e3389e2582369b695825e632bccecee
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2551541
> Commit-Queue: Charlie Lao <cclao@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Tim Van Patten <timvp@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Bug: b/173800146
Change-Id: Ifc36086f4c5d6a44fb5456aa6e31bc8a783bba71
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2579648
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1788355b
|
2020-12-08T16:12:34
|
|
Vulkan: Add dirty bits instead of direct access FBO state
The CL crrev/c/2551541 causes intermittent Bot failure. I believe the
problem is that from ContextVk::onMakeCurrent call stack, the object
state may not in sync or even not completely specified. So instead of
accessing fbo state object here to update mGraphicsPipelineDesc, we
should insert dirty bit and let state validation code to handle it.
Bug: b/175157604
Change-Id: I5f6b9fd901cc4187068f6161bd12836c8bbf8e87
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2580914
Commit-Queue: Ian Elliott <ianelliott@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f9f569e2
|
2020-12-09T11:37:10
|
|
Suppress test requiring VK_EXT_transform_feedback on Nvidia/win7
Bug: angleproject:5450
Bug: angleproject:5435
Change-Id: I1925a4f926d10c81e5c69cfc62fcb26da2cec81d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2581940
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
8789457d
|
2020-12-09T00:21:08
|
|
Fix varying packing of I/O block fields
The sorting algorithm didn't keep the fields in order, which made them
receive arbitrary locations. The SPIR-V transformer assigns the
location on the whole block instead of individual members, which was
incorrect in this situation.
The SPIR-V transformer could have been modified to decorate each field
of the I/O block with a location. This change instead sorts the fields
in such a way that I/O block fields are allocated contiguously, which
allows the SPIR-V transformer to function unchanged.
Bug: angleproject:3580
Change-Id: I27df9e8122dd4207835bad448ffb8015692a1635
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2581076
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
378653f8
|
2020-11-20T12:24:41
|
|
D3D: throw a perf warning for uniform block
We had translated an uniform block only containing a large array member
into StructuredBuffer instead of cbuffer on D3D backend for slow fxc
compile performance issue with dynamic uniform indexing.
This patch throw a warning if a uniform block containing a large array
member fails to hit the optimization.
Bug: angleproject:3682
Change-Id: I33459b559923f16a8dfb70c6f46ec52f68d96e06
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2552365
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
|
|
8b851562
|
2020-12-08T16:51:51
|
|
Don't output matrix qualifiers in I/O blocks
row_major and column_major only apply to uniform and buffer interface
blocks per GLSL ES 3.2 spec.
Bug: angleproject:3580
Change-Id: Iad0afeffc7ddb7bff2ebaec0ea0ec4eda26171a7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2580191
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
36f74334
|
2020-12-03T21:26:28
|
|
Vulkan: Fix query pause on framebuffer binding change
When a render pass is closed, render pass queries are paused. The code
that pauses queries however is conditioned to the render pass being
open. In ContextVk::syncState, when processing
gl::State::DIRTY_BIT_DRAW_FRAMEBUFFER_BINDING, `onRenderPassFinished()`
is called. Later on, when the render pass is actually finished, the
queries are not paused.
This change moves the logic to pause render pass queries to
onRenderPassFinished().
Bug: angleproject:5427
Change-Id: I3a87db2e4543ff698803ac5e154a370e85ac7985
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2573581
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
54d95994
|
2020-12-09T09:36:00
|
|
Enable ComputeShaderTest/DrawDispatchDispatchDraw on Intel/Win/Vulkan
This patch enables ComputeShaderTest/DrawDispatchDispatchDraw on
Intel/Win/Vulkan after the upgrade of Chromium try bots.
Bug: angleproject:3871
Change-Id: I3e8d36020cbb01304a7b024d5b74923640402b4e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2580112
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f691b3b5
|
2020-12-02T13:11:54
|
|
Vulkan: Support PrimitivesGenerated query
This query uses the Vulkan transform feedback extension. In GL,
GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN and GL_PRIMITIVES_GENERATED
queries can be independently begun/ended. However, Vulkan requires that
queries from pools of the same type can only be active one at a time.
This forbids the two GL queries from being handled by two VK queries
when they are simultaneously begun.
This change makes these queries share their QueryHelper objects. The
Vulkan transform feedback queries unconditionally retrieve both results
anyway, so this is just a matter of making sure the two GL queries are
merged as one when they are simultaneously used.
The change fixes a number of issues as collateral:
- TransformFeedbackPrimitivesWritten queries when !emulated were not
released
- Stashed queries were never released
- If no render pass is open when a query ends, then getResult(no_wait)
ended up waiting
Bug: angleproject:5404
Change-Id: I8ce13ea76ffd31b3152ded7c713c6466d0315504
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2573580
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
fa9b803e
|
2020-12-03T17:53:12
|
|
GLX: Expose EGL_ANGLE_window_fixed_size
Right now the GLX backend checks for resize on every SwapBuffers
call. If EGL_ANGLE_window_fixed_size is used, it will only resize
when signaled by Chrome.
Bug: chromium:1132827
Change-Id: Ia4ddbbbf6dcf13f46ad564208eccc517de8be33c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2572886
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
aafcb504
|
2020-12-08T09:32:10
|
|
Vulkan: Add ensureSubmission to queueSubmitOneOff
Some callers of queueSubmitOneOff require that the command being queued
to have been sent to the GPU. The new ensureSubmission parameter
indicates that behavior and when running with threaded worker will wait
for the worker queue to empty before returning.
Bug: b/170312581
Change-Id: Ib620fb37f4b9b4431451ccbd10807c0dff1842af
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2579041
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
b1f094eb
|
2020-12-04T17:30:34
|
|
Log to stderr for warnings and more severe messages.
This helps the WinCairo port of WebKit use ANGLE; warning messages
sent to stdout are causing layout test failures.
Bug: angleproject:5432
Change-Id: Idc6d3061a2dbf13d5f118285aa9b8438542966aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2576038
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
158089fd
|
2020-12-07T16:58:26
|
|
Fix location validation for I/O blocks
I/O blocks can specify location for each member of the block separately,
in arbitrary fashion. This change fixes up the code that validates
varying locations to take this into account.
Bug: angleproject:3580
Change-Id: If883347fc5db9f18722e41938d1b61fa64650d0c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2578047
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
56f4a501
|
2020-12-07T14:41:32
|
|
Vulkan: Add debugging code for SPIRV transformer.
Requires a custom define for output.
Bug: angleproject:3572
Change-Id: I3721c4067c61f3e22ce7c047054b74d3fe468d8f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2578058
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
bcdd4e58
|
2020-11-03T13:33:44
|
|
Vulkan: Fix validation errors with YUV
Had several validation errors with YUV ImageTests using Vulkan back-end.
This corrects those issues and tests now pass.
Initializing YUV AHardwareBuffers requires Android API 29. The CI bots
are not yet to Android 29 so this must be tested locally by compiling
with the appropriate api level in args.gn:
android32_ndk_api_level = 29
android64_ndk_api_level = 29
Test:
ImageTestES3.SourceYUVAHBTargetExternalRGBSampleInitData
Note: Some tests can run at api 26:
ImageTestES3.ClearYUVAHB
ImageTestES3.YUVValidation
Bug: angleproject:4852
Bug: b/172649538
Bug: b/175021871
Change-Id: I383d24faa9911f77a71bd9b764232ad519b54e9a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2530454
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
73d4d9fa
|
2020-12-07T23:53:55
|
|
Refactor varying location count and validation
In preparation for support for mid-block location qualifiers.
Bug: angleproject:3580
Change-Id: Ia63f20c8dc26e8f0e90371c4f00913585a22267a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2577983
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4f315dcc
|
2020-12-08T00:52:06
|
|
Suppress flaky multithreading swiftshader test
Bug: angleproject:5439
Change-Id: I218a4459897a9d543269effeea4caf05174e1589
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2577984
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e59d8716
|
2020-12-07T16:41:35
|
|
GL: Expose OES_shader_io_blocks
As extra validation that new tests are indeed correct.
Bug: angleproject:3580
Change-Id: I4792bd8e26f96ab6c988f2605f053ce5789a782f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2577818
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8b4990bb
|
2020-12-06T21:00:52
|
|
Capture/Replay: Fix capture of GL_EXT_debug_label
Add it to the list of debug functions we skip.
Test: Seven Deadly Sins MEC
Bug: b/174965026
Bug: angleproject:5337
Change-Id: Ifa2bd9cf12abda20df0c693c149be50d57ee6e62
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2576814
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
dea86294
|
2020-12-02T16:26:03
|
|
iOS build support
libGLESv2 builds with these changes on iOS, iOS Simulator, and
Mac Catalyst, using CGL or EAGL as appropriate. Tests will
require more work. Fixed several errors in the EAGL code which
hadn't been detected because the code wasn't built.
Bug: angleproject:4256
Bug: angleproject:5417
Change-Id: I29072d82607ef2500732c5cc00318fdab4a46b31
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2570211
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
|
|
3a8be140
|
2018-08-08T15:44:09
|
|
Enable some tests on Intel Windows Vulkan
The tests IndexBufferOffsetTest.UInt16Index and StateChangeTest.
VertexBufferUpdatedAfterDraw can pass 26.20.100.8141 now.
Bug: angleproject:2663
Bug: angleproject:2664
Change-Id: I0324767f5c538879d865cf12304da4625d49bd81
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1166598
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
463e0b19
|
2020-11-30T17:25:14
|
|
Tests: add WhatsApp trace
Test: angle_perftests --gtest_filter="*whatsapp*"
Bug: b/174256233
Change-Id: Ie6abb3beae8e184633005a325c5dce51f0afff40
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2574837
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Paul Thomson <paulthomson@google.com>
|
|
4accbe92
|
2020-12-04T12:27:01
|
|
Fix separable Geometry shaders.
Geometry shaders weren't being processed in some of the separable
shader logic. This CL fixes two cases: one in Program and one in
ProgramPipeline.
Bug: angleproject:5409
Change-Id: I19adc5c11a54814d28dd20574a5e038ca9dbd021
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2574827
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2c90a90a
|
2020-12-04T12:39:50
|
|
Geometry Shaders: Don't require 'flat' for integer varyings.
The 3.2 spec and the dEQP tests are quite clear in only requiring
the 'flat' on fragment shader inputs. This restriction remains on
older shader versions.
Bug: angleproject:5409
Change-Id: Icc4b113b404280c2867a3e0bf6f77256a4316bff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2574826
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a10d694e
|
2020-03-10T15:12:42
|
|
Remove StateChangeRenderTest suppression
The failed DepthRangeUpdates case can pass on 26.20.100.8141 now.
Bug: angleproject:2844
Change-Id: I1398ab6c4676c1a6bc8f9514b1559ac1e37ed086
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2096337
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
251ba5cb
|
2020-12-03T15:55:47
|
|
Vulkan: Fix transform feedback with in-render-pass clears
An in-render-pass clear now pauses transform feedback so it wouldn't
contribute to it. Since it's not possible to resume the transform
feedback in the same render pass (as it needs a memory barrier for its
counter buffer), the render pass is broken after the clear.
Bug: angleproject:5426
Change-Id: I1eaf8c153d076bd912a4a08c65960c12f00341ef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2573579
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d49e7e30
|
2020-12-05T00:29:21
|
|
Mark classes with final dtors as final
- -Wfinal-dtor-non-final-class warns on classes with final dtors but
not final classes.
- Error messages are better when the class is marked final.
- Fix existing issues in code base
Bug: chromium:999886
Test: no errors building
Change-Id: I62301f2f0b9108b08e0a749fbe261beb36b1996f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2575923
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7354c67b
|
2020-12-04T12:21:10
|
|
Vulkan: Support for geometry shader with max_vertices=0
This is simply done by specifying max_vertices=1.
Bug: angleproject:5411
Change-Id: I50318128cca0e96a8b7c7e5d01165b9ef46b4db8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2574823
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
c859c0ac
|
2020-11-24T17:21:38
|
|
Batch replace std::unordered_map with angle::HashMap in src/
There are a few places that will remain std::unordered_map due to build
or run-time errors, which will need to be evaluated more closely to
determine if they should remain std::unordered_map or if there is
another Abseil data structure that would be more efficient while still
working correctly.
Bug: angleproject:4873
Change-Id: Ib04253e3ad6398e63f4cc2bfe12c0f9e57cb112b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2558873
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
b22b1502
|
2020-12-03T16:25:14
|
|
Vulkan: Fix transform feedback spanning multiple render passes
When the render pass breaks while transform feedback is active, the
subsequent render passes didn't restart transform feedback because of a
missing dirty bit.
Bug: angleproject:5426
Change-Id: Icee79cbdabbceab96973cea124240ac7ced82d55
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2572878
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
b35a468a
|
2020-12-04T12:14:37
|
|
Vulkan: Support geometry/tessellation primitive topologies
Bug: angleproject:5406
Change-Id: Ifb7553e87164c204353e1ed94b8d64f5fb4b7206
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2574822
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f2a15485
|
2020-12-04T14:07:24
|
|
Suppress memory leaks detected by LSAN
In order to be able to land SwANGLE in Chromium, this cl adds
suppressions for memory leaks detected by LSAN. Some of these should
be fixed and some are intentional leaks of global variables.
This cl should allow the linux_chromium_asan_rel_ng bot to pass while
using SwANGLE and shouldn't break the win-libfuzzer-asan-rel bot.
Bug: chromium:972686
Bug: angleproject:5377
Change-Id: I7e2336aba43fcfeb95716d6c0aa05caf855134aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2575200
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
|
|
abee60f6
|
2020-11-30T17:22:59
|
|
Capture: Disable GL_CHROMIUM_bind_uniform_location
Some apps (possibly those that use Skia) use the extension
GL_CHROMIUM_bind_uniform_location, which is implemented by ANGLE. This
leads to traces that contain calls to functions from this extension,
such as: glBindUniformLocationCHROMIUM. Such traces do not replay on
native GLES drivers, as the extension is not available.
The fix is to disable the GL_CHROMIUM_bind_uniform_location extension
when capturing, so that apps do not use this extension.
Bug: b/174256233
Change-Id: I8c6de9dc958147bcad053cbf89d8727b40f45fbe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2574836
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f42409e6
|
2020-12-03T17:11:50
|
|
Program: Allow non-fragment program input variables.
Allows shaders that use GS/TS to have input varying variables.
Bug: angleproject:5409
Change-Id: Idfbb725a4eef9e55fdde51d804a891b05dd1daee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2572879
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
72b68950
|
2020-12-02T16:22:21
|
|
Ignore redundant Texture state changes
Dirtying the state unnecessarily was causing Vulkan backend to create
new framebuffer objects when it didn't need to.
Bug: b/174700581
Change-Id: I74e0ed51a2c6598ab3dca9a955c247ec97b6856f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2570201
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
173f1c94
|
2020-12-03T13:53:16
|
|
Translator: Collect gl_in as a varying.
This unifies the variable handling for IO blocks. Previously the
gl_in block we treated as an "in block" similar to an interface block.
Bug: angleproject:5423
Change-Id: Idf2db4c209055fa9ffca567dab39c89464eba156
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2571966
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
51a0e95d
|
2020-12-04T16:34:53
|
|
Revert "Suppress memory leaks detected by LSAN"
This reverts commit 2ded93db0a0d0767e6101dfaf738167ee406b2e6.
Reason for revert: Appears to be breaking the ANGLE roll
Original change's description:
> Suppress memory leaks detected by LSAN
>
> In order to be able to land SwANGLE in Chromium, this cl adds
> suppressions for memory leaks detected by LSAN. Some of these
> should be fixed and some are intentional leaks of global
> variables.
>
> This cl should allow the linux_chromium_asan_rel_ng bot to pass
> while using SwANGLE.
>
> Bug: chromium:972686
> Bug: angleproject:5377
> Change-Id: I50a30e74a7d7c799c9dfa4d307792a56cb9d2017
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2562748
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Alexis Hétu <sugoi@chromium.org>
TBR=sugoi@chromium.org,syoussefi@chromium.org,jmadill@chromium.org,sugoi@google.com
Change-Id: I2ab53f3ab89143ea639424f108c404f884c3aaf9
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:972686
Bug: angleproject:5377
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2574796
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
2ded93db
|
2020-11-27T11:15:55
|
|
Suppress memory leaks detected by LSAN
In order to be able to land SwANGLE in Chromium, this cl adds
suppressions for memory leaks detected by LSAN. Some of these
should be fixed and some are intentional leaks of global
variables.
This cl should allow the linux_chromium_asan_rel_ng bot to pass
while using SwANGLE.
Bug: chromium:972686
Bug: angleproject:5377
Change-Id: I50a30e74a7d7c799c9dfa4d307792a56cb9d2017
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2562748
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
|
|
1ad5791d
|
2020-12-03T22:05:51
|
|
Revert "Vulkan: Use specialization constant for halfRenderAreaWidth"
This reverts commit ff38106d62fca2e36ec2db1cd580b546fd53ae43.
Reason for revert: Suspect that this CL may be causing win-angle-rel-32 bot failures
Original change's description:
> Vulkan: Use specialization constant for halfRenderAreaWidth
>
> halfRenderArea is used by fragment shader to adjust gl_FragCoord for
> rotation and yflip compensation. This CL bakes halfRenderAreaWidth into
> shader via specialization constant, thus allow compiler to consolidate
> the calculation into one MAD instruction.
>
> Bug: b/173800146
> Change-Id: Id66301278e3389e2582369b695825e632bccecee
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2551541
> Commit-Queue: Charlie Lao <cclao@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Tim Van Patten <timvp@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: b/173800146
Change-Id: I7bc9966ebbe949f3999d7927afa629dd2e3a4187
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2572801
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
0d2de6f0
|
2020-12-03T04:29:02
|
|
Vulkan: Fix precision issue in blit math
Bug: chromium:1154759
Change-Id: If31ef7ebecdfa2a0cba91e917870ea0bdfd9b9db
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2570464
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8670d618
|
2020-12-02T14:18:27
|
|
Add support for GL_EXT_debug_label
Add support for labeling of GL objects for debug purposes.
Tests: DebugTest.ObjectLabelsEXT*
Bug: angleproject:5337
Change-Id: I792a27c69395ed62da70c3f619bef71776fba432
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2568711
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
968fccb2
|
2020-12-02T13:28:30
|
|
Vulkan: Use VK_EXT_device_memory_report extension
This CL can enable and use the VK_EXT_device_memory_report extension.
This is disabled by default. To enable, link with the required
extension, enable one or both of two features, AND build with the
following GN arg:
angle_enable_trace = true
The two added features are:
- logMemoryReportStats provides per-swap statistics
- logMemoryReportCallbacks provides per-callback logging
If either or both of the features are enabled, if the
VK_EXT_device_memory_report extension is available, it is enabled.
Bug: b/173636655
Change-Id: Ic5cf6c06efdb34f2313ef143853b3cc90f55faa5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2543506
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
abe96578
|
2020-11-30T14:09:11
|
|
Vulkan: I/O blocks: Support unsized arrays
Geometry shader inputs have an extra array dimension, which can be
unsized as it can be derived from the primitive type. This change fixes
the grammar to support such arrays.
Additionally, it enables EXT_shader_io_blocks automatically with
EXT_geometry_shader and EXT_tessellation_shader per spec.
Bug: angleproject:3580
Change-Id: Ia7eb3e8be28c2eef2072dbe2a546fa34973104ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2568242
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ec0acf64
|
2020-11-25T09:58:31
|
|
Reland "Reinitialize GL_VENDOR string when GPU switches"
This is a reland of 0f083ab02635f48dfa3393df0d229287f466f480
Original change's description:
> Reinitialize GL_VENDOR string when GPU switches
>
> We already update the GL_RENDERER string. We should do the same for
> GL_VENDOR so this information is passed along correctly.
>
> Bug: chromium:1152212
> Change-Id: I639700bfebdc9e77ec3c6b41fcd6516e8c32139d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2560824
> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Bug: chromium:1152212
Change-Id: I044313366ce6ce7040e5c203a979b148dcb564dd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2569364
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
2c8bc1b7
|
2020-11-26T16:06:24
|
|
Vulkan: Clean up render pass query code
In preparation for support of primitives generated queries.
Bug: angleproject:5404
Change-Id: Ic123aaff33f8903994ff8fcc9158954ac023ec13
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2562126
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
dfdf90a7
|
2020-12-01T16:09:41
|
|
Create helper for identifying builtin names
Bug: angleproject:5405
Change-Id: I652f2d6d3af4468b9662cdea5d2706d36e118239
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2568550
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8797714c
|
2020-12-01T11:39:25
|
|
Vulkan: Support OES_shader_io_blocks
Enables OES/EXT_shader_io_blocks extensions in Vulkan backends.
With shader I/O blocks, the varyings can now be an array of struct (the
block itself) of struct (nested in the block).
This change is missing a number of features. In particular, if the
shader I/O block has a location decoration in the middle of the block,
that is not handled yet.
Based on changes from m.maiya@samsung.com and jmadill@chromium.org.
Bug: angleproject:3580
Tests: dEQP-GLES31.functional.shaders.linkage.es31.io_block.*
dEQP-GLES31.functional.separate_shader.validation.es31.io_blocks.*
dEQP-GLES31.functional.program_interface_query.program_input.*
dEQP-GLES31.functional.program_interface_query.program_output.*
Change-Id: I593840475d2365ff6c9ce7b2290f5ee462a30dfb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2567645
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5b9fac78
|
2020-12-02T17:54:09
|
|
Revert "Reinitialize GL_VENDOR string when GPU switches"
This reverts commit 0f083ab02635f48dfa3393df0d229287f466f480.
Reason for revert: Seems to be blocking the ANGLE auto-roller (see: http://anglebug.com/5422)
Original change's description:
> Reinitialize GL_VENDOR string when GPU switches
>
> We already update the GL_RENDERER string. We should do the same for
> GL_VENDOR so this information is passed along correctly.
>
> Bug: chromium:1152212
> Change-Id: I639700bfebdc9e77ec3c6b41fcd6516e8c32139d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2560824
> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
TBR=geofflang@chromium.org,syoussefi@chromium.org,jonahr@google.com
Change-Id: I01bbb08946d16cf821f4fb1bfd8b1cade1ab70f1
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1152212
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2567460
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
9daef386
|
2020-11-26T16:20:22
|
|
Add a doc for translating uniform block to StructuredBuffer
This document shows when and how shader code would hit the
optimization that translates the uniform block into
StructuredBuffer to resolve the slow fxc compiling performace
with dynamic uniform indexing.
Bug: angleproject:3682
Change-Id: I89d94a7e9d812318b9a6cbc470d39ed5ce3e47a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2561426
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
06c39376
|
2020-11-27T12:45:33
|
|
Vulkan: Minimize gl_PerVertex members
As ANGLE doesn't redeclare gl_PerVertex, glslang always defines it with:
gl_Position
gl_PointSize
gl_ClipDistance
gl_CullDistance
The unused members here contribute to varying component limits. The
last two are unlikely to be used, and the second member is rarely used
as well.
This change keeps it simple and strips the trailing inactive members,
which for all intents and purposes accurately minimizes this struct.
Bug: angleproject:5405
Change-Id: I59c22af4988a3da7b1e428913d0ea13be9031cea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2562754
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0f083ab0
|
2020-11-25T09:58:31
|
|
Reinitialize GL_VENDOR string when GPU switches
We already update the GL_RENDERER string. We should do the same for
GL_VENDOR so this information is passed along correctly.
Bug: chromium:1152212
Change-Id: I639700bfebdc9e77ec3c6b41fcd6516e8c32139d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2560824
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
720b85e6
|
2020-12-01T20:45:29
|
|
Reland "Vulkan: Use specialization constant for halfRenderAreaWidth"
This reverts commit b1917fe1a314709cd9f7f53b2923d6be0e8bbf6c.
Reason for revert: Not the root cause. See bug.
Original change's description:
> Revert "Vulkan: Use specialization constant for halfRenderAreaWidth"
>
> This reverts commit ff38106d62fca2e36ec2db1cd580b546fd53ae43.
>
> Reason for revert: Speculative revert to clear up AMD. See bug.
>
> Bug: chromium:1154356
>
> Original change's description:
> > Vulkan: Use specialization constant for halfRenderAreaWidth
> >
> > halfRenderArea is used by fragment shader to adjust gl_FragCoord for
> > rotation and yflip compensation. This CL bakes halfRenderAreaWidth into
> > shader via specialization constant, thus allow compiler to consolidate
> > the calculation into one MAD instruction.
> >
> > Bug: b/173800146
> > Change-Id: Id66301278e3389e2582369b695825e632bccecee
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2551541
> > Commit-Queue: Charlie Lao <cclao@google.com>
> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> > Reviewed-by: Tim Van Patten <timvp@google.com>
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
>
> TBR=timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
>
> Change-Id: Idab612bcad4f179857c41ffc4bf8fa2355fae946
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: b/173800146
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2568244
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
TBR=timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
# Not skipping CQ checks because this is a reland.
Bug: chromium:1154356
Bug: b/173800146
Change-Id: I5b86bbee8600c6597620f31d8d7b08ca8b3d2d57
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2568246
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4301429b
|
2020-12-01T16:49:14
|
|
Skip MultithreadingTestES3 tests on Linux Intel Vulkan
MultithreadingTestES3.MultithreadFenceDraw
MultithreadingTestES3.MultithreadFenceTexImage
Fail with Mesa 20.0.8
Bug: angleproject:5418
Change-Id: Ie4254fe4a9c3f8b95fde30181065ddb31190fb99
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2568551
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
e674625d
|
2020-11-20T13:05:49
|
|
Reland "Vulkan: Fix incorrect exposure of sRGB extensions"
This is a reland of abcabb474bf1c25eea48d7dca14bcafde737eba7
only we continue to suppress the validation error
Original change's description:
> Vulkan: Fix incorrect exposure of sRGB extensions
>
> When we check to see what formats we can reinterpret for sRGB
> extensions, we need to make sure we can match the image usage
> flags as well. If the original format supports framebuffer
> attachment usage, we need to make sure that the reinterpreted
> format can support it as well.
>
> Bug: angleproject:5309
> Change-Id: I7e84d01004504f854a3e22227e99b1740ed1a2b2
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2549156
> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Bug: angleproject:5309
Change-Id: I0efb6180b7be4e14d24b4bb339de01a2b9177e7e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2556571
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b1917fe1
|
2020-12-01T20:42:36
|
|
Revert "Vulkan: Use specialization constant for halfRenderAreaWidth"
This reverts commit ff38106d62fca2e36ec2db1cd580b546fd53ae43.
Reason for revert: Speculative revert to clear up AMD. See bug.
Bug: chromium:1154356
Original change's description:
> Vulkan: Use specialization constant for halfRenderAreaWidth
>
> halfRenderArea is used by fragment shader to adjust gl_FragCoord for
> rotation and yflip compensation. This CL bakes halfRenderAreaWidth into
> shader via specialization constant, thus allow compiler to consolidate
> the calculation into one MAD instruction.
>
> Bug: b/173800146
> Change-Id: Id66301278e3389e2582369b695825e632bccecee
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2551541
> Commit-Queue: Charlie Lao <cclao@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Tim Van Patten <timvp@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
Change-Id: Idab612bcad4f179857c41ffc4bf8fa2355fae946
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: b/173800146
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2568244
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
234fccfb
|
2020-12-01T10:59:16
|
|
Entry Points: Add egl:: namespace to Display.
This will prevent symbol collision with X11. This fixes the
build integration with Skia.
Bug: angleproject:2621
Bug: angleproject:5416
Change-Id: I6949a375cf9fcdd790b4c40ffb82c7c25bc15315
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2567644
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
9fe2d211
|
2020-12-01T13:24:33
|
|
Test Runner: Handle flaky failures.
When a test mark as flaky fails consistently we need to avoid marking
the test as flaky. We treat is as a deterministic failure. This means
we output "PASS" as the expected result instead of "PASS FAIL". That
change will produce the correct behaviour with the test scripts.
Also adds missing test runner output when we retry a flaky test.
Bug: chromium:1152515
Change-Id: I9e3cbaf04ea57a198717ee81505b5d63a9183410
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2568231
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e56fd224
|
2020-12-01T09:44:38
|
|
Vulkan: Fix BufferHelper leaks in DynamicBuffer.
We were leaking BufferHelper pointers in a couple cases. Fix these
systematically by using a unique_ptr template.
This leak was detected running ANGLE with LSAN enabled.
Bug: angleproject:5377
Change-Id: I30ab235105cf74fae2cfc62a22dde534e2d07e81
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2567641
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Alexis Hétu <sugoi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0be3f296
|
2020-11-30T17:27:39
|
|
Entry Points: Combine desktop GL minor versions.
This reduces the proliferation of small entry point files.
Bug: angleproject:2621
Change-Id: Ib882fd9e32e165279439d5d6cab7205eae0732ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2566592
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
ccd0b7e1
|
2020-11-30T08:37:04
|
|
Add support for OES_framebuffer_object extension
Expose OES_framebuffer_object extension for GLES1 contexts.
Bug: angleproject:5401
Test: FramebufferObjectTest*
Change-Id: I63b504f580cdab4655b4bfbd3438bcd807b422ea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2561795
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ff38106d
|
2020-11-19T16:47:25
|
|
Vulkan: Use specialization constant for halfRenderAreaWidth
halfRenderArea is used by fragment shader to adjust gl_FragCoord for
rotation and yflip compensation. This CL bakes halfRenderAreaWidth into
shader via specialization constant, thus allow compiler to consolidate
the calculation into one MAD instruction.
Bug: b/173800146
Change-Id: Id66301278e3389e2582369b695825e632bccecee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2551541
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3f564fc7
|
2020-11-23T13:59:17
|
|
EGL: Generate entry points.
This adds two final auto-generated files for the EGL and EXT extension
entry points. It adds a new data file that stores a mapping between
object types and entry points for associating labeled objects with
certain methods. When we generate errors we record the associated
object in the debug message output.
This places the remainder of the hand-written code in "stub" files.
Going forward the work for implementing new extension entry points
for EGL will be to update the registry XML files and then implement
the corresponding stub methods. Event logging, parameter packing,
and validation are all handled by the auto-generated code.
Bug: angleproject:2621
Change-Id: I28153432802c37b929ff2ea1e1a3e3ce9de91605
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2562680
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
db679caf
|
2020-11-25T21:08:46
|
|
Capture/Replay: track swapWithDamage
Frames were captured in Surface::swap, but not in
Surface::swapWithDamage. Adds the same callback in
Surface::swapWithDamage and Surface::swapWithFrameToken.
Bug: b/174256233
Change-Id: I3425fa2b9ae388f62f616dd2c9444797358ba148
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2560726
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1a8eec63
|
2020-11-26T16:33:59
|
|
Rename FromGL to PackParam.
This will allow us to use the same method with EGL without
complications.
Bug: angleproject:2621
Change-Id: I03dea2291adc13025723fe02eb47b76a74cef911
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2562679
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
9528641b
|
2020-11-23T15:47:09
|
|
EGL: Generalize the entry point enum.
This both generalizes the GL entry point enum to include other APIs
like EGL and inserts the EGL and WGL entry points into the enum.
This will faciliate EGL entry point auto-generation and also frame
capture for EGL entry points.
Bug: angleproject:2621
Change-Id: Iaf4310e03b3d55839dd1328362fb29dcef918fab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2555861
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
bccaaffd
|
2020-11-27T16:33:09
|
|
Vulkan: Use XFB queries with the XFB extension.
This will enable accurate XFB primitive counts when using tessellation
and geometry shaders. Adds new vk::QueryResult and gl::QueryTypeMap
helper classes.
Based on contributions by Mohan Maiya (m.maiya@samsung.com).
Bug: angleproject:3572
Change-Id: Ie3f496deda887c13bb4ad7ab430e31d615849bfd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2564002
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
|
|
01e8b675
|
2020-11-27T17:24:11
|
|
Fix ordering of stages in gl::ShaderType
When iterating over a bitset of stages, they are now processed in the
same order as the rendering pipeline.
Bug: angleproject:5405
Change-Id: If9e0f24be047b060f759e0e1db622a91e24e9646
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2564008
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
59aa1ef1
|
2020-11-27T15:08:26
|
|
Suppress TextureSampleShadingTest.Basic on Vulkan AMD
Fails on Windows and Linux.
Bug: angleproject:5412
Change-Id: I0a8a0d194c63a92ede0f10cd89eb3db703b93ea2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2562756
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
a5da17cd
|
2020-11-26T17:09:37
|
|
Vulkan: Remove vk:: inside namespace vk
Bug: angleproject:5404
Change-Id: I51df1ad69a65b17621a3cbe4e5d55621cc9ae6ec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2562683
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fcb6b5a5
|
2020-11-25T22:16:15
|
|
Vulkan: Fix precision transformation for geometry shaders
When a varying precision mismatch is present between two stages, the
SPIR-V transformer transforms the following:
in precision1 type1 inVar;
out precision2 type2 outVar;
void main()
{
f(inVar);
outVar = g();
}
to:
in precision3 type1 inVarModified;
out precision4 type2 outVarModified;
precision1 type1 inVarTurnedPrivate;
precision2 type2 outVarTurnedPrivate;
void main()
{
// Input preamble
inVarTurnedPrivate = inVarModified;
f(inVarTurnedPrivate);
outVarTurnedPrivate = g();
// Output preamble
outVarModified = outVarTurnedPrivate;
}
This doesn't work for geometry shaders as they take the varying outputs
on EmitVertex() as opposed to return from main. This change simply
places the output preamble before every EmitVertex() instead of at the
end of the shader, if it's a geometry shader.
Bug: angleproject:5403
Change-Id: Ie395a3270c6903c54b49f64a26bc5297044cbaeb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2561939
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ab9aae05
|
2020-11-26T12:00:11
|
|
Vulkan: Implement multisampled incomplete textures
Bug: angleproject:3588
Change-Id: I5b7d3151b34a77998b25dd4fa5761c92d74d8c81
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2562120
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2114fcf2
|
2020-11-23T13:38:09
|
|
More cleanups to run_code_generation.
Moves some include definition blocks into constants. Also fixes a
small case error in the capture headers.
Bug: angleproject:2621
Change-Id: I0e5eadcfd8e16969f3502339f58dbf13eb53f43c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2555860
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f60823d3
|
2020-11-25T17:03:50
|
|
Vulkan: Experimentally enable geometry shaders
Partial support for GS was added by jaedon1.lee@samsung.com already.
This change enables the extension and adds suppressions for GLES3.1 dEQP
tests. Suppressions for KHR GLES3.2 will be updated separately as
currently GS shaders in "version 320" fail validation.
Bug: angleproject:3571
Change-Id: Ic6ed65554937fd0cce2d0f6ea0ac2eb7e6ed9f10
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2561445
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4e913d34
|
2020-11-02T10:44:51
|
|
Vulkan: Work around Nvidia depth clamping bug
In GL ES, depth is always clamped to [0,1].
The same is true in Vulkan, but not for implementations affected by
Nvidia bug 3171019. This patch implements a workaround.
The workaround introduced test failures on Linux with Nvidia Quadro P400
and driver version 418.56, so it's only applied conditionally, and as a
result the test failure expectations are not removed completely.
Bug: angleproject:3970
Change-Id: I0d9f855d7f3df72fea4af9f9b134ae3177cf820d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2514377
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|