|
d32dae1b
|
2019-09-13T22:06:56
|
|
Revert "EGL: Implement EGL_KHR_no_config_context"
This reverts commit c4b1fbd69b12c0af30a58d0810f88d1301b8dabd.
Reason for revert: https://crbug.com/1003971
Original change's description:
> EGL: Implement EGL_KHR_no_config_context
>
> Add extension string and flag to all renderers that pass
> Modify eglCreateContext to accept EGL_NO_CONFIG
> Modify eglQueryContext per specification
> Modify eglMakeCurrent to bypass surface-context config compatibility checks
> Add check for client API
> Create new end2end test EGLNoConfigContextTest
> Disable on most renderers to prevent possible fail with future configs
>
> Bug: angleproject:3635
> Test: dEQP-EGL.functional.create_context.no_config*
> angle_end2end_tests --gtest_filter=EGLNoConfigContextTest*
> Change-Id: I7fbb137f1222ae7eebff4192013b7d3c5fcf0436
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1762709
> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
TBR=geofflang@chromium.org,timvp@google.com,jmadill@chromium.org,m.maiya@samsung.com,j.vigil@samsung.com
Change-Id: I849aa796803e3cda9b480a39be813ef9105325bb
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:3635
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1803789
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
|
|
6caa2652
|
2019-09-11T08:06:13
|
|
Vulkan: Support float textures and renderbuffers
Fixed support in the vulkan backend for legacy
GLES2.0 formats (luminance, alpha,
luminance_alpha)
Correctly exposed the following extensions:
OES_texture_float
OES_texture_half_float
OES_texture_float_linear
OES_texture_half_float_linear
EXT_color_buffer_float
EXT_color_buffer_half_float
Some of the above extensions have different
requirements depending on other extension support
and the context client version, and were
incorrectly assuming the most restrictive
requirements to be exposed.
Implemented end2end tests for:
OES_texture_float
OES_texture_half_float
OES_texture_float_linear
OES_texture_half_float_linear
EXT_color_buffer_float
EXT_color_buffer_half_float
Bug: angleproject:2898
Bug: angleproject:2726
Test: ./angle_end2end_tests --gtest_filter='Texture2DFloatTest*'
Change-Id: I7024aa1393eadafb5a0fb83c23e9035aae650b67
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1740276
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c4b1fbd6
|
2019-07-19T11:43:34
|
|
EGL: Implement EGL_KHR_no_config_context
Add extension string and flag to all renderers that pass
Modify eglCreateContext to accept EGL_NO_CONFIG
Modify eglQueryContext per specification
Modify eglMakeCurrent to bypass surface-context config compatibility checks
Add check for client API
Create new end2end test EGLNoConfigContextTest
Disable on most renderers to prevent possible fail with future configs
Bug: angleproject:3635
Test: dEQP-EGL.functional.create_context.no_config*
angle_end2end_tests --gtest_filter=EGLNoConfigContextTest*
Change-Id: I7fbb137f1222ae7eebff4192013b7d3c5fcf0436
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1762709
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b1580a27
|
2019-08-27T18:08:56
|
|
Vulkan: Set half float vertex format to valid in 2.0 context
- OES_vertex_half_float extension requires this patch
- Add end2end tests to verify OES_vertex_half_float extension
BUG=angleproject:3191
BUG=angleproject:3802
Test:
angle_end2end_tests --gtest_filter=*VertexAttributeTest.HalfFloatClientMemoryPointer*
3DMark Icestorm GT1
Change-Id: Ia597021a5ae6b4853ee1199989ec3f9cc23c7fac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1793354
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f421e0e3
|
2019-09-11T16:19:45
|
|
Make angle_deqp_gles*_tests use discrete GPU for test expectations.
Bug: chromium:1003030
TEST=bots
R=kbr@chromium.org
Change-Id: I1717f39f9573f0161fe19e63ce49ef4e618dc07f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1799323
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
790abf03
|
2019-08-28T13:57:52
|
|
Vulkan: Support program interface queries for inputs
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 inputs.
Bug: angleproject:3596
Test: dEQP-GLES31.functional.program_interface_query.*
Test: ProgramInterfaceTest.cpp
Change-Id: Ie904274f4efd87357256f559b69e148e8eda6119
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1775458
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
8ac49e18
|
2019-09-04T17:38:22
|
|
Fix dEQP renderbuffer unspecified attachment test.
The spec mandates default sizes of 0 for everything, while we
assume a non-initialized Renderbuffer is RGBA4.
Bug: angleproject:2321
Test: dEQP-GLES3.functional.state_query.fbo.framebuffer_unspecified_attachment_x_size_rbo
Change-Id: I7defbdda46fc90dc3672628667c710a8304473b7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1785881
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
d9456b25
|
2019-09-11T08:21:14
|
|
Vulkan: Enable further dEQP 3.1 tests
As TimVP pointed out, a previous change enabled some previously-skipped
texture gather 2d_array tests. Enabling them.
Bug: angleproject:3605
Bug: angleproject:3189
Change-Id: I3ad190131339a04441fdd05e23ff3b7ac724dc83
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1797655
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
79ad0411
|
2019-09-09T15:05:37
|
|
Vulkan:Pass through min/max program texel offset
The Vulkan min/maxTexelGatherOffset VkPhysicalDeviceLimits correspond to
OpenGL's GL_MIN/MAX_PROGRAM_TEXTURE_GATHER_OFFSET params. Pass them
directly through.
Bug: angleproject:3605
Change-Id: Ic6a22bbe30ee2b0baaeaa62b6e26dc844c2ad82d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1793357
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
58c5b07b
|
2019-09-06T12:45:55
|
|
Replace Issue 3221 with 2672 in deqp_gles3_test_expectations.txt
Issue 2672 is tracking the work required to support instanced rendering
with Vulkan backend when the extension VK_EXT_vertex_attribute_divisor
is not present on the device. That work is required to pass the tests
currently marked "FAIL" and GLES 3.0 conformance.
Bug: angleproject:2672
Test: None
Change-Id: I11e3a7a7a9482b4eb3d5f5c7dbf14caec7fff00e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1790362
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
c1af9abf
|
2019-08-28T14:35:32
|
|
Add support for overriding internal format for D3D11 texture EGLImages
Add an optional EGL_D3D11_TEXTURE_FORMAT_ANGLE attribute that is the
GL internal format to use for EGLImage being created. This will be used
for RGB emulation of swap chain texture backed WebGL contexts in Chrome
when they have alpha:false set. Without RGB emulation it is possible to
observe side-effects of the underlying swap chain being RGBA such as
reading/writing the alpha channel, BlitFramebuffer working/not working
when expected, etc.
Also document creating EGLImages from D3D11 textures in the existing
EGL_ANGLE_d3d_texture_client_buffer extension along with RGB emulation.
Bug: chromium:699566, chromium:939657
Change-Id: I4931cb7bdc46e9bc6debd56b79ecc10ea27bd78b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1777099
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
|
|
263e08b6
|
2019-09-09T12:15:53
|
|
Vulkan: Enable Previously Failing texstorage3d Tests for Pixel 2
The following tests were failing on Pixel 2, but appear to be passing
now. I'm not sure what fixed them, but there has been a lot of work with
3D textures recently.
Bug: angleproject:3816
Test: dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba16*
Test: dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb16*
Test: dEQP-GLES3.functional.texture.specification.texstorage3d.format.rg32*
Change-Id: I0ab7be4685fc0c6879ad83c7402798e2237649a4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1791276
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
f29125be
|
2019-08-27T10:31:24
|
|
Update the rules for unsized float renderability.
dEQP uses the following rules for unsized float format renderability in
ES2:
HALF_FLOAT_OES + RED : GL_EXT_texture_rg and GL_OES_texture_half_float
HALF_FLOAT_OES + RG : GL_EXT_texture_rg and GL_OES_texture_half_float
HALF_FLOAT_OES + RGB : GL_EXT_color_buffer_half_float and GL_OES_texture_half_float
HALF_FLOAT_OES + RGBA: GL_EXT_color_buffer_half_float and GL_OES_texture_half_float
FLOAT + RED : GL_EXT_texture_rg and GL_OES_texture_float
FLOAT + RG : GL_EXT_texture_rg and GL_OES_texture_float
FLOAT + RGB : never
FLOAT + RGBA: never
BUG=angleproject:3283
Change-Id: I4c4c0d290d2c7dec45419a0765fa27b79f0ad774
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1773304
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
32d6006b
|
2019-09-06T10:10:08
|
|
Don't block setting the DEPTH_STENCIL attachment based on the resource format.
By blocking the attachment at this point, it doesn't allow for the resource to
have a depth stencil format later.
BUG=997702
Change-Id: Iec5243012cb9a9527c5b1467d44c393b0dc6bddc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1780898
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
90a58622
|
2019-09-04T15:39:58
|
|
Refactor ShaderVariable to Remove Specializations
The following structs are being refactored and moved into the parent
struct ShaderVariable:
VariableWithLocation
Uniform
Attribute
OutputVariable
InterfaceBlockField
Varying
Bug: angleproject:3899
Test: CQ
Change-Id: I389eb3ab4ed44a360e09fca75ecc78d64a277f83
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1785877
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
1f2782e0
|
2019-08-29T14:19:23
|
|
Vulkan: fix unsized internalformat depth sampling
Many implementations provide OES_depth_texture behavior if the
texture was specified with a non-sized format (e.g. GL_DEPTH_COMPONENT).
This change implements that behavior for Vulkan and adds a couple of
tests to verify it.
Bug: angleproject:3890
Change-Id: I005b1eaa30db033f7d78a5cf2236aab7f442b7f5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1764301
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
050b124d
|
2019-06-30T03:26:18
|
|
Reland "Vulkan: Debug overlay"
This is a reland of e54d0f90d1a165404236fd7abd1b05ddd041a686
This was reverted due to a build failure as a result of a missing
virtual destructor in the widget base class.
Original change's description:
> Vulkan: Debug overlay
>
> A debug overlay system for the Vulkan backend designed with efficiency
> and runtime configurability in mind. Overlay widgets are of two
> fundamental types:
>
> - Text widgets: A single line of text with small, medium or large font.
> - Graph widgets: A bar graph of data.
>
> Built on these, various overlay widget types are defined that gather
> statistics. Five such types are defined with one widget per type as
> example:
>
> - Count: A widget that counts something. VulkanValidationMessageCount
> is an overlay widget of this type that shows the number of validation
> messages received from the validation layers.
> - Text: A generic text. VulkanLastValidationMessage is an overlay
> widget of this type that shows the last validation message.
> - PerSecond: A value that gets reset every second automatically. FPS is
> an overlay widget of this type that simply gets incremented on every
> swap().
> - RunningGraph: A graph of last N values. VulkanCommandGraphSize is an
> overlay of this type. On every vkQueueSubmit, the number of nodes in
> the command graph is accumulated. On every present(), the value is
> taken as the number of nodes for the whole duration of the frame.
> - RunningHistogram: A histogram of last N values. Input values are in
> the [0, 1] range and they are ranked to N buckets for histogram
> calculation. VulkanSecondaryCommandBufferPoolWaste is an overlay
> widget of this type. On vkQueueSubmit, the memory waste from command
> buffer pool allocations is recorded in the histogram.
>
> Overlay font is placed in libANGLE/overlay/ which gen_overlay_fonts.py
> processes to create an array of bits, which is processed at runtime to
> create the actual font image (an image with 3 layers).
>
> The overlay widget layout is defined in overlay_widgets.json which
> gen_overlay_widgets.py processes to generate an array of widgetss, each
> of its respective type, and sets their properties, such as color and
> bounding box. The json file allows widgets to align against other
> widgets as well as against the framebuffer edges.
>
> Two compute shaders are implemented to efficiently render the UI:
>
> - OverlayCull: This shader creates a bitset of Text and Graph widgets
> whose bounding boxes intersect a corresponding subgroup processed by
> OverlayDraw. This is done only when the enabled overlay widgets are
> changed (a feature that is not yet implemented) or the surface is
> resized.
> - OverlayDraw: Using the bitsets generated by OverlayCull, values that
> are uniform for each workgroup (set to be equal to hardware subgroup
> size), this shader loops over enabled widgets that can possibly
> intersect the pixel being processed and renders and blends in texts
> and graphs. This is done once per frame on present().
>
> Currently, to enable overlay widgets an environment variable is used.
> For example:
>
> $ export ANGLE_OVERLAY=FPS:VulkanSecondaryCommandBufferPoolWaste
> $ ./hello_triangle --use-angle=vulkan
>
> Possible future work:
>
> - On Android, add settings in developer options and enable widgets based
> on those.
> - Spawn a small server in ANGLE and write an application that sends
> enable/disable commands remotely.
> - Implement overlay for other backends.
>
> Bug: angleproject:3757
> Change-Id: If9c6974d1935c18f460ec569e79b41188bd7afcc
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1729440
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Bug: angleproject:3757
Change-Id: I47915d88b37b6f882c686c2de13fca309a10b572
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1780897
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
03f93cf0
|
2019-08-30T08:53:30
|
|
ANGLE test fixture leaking.
Adding code in ANGLETestEnvironment::TearDown() to release fixtures if exists.
Bug: angleproject:3875
Change-Id: I0d6ad9b8c72937b20a4c3033b86eb667b546e0c3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1778841
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
|
|
04d3de54
|
2019-09-02T13:35:23
|
|
Vulkan: Update dEQP-GLES2 Android test expectations.
dEQP-GLES2.functional.depth_stencil_clear.depth_scissored_masked
dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_center
dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_corner
dEQP-GLES2.functional.rasterization.primitives.line*
dEQP-GLES2.functional.texture.mipmap.cube.generate.*
dEQP-GLES2.functional.shaders.builtin_variable.pointcoord
dEQP-GLES2.functional.texture.mipmap.cube.projected.nearest_linear
Bug: angleproject:2463
Bug: angleproject:2609
Bug: angleproject:2727
Bug: angleproject:2830
Bug: angleproject:3307
Bug: angleproject:3241
Bug: angleproject:3253
Change-Id: I76a0ca0e6a87c5a81f9209960e94fbd39d9b2484
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1781618
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a3c7c2ff
|
2019-09-02T13:17:26
|
|
Vulkan: Lift failing Wintel test expectation.
MaxTextureSizeTest.SpecificationTexImage
Bug: angleproject:2690
Change-Id: I19aad34e7213fe34af434f368968a06adc31ab55
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1781617
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
91180c48
|
2019-09-02T14:33:11
|
|
Also skip ComputeShaderTest.UniformDirty/ES3_1_Vulkan on Win/NVIDIA
The test is failing since the suppression was lifted.
BUG=angleproject:3879
Change-Id: Ic2d45db7f7e2388c0c0040183c8760ee6a8fcb08
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1778863
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
fc58af47
|
2019-09-02T07:46:44
|
|
Revert "Vulkan: Debug overlay"
This reverts commit e54d0f90d1a165404236fd7abd1b05ddd041a686.
Reason for revert: causes compile failure on Linux CFI bot.
Sample build: https://ci.chromium.org/p/chromium/builders/ci/Linux%20CFI/14810
Sample log: https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8903575125463586160/+/steps/compile/0/stdout?format=raw
Original change's description:
> Vulkan: Debug overlay
>
> A debug overlay system for the Vulkan backend designed with efficiency
> and runtime configurability in mind. Overlay widgets are of two
> fundamental types:
>
> - Text widgets: A single line of text with small, medium or large font.
> - Graph widgets: A bar graph of data.
>
> Built on these, various overlay widget types are defined that gather
> statistics. Five such types are defined with one widget per type as
> example:
>
> - Count: A widget that counts something. VulkanValidationMessageCount
> is an overlay widget of this type that shows the number of validation
> messages received from the validation layers.
> - Text: A generic text. VulkanLastValidationMessage is an overlay
> widget of this type that shows the last validation message.
> - PerSecond: A value that gets reset every second automatically. FPS is
> an overlay widget of this type that simply gets incremented on every
> swap().
> - RunningGraph: A graph of last N values. VulkanCommandGraphSize is an
> overlay of this type. On every vkQueueSubmit, the number of nodes in
> the command graph is accumulated. On every present(), the value is
> taken as the number of nodes for the whole duration of the frame.
> - RunningHistogram: A histogram of last N values. Input values are in
> the [0, 1] range and they are ranked to N buckets for histogram
> calculation. VulkanSecondaryCommandBufferPoolWaste is an overlay
> widget of this type. On vkQueueSubmit, the memory waste from command
> buffer pool allocations is recorded in the histogram.
>
> Overlay font is placed in libANGLE/overlay/ which gen_overlay_fonts.py
> processes to create an array of bits, which is processed at runtime to
> create the actual font image (an image with 3 layers).
>
> The overlay widget layout is defined in overlay_widgets.json which
> gen_overlay_widgets.py processes to generate an array of widgetss, each
> of its respective type, and sets their properties, such as color and
> bounding box. The json file allows widgets to align against other
> widgets as well as against the framebuffer edges.
>
> Two compute shaders are implemented to efficiently render the UI:
>
> - OverlayCull: This shader creates a bitset of Text and Graph widgets
> whose bounding boxes intersect a corresponding subgroup processed by
> OverlayDraw. This is done only when the enabled overlay widgets are
> changed (a feature that is not yet implemented) or the surface is
> resized.
> - OverlayDraw: Using the bitsets generated by OverlayCull, values that
> are uniform for each workgroup (set to be equal to hardware subgroup
> size), this shader loops over enabled widgets that can possibly
> intersect the pixel being processed and renders and blends in texts
> and graphs. This is done once per frame on present().
>
> Currently, to enable overlay widgets an environment variable is used.
> For example:
>
> $ export ANGLE_OVERLAY=FPS:VulkanSecondaryCommandBufferPoolWaste
> $ ./hello_triangle --use-angle=vulkan
>
> Possible future work:
>
> - On Android, add settings in developer options and enable widgets based
> on those.
> - Spawn a small server in ANGLE and write an application that sends
> enable/disable commands remotely.
> - Implement overlay for other backends.
>
> Bug: angleproject:3757
> Change-Id: If9c6974d1935c18f460ec569e79b41188bd7afcc
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1729440
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=geofflang@chromium.org,syoussefi@chromium.org,jmadill@chromium.org
Bug: angleproject:3757
Change-Id: Ib08e2e7b1a9449ca097673acb11655df5d2bbf31
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1778862
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
791ad7b8
|
2019-08-26T15:38:20
|
|
Vulkan: Enable more GLES3.1 dEQP tests
Various features already implemented hadn't removed suppressions for
GLES 3.1.
Bug: angleproject:3205
Bug: angleproject:3208
Bug: angleproject:3561
Bug: angleproject:3604
Change-Id: I1cfc5d2150fae6b138fa21a37f8e95cb7d764770
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1771989
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
912e52d8
|
2019-08-23T00:25:09
|
|
Vulkan: Storage image support
Image bindings are placed after atomic counters in the "resources"
descriptor set.
There are two issues yet to be addressed:
- GL can create a 2D (array) view of a 3D image, but this is not allowed
in Vulkan. If this cannot be made possible, emulation needs to be
done.
https://github.com/KhronosGroup/Vulkan-Docs/issues/1033
- GL can create an image view of a texture with a different format and
have the data reinterpreted. This is not currently done.
Bug: angleproject:3563
Change-Id: I95c4d92c50bb033212a9a67f3f2d6f97c074c7bf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1767366
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e54d0f90
|
2019-06-30T03:26:18
|
|
Vulkan: Debug overlay
A debug overlay system for the Vulkan backend designed with efficiency
and runtime configurability in mind. Overlay widgets are of two
fundamental types:
- Text widgets: A single line of text with small, medium or large font.
- Graph widgets: A bar graph of data.
Built on these, various overlay widget types are defined that gather
statistics. Five such types are defined with one widget per type as
example:
- Count: A widget that counts something. VulkanValidationMessageCount
is an overlay widget of this type that shows the number of validation
messages received from the validation layers.
- Text: A generic text. VulkanLastValidationMessage is an overlay
widget of this type that shows the last validation message.
- PerSecond: A value that gets reset every second automatically. FPS is
an overlay widget of this type that simply gets incremented on every
swap().
- RunningGraph: A graph of last N values. VulkanCommandGraphSize is an
overlay of this type. On every vkQueueSubmit, the number of nodes in
the command graph is accumulated. On every present(), the value is
taken as the number of nodes for the whole duration of the frame.
- RunningHistogram: A histogram of last N values. Input values are in
the [0, 1] range and they are ranked to N buckets for histogram
calculation. VulkanSecondaryCommandBufferPoolWaste is an overlay
widget of this type. On vkQueueSubmit, the memory waste from command
buffer pool allocations is recorded in the histogram.
Overlay font is placed in libANGLE/overlay/ which gen_overlay_fonts.py
processes to create an array of bits, which is processed at runtime to
create the actual font image (an image with 3 layers).
The overlay widget layout is defined in overlay_widgets.json which
gen_overlay_widgets.py processes to generate an array of widgetss, each
of its respective type, and sets their properties, such as color and
bounding box. The json file allows widgets to align against other
widgets as well as against the framebuffer edges.
Two compute shaders are implemented to efficiently render the UI:
- OverlayCull: This shader creates a bitset of Text and Graph widgets
whose bounding boxes intersect a corresponding subgroup processed by
OverlayDraw. This is done only when the enabled overlay widgets are
changed (a feature that is not yet implemented) or the surface is
resized.
- OverlayDraw: Using the bitsets generated by OverlayCull, values that
are uniform for each workgroup (set to be equal to hardware subgroup
size), this shader loops over enabled widgets that can possibly
intersect the pixel being processed and renders and blends in texts
and graphs. This is done once per frame on present().
Currently, to enable overlay widgets an environment variable is used.
For example:
$ export ANGLE_OVERLAY=FPS:VulkanSecondaryCommandBufferPoolWaste
$ ./hello_triangle --use-angle=vulkan
Possible future work:
- On Android, add settings in developer options and enable widgets based
on those.
- Spawn a small server in ANGLE and write an application that sends
enable/disable commands remotely.
- Implement overlay for other backends.
Bug: angleproject:3757
Change-Id: If9c6974d1935c18f460ec569e79b41188bd7afcc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1729440
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f0dd087e
|
2019-08-23T15:45:34
|
|
Move timer functionality from util/ to common/
The main timer functionality (get absolute time) is moved to common/ for
use in ANGLE itself (in upcoming overlay change). util/Timer.h is no
longer an abstract class and uses this functionality to implement the
timer.
Bug: angleproject:3757
Change-Id: I3fe418778d80d1089c9bfe43a9e8098e43236f18
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769061
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
56ba54cc
|
2019-08-08T13:03:34
|
|
Support separate read and draw surfaces in eglMakeCurrent
Update ANGLE's default framebuffer implementation to support reading
and writing to different surfaces within the same framebuffer.
Bug: angleproject:2620
Test: EGLSurfaceTest[3]
Change-Id: I4b1ea04ca87a751f80cf190bf3adec148fc4fce3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1744746
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
120b61d3
|
2019-08-21T12:51:58
|
|
Use ShaderProgramID in place of GLuint handles
Bug: angleproject:3804
Change-Id: I5dc640004c2cc054c53261e8e939b6a9f5fc23bb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1762363
Commit-Queue: Jiacheng Lu <lujc@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
aae21ef6
|
2019-08-29T21:56:06
|
|
Revert "Reland "Vulkan: Use VK repos' internal BUILD.gn files""
This reverts commit 0ad1559f3ae95efecaa209f990987d3ce4ebd150.
Reason for revert: linux-rel no-op build issue showing up in Chromium integration. Tracking in chromium:997016
Original change's description:
> Reland "Vulkan: Use VK repos' internal BUILD.gn files"
>
> This is a reland of 552f5fcb0d8fcc615856ce3b678190e1cbdd38e6
>
> Original change's description:
> > Vulkan: Use VK repos' internal BUILD.gn files
> >
> > This retires custom BUILD.gn files for the Vulkan Headers, Tools,
> > Validation-Layers, and Loader repos. They now have integrated BUILD.gn
> > files so switched ANGLE to use those by default.
> > Also Validation Layer, Loader, and Tools repos no longer uses codegen
> > so this speeds up the build overall.
> > Switched over from old VK_LAYER_LUNARG_standard_validation meta-layer
> > to VK_LAYER_KHRONOS_validation unified layer.
> >
> > This changes includes a temporary workaround to the Vulkan-Loader repo
> > to remove its Window's build dependence on WDK. There are plans to
> > remove that depenedence in Loader master, but until then we can use
> > our custom branch workaround.
> > It also includes a custom branch for validation layers that includes
> > some build fixes for ANGLE.
> > Finally, the layers were crashing on Android when attempting to use
> > DebugUtils extension so forcing DebugReport on Android for now.
> >
> > Bug: angleproject:2449
> > Bug: angleproject:3320
> > Bug: angleproject:3852
> > Bug: chromium:997009
> > Bug: chromium:997016
> > Change-Id: I48b36acefcc7f2bc930eb72d6fdbc87bca24f833
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1610438
> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
> > Commit-Queue: Tobin Ehlis <tobine@google.com>
>
> Bug: angleproject:2449, angleproject:3320, angleproject:3852
> Change-Id: I9597be99000083b135e19b6ee68d4ae222158e72
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769036
> Commit-Queue: Tobin Ehlis <tobine@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
TBR=tobine@google.com,syoussefi@chromium.org,jmadill@chromium.org
Change-Id: I88afdaff07e9f414f9de02f6d3651eaba9a5045f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2449, angleproject:3320, angleproject:3852
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1776920
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
0ad1559f
|
2019-07-18T15:10:49
|
|
Reland "Vulkan: Use VK repos' internal BUILD.gn files"
This is a reland of 552f5fcb0d8fcc615856ce3b678190e1cbdd38e6
Original change's description:
> Vulkan: Use VK repos' internal BUILD.gn files
>
> This retires custom BUILD.gn files for the Vulkan Headers, Tools,
> Validation-Layers, and Loader repos. They now have integrated BUILD.gn
> files so switched ANGLE to use those by default.
> Also Validation Layer, Loader, and Tools repos no longer uses codegen
> so this speeds up the build overall.
> Switched over from old VK_LAYER_LUNARG_standard_validation meta-layer
> to VK_LAYER_KHRONOS_validation unified layer.
>
> This changes includes a temporary workaround to the Vulkan-Loader repo
> to remove its Window's build dependence on WDK. There are plans to
> remove that depenedence in Loader master, but until then we can use
> our custom branch workaround.
> It also includes a custom branch for validation layers that includes
> some build fixes for ANGLE.
> Finally, the layers were crashing on Android when attempting to use
> DebugUtils extension so forcing DebugReport on Android for now.
>
> Bug: angleproject:2449
> Bug: angleproject:3320
> Bug: angleproject:3852
> Bug: chromium:997009
> Bug: chromium:997016
> Change-Id: I48b36acefcc7f2bc930eb72d6fdbc87bca24f833
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1610438
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Tobin Ehlis <tobine@google.com>
Bug: angleproject:2449, angleproject:3320, angleproject:3852
Change-Id: I9597be99000083b135e19b6ee68d4ae222158e72
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769036
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5d27a696
|
2019-08-13T11:29:07
|
|
Support separable shader programs
The spec states:
Shader stages including vertex shaders, fragment shaders, and compute
shaders...A single program object can contain all of these shaders, or
any subset thereof.
This change allows shader programs without a fragment shader. The
biggest driver of this change is dEQP since a large number of tests
create shader programs without a fragment shader.
Bug: angleproject:3803
Test: dEQP-GLES31.functional.program_interface_query
Change-Id: Id6cb098c62a1489a14b9ec1b31bd4cd59f655e49
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1752010
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
83785d06
|
2019-08-28T10:56:24
|
|
Supress dEQP ETC texture tests on Mac.
These tests generate native GL errors because ETC formats are not supported.
The test does not verify the data so it previously passed.
BUG=angleproject:3853
Change-Id: I21ed60f46031fe9fdc3a38c6a9a1e9197c56a5eb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1774471
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
780bdace
|
2019-08-28T09:56:19
|
|
Suppress error messages in ANGLE end2end tests on Nexus6P.
GL errors are generated during initialization on this device. Suppress
them until enough logging is in place to debug.
BUG=998503
BUG=angleproject:3020
Change-Id: I74a51a661a930ea89b0234dcb3e6213288e75c86
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1774468
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
566c2e3c
|
2019-08-28T18:37:58
|
|
Suppress correct failure on Android FYI Release (NVIDIA Shield TV)
TBR=geofflang@chromium.org
BUG=chromium:998505
Change-Id: I8e49ee063c2e06f5031a288c5fe32fd7683fcd7d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1774723
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
f8e8fcf8
|
2019-08-26T15:28:32
|
|
Suppress crashing perftests on Win Intel Exp Rel
Also moves ANGLE_SKIP_TEST_IF to a header shared between end2end and
perf tests.
BUG=chromium:997674
Change-Id: I7c5968e6d861c4bff703ddc6ae0e4e021e47061f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1768374
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7f00d338
|
2019-08-28T15:19:16
|
|
Suppress end2end tests failures on Android FYI Release (NVIDIA Shield TV)
These were fixed on desktop drivers but not this Android driver.
TBR=geofflang@chromium.org
BUG=chromium:998505
Change-Id: Ie5f434c52753beff4d8f119713ef55f229ee7b95
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1773253
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
14a9be44
|
2019-08-26T10:40:45
|
|
Vulkan: Enable the official GLES1 conformance tests
Needed to suppress 3 tests for Vulkan.
Bug: angleproject:3408
Bug: angleproject:3862
Bug: angleproject:3863
Bug: angleproject:3864
Bug: angleproject:3867
Change-Id: I87379125f7f794f5c8ed8eccff7e24bd0d9fab94
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1771938
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2a19c59f
|
2019-08-23T14:10:24
|
|
GL: Check for errors around GL calls.
Add a macro to check for GL errors after each GL call to catch errors as they
happen even if the debug callbacks are unavailable. GL errors are only checked
when asserts are enabled unless explicitly requested with the
ANGLE_GL_TRY_ALWAYS_CHECK macro to verify GL calls that may allocate memory.
Updated TextureGL to use the macro.
BUG=angleproject:3020
Change-Id: I7678b204899e940824b010ab4be7e7f159bee6de
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1764476
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
76a93c33
|
2019-08-21T13:21:52
|
|
Remove skipping of several tests on NVIDIA since they are now passing
Remove skipping of several tests on NVIDIA since they are now passing.
- MissingReturnStructOfArrays
- DrawWithLevelsOutsideRangeWithInconsistentDimensions
- TextureFormatChangesWithBaseLevel
- TextureLuminance16Implicit
BUG=angleproject:3849
BUG=angleproject:1305
BUG=angleproject:596
Change-Id: Ie3c3ba6634a251a7320a61c6c4cc03cb178db925
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1763964
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
cd31f286
|
2019-06-25T14:22:41
|
|
Implement Draw base vertex and base instance functions
This patch implements functionality of glDrawArraysInstancedBaseInstanceANGLE,
glDrawElementsInstancedBaseVertexBaseInstanceANGLE,
glMultiDrawArraysInstancedBaseInstanceANGLE,
and glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE
Workaround for OpenGL driver on Mac:
gl_VertexID on Mac with AMD GPU doesn't include baseVertex value.
So replace gl_VertexID with (gl_VertexID + angle_BaseVertex) if any.
Workaround for Vulkan GLSL:
gl_InstanceIndex on Vulkan includes baseInstance. So replace
gl_InstanceIndex with (gl_InstanceIndex - angle_BaseInstance) when
angle_BaseInstance is declared.
Bug: chromium:891861, angleproject:3402
Change-Id: Ia1d94b5d4d7da7e635468c05c962c4f7eb1b1919
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1750126
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
52cc70fa
|
2019-08-26T13:58:53
|
|
Try to list files instead of directory in isolate for gl_cts data.
Bug: angleproject:3827
Change-Id: I65ed81886dce185bfc7542c321f43cc9bde6ef92
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1771979
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
27a8b32f
|
2019-08-23T10:06:03
|
|
Vulkan: Enable ES1_VULKAN testing in end2end tests.
Bug: angleproject:3408
Change-Id: I19b3c0f4795130638f43eabfe9c6f41ff85521fc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1771547
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
83a369bb
|
2019-08-14T10:39:34
|
|
Vulkan: Improve cubemap emulation seam handling
Changes seamful cubemap emulation to always compute the derivative,
emulating the bias parameter by scaling the provided derivatives.
This results in more accurate mipmap levels for seams within primitives.
There are some artifacts as a result of how derivatives are calculated,
but this matches the native driver.
Bug: angleproject:3243
Bug: angleproject:3732
Change-Id: Icb976e2a7e14cb4210645571edc037d4e607bd0d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1754383
Commit-Queue: James Dong <dongja@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2f4a7518
|
2019-08-16T14:09:13
|
|
Refactor perf tests to fix metric/story swapping
Refactors the perf tests to fix the issue of metric and story being
swapped, which causes issues when trying to convert to histograms.
Specifically, does the following:
1. Rolls the version of src/tests/perf_tests/third_party/perf/ to
Chromium 476dae823269c8d05b544271af97ad1adb0db8ee
2. Switch to using PerfResultReporter instead of PrintResult directly.
3. Split RenderTestParams::suffix into backend and story; backend is
used as part of the metric, while story is used as the story.
4. Remove the "average" metric that was being automatically reported
by ANGLEPerfTest, as reported results are automatically averaged.
5. Update the reported metric to more clearly distinguish between
test, backend, and metric. It is now name_backend.metric. e.g.
DrawCallPerf_vulkan.wall_time.
Bug: chromium:923564,chromium:924618
Change-Id: I00cc191407052f23df57dbfa53b6fb088fc26960
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1762360
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
563f9f81
|
2019-08-23T11:59:30
|
|
Suppress failure in MultisampleCompatibilityTest
Started failing on Win10 Intel Vulkan recently.
Bug: angleproject:3855
Change-Id: I817ac2ffc593a9aac922dae0f5a8fb482940aa62
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769077
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
d7d42540
|
2019-08-21T15:22:49
|
|
Don't build symbol table for GLSL built-ins if on Android
The GLSL + ESSL autogenerated symbol table is too large for
android, and android also doesn't need desktop GL functionality
If on android, compile the ESSL only symbol table
Bug: chromium:996286
Change-Id: I14dfc7748dae389e78c35f82a390c67962665356
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1757372
Commit-Queue: Clemen Deng <clemendeng@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
1d5aaa6c
|
2019-08-06T11:20:13
|
|
Vulkan: support dynamic indices in array of arrays
Expands existing struct-sampler rewrite to flatten arrays of arrays.
This allows us to support dynamically-uniform array indexing, which is
core in ES 3.2.
Samplers inside (possibly nested) structs are broken apart as before,
and then if the type resulting from merging the array sizes of the field
and its containing structs is an array of array, the array is flattened.
Also adds an offset parameter to functions taking in arrays to account
for this translation.
As a result of outer array sizes leaking into function signatures,
functions taking arrays of different sizes are duplicated according to
how the function is invoked.
Bug: angleproject:3604
Change-Id: Ic9373fd12a38f19bd811eac92e281055a63c1901
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1744177
Commit-Queue: James Dong <dongja@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5f45432f
|
2019-08-22T15:34:57
|
|
Add several angle bugs for end2end tests failing on NVIDIA
Add several angle bugs for end2end tests failing on NVIDIA.
- TwiceMaxVaryingVec2 failing on GLES
- MipLevels failing on Shield GLES
- GenerateMipmapCubeBaseLevel failing on GL
BUG=angleproject:3849
BUG=angleproject:3850
BUG=angleproject:3851
Change-Id: I6e5283f0d4c1c5da8259034dfda3beb94e041b21
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1768016
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
68c4fec0
|
2019-08-23T09:48:41
|
|
Add AtomicCounterIncrement test case
Add AtomicCounterIncrement test case.
BUG=angleproject:3246
Change-Id: I6e74f349b758c3ae9fcb44a14e70d36495406dfd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1768017
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3b46885e
|
2019-07-30T16:50:36
|
|
Vulkan: Implement EXT_texture_type_2_10_10_10_REV
- Expose GLES 3.0 feature of 2_10_10_10_REV texture type
on GLES 2.0 as EXT.
- Handle alpha channel value as 1.0 when used with RGB format.
- Add test for "RGB+UNSIGNED_INT_2_10_10_10_REV" case into TextureUploadFormatTest.
BUG=angleproject:3232.
Test:
dEQP-GLES2.capability.extensions.uncompressed_texture_formats.GL_EXT_texture_type_2_10_10_10_REV
dEQP-GLES2.functional.fbo.completeness.renderable.texture.*2_10_10_10_rev
dEQP-GLES3.functional.fbo.completeness.renderable.texture.*2_10_10_10_rev
KHR-GLES2.core.internalformat.*2_10_10_10_rev*
KHR-GLES3.core.internalformat.*2_10_10_10_rev*
Change-Id: Iac00517971f9242161115c7256117a69093fb5df
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1732618
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a9389dfe
|
2019-08-23T15:22:35
|
|
Revert "Remove skipping of groupMemoryBarrierAndBarrierTest on NVIDIA"
This reverts commit aac491fcdb31b7cea6d60db8787531b3acc87cd0.
Reason for revert: This test is still failing on the Win7 NVIDIA bots:
https://ci.chromium.org/p/chromium/builders/ci/Win7%20FYI%20Release%20%28NVIDIA%29/6206
https://ci.chromium.org/p/chromium/builders/ci/Win7%20FYI%20x64%20Release%20%28NVIDIA%29/6261
Original change's description:
> Remove skipping of groupMemoryBarrierAndBarrierTest on NVIDIA
>
> Remove skipping of groupMemoryBarrierAndBarrierTest on NVIDIA.
>
> BUG=angleproject:2280
>
> Change-Id: I9ea72939cd0f828295bb694c9d3515ef554c9a36
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1763948
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=kkinnunen@nvidia.com,jmadill@chromium.org,svaisanen@nvidia.com
Change-Id: Ib7802e66b68419f7aa3dabf3a308811d36c52ff2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2280
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769076
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
d6c7fec1
|
2019-08-12T16:46:57
|
|
Vulkan: Support mixed column/row-major buffer fields
Adds comprehensive tests for mixed column/row-major interface blocks,
which flush out various bugs in different OpenGL drivers too.
Bug: angleproject:3443
Change-Id: Ie88cca743373891bbb49d9f564f30407475e07fb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1749334
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5ec04880
|
2019-08-22T21:12:08
|
|
Reland "Make Mac SystemInfo reflect the currently active GPU on dual GPU machines"
This reverts commit 58940f67acd5b89f1c338b134a596864595fcdca.
Reason for revert: pixel test failures have been triaged in Gold. Relanding.
Original change's description:
> Revert "Make Mac SystemInfo reflect the currently active GPU on dual GPU machines"
>
> This reverts commit 720a8bab0eca86e5b9b8c07c200a217fb2c65755.
>
> Reason for revert: pixel test failures per http://crbug.com/984780#c13
>
> Original change's description:
> > Make Mac SystemInfo reflect the currently active GPU on dual GPU machines
> >
> > Currently, the GetSystemInfo() function (in gpu_info_util/SystemInfo_mac.mm)
> > on dual GPU Macs always updates the active GPU field of the SystemInfo
> > instance to the first non-Intel GPU it finds. This change overrides the
> > activeGPUIndex field of the SystemInfo instance to reflect the current GPU
> > instead of the non-intel GPU.
> >
> > Bug: 985486, 984780, angleproject:3701
> > Change-Id: Ia93f38f4a2f7728c05e99c83a940722bd3808766
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1752334
> > Commit-Queue: Kenneth Russell <kbr@chromium.org>
> > Reviewed-by: Zhenyao Mo <zmo@chromium.org>
> > Reviewed-by: Kenneth Russell <kbr@chromium.org>
>
> TBR=zmo@chromium.org,geofflang@chromium.org,kbr@chromium.org,dakshidnani@google.com
>
> Change-Id: Iacf4b8433ac1aa4d30c51f08ddfc6489af440cc4
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: 985486, 984780, angleproject:3701
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1757373
> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Bug: 985486, 984780, angleproject:3701
Change-Id: I8f2f26f68329a2826a92742c46471b8c092b36ed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1765963
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
56db3789
|
2019-08-01T17:09:53
|
|
Use flat arrays instead of switches for function lookups
Current implementation of built in function lookup uses
autogenerated switch statements. Instead, use the perfect
hash mapping to have the lookup use arrays instead. This
will improve runtime performance.
Bug: angleproject:3805
Change-Id: I6d0ba62d79abd53a7fe818fe675282800781f256
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1756883
Commit-Queue: Clemen Deng <clemendeng@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
05744c23
|
2019-08-21T16:21:30
|
|
Change gl_DrawID from level = ESSL1+ESSL3 to COMMON
Built in variable gl_DrawID is exposed to ESSL1 with
a suffix, when the variable is the exact same. No need
to do this.
Bug: angleproject:3805
Change-Id: I63c71791bb6a0e8aa7b644171a3f5a81099eddc0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1762359
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Clemen Deng <clemendeng@google.com>
|
|
aac491fc
|
2019-08-21T13:21:52
|
|
Remove skipping of groupMemoryBarrierAndBarrierTest on NVIDIA
Remove skipping of groupMemoryBarrierAndBarrierTest on NVIDIA.
BUG=angleproject:2280
Change-Id: I9ea72939cd0f828295bb694c9d3515ef554c9a36
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1763948
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
58940f67
|
2019-08-22T15:40:58
|
|
Revert "Make Mac SystemInfo reflect the currently active GPU on dual GPU machines"
This reverts commit 720a8bab0eca86e5b9b8c07c200a217fb2c65755.
Reason for revert: <INSERT REASONING HERE>
Original change's description:
> Make Mac SystemInfo reflect the currently active GPU on dual GPU machines
>
> Currently, the GetSystemInfo() function (in gpu_info_util/SystemInfo_mac.mm)
> on dual GPU Macs always updates the active GPU field of the SystemInfo
> instance to the first non-Intel GPU it finds. This change overrides the
> activeGPUIndex field of the SystemInfo instance to reflect the current GPU
> instead of the non-intel GPU.
>
> Bug: 985486, 984780, angleproject:3701
> Change-Id: Ia93f38f4a2f7728c05e99c83a940722bd3808766
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1752334
> Commit-Queue: Kenneth Russell <kbr@chromium.org>
> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
TBR=zmo@chromium.org,geofflang@chromium.org,kbr@chromium.org,dakshidnani@google.com
Change-Id: Iacf4b8433ac1aa4d30c51f08ddfc6489af440cc4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 985486, 984780, angleproject:3701
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1757373
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
720a8bab
|
2019-08-12T16:56:45
|
|
Make Mac SystemInfo reflect the currently active GPU on dual GPU machines
Currently, the GetSystemInfo() function (in gpu_info_util/SystemInfo_mac.mm)
on dual GPU Macs always updates the active GPU field of the SystemInfo
instance to the first non-Intel GPU it finds. This change overrides the
activeGPUIndex field of the SystemInfo instance to reflect the current GPU
instead of the non-intel GPU.
Bug: 985486, 984780, angleproject:3701
Change-Id: Ia93f38f4a2f7728c05e99c83a940722bd3808766
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1752334
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
6d653c02
|
2019-08-14T14:09:02
|
|
Vulkan: Set empty buffer to xfb descriptor set as an initial buffer
When we have xfb descriptor set without buffer bindings it causes
errors in Vulkan validation layer. So we set empty buffer by default.
BUG=angleproject:3681
Tests: dEQP-GLES3.functional.*transform_feedback*
dEQP-GLES3.functional.lifetime.attach.deleted_input.buffer_vertex_array
Change-Id: I4e7c9c9ee661f1fc92bf01fb78a2212c1a423eaa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1753387
Commit-Queue: Hyunchang Kim <hckim.kim@samsung.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
396527c9
|
2019-08-20T13:48:38
|
|
Autogenerated kFunction* variables detected as mutable constants
The android binary size is increased incorrectly because the autogen
kFunction* variables are detected as mutable constants. Rename them to
function* to workaround this.
Bug: angleproject:3823
Change-Id: Ia335d1ae97ce5276a0ff8b9e432b53181cc36680
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1762494
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
ddbc8e44
|
2019-08-17T15:59:08
|
|
Suppress nonportable include path warning.
Might be related to Goma and C files on Windows.
Bug: chromium:995046
Change-Id: If80168356a1e2a60abe8dfbf89aeed7298fd0a54
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1758998
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2f07e4fb
|
2019-08-02T10:41:56
|
|
Add test for array of arrays of samplers
This test fails on the Vulkan backend because Vulkan does not allow
arrays of arrays of samplers.
Also adds a few other tests relating to arrays of arrays.
Test: ./angle_end2end_tests --gtest_filter='GLSLTest_ES31.*'
Bug: angleproject:3604
Change-Id: I5c47119b6ba6d26fe30fdd9c6730caac6f222696
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1733476
Commit-Queue: James Dong <dongja@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
486f381f
|
2019-07-18T15:47:31
|
|
Add desktop GL built-in functions to symbol table
Added GL built-in functions to symbol table autogeneration
Built-in lookup now checks against spec and returns GL
symbols when appropriate.
Bug: angleproject:3719
Change-Id: I74786150f6063b40e13aebcb2eb9ea35e4ecaa53
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1731550
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Clemen Deng <clemendeng@google.com>
|
|
265fdf0c
|
2019-07-31T15:10:44
|
|
EGL: Set errors per spec for eglCreateContext
Per spec, in eglCreateContext when client version attributes are invalid - set
EGL_BAD_ATTRIBUTE. Set EGL_BAD_MATCH when config is not compatible.
Rename config variables in ValidateCompatibleConfigs to distinguish context
from surface configs. Context config handled differently when EGL_NO_CONFIG.
Bug: angleproject:3755
Test: angle_end2end_tests --gtest_filter=EGLCreateContextAttribsTest*
Change-Id: Iaea57653cf643ff60c8d4eabd3f022306bf1f4ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1747298
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
46be1a60
|
2019-08-16T10:39:23
|
|
Vulkan: Enable an fbo attachment query test in dEQP
These tests are now passing with vulkan backend. Remove
them from the expectations file
Bug: angleproject:3679
Test: dEQP-GLES3.functional.state_query.fbo.framebuffer_attachment_texture_layer
Change-Id: Ifb07b3743bf4ea0a7a98c33ae15cce46f6f2f75b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1758683
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
cc25d9fb
|
2019-08-15T15:13:02
|
|
Vulkan: Update copy_tex_image test failure bug ids
Splitting out two bugs from 3458. Most of failing tests are failing
because of Vulkan validation errors in the ANGLE glDrawArrays code.
In those csaes, the copy_tex_image test code actually passes, but the
ANGLE test-runner code is marking the tests as failing because of
Vulkan validation errors.
Bug: angleproject:3458
Bug: angleproject:3817
Bug: angleproject:3818
Change-Id: Idd91d9e44fa7eb6f527425dd77d6cbf949aa5e61
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1756816
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
cdecd97c
|
2019-06-25T14:22:41
|
|
Add Draw base vertex and base instance function entrypoints
Split from https://chromium-review.googlesource.com/c/angle/angle/+/1705035/27
This patch adds entrypoints glDrawArraysInstancedBaseInstanceANGLE,
glDrawElementsInstancedBaseVertexBaseInstanceANGLE,
glMultiDrawArraysInstancedBaseInstanceANGLE,
and glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE
Implementation will come in a later separate patch.
Bug: chromium:891861, angleproject:3402
Change-Id: I18e19b850cddd79be4798b9ae7efe0680a050c7f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1750125
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
29b2fc4a
|
2019-08-15T09:25:04
|
|
Vulkan: Expect more texture-specification tests to pass.
Recent changes allow these tests to pass.
Bug: angleproject:3190
Bug: angleproject:2905
Change-Id: I549b3d0cc7beced756c2b44e9a72d399b51aa8f0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1756284
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
1d742ce8
|
2019-08-13T10:33:36
|
|
Deleted unnecessary built-in conditions
A few built-in variables are checking against overly complicated
extension conditions, deleting these will make the array lookup
easier to implement.
Also changed functionality to always enable GL_OVR_multiview
when GL_OVR_multiview2 is enabled
Bug: angleproject:3805
Change-Id: I10fc7db0fa8b496fbba8b2c27a7311ac3c24dbe4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1752082
Commit-Queue: Clemen Deng <clemendeng@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
188b679b
|
2019-08-15T09:02:43
|
|
Remove GL/EGL function pointers from tests.
The auto-gen loader code should be able to handle all these cases.
Bug: angleproject:3393
Change-Id: If0a90fb29d79f2892fdf76fe0cb91ed0036ee1e3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1756083
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
9d737966
|
2019-08-14T12:25:12
|
|
Standardize copyright notices to project style
For all "ANGLE Project" copyrights, standardize to the format specified
by the style guide. Changes:
- "Copyright (c)" and "Copyright(c)" changed to just "Copyright".
- Removed the second half of date ranges ("Y1Y1-Y2Y2"->"Y1Y1").
- Fixed a small number of files that had no copyright date using the
initial commit year from the version control history.
- Fixed one instance of copyright being "The ANGLE Project" rather than
"The ANGLE Project Authors"
These changes are applied both to the copyright of source file, and
where applicable to copyright statements that are generated by
templates.
BUG=angleproject:3811
Change-Id: I973dd65e4ef9deeba232d5be74c768256a0eb2e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1754397
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
bc0a7b58
|
2019-08-05T09:26:23
|
|
Add support for sampling stencil texture
Suspect a potential driver issue with integer sampling from stencil so
skip dEQP-GLES31.functional.stencil_texturing.misc.compare_mode_effect
in the expectations file. Will follow-up with more directed tests.
Also skip dEQP-GLES31.functional.stencil_texturing.misc.base_level
Blocking Bug: angleproject:3148
Test:
dEQP-GLES31.functional.stencil_texturing*
Bug: angleproject:3575
Change-Id: I9547406b44ec16629631c1bf50907e6a24f1a20e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1736946
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
5a2553a7
|
2019-08-07T14:44:12
|
|
Vulkan: Emulate subgroup ops in seamful cubemap emulation
Where subgroup ops are not available, they are emulated as such:
Code with subgroup ops:
float lH = subgroupQuadSwapHorizontal(layer);
float lV = subgroupQuadSwapVertical(layer);
float lD = subgroupQuadSwapDiagonal(layer);
bool isHelperH = subgroupQuadSwapHorizontal(gl_HelperInvocation);
bool isHelperV = subgroupQuadSwapVertical(gl_HelperInvocation);
if (gl_HelperInvocation)
{
layer = !isHelperH ? lH : !isHelperV ? lV : lD;
}
Emulated code:
float nonHelperLayer = gl_HelperInvocation ? 0.0 : layer;
float lH = abs(dFdxFine(nonHelperLayer));
float lV = abs(dFdyFine(nonHelperLayer));
float lD = abs(dFdxFine(lV));
float isHelperDiffH = abs(dFdxFine(float(gl_HelperInvocation)));
bool isNonHelperH = isHelperDiffH > 0.5;
float isHelperDiffV = abs(dFdyFine(float(gl_HelperInvocation)));
bool isNonHelperV = isHelperDiffV > 0.5;
if (gl_HelperInvocation)
{
layer = isNonHelperH ? lH : isNonHelperV ? lV : lD;
}
Both paths are supported as on nvidia devices the emulated code
misbehaves. This change therefore effectively only enables seamful cube
map emulation on Android where subgroup operations are not supported.
Bug: angleproject:3243
Bug: angleproject:3732
Change-Id: I9664d9760756758748183eb121c626f176789f3a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1742222
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
20141940
|
2019-08-14T11:46:49
|
|
Vulkan: Enable copy_tex_image_conversions tests to run
A recent change(s) eliminated the crash that was occuring with the
KHR-GLES3.copy_tex_image_conversions.required.* and
KHR-GLES3.copy_tex_image_conversions.forbidden.* tests.
The still-failing tests are getting 2 types of Vulkan validation errors.
1) The "required" tests get errors about using the VK_FORMAT_R8G8B8A8_UNORM
descriptor-set format when an SINT/UINT component type is required.
2) The "forbidden" tests are getting errors about using more valid memory
objects than allowed.
Bug: angleproject:3458
Bug: angleproject:3800
Change-Id: I9536da6a2c888413ba0ab789a4dc9559d40fcf1b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1754391
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
01867144
|
2019-07-19T14:51:29
|
|
Vulkan: Add support for D32F_S8 depth_texture
Test: angle_deqp_khr_gles3_tests --deqp-egl-display-type=angle-vulkan --gtest_filter=dEQP.KHR_GLES3/packed_depth_stencil_verify_read_pixels_depth24_stencil8
angle_deqp_khr_gles3_tests --deqp-egl-display-type=angle-vulkan --gtest_filter=dEQP.KHR_GLES3/packed_depth_stencil_clear_buffer_depth32f_stencil8
Full passing results are blocked by suspected driver issues:
Bug: angleproject:3683
Bug: angleproject:3689
Bug: angleproject:3457
Change-Id: I7ce1a7824802ebca2c0479a3467fac26013829eb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1704791
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
a25c15c5
|
2019-08-08T19:47:47
|
|
Implement FramebufferTexture3D
Bug: angleproject:3188
Bug: angleproject:3797
Test: KHR-GLES2.texture_3d.framebuffer_texture.rgba8 (with patch from 3797)
Change-Id: Id44938504df00c3aba3fe733e7c71ad37ce1aab7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1745838
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4bb50faa
|
2019-08-14T11:23:57
|
|
Suppress flaky SwapInterval test
Bug: angleproject:3807
Change-Id: If44223e39a30a93358392b22b98beaa31ef220d7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1753587
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
99cffe5d
|
2019-08-01T17:10:50
|
|
Vulkan: Fix glCopyTexSubImage3D()
Update glCopyTexSubImage3D() to account for the requirements necessary
for VK_IMAGE_TYPE_3D.
Bug: angleproject:3765
Test: KHR-GLES2.texture_3d.copy_sub_image.rgba8
Test: angle_end2end_tests CopyTexImageTestES3
Change-Id: Ife3d768323d0cfe2a53e5ae4c47a0747d65981bc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1730637
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
7e48c9eb
|
2019-08-06T17:17:19
|
|
Add explicit integer casts
WebKit uses the -Wshorten-64-to-32 flag which warns on these cases.
Bug: 3439
Change-Id: I8c1de60da0f173ca2036e2120e79b857f5f2775f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1740866
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
b3eeb2a4
|
2019-08-05T17:02:43
|
|
Emulate RGB textures using BGRX IOSurfaces.
When the user requests an IOSurface Pbuffer with an RGB format, emulate the
missing alpha channel by clearing it to 1.0 and masking reads and writes in
shaders.
BUG=angleproject:3766
Change-Id: I58c992bf641d9ece0f923603f32640615150e4f3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1737437
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
2ab08edc
|
2019-08-12T16:20:21
|
|
Use TextureID in place of GLuint handles.
Bug: angleproject:3611
Change-Id: Ie6156e8732b3ca4dc6c4439c059a5481a4dfd250
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1738753
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1d0a778f
|
2019-08-12T09:15:15
|
|
Vulkan: Enable a few integer state query tests in dEQP
These tests are now passing with vulkan backend. Remove
them from the expectations file
Bug: angleproject:3680
Test: dEQP-GLES3.functional.state_query.integers.max_elements_indices_getfloat
dEQP-GLES3.functional.state_query.integers.max_elements_vertices_getfloat
dEQP-GLES3.functional.state_query.integers.max_program_texel_offset_get*
dEQP-GLES3.functional.state_query.integers.min_program_texel_offset_get*
Change-Id: I65b189929553750e22b15ea3b83b88f72a6c9795
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1748885
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3b3fe837
|
2019-08-06T17:44:12
|
|
Use BufferID in place of GLuint handles.
Introduces enable_if handling for "FromGL". Avoids the use of any macro
code to handle resource id casting.
Bug: angleproject:3611
Change-Id: I1a6d10c3c9cc6ba0dc072bad1d62c33551f05d87
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1736127
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
d48d38ce
|
2019-08-09T11:03:35
|
|
Vulkan: Restore DrawBuffersTestES3.3DTextures on Intel Linux
The test was failing due to ANGLE changes, not the target itself.
It is unclear why this was the only one showing Vulkan validation
errors, but it is passing now. I believe we were using recycled
rendertarget views.
Bug: anglebug:3784
Change-Id: I256165954c9933b211bcc04b94172e13fa5a3a70
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1745850
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
d53944cc
|
2019-08-09T12:09:32
|
|
Disable AtomicCounterBuffer tests on Vulkan
If a shard executes a Vulkan test first, it sets the window's pixel
format to something that the gl backend doesn't agree with. This causes
subsequent OpenGL tests to all fail, and eventually leads to a crash.
This disables AtomicCounterBuffer tests on Vulkan so that every shard
starts with some OpenGL test first (note that AtomicCounterBuffer is
alphabetically the first test suite).
Bug: angleproject:3738
Change-Id: Ifc32e7884e53ec2a10eb939cf23e5db7fa66f8b0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1745359
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
abce77a6
|
2019-08-07T15:22:03
|
|
Add tex2d half float tests to expectations file
GL_HALF_FLOAT and GL_HALF_FLOAT_OES have different
values and only the latter is valid in GLES 2.0.
However, angle_deqp_khr_gles2_tests expects these
two enums to be treated as interchangable. This
is a bug in deqp, so the affected tests should
be expected to fail until the bug is fixed.
Bug: angleproject:3451
Test: dEQP.KHR_GLES2/core_internalformat_texture2d_*_half_float_*
Change-Id: If3a8078e592b18c60c883dfebd246435761a4423
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1743051
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
90958e35
|
2019-08-07T16:26:14
|
|
Implement ValidateFramebufferTexture3DOES
Bug: angleproject:3188
Test: KHR-GLES2.texture_3d.framebuffer_texture.negative
Change-Id: I9a27c713bd7ea18b9f7d9943c6c180f92856c643
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1743079
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
eb0479e2
|
2019-07-24T14:15:56
|
|
Vulkan: Texture 3D and 2DArray layers as framebuffer attachments
Support glFramebufferTextureLayer by correctly handling layers
from 3D and 2DArray textures. Modeled after CubeMap layers support.
Bug: angleproject:3188
Bug: angleproject:3189
Change-Id: Ic73a6017134e9d2b49beed103487454397a97167
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1738436
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
c9ba782a
|
2019-08-05T16:14:22
|
|
Vulkan: Support atomic counter array of arrays
Previously, it was assumed that a function argument is either AC or
AC[i], and it was converted to AC or AC+i respectively. The code is
changed to support any number of dimensions and subscripts, using
array size information from AC's type. If AC is an array of array
(atomic_uint AC[N][M][R]), the following index calculations are done.
AC -> AC.arrayIndex
AC[i] -> AC.arrayIndex + i*M*R
AC[i][j] -> AC.arrayIndex + i*M*R + j*R
AC[i][j][k] -> AC.arrayIndex + i*M*R + j*R + k
A test is added to exercise these various forms of indexing:
AtomicCounterBufferTest31.AtomicCounterArrayOfArray
Bug: angleproject:3566
Change-Id: I1e181a7363463d1d0ee4916f35006ed7c58e0f7c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1739488
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
a1f0d234
|
2019-08-08T14:32:59
|
|
Suppress functional.fbo.*.repeated_clear.* dEQP tests on Win NVIDIA Vulkan
Fail on 431.02 driver version.
Bug: angleproject:3748
Change-Id: I1115f0432e772ca41aaa28e834cd7aaa4e3ba56f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1744340
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
54d51f32
|
2019-08-07T15:15:10
|
|
Vulkan: Fix crash with glBeginTransformFeedback
The TransformFeedbackVk::onBeginEnd() method wasn't calling updateQueueSerial(),
which was causing CommandGraphResource::hasChildlessWritingNode() to use an old
mCurrentWritingNode, which had already been freed (i.e. Visual Studio showed it
pointing to memory that is 0xdddddddd--which means that mCurrentWritingNode has
been freed, but is still being used).
Unfortunately, there are still other crashes affecting these tests, but they
are the same set (and yes, there are multiple, and they are random) that cause
most of the "KHR-GLES3.copy_tex_image_conversions.required.*" tests to crash).
Bug: angleproject:3674
Change-Id: I5cd44018ea0beb25cb218e562d5b863be6cbd450
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1742972
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
e7970c3e
|
2019-08-07T14:43:17
|
|
BasicMangledName class
Need a class for basic mangled names since
with the addition of GLSL types the number
of basic types is > 52 (a-z, A-Z), so we need
more than one character to represent a type
Bug: angleproject:3719
Change-Id: I98beee9d42a016cb0c017f56ab82538c89212e33
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1742221
Commit-Queue: Clemen Deng <clemendeng@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
4c833efb
|
2019-07-11T11:29:35
|
|
Vulkan: Enable sampler objects
This is the initial implementation to get GLES3.0 Sampler Objects
working on the Vulkan backend.
When samplers are dirty, a corresponding Vulkan sampler object will be
created with associated state and textures are flagged as dirty anytime
sampler bindings change.
Then when handling textures dirty, any bound sampler objects are pulled
from active texture units. When sampler objects are bound, their state
is used instead of the built-in texture's sampler state.
This change also adds a test that uses the same texture object with
different sampler objects to test a corner case that dEQP misses.
Bug: angleproject:3208
Change-Id: I643d9c9d5cb92fecc02dad815a07bcf349534c70
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1706897
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8400d05c
|
2019-08-07T14:52:54
|
|
Vulkan: Support the vertex_type_2_10_10_10_rev format
- Modify the python script and json file to generate the code which
adds the function for vertex_type_2_10_10_10_rev. These functions
handle the loading and conversion for vertex_type_2_10_10_10_rev.
- Modify ConvertVertex.comp and ConvertVertex.comp.json to perform
a GPU based conversion for vertex format of type 2_10_10_10_rev
- Modify BindingIsAligned function to check that both stride and
binding offset is aligned to the format size when the component
size is not aligned to 8 bits.
- Modify deqp3 expectations file to enable type_2_10_10_10_rev format
vertex array tests.
Bug: angleproject:3193
Test: dEQP-GLES3.functional.vertex_arrays.single_attribute.*2_10_10_10*
Change-Id: I2358d0d8888f7dfd7eac999dc150f643167de817
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1709035
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
7270a6d5
|
2019-08-06T16:01:42
|
|
Fix ShaderStorageBufferTest31.LoadAndStoreBooleanVarAndArray to be more correct
The test contained bugs which made it fail on multiple platforms.
After mapping SSBO, access the data with GLuint instead of GLboolean.
The elements in the SSBO are 4 machine units, even though the SSB
talks about bools.
A bvec2 declared after bool in the SSB has alignment requirements.
The test asserts that a shader written result is zero. In this case
it needs to initialize the result buffer to non-zero in order to
prove that the shader put the zero there.
Bug: angleproject:3749, angleproject:1951
Change-Id: Iad8301be7f9e9df6bbed6b390d9c415d4e437c1a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1738909
Commit-Queue: Kimmo Kinnunen FI <kkinnunen@nvidia.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
7424fe8b
|
2019-08-07T18:29:13
|
|
Skip BufferDataOverflowTest.VertexBufferIntegerOverflow
on Win NVIDIA D3D11. Due to flaky timeout.
Bug: angleproject:3786
Change-Id: I9881dcf4bcb2c958c7e5d26cba635d9cf3ff7f1a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1743050
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
93560ef5
|
2019-07-25T16:13:02
|
|
Vulkan: Seamful cube map emulation
In GLSL, a cube texture is sampled with one of textureCube* functions.
This function takes a 3D coordinate which is a vector from the center of
the cube and identifies a direction to sample from. GLES2.0 has the
following table that translates this 3D coordinate (Rx, Ry, Rz) to a
face and ST coordinates within that face. This table can be found in
Section 3.7.5 (Cube Map Texture Selection).
A compiler pass is implemented in ANGLE that replaces samplerCube
declarations with a sampler2DArray. The textureCube* functions are
replaced with the corresponding texture* functions with the translated
coordinates according to that table.
Gradients provided to textureCubeGrad are translated using the same
formulae, which is not precise but the spec specifies this projection to
be implementation dependent.
Helper invocations enabled through WQM (whole quad mode) cause a
nuisance in that the extrapolated varyings used as coordinates in a
textureCube call could have a different major axis (and therefore face)
from the non-helper invocations that lie within the geometry.
subgroupQuadSwap* operations are used in conjunction with
gl_HelperInvocation to make sure the helper threads calculate texture
UVs in the same face as the non-helper invocations.
Bug: angleproject:3300
Bug: angleproject:3240
Bug: angleproject:3243
Bug: angleproject:3732
Change-Id: I0cb6a9b1f2e1e6a392b5baca1c7118ed1c502ccf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1715977
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
483ee3fa
|
2019-08-07T14:53:37
|
|
Remove ShaderStorageBufferTest test skips for bug 2990, bug is marked fixed
Unskip ShaderStorageBufferTest tests that reference bug angleproject:2990,
the bug is marked fixed and the tests pass.
Bug: angleproject:2990
Change-Id: I378f648baa1caf44c5e5280c1580abaefcbe6cba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1742146
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b13c38c1
|
2019-08-06T09:50:49
|
|
Vulkan: Enable GL_UNPACK_SKIP_IMAGES in the Tex*Image* code
A boolean was hard-coded to false to disable the use of GL_UNPACK_SKIP_IMAGES
disabled in ImageHelper::stageSubresourceUpdate() (I assume because 3D textures
wasn't yet supported). The boolean is now set based on type type of the
texture.
Bug: angleproject:3781
Change-Id: I09d9fd142cceb3bebfa341fd0ff9179241c61a9c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1738433
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
44e690ca
|
2019-07-22T16:42:55
|
|
Vulkan: Support unaligned atomic counter buffer binding
GLES doesn't require any implementation-specified alignment requirement
for atomic counter buffers. They are emulated with Vulkan storage
buffers, which do have restrictions.
The storage buffers are bound at aligned offsets, and the remaining
offsets are passed to the shader as uniform values. This means that the
driver uniforms are now also bound to the compute pipeline.
Bug: angleproject:3566
Change-Id: I1a3429438f76d95e33cb5c6ef2c9370a10d900d6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1713095
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|