|
ee7ffd9e
|
2018-12-13T14:07:52
|
|
ES31: Enabling skipped deqp atomic counter tests on D3D11
Enabling deqp tests previously skipped due to lack of atomic counters. Fixing
bug found in translator found by new tests.
* Switching atomicCounterDecrement from pre to post decrement
* Added 4 byte alignment check to atomic_uint offset
* Added workaround for NVIDIA D3D bug
* Added globallycoherent to atomic counters
Bug: angleproject:1729
Change-Id: If62ea003826fbe2df0834b905ff3ad7b76328399
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1480867
Commit-Queue: Enrico Galli <enrico.galli@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
eae464dd
|
2019-03-22T15:15:04
|
|
D3D11: Fix reserved space with large dynamic buffers.
We would end up with a large reserved space even though the
allocation failed. Insead set the reserved space size after
the allocation succedes.
This was showing up as angle_end2end_tests failures on
Windows 7 due to display reuse and buffer allocation.
Bug: chromium:944454
Change-Id: Idb3bd530fe7b9cc2fce9a579787684e632b1a637
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1534684
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2660b503
|
2019-03-21T12:08:40
|
|
Vulkan: Restore CommandBuffer to namespace vk
Moved vk::CommandBuffer and vk::SecondaryCommandBuffer to vk::priv:: and
aliased vk::CommandBuffer to one or the other. This allows the rest of
the classes to continue seeing vk::CommandBuffer as they used to do.
Used a special alias for the primary command buffer that gets submitted
(vk::PrimaryCommandBuffer).
Bug: angleproject:3136
Change-Id: I61236fd182230991db7395d05e3da3be5e3f45be
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1534456
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a8ff8814
|
2019-03-05T07:06:32
|
|
Vulkan:Optimize SecondaryCommandBuffers
RELAND of this commit. Had to fix fuzzer build errors.
Optimize performance of SecondaryCommandBuffers and enable them as the
default build option.
To disable this set angle_enable_custom_vulkan_cmd_buffers=false in
your build args.
This CL enhances the PoolAllocator to have a "fast" mode that can
be enabled at class creation. This mode uses an alignment of 1 byte and
enables a fastAllocation() call that avoids some bookkeeping overhead.
The SecondaryCommandBuffer uses this fastAllocation() function.
Furthermore the fast path of fast allocate, using the current page,
is inlined for maximum speed.
Jamie Madill also updated the SecondaryCommandBuffers to pre-allocate
blocks so that the commands occur linearly in memory. This speeds up
processing with improved cache coherency and minimizes overhead when
recording commands.
Also the core Draw functions and their state updates are all inlined
as well as the common functions to initialize commands and to copy
command pointer data.
This change also includes some new, custom commands. One is
imageBarrier that is a specialized version of pipelineBarrier that only
performs a single image layout transition.
There are customized versions of various Draw commands to minimize
copying of parameters.
There are also specialized commands to bind[Graphics|Compute]Pipeline
that have the pipeline type built in to the command.
More custom commands and command data size optimizations will be made
in follow-on commits.
Bug: angleproject:3136
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1497418
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Change-Id: I621d8f8893308fca240b32390928e8ba0036cf06
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1535385
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
896e7811
|
2019-03-22T14:56:33
|
|
Revert "Vulkan:Optimize SecondaryCommandBuffers"
This reverts commit 2219b18c984ed69251f3db3c7b5fd69a2fa68c77.
Reason for revert: Failing to compile on ASAN builders:
https://ci.chromium.org/p/chromium/builders/try/linux-libfuzzer-asan-rel/134782
Currently blocking roll.
Original change's description:
> Vulkan:Optimize SecondaryCommandBuffers
>
> Optimize performance of SecondaryCommandBuffers and enable them as the
> default build option.
> To disable this set angle_enable_custom_vulkan_cmd_buffers=false in
> your build args.
>
> This CL enhances the PoolAllocator to have a "fast" mode that can
> be enabled at class creation. This mode uses an alignment of 1 byte and
> enables a fastAllocation() call that avoids some bookkeeping overhead.
> The SecondaryCommandBuffer uses this fastAllocation() function.
> Furthermore the fast path of fast allocate, using the current page,
> is inlined for maximum speed.
> Jamie Madill also updated the SecondaryCommandBuffers to pre-allocate
> blocks so that the commands occur linearly in memory. This speeds up
> processing with improved cache coherency and minimizes overhead when
> recording commands.
> Also the core Draw functions and their state updates are all inlined
> as well as the common functions to initialize commands and to copy
> command pointer data.
>
> This change also includes some new, custom commands. One is
> imageBarrier that is a specialized version of pipelineBarrier that only
> performs a single image layout transition.
> There are customized versions of various Draw commands to minimize
> copying of parameters.
> There are also specialized commands to bind[Graphics|Compute]Pipeline
> that have the pipeline type built in to the command.
> More custom commands and command data size optimizations will be made
> in follow-on commits.
>
> Bug: angleproject:3136
> Change-Id: I35453cc2656bc8c51f0d84d1adef106900aca9a5
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1497418
> Commit-Queue: Tobin Ehlis <tobine@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=tobine@google.com,syoussefi@chromium.org,jmadill@chromium.org
Change-Id: I1c0bfe864ff343eb8ea6c88556523f8715c981d5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:3136
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1535998
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9e586a0f
|
2019-03-21T14:24:11
|
|
Prevent vk shader generator from using anything but ANGLE's out.
If ANGLE is inside some other repo but hasn't been built yet, the shader
generator will continue to look for out dirs inside parent repos. Should
only look within the ANGLE repo.
Bug: angleproject:3227
Change-Id: I084414f99eb3db71fe2c7ee4e59206b59f077a5a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1534462
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
2219b18c
|
2019-03-05T07:06:32
|
|
Vulkan:Optimize SecondaryCommandBuffers
Optimize performance of SecondaryCommandBuffers and enable them as the
default build option.
To disable this set angle_enable_custom_vulkan_cmd_buffers=false in
your build args.
This CL enhances the PoolAllocator to have a "fast" mode that can
be enabled at class creation. This mode uses an alignment of 1 byte and
enables a fastAllocation() call that avoids some bookkeeping overhead.
The SecondaryCommandBuffer uses this fastAllocation() function.
Furthermore the fast path of fast allocate, using the current page,
is inlined for maximum speed.
Jamie Madill also updated the SecondaryCommandBuffers to pre-allocate
blocks so that the commands occur linearly in memory. This speeds up
processing with improved cache coherency and minimizes overhead when
recording commands.
Also the core Draw functions and their state updates are all inlined
as well as the common functions to initialize commands and to copy
command pointer data.
This change also includes some new, custom commands. One is
imageBarrier that is a specialized version of pipelineBarrier that only
performs a single image layout transition.
There are customized versions of various Draw commands to minimize
copying of parameters.
There are also specialized commands to bind[Graphics|Compute]Pipeline
that have the pipeline type built in to the command.
More custom commands and command data size optimizations will be made
in follow-on commits.
Bug: angleproject:3136
Change-Id: I35453cc2656bc8c51f0d84d1adef106900aca9a5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1497418
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4967de72
|
2019-03-20T10:35:11
|
|
Work around line loop streaming bug.
This forces a hard limit on the buffer size we allocate from D3D11. It
can work around a D3D11 driver bug on NVIDIA where we would get an
invalid map pointer. This seemed to happen when the buffer sizes were
close to MAX_UINT.
Bug: chromium:943087
Change-Id: I64aa9c55cbb82015101262c19c72741c140964a5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1531374
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
134425c7
|
2019-03-15T17:02:17
|
|
Vulkan:Integrate SecondaryCommandBuffers
Integrate the custom SecondaryCommandBuffer type into the CommandGraph
nodes by adding new ANGLE_USE_CUSTOM_VULKAN_CMD_BUFFERS define that can
be set in the BUILD gn args with angle_enable_custom_vulkan_cmd_buffers
set to "true."
Initially the custom cmd buffers are disabled by default.
This adds some support functions to SecondaryCommandBuffer to make the
integration easier by matching the wrapped cmd buffer interface:
initialize(), end(), valid().
Bug: angleproject:3136
Change-Id: Ib910554583192550757bb8ce89914e3ea8737988
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1526556
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3a0e5beb
|
2019-03-20T17:39:51
|
|
run_code_generation.py should fail more gracefully on find out dir.
The script checks a series of conditions, but only fails gracefully if
the first condition fails. If other conditions fails, it will not retry
or output an error message.
Bug: angleproject:3227
Change-Id: Ibb47c2bb1eac90f61f01d87a5051af182816bcad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1533063
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cf8735dc
|
2019-03-18T16:48:45
|
|
Vulkan: Add support for ETC1
The ETC2 format is backwards compatible with ETC1. ETC1 RGB8 is thus
supported by implicitly using the ETC2 RGB8 Vulkan format.
Bug: angleproject:2670
Change-Id: I59a112da5ed3a0b90f90a8b4c350c94d43b31120
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1520987
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
7d53c60b
|
2019-02-15T21:06:42
|
|
ParallelCompile: use the native extensions
This enhances to use the native parallel compile extensions if
available.
Bug: 873724
Change-Id: I0aaed314accd75e1bfa596b322225b56d729d3a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1475234
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f455f756
|
2019-03-20T20:49:44
|
|
Reuse angle_end2end_test windows and displays.
This both speeds up test execution and cuts down on the number of new
windows and displays created for a test config. This feature is only
currently enabled for Windows NVIDIA and Intel. On every other config
there were blocking issues that would need investigation. Several tests
were manually flagged as needed new displays on each iteration to
prevent test flakiness.
This feature might fix the issues with Intel test flakiness that have
been prominent on the ANGLE CQ.
WGL configurations have also been removed from ANGLE tests. So this
removes more of the code from ANGLETest.cpp.
Bug: angleproject:3261
Change-Id: Ic2864d4806ad38e0eeaa3c0afcd54ae1c548090f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1520995
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
a532570a
|
2019-03-20T10:18:36
|
|
Vulkan: Cleanups to shader generation script.
Fixes the suprious newlines messages. Also prefer a Release directory
when writing shaders for performance. Also adds glslang's git HEAD to
the list of generated hashes. This should ensure we regenerate all
shaders when there's a roll of glslang.
Glslang was rolled prior to this CL. Also update the SPRI-V libs.
Bug: angleproject:3227
Change-Id: I1fd212a08000c08ef41b60c4201edd3ac771f91d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1516512
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
198658a3
|
2019-03-19T22:09:14
|
|
Vulkan: Force a flush in ContextVk::onDestroy.
Otherwise we could potentially be destroying resources that are
currently in use.
Was caught by changing some of the test tear down ordering. Also might
affect some of the dEQP EGL multithread tests.
Requires fixing the serial tracking of the "null" buffer. Otherwise we
could be destroying the null buffer in the incorrect order.
Bug: angleproject:3261
Bug: angleproject:3059
Change-Id: I57d1059ce9b1da19ced8ac753fab80c625901066
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1531291
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a11db2ac
|
2019-03-19T20:20:26
|
|
Fix D3D9 context state sync.
Calling eglMakeCurrent between different D3D9 contexts could lead to
state sync bugs. This fixes the problem by ensuring all internal
state is dirtied between makeCurrent calls.
This bug turned up when refactoring the tests to run multiple Contexts
with the same EGLDisplay.
Bug: angleproject:3261
Change-Id: Ic91e1af8b2615e7e7e0d0faabeb533d075ea2e91
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1531534
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9b050f84
|
2019-03-01T13:31:14
|
|
Fix that 0 is a valid memory barrier
Bug: angleproject:2280
Change-Id: Iad82d5838a7efdb6f6287aafb9ab980e9e86468d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1496017
Reviewed-by: Jamie Madill (use @chromium please) <jmadill@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
507e8d30
|
2019-03-15T16:49:48
|
|
Add missing entries in texture load functions map
GetLoadFunctionsMap() is expected to cover all possible combinations of
texture internalformat and upload data format. Several of these
combinations were missing, especially w.r.t to compressed types. This
change adds the missing combinations that are hit on any of the
configurations being tested. An assert is added to catch missing
conversion functions in the future.
Bug: angleproject:2670
Change-Id: I793ac2c57f65eeb1cc8da8f1b223f6a9a44c7708
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1524462
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
eaf56133
|
2019-03-13T12:56:49
|
|
gl_VertexID is incorrect if offset argument to glDrawArrays is non-zero
On D3D the vertex ID is always indexed from 0, unlike GL. The D3D
backend had assumed the wrong behavior. This forwards the true offset to
D3D by using the ConstantsBuffer.
Bug: angleproject:3090
Change-Id: Ia19e3490503c97541af14979b75af0c94c67ab6b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1520988
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
38e28257
|
2019-03-13T16:11:15
|
|
Fix ASSERT macro not printing message
ANGLE's ASSERT macro was often not printing the error message before
crashing. The printing happens in the destructor of a temporary object,
but the temporary object is not guaranteed to be destroyed before ASSERT
calls __builtin_trap(). This change fixes it by introducing a new FATAL
log severity that moves the __builtin_trap() call into the destructor
after the message is printed.
Bug: 780507, angleproject:2215
Change-Id: Ica91e00d67cc95d7b59c3d59e6925ac3a93c19c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1521839
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3ce7f960
|
2019-03-14T16:09:05
|
|
Disable sampler/texture type validation
The sampler/texture type validation validation added in
https://chromium-review.googlesource.com/c/1377611 did not correctly
consider sampler objects. This is a minimal change to disable the
validation temporarily, which I intend to merge back to 74. A fix
for the validation is in progress at:
https://chromium-review.googlesource.com/c/angle/angle/+/1522364
Bug: 940080, 809237
Change-Id: If8a1ae46af7daf23cd92ccb8a985329dfd404dc9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1524475
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f0607639
|
2019-03-15T16:00:21
|
|
DisplayWGL: Allow MakeCurrent(null).
Previously we would ignore unsetting calls to MakeCurrent. But this
would prevent ANGLE from unsetting driver state on the current thread.
Fix this by checking for 0/null explicitly in DisplayWGL::makeCurrent.
This turned up when running test configs without recreating the
Display.
Bug: angleproject:3261
Change-Id: I7f747dc7649a06f019f1b89655cb71dd3b151aa0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1520992
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
96a387f8
|
2019-03-15T11:38:18
|
|
Disable loop unrolling when encounting errors about invalid array indices.
Zero-sized loops or loops that might never be executed may be unrolled into
constant array accesses that are invalid, generating HLSL compiler errors.
This issue showed up with the passthrough command decoder because it only does
a single compilation step of WebGL shader -> HLSL instead of the validating
decoder which does WebGL shader -> ESSL -> HLSL and eliminates these zero-
sized loops in the process.
BUG=angleproject:3269
Change-Id: Iaa14149c542f23a6da58c90cf6de51f4df7e27d6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1524696
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
de52ca37
|
2019-03-13T14:23:30
|
|
Vulkan: Fix GraphViz dump in presence of queries and fences
A previous refactor made queries no longer a graph resource. This in
turn meant that the query nodes no longer had an ID, which tripped up
the ID assignment when dumping the graph.
This affected fences as well.
Bug: angleproject:2853
Change-Id: I359f8145dca068edaa5fcd5bcb0a231ee050ab76
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1520990
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2fb6563b
|
2019-03-13T15:29:13
|
|
Vulkan: Fix CommandGraph barrier nodes w.r.t to first node
The barrier dependencies were set in two loops:
- From Previous to (Previous, Current]
- From (Previous, Current) to Current
The "Previous to Current" dependency was set in the first loop. This
loop is conditioned to a previous barrier existing at all.
The bug is that for the first barrier node, the first loop does not
execute and the second loop does not create the dependency from the
first node (Previous index being 0 when no previous barrier exists) to
the barrier node.
Bug: angleproject:2361
Change-Id: I61a78dbbeba6cf97788bf8ea32908c7865ad48c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1520994
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d84728e0
|
2019-02-01T16:28:55
|
|
Vulkan: Fix copySubImage to non-cube-complete images.
When copying to a non-cube-complete level of a texture we would fail
because we would try to get the base level's current format. Instead
we can get the format of the level that is being copied to.
Bug: angleproject:2911
Change-Id: Ib6a5c5cef67ad9c880c1b76ea71ed9317eb20c97
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1483951
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
979f3bbe
|
2019-03-14T10:23:29
|
|
Mark RGB HALF_FLOAT_OES as renderable with EXT_color_buffer_half_float and WebGL
The EXT_color_buffer_half_float spec states:
If OES_texture_half_float is supported, textures created with:
<internalformat> = RGBA
<format> = RGBA
<type> = HALF_FLOAT_OES
are renderable.
But WebGL content relies on being able to render to both RGB and RGBA unsized
HALF_FLOAT_OES textures.
Framebuffers may still return unsupported for this format.
BUG=941671
Change-Id: I42d909d26508b9cdf7cda6d1dc025b0e2ed87732
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1523530
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
8cc0a47c
|
2019-03-13T12:10:43
|
|
Change Config::Config to set correct default for EGL_COLOR_BUFFER_TYPE
The spec says that EGL_COLOR_BUFFER_TYPE "must be either
EGL_RGB_BUFFER for an RGB color buffer, or EGL_LUMINANCE_BUFFER for a
luminance color buffer." However, Config::Config() was setting it to
EGL_NONE, which causes EGLChooseConfigTest to fail on the Ozone
platform (which doesn't override the value). This sets the proper
value for all platforms (which can still override this default).
Bug: angleproject:3260
Change-Id: Iaf59bd76b11c8d80359c760c10baad3b79c79f9d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1521310
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
37b99642
|
2019-03-11T18:43:05
|
|
fix d3d ext float blend
Bug: chromium:930993, chromium:938602
Change-Id: Ie2e07369eca663b1507c7811a1a06ce5efc892ee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1516007
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4e87659e
|
2019-03-12T16:23:55
|
|
Fix eglChooseConfig for attributes that have exact default values.
The implementation of eglChooseConfig does not match the
specification for attributes not provided by the calling function. It
is supposed to use the default value and match semantics, per the
specification. This is fine for many attributes (where the value in
the EGLConfig doesn't matter). Currently, this affects the following
attributes:
- EGL_COLOR_BUFFER_TYPE
- EGL_LEVEL
- EGL_RENDERABLE_TYPE
- EGL_SURFACE_TYPE
- EGL_TRANSPARENT_TYPE
- EGL_OPTIMAL_SURFACE_ORIENTATION_ANGLE
- EGL_COLOR_COMPONENT_TYPE_EXT
This change causes 55 of 65 of the dEQP-EGL.functional.choose_config.* tests
to start passing.
Bug: angleproject:3172
Change-Id: I287af5ba7d296694d9a78ded5d1e3bc4e7043d03
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1506696
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
3c1f5a6b
|
2019-03-12T11:18:15
|
|
Include script outputs in run_code_generation.py.
This will prevent incorrect modifications to outputs from being checked
into the repository. Requires a few changes to some generators.
Bug: angleproject:3227
Change-Id: I5285cb78a9d85df155a5272edf8b6b8cd27fc04c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1515212
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0f34f3f2
|
2019-03-11T10:18:57
|
|
Use auto_script in run_code_generation.
Cleans up the generator scripts to prepare for listing outputs in the
generated hashes file. Also reorganizes the scripts somewhat to make
them a bit more maintainable.
Bug: angleproject:3227
Change-Id: If40946c2004941d3f6cd51d5521c7db8cc0b52df
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1512052
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
49c9dfe3
|
2018-12-29T16:48:20
|
|
Fix the SSBO sync bug in two dispatch calls
We should make sure that the raw buffer is the latest buffer before each
dispatch call since the dispatch itself can update the raw buffer content.
Bug: angleproject:3037
Change-Id: I75dddfd3e57b3c9cbcc58c02ed057c66cc8e1785
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1392379
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
b6a2f6bc
|
2019-03-06T17:27:47
|
|
Avoid unnecessary loading of D3D9.dll
D3D9.dll is being loaded by ANGLE when using D3D11. This change
removes the D3D9 dependency.
- Delayload D3D9.dll using ldflags in BUILD.gn
- Replace Renderer11 usage of DebugAnnotator9 with DebugAnnotator11.
Using debug annotations with Visual Studio PIX tools now requires Windows 10.
- Refactor DebugAnnotator11 to QI ID3DUserDefinedAnnotation from the
renderer's ID3D11DeviceContext instead of making a 'null' device.
Bug: angleproject:3234
Change-Id: I10a2b537e07cda2094b08abf02b7876bbe5009f8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1508643
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
14126505
|
2019-03-06T21:13:20
|
|
Revert "Use a constexpr array for es3 copy conversion table."
This reverts commit f30808db86e31b8b301eb9ec07cfe785d60b6a16.
Reason for revert: build/android/gyp/assert_static_initializers.py thinks this adds a static initializer.
See https://ci.chromium.org/p/chromium/builders/try/android-marshmallow-arm64-rel/208664
Need to revert since this is blocking the roll.
Original change's description:
> Use a constexpr array for es3 copy conversion table.
>
> With the relaxed C++14 constexpr rules allowed in Chromium, we can
> use a constexpr sorted array to store our table data. This can lead
> to very fast lookups while being more maintanable than using auto-
> generator scripts for every lookup table.
>
> Note that to be sure this syntax is permitted, we should land this
> through the bots and let it sit for a little while.
>
> Bug: angleproject:1389
> Change-Id: I9395c40276470108ce3e5786d8f1b8d85462c517
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/777544
> Commit-Queue: Jamie Madill <jmadill@google.com>
> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
TBR=ynovikov@chromium.org,jmadill@google.com,syoussefi@chromium.org,jmadill@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:1389
Change-Id: I482729b6f16975896b0e5c29999f9a081056e800
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1506238
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
105bc9d7
|
2019-03-06T16:32:40
|
|
Revert "Allow enabling trace annotations"
This reverts commit f094bac949922dabc3dd6944f3dec04111e953b6.
Reason for revert: Causes timeouts on Debug bots in the BufferDataTest.NULLData
Original change's description:
> Allow enabling trace annotations
>
> Tracing was never allowed to happen because getStatus always returned
> false. Also want to allow tracing for release builds for perf analysis.
>
> Bug: angleproject:3176
> Change-Id: I7aa94ed9fe3d7f67fe6dd10123c9badc7fb49d82
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1475248
> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
> Reviewed-by: Jamie Madill <jmadill@google.com>
TBR=ynovikov@chromium.org,geofflang@chromium.org,jmadill@google.com,courtneygo@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:3176
Change-Id: I91d28d15a092519551811a9a07c01987c9e028e7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1505799
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
20ae6814
|
2019-02-27T17:11:58
|
|
Vulkan: Decouple EGLSync from renderer serial
To support future work where RendererVk functionality is moved to
ContextVk. Given multiple contexts, EGLSync can no longer rely on a
single serial as it can be used in multiple contexts. Instead, the
fence corresponding to the submission in which the EGLSync object
signals is kept so it can be waited on.
Introduces a `vk::Shared` class that includes a ref-counted reference to
a Vulkan object (vk::Fence in this case). This is specially made to
`destroy()` object when reference count reaches zero.
Bug: angleproject:2464
Change-Id: I68c8229eea8df77974e28fcc2a9563dae5d204f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1493131
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill (use @chromium please) <jmadill@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
e397949e
|
2019-03-01T13:06:50
|
|
Vulkan: shave off 60 bytes from AttachmentOpsArray
Bug: angleproject:2361
Change-Id: I39eb34b3c415fa165fa7803b2bc09338833f6773
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1496039
Reviewed-by: Jamie Madill <jmadill@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f30808db
|
2019-03-05T10:55:39
|
|
Use a constexpr array for es3 copy conversion table.
With the relaxed C++14 constexpr rules allowed in Chromium, we can
use a constexpr sorted array to store our table data. This can lead
to very fast lookups while being more maintanable than using auto-
generator scripts for every lookup table.
Note that to be sure this syntax is permitted, we should land this
through the bots and let it sit for a little while.
Bug: angleproject:1389
Change-Id: I9395c40276470108ce3e5786d8f1b8d85462c517
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/777544
Commit-Queue: Jamie Madill <jmadill@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
f094bac9
|
2019-02-15T08:24:56
|
|
Allow enabling trace annotations
Tracing was never allowed to happen because getStatus always returned
false. Also want to allow tracing for release builds for perf analysis.
Bug: angleproject:3176
Change-Id: I7aa94ed9fe3d7f67fe6dd10123c9badc7fb49d82
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1475248
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@google.com>
|
|
b8cff9e9
|
2019-02-18T16:15:53
|
|
ES31: Add MAX_COMPUTE_SHARED_MEMORY_SIZE
Bug: angleproject:2682
Change-Id: If9100bee246dfb99fca3f0470742a337a126c9a5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1476951
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@google.com>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
e3981cf7
|
2019-02-27T11:05:15
|
|
Vulkan:Add SecondaryCommandBuffer class
SecondaryCommandBuffer is a CPU-side command buffer construct intended
to delay allocation/construction of GPU-side command buffers until
absolutely necessary.
Initially ANGLE was batching commands into Vulkan secondary command
buffers and then submitting those command buffers when rendering was
required. On at least some devices we saw two areas of overhead that
SecondaryCommandBuffers are intended to reduce:
1. Commands in secondary cmd buffers taking longer than equivalent
commands in a single primary cmd buffer.
2. Allocation/free/reset overhead of the secondary command buffers was
a hotspot for some workloads.
Bug: angleproject:3136
Change-Id: Ife8ffe2968eee423d89ff433d62596c432156661
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1492016
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@google.com>
|
|
e332e621
|
2019-02-14T12:53:04
|
|
D3D: Asynchronously load program binaries.
Unpack as much of the binary steam as possible before passing the final loading
of the shader programs off to a worker thread. Reporting as many possible link
errors before becoming asynchronous means that linking should only fail due to
unexpected system issues at that point.
This also allows other backends to asynchronously load program binaries.
BUG=angleproject:2857
Change-Id: I587917a3e54522114dabd41d1b14fc491c8fd18a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1473451
Commit-Queue: Jamie Madill <jmadill@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d838178d
|
2019-03-04T11:07:47
|
|
Vulkan: Rename vk::Shared* to vk::RefCounted*
To be specific regarding what being "shared" entails. Also, avoids
confusion w.r.t to an upcoming vk::Shared class.
Bug: angleproject:2464
Change-Id: Ib9c112bbb822ae30dab39c75a8cde25dd79b2258
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1499693
Reviewed-by: Jamie Madill <jmadill@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4d153383
|
2019-02-26T15:08:11
|
|
Reland "Vulkan: Implement debug markers"
This reverts commit 0c01e36783b20a0177c653490cb4f8ea4a896075.
Reason for revert: Its dependency that was reverted has now relanded:
https://chromium-review.googlesource.com/c/angle/angle/+/1489153
Original change's description:
> Revert "Vulkan: Implement debug markers"
>
> This reverts commit 983e446921946734fe47217c345a8fe2f079319d.
>
> Reason for revert: Depends on a CL that's reverted: https://chromium-review.googlesource.com/c/angle/angle/+/1470605
>
> Original change's description:
> > Vulkan: Implement debug markers
> >
> > Covers both GL_KHR_debug and GL_EXT_debug_marker.
> >
> > Debug markers are used to specify events or hierarchically categorize a
> > set of commands within the command buffer. When debugging, this allows
> > for quicker navigation to the draw calls of interest, and otherwise
> > provides context to debug output.
> >
> > Bug: angleproject:2853
> > Change-Id: Id65e11fc877d9e70b6fd0fae7f0bbbcb1164bf10
> > Reviewed-on: https://chromium-review.googlesource.com/c/1403956
> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
> > Reviewed-by: Geoff Lang <geofflang@chromium.org>
>
> TBR=geofflang@chromium.org,jmadill@chromium.org,syoussefi@chromium.org
>
> Change-Id: I7fcfc8683195d396aec61848719f52c0fa049ece
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: angleproject:2853
> Reviewed-on: https://chromium-review.googlesource.com/c/1470606
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
TBR=geofflang@chromium.org,jmadill@google.com,syoussefi@chromium.org
Bug: angleproject:2853
Change-Id: Ie19ae103244d54dcf7108d5f61c24e318fc44057
Reviewed-on: https://chromium-review.googlesource.com/c/1489154
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@google.com>
|
|
6f1a852f
|
2019-02-26T15:00:54
|
|
Reland "Roll Vulkan repos"
This reverts commit 3805122b0297b8208ff734a3bcdaa12850b60a00.
Reason for revert: The OOM issue that coincidentally happened at the time this CL landed, and for which this CL was reverted, turned out to be irrelevant to this change.
Original change's description:
> Revert "Roll Vulkan repos"
>
> This reverts commit 55ea947c3bdd6c0ef68fc4b9ddbda26889f62622.
>
> Reason for revert: Seems to be causing a memory corruption on Windows/Intel bots.
>
> Original change's description:
> > Roll Vulkan repos
> >
> > Bug: angleproject:3095
> > Change-Id: I6ae9d61304981223f9e2f1869ed32612aa38952c
> > Reviewed-on: https://chromium-review.googlesource.com/c/1405714
> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> > Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
>
> TBR=ynovikov@chromium.org,jmadill@chromium.org,syoussefi@chromium.org
>
> Change-Id: I61879770c9bb16ac2231b081bda08e6211ba6831
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: angleproject:3095
> Reviewed-on: https://chromium-review.googlesource.com/c/1470605
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
TBR=ynovikov@chromium.org,jmadill@google.com,syoussefi@chromium.org
Bug: angleproject:3095
Change-Id: Iabe8ea215b44c65c4c22b9b158c5dad3ffffdbb0
Reviewed-on: https://chromium-review.googlesource.com/c/1489153
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@google.com>
|
|
76bd848c
|
2019-02-13T13:00:44
|
|
Vulkan: Support ETC, S3TC and BPTC compressed textures
Fixes the format table so the correct Vulkan format for the types are
generated. Additionally, implements CHROMIUM_copy_compressed_texture as
well as other functions relevant to initializing compressed textures.
Bug: angleproject:2670, angleproject:2904
Change-Id: I682d36574262525027cddf8f329515f38cd77dc0
Reviewed-on: https://chromium-review.googlesource.com/c/1468048
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@google.com>
|
|
1581ff03
|
2019-02-28T20:59:26
|
|
Vulkan: disable VK_PRESENT_MODE_FIFO_KHR on Linux Intel
Causes random timeouts.
Bug: angleproject:2932, angleproject:3153
Change-Id: I69a200684afab9e00642850bfa8e8efd0da5ad1d
Reviewed-on: https://chromium-review.googlesource.com/c/1495229
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
5546fb4f
|
2019-01-17T12:25:54
|
|
Vulkan:Adding custom pool allocator
Migrated pool allocator used by compiler to common.
Planning to use this for ANGLE custom command buffers so this some
refactoring in preparation for that work.
Added a unit test to check PoolAllocator functionality.
Bug: angleproject:2951
Reviewed-on: https://chromium-review.googlesource.com/c/1476953
Reviewed-by: Jamie Madill <jmadill@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
Change-Id: I0b4f3d55ea1799e35c9799c221f7129233f30b24
Reviewed-on: https://chromium-review.googlesource.com/c/1492972
|
|
c87e0053
|
2019-02-21T11:40:28
|
|
add ext_float_blend feature and test
Bug: chromium:930993
Change-Id: I8edbd01c5c9f1ed63243cc4a42f6de44c92db8bd
Reviewed-on: https://chromium-review.googlesource.com/c/1481242
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Jamie Madill <jmadill@google.com>
|
|
dbbdf563
|
2019-02-27T19:48:16
|
|
Require VK_EXT_queue_family_foreign for EGL_ANDROID_image_native_buffer support
Even though VK_EXT_queue_family_foreign is required by
VK_ANDROID_external_memory_android_hardware_buffer,
Pixel 2 PQ2A.190205.002 supports the latter but not the former.
Also print the names of unsupported extensions to ease debugging in the future.
Bug: angleproject:3121, chromium:857138
Change-Id: Ib1195153cfb74f079a93ee9ce93b9b78e6f6e00a
Reviewed-on: https://chromium-review.googlesource.com/c/1493114
Reviewed-by: Jamie Madill <jmadill@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
4b314eef
|
2019-02-27T13:20:51
|
|
Win7: No warnings as errors in FragData test.
Applies to all Windows because we currently don't have a way to check
which version we're on. The fallback to the old compiler is generating
a warning. This test was being overly conservative. Also updates a few
message strings.
Bug: chromium:920704
Change-Id: If83677881e85d6a6f9ad98b33cd5f7d917bbec6b
Reviewed-on: https://chromium-review.googlesource.com/c/1492311
Commit-Queue: Jamie Madill <jmadill@google.com>
Reviewed-by: Jamie Madill <jmadill@google.com>
|
|
9dc8eafe
|
2019-02-11T11:04:54
|
|
Vulkan: ES3 dEQP suppressions
This re-enables Vulkan ES3 context creation and adds the necessary dEQP
suppressions.
Bug: angleproject:2950
Change-Id: Ic24a9fb4f867f3bce08f101e056f208abf84bb5e
Reviewed-on: https://chromium-review.googlesource.com/c/1483311
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
009696c5
|
2019-01-31T14:47:07
|
|
Vulkan: Support EGL_ANDROID_image_native_buffer on Android.
BUG=angleproject:2668
BUG=angleproject:3121
Change-Id: I0dfb2ec0737ebd963b0fadb78cf720a90874f00b
Reviewed-on: https://chromium-review.googlesource.com/c/1452264
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0546b538
|
2019-02-25T22:47:17
|
|
Revert "Vulkan:Adding custom pool allocator"
This reverts commit 941717496141b96f1d5817f31c2bb4a4e19847b9.
Reason for revert: crashes on Debug bots
Original change's description:
> Vulkan:Adding custom pool allocator
>
> Migrated pool allocator used by compiler to common.
>
> Planning to use this for ANGLE custom command buffers so this some
> refactoring in preparation for that work.
>
> Added a unit test to check PoolAllocator functionality.
>
> Bug: angleproject:2951
> Change-Id: I29618cfdb065b8a5fefd40719a35d27b1f6e99ef
> Reviewed-on: https://chromium-review.googlesource.com/c/1476953
> Reviewed-by: Jamie Madill <jmadill@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Tobin Ehlis <tobine@google.com>
TBR=ynovikov@chromium.org,jmadill@google.com,tobine@google.com,syoussefi@chromium.org
Change-Id: Id8c522bd1d94154e871211d975e801a55cc9c257
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2951, angleproject:3169
Reviewed-on: https://chromium-review.googlesource.com/c/1487977
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
94171749
|
2019-01-17T12:25:54
|
|
Vulkan:Adding custom pool allocator
Migrated pool allocator used by compiler to common.
Planning to use this for ANGLE custom command buffers so this some
refactoring in preparation for that work.
Added a unit test to check PoolAllocator functionality.
Bug: angleproject:2951
Change-Id: I29618cfdb065b8a5fefd40719a35d27b1f6e99ef
Reviewed-on: https://chromium-review.googlesource.com/c/1476953
Reviewed-by: Jamie Madill <jmadill@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
a8b81590
|
2019-02-15T17:23:23
|
|
Vulkan: Free semaphores with other in flight resources
ANGLE calls WindowSurfaceVk::nextSwapchainImage() to prepare for
the next frame, which allocates an image (and other resources,
like semaphore). However, it's possible for
egl::Display::destroySurface() to be called before the next
submitFrame(), which prevents the image from being returned back
to the swapchain.
This fix refactors swapImpl() to separate out the present work, which
can be called as part of destroy() to return the allocated resources.
dEQP-EGL.functional.query_context.get_current_context.*
dEQP-EGL.functional.query_context.get_current_display.*
dEQP-EGL.functional.query_context.get_current_surface.r*
dEQP-EGL.functional.query_context.query_context.*
Bug: angleproject:3057
Change-Id: Ia943f2530e4f27d1a10ee907e810f0bbdb3bfa9a
Reviewed-on: https://chromium-review.googlesource.com/c/1474601
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d09546e1
|
2019-02-22T10:24:44
|
|
D3D: Fall back to old compiler DLL.
This is a workaround for Windows 7 users sometimes not having the UCRT
required for the new versions of the MS HLSL compiler. It requires a
specific version of the Windows SDK with the old compiler DLL.
Bug: chromium:920704
Change-Id: Id9adb3b9d569272cbd69a8b4fc99dc160d837dbc
Reviewed-on: https://chromium-review.googlesource.com/c/1403254
Reviewed-by: Jamie Madill <jmadill@google.com>
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Jamie Madill <jmadill@google.com>
|
|
b9039bf7
|
2019-02-12T15:30:48
|
|
Vulkan: fix numerous formats missing support
Vulkan _SRGB formats have a suffix of _UNORM_SRGB in the corresponding
angle name.
Vulkan A2B10G10R10_*_PACK32 formats have angle names in the form
R10G10B10A2_*.
A16 and A32 formats are emulated similar to A8.
Some formats that are not in the front-end are removed.
Bug: angleproject:2364, angleproject:2405
Change-Id: I00718f450a374912d57d3c00ea167ce486e10aa0
Reviewed-on: https://chromium-review.googlesource.com/c/1468042
Reviewed-by: Jamie Madill <jmadill@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
962c222a
|
2019-02-20T15:43:41
|
|
Vulkan: Enable anisotropy feature when available
If anisotropic filtering is used, the feature must be enabled at device
creation time. This was missing.
Bug: angleproject:2901
Change-Id: I86db55f8b1696dc04eae922b941512f786aa12b8
Reviewed-on: https://chromium-review.googlesource.com/c/1479264
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@google.com>
|
|
ffd39978
|
2019-02-20T10:45:24
|
|
test: Replace _TEST_CASE_ with _TEST_SUITE_.
Googletest is (at last) converging with industry-standard terminology
[1]. We previously called test suites "test cases", which was rather
confusing for folks coming from any other testing framework.
Chrome now has a googletest version that supports _TEST_SUITE_ macros
instead of _TEST_CASE_, so this CL cleans up some of the outdated usage.
[1] https://github.com/google/googletest/blob/master/googletest/docs/primer.md#beware-of-the-nomenclature
Bug: chromium:925652
Change-Id: Ia0deec0bc4216ef1adabc33985a7cbda89682608
Reviewed-on: https://chromium-review.googlesource.com/c/1477418
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Victor Costan <pwnall@chromium.org>
|
|
3d544fff
|
2019-02-19T12:02:06
|
|
Temporarily disable creating D3D debug device.
To diagnose whether Windows Intel end2end tests flakiness
is related to creating debug device and new version of Windows SDK.
Bug: angleproject:3153
Change-Id: Ica7eae3fe875e22203b6dfd98b83604d66a97737
Reviewed-on: https://chromium-review.googlesource.com/c/1476954
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
028df5f5
|
2019-02-13T12:57:10
|
|
Vulkan: Implement transfer path for texture copy
This is primarily in preparation for compressed texture copy, but has
the following side effect:
- When transfer is possible, it's faster than draw
- When texture format does not support draw (but transfer is possible),
it will avoid copying through CPU.
Bug: angleproject:2670
Change-Id: I49e1b51e6ccec875db3f971106687c7d48c4916f
Reviewed-on: https://chromium-review.googlesource.com/c/1470595
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
8a64926e
|
2019-02-15T13:55:36
|
|
Restore the active program after transform feedback
When calling EndTransformFeedback, we might change the current program.
This sets a dirty bit, but it might not get cleared before the next
draw call, so this change makes us manually restore the program state
after calling EndTransformFeedback.
This is a follow-up to:
https://chromium-review.googlesource.com/c/angle/angle/+/1448661
Bug: 832238
Change-Id: I1bea1b9685f55d68b04439a9b0a305deb48708c0
Reviewed-on: https://chromium-review.googlesource.com/c/1475061
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
23ed69cb
|
2019-01-23T10:36:34
|
|
Make WARN() and ERR() thread safe
This adds a global mutex lock to protect logging messages from
worker threads.
BUG=922936
Change-Id: I42e2a7b560da6f6a8b120b74252adce115ccda20
Reviewed-on: https://chromium-review.googlesource.com/c/1429479
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
9429f216
|
2019-02-15T10:43:14
|
|
Vulkan: Add missing EGLConfigs for Android Native pixel formats
GL_RGBA16F correlates to HAL_PIXEL_FORMAT_RGBA_FP16.
GL_RGB10_A2 that correlates to HAL_PIXEL_FORMAT_RGBA_1010102.
This fills-in key holes between generated ANGLE config formats and the
Android native formats after GL_RGB565 was added to fix the configs
that were missing for some games.
Modified EGLContextCompatibilityTest to exclude GL_RGB10_A2 and
GL_RGBA16F from some of the EGLContextCompatibilityTest cases.
EGLContextCompatibilityTest uses the OSWindow utility, which only
works with UNORM-compatible EGLConfigs that are a proper subset of
GL_RGBA8. The new configs won't work with the WindowDifferentConfig
and WindowSameConfig test cases.
Bug: angleproject:3155
Change-Id: I693ed24f13ba787ea6d661f42ec65dc3d26f08f6
Reviewed-on: https://chromium-review.googlesource.com/c/1276807
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
b6c1c66d
|
2019-02-15T08:30:45
|
|
Vulkan: Discard scissor if either dimension is 0
Test:
adb shell am start -n com.drawelements.deqp/android.app.NativeActivity \
-e cmdLine '"deqp --deqp-case=dEQP-GLES2.functional.color_clear.* \
--deqp-log-filename=/sdcard/dEQP-Log.qpa"'
run_angle_end2end_tests --gtest_filter=ClearTest.EmptyScissor/ES2_VULKAN
Bug: angleproject:3114
Change-Id: Icd6ec39c993854f1dbc2fd9221b374e7d4541058
Reviewed-on: https://chromium-review.googlesource.com/c/1475235
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
25686848
|
2019-02-07T15:21:27
|
|
Refactor ANGLE's extensions struct to more easily represent multiple
vendor extension
Some extensions are available from multiple vendors with the same name,
while minimizing the amount of duplicated code and validation errors.
The anonymous struct allows individual vendor checks as well as an
"*Any()" check to check for any version of the extension.
Bug: angleproject:3104
Change-Id: Ib8b65cde850462d3746d9663496a595321817514
Reviewed-on: https://chromium-review.googlesource.com/c/1456619
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c1c9fb1b
|
2018-10-18T11:41:50
|
|
ES31: Add atomic counter buffer support to D3D11 renderer
Adds support for atomic counters to the D3D11 renderer using UAV.
Bug: angleproject:1729
Test: angle_end2end_tests
Change-Id: I2904ba62644685b7d91f7475bd80a81ae414993b
Reviewed-on: https://chromium-review.googlesource.com/c/1451259
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
aead8edf
|
2019-02-13T13:55:09
|
|
Mute worker context creation warnings
This moves the warnings to InfoLog.
Bug: chromium:931294
Change-Id: I1627aa63bdda6f92fc89b8921eb260302ba9063f
Reviewed-on: https://chromium-review.googlesource.com/c/1469721
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
|
|
4b654982
|
2019-01-31T17:04:14
|
|
GL backend: Transform feedback driver bug workaround
In some drivers, if transform feedback is paused and a new program is
bound, calling endTransformFeedback does not correctly unpause first,
creating an invalid paused but inactive state that causes errors later.
Before calling endTransformFeedback we first ensure that the current
program is the one associated with this transform feedback object when
beginTransformFeedback was called.
Bug: 832238
Change-Id: I2373b0c123fd20a7ee3ada76ed878d4968184476
Reviewed-on: https://chromium-review.googlesource.com/c/1448661
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
|
|
366df2b2
|
2019-01-18T15:40:34
|
|
Vulkan: Support external texture binding points.
BUG=angleproject:2668
BUG=angleproject:3023
Change-Id: Idab0c4cbe1c7ed203ace50f1a6701dba11a40242
Reviewed-on: https://chromium-review.googlesource.com/c/1422548
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
77874e2c
|
2019-02-13T09:15:06
|
|
Vulkan: Reduce Default Descriptor Pool Max Sets
The current value of kDefaultDescriptorPoolMaxSets is 2048, which
allocates too much memory on a Pixel device, causing Android's low
memory killer to terminate dEQP (leading to a test failure). This change
reduces the value of kDefaultDescriptorPoolMaxSets to 128 to reduce the
memory usage during the test. We suspect a later change may be required
to dynamically grow the descriptor pools and update the recycling
behavior.
This change also exposed a bug in the ANGLERenderTest where the swap()
call was being skipped for null devices. This was causing code that
ANGLE requires to clean up and re-use resources to be skipped. Enabling
the swap() call fixes this issue as well as improves performance for
the test overall. This does make comparing old performance values to new
difficult (if not entirely incorrect), so take care when doing so.
dEQP-EGL.functional.multicontext.non_shared_clear
Bug: angleproject:3056
Bug: angleproject:3135
Change-Id: Ibdfd3a5eb436a7ba4e45002ebef5809afe777af1
Reviewed-on: https://chromium-review.googlesource.com/c/1470830
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
52047de4
|
2018-11-13T17:22:36
|
|
Vulkan: support instanced draws. (reland)
Enable instanced draws with the Vulkan backend.
So far it only works when Vulkan has VK_EXT_vertex_attribute_divisor.
BUG=angleproject:2672
Change-Id: Ib6655625776344305911a1a742c85f17638cee8f
Reviewed-on: https://chromium-review.googlesource.com/c/1469263
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
0c01e367
|
2019-02-13T21:27:23
|
|
Revert "Vulkan: Implement debug markers"
This reverts commit 983e446921946734fe47217c345a8fe2f079319d.
Reason for revert: Depends on a CL that's reverted: https://chromium-review.googlesource.com/c/angle/angle/+/1470605
Original change's description:
> Vulkan: Implement debug markers
>
> Covers both GL_KHR_debug and GL_EXT_debug_marker.
>
> Debug markers are used to specify events or hierarchically categorize a
> set of commands within the command buffer. When debugging, this allows
> for quicker navigation to the draw calls of interest, and otherwise
> provides context to debug output.
>
> Bug: angleproject:2853
> Change-Id: Id65e11fc877d9e70b6fd0fae7f0bbbcb1164bf10
> Reviewed-on: https://chromium-review.googlesource.com/c/1403956
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
TBR=geofflang@chromium.org,jmadill@chromium.org,syoussefi@chromium.org
Change-Id: I7fcfc8683195d396aec61848719f52c0fa049ece
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2853
Reviewed-on: https://chromium-review.googlesource.com/c/1470606
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3805122b
|
2019-02-13T21:21:13
|
|
Revert "Roll Vulkan repos"
This reverts commit 55ea947c3bdd6c0ef68fc4b9ddbda26889f62622.
Reason for revert: Seems to be causing a memory corruption on Windows/Intel bots.
Original change's description:
> Roll Vulkan repos
>
> Bug: angleproject:3095
> Change-Id: I6ae9d61304981223f9e2f1869ed32612aa38952c
> Reviewed-on: https://chromium-review.googlesource.com/c/1405714
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
TBR=ynovikov@chromium.org,jmadill@chromium.org,syoussefi@chromium.org
Change-Id: I61879770c9bb16ac2231b081bda08e6211ba6831
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:3095
Reviewed-on: https://chromium-review.googlesource.com/c/1470605
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6fc22a13
|
2019-02-01T12:53:01
|
|
Vulkan: Discard scissored clears where scissor is null
If a clear becomes a no-op because the scissor has a width and height
of 0, return early and skip the draw.
This also works around a driver issue on some devices where it was
ignoring a null scissor and drawing the clear anyway. Found with deqp
test:
adb shell am start -n com.drawelements.deqp/android.app.NativeActivity \
-e cmdLine '"deqp --deqp-case=dEQP-GLES2.functional.color_clear.* \
--deqp-log-filename=/sdcard/dEQP-Log.qpa"'
run_angle_end2end_tests --gtest_filter=ClearTest.EmptyScissor/ES2_VULKAN
Bug: angleproject:3114
Change-Id: I6cf2716bd93bb332f74b44c7250e363c68cc614f
Reviewed-on: https://chromium-review.googlesource.com/c/1436841
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
983e4469
|
2019-01-18T16:04:50
|
|
Vulkan: Implement debug markers
Covers both GL_KHR_debug and GL_EXT_debug_marker.
Debug markers are used to specify events or hierarchically categorize a
set of commands within the command buffer. When debugging, this allows
for quicker navigation to the draw calls of interest, and otherwise
provides context to debug output.
Bug: angleproject:2853
Change-Id: Id65e11fc877d9e70b6fd0fae7f0bbbcb1164bf10
Reviewed-on: https://chromium-review.googlesource.com/c/1403956
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
55ea947c
|
2019-01-10T14:25:29
|
|
Roll Vulkan repos
Bug: angleproject:3095
Change-Id: I6ae9d61304981223f9e2f1869ed32612aa38952c
Reviewed-on: https://chromium-review.googlesource.com/c/1405714
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
229fc83d
|
2019-01-21T18:09:15
|
|
Vulkan: Port renderer to Fuchsia (reland)
Add DisplayVk and WindowSurfaceVk subclasses for Fuchsia to the vulkan
renderer, as well as an implementation of OSWindow that renders
fullscreen for the test suite.
Disallow use of the vulkan loader from third_party as Fuchsia uses a fork
of the loader and has not sent those changes upstream yet.
Add a small wayland-inspired library libfuchsia-egl to provide a type
"struct fuchsia_egl_window" to use as EGLNativeWindowType. This type
combines a zx_handle_t to an image pipe channel and a surface size.
Image pipes can only be used once to create a VkSurfaceKHR. This means we
have to recreate the pipe in tests that call eglCreateWindowSurface more
than once with a single OSWindow, or the second call will fail. Add a
resetNativeWindow() method to accomplish this.
Reland disabling -Wextra-semi.
BUG=angleproject:2475
TEST=angle_end2end_tests on Fuchsia
Change-Id: Ie91715bcd760c6c04d4b8a02a91daa71e32ee30c
Reviewed-on: https://chromium-review.googlesource.com/c/1467603
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
eca36cb5
|
2019-01-18T14:03:52
|
|
Vulkan: Support EGL images sourced from cube maps.
Store an image array offset and source texture type in ImageVk to select the
correct cube face from the source texture.
BUG=angleproject:2668
Change-Id: I03ad25feccb769c906dd28fb573ec342e7816863
Reviewed-on: https://chromium-review.googlesource.com/c/1422542
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
341304d8
|
2019-02-12T20:58:54
|
|
Revert "Vulkan: support instanced draws."
This reverts commit 199a9f385f5489b957fe1e42bf08f3f40edd38ca.
Reason for revert: Causes a validation error when the extension is not present. See failures here: https://ci.chromium.org/p/chromium/builders/luci.chromium.try/win-angle-rel/693
Original change's description:
> Vulkan: support instanced draws.
>
> Enable instanced draws with the Vulkan backend.
> So far it only works when Vulkan has VK_EXT_vertex_attribute_divisor.
>
> BUG=angleproject:2672
>
> Change-Id: I9445ba64282fa00a6eaee207b15efa2c7a9abbd3
> Reviewed-on: https://chromium-review.googlesource.com/c/1334973
> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=fjhenigman@chromium.org,jmadill@chromium.org,syoussefi@chromium.org
Change-Id: Iffccc2cca259bcd19c068a87a415d4e196901f45
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2672
Reviewed-on: https://chromium-review.googlesource.com/c/1468201
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4a298703
|
2019-01-18T10:49:36
|
|
Vulkan: Support creating EGL images from non-zero mipmaps of textures.
Store a mip offset in TextureVK to apply to all operations on the ImageHelper.
There is no need to store the mip offset in RenderbufferVk because it creates
the resource with the mip offset on the call to setStorageEGLImageTarget.
Store a mipmap level in the RenderTargetVk object so that clear operations
will target the correct mipmap of the image.
BUG=angleproject:2668
Change-Id: Ie976e3dd3a8de8135a7fbb8c84bd51eec0dddce8
Reviewed-on: https://chromium-review.googlesource.com/c/1422059
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
199a9f38
|
2018-11-13T17:22:36
|
|
Vulkan: support instanced draws.
Enable instanced draws with the Vulkan backend.
So far it only works when Vulkan has VK_EXT_vertex_attribute_divisor.
BUG=angleproject:2672
Change-Id: I9445ba64282fa00a6eaee207b15efa2c7a9abbd3
Reviewed-on: https://chromium-review.googlesource.com/c/1334973
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
356d26c2
|
2019-02-11T11:27:01
|
|
Vulkan: Create/use a constant for the highest Vulkan version used.
Bug: angleproject:3036
Change-Id: Ica056743eed2aa08e96b8a85e693ae70355b52d5
Reviewed-on: https://chromium-review.googlesource.com/c/1464739
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
3f0ff409
|
2019-02-12T03:08:51
|
|
Revert "Vulkan: Port renderer to Fuchsia"
This reverts commit 991d1cfb5e5a2f20a46961da3ad85b95da30b88a.
Reason for revert: Failing compile on the fuchsia bots on the ANGLE
auto-roller.
https://ci.chromium.org/p/chromium/builders/luci.chromium.try/fuchsia_x64/209198
In file included from ../../third_party/angle/util/fuchsia/ScenicWindow.cpp:10:
In file included from ../../third_party/angle/util/fuchsia/ScenicWindow.h:13:
In file included from gen/third_party/fuchsia-sdk/sdk/fidl/fuchsia/ui/policy/cpp/fidl.h:5:
In file included from ../../third_party/fuchsia-sdk/sdk/pkg/fidl_cpp/include/lib/fidl/cpp/internal/header.h:12:
../../third_party/fuchsia-sdk/sdk/pkg/fit/include/lib/fit/function.h:135:6: error: extra ';' after member function definition [-Werror,-Wextra-semi]
};
^
1 error generated.
Original change's description:
> Vulkan: Port renderer to Fuchsia
>
> Add DisplayVk and WindowSurfaceVk subclasses for Fuchsia to the vulkan
> renderer, as well as an implementation of OSWindow that renders
> fullscreen for the test suite.
>
> Disallow use of the vulkan loader from third_party as Fuchsia uses a fork
> of the loader and has not sent those changes upstream yet.
>
> Add a small wayland-inspired library libfuchsia-egl to provide a type
> "struct fuchsia_egl_window" to use as EGLNativeWindowType. This type
> combines a zx_handle_t to an image pipe channel and a surface size.
>
> Image pipes can only be used once to create a VkSurfaceKHR. This means we
> have to recreate the pipe in tests that call eglCreateWindowSurface more
> than once with a single OSWindow, or the second call will fail. Add a
> resetNativeWindow() method to accomplish this.
>
> BUG=angleproject:2475
> TEST=angle_end2end_tests on Fuchsia
>
> Change-Id: I71a613a362dd1c8aada49a3c02ae461e064457bf
> Reviewed-on: https://chromium-review.googlesource.com/c/1446496
> Commit-Queue: Michael Spang <spang@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=spang@chromium.org,geofflang@chromium.org,jmadill@chromium.org,syoussefi@chromium.org
Change-Id: I2d9abefa9db5363ba63a17c1773d0e147040d055
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2475
Reviewed-on: https://chromium-review.googlesource.com/c/1465761
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
991d1cfb
|
2019-01-21T18:09:15
|
|
Vulkan: Port renderer to Fuchsia
Add DisplayVk and WindowSurfaceVk subclasses for Fuchsia to the vulkan
renderer, as well as an implementation of OSWindow that renders
fullscreen for the test suite.
Disallow use of the vulkan loader from third_party as Fuchsia uses a fork
of the loader and has not sent those changes upstream yet.
Add a small wayland-inspired library libfuchsia-egl to provide a type
"struct fuchsia_egl_window" to use as EGLNativeWindowType. This type
combines a zx_handle_t to an image pipe channel and a surface size.
Image pipes can only be used once to create a VkSurfaceKHR. This means we
have to recreate the pipe in tests that call eglCreateWindowSurface more
than once with a single OSWindow, or the second call will fail. Add a
resetNativeWindow() method to accomplish this.
BUG=angleproject:2475
TEST=angle_end2end_tests on Fuchsia
Change-Id: I71a613a362dd1c8aada49a3c02ae461e064457bf
Reviewed-on: https://chromium-review.googlesource.com/c/1446496
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
00f43c91
|
2019-02-09T11:41:12
|
|
Vulkan: Suppress layer warnings about unbound outputs.
This warning could pop up whenever an OpenGL app would write
to a particular output and not bind an attachment. This is
valid in OpenGL. Also it could happen when writing to
gl_FragData instead of gl_FragColor. Since it's hard to fix
every usage we can just suppress the warning.
Also adds a way to change test platform warnings into errors.
Bug: angleproject:2866
Change-Id: I9793f58121ac848d74d6b0131e79ebab2c70f45c
Reviewed-on: https://chromium-review.googlesource.com/c/1462057
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
54ed8f0a
|
2019-02-11T12:32:04
|
|
Vulkan: Fix UtilsVk invalidating Context descriptors.
Fixes a validation error and rendering artifact in the WebGL test:
textures/misc/tex-image-and-sub-image-2d-with-array-buffer-view
Only applies to masked clears when combined with draw calls using
uniforms or textures.
Also make it easier to inspect layer messages in the debugger.
Bug: angleproject:2912
Change-Id: I4561895439221581b9dbc341d6de5d5a6c2096aa
Reviewed-on: https://chromium-review.googlesource.com/c/1462056
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0a87f08d
|
2019-02-11T11:19:17
|
|
Vulkan: make GenerateCaps a member of RendererVk.
Instead of passing lots of RendererVk member variables into
GenerateCaps(), do the work in a member function.
BUG=angleproject:2672
Change-Id: Icf16f3388174ddb676272ec0fa76a288ce2d1e4e
Reviewed-on: https://chromium-review.googlesource.com/c/1463959
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
0029dfe2
|
2019-02-08T18:45:07
|
|
Vulkan: Respect EGL_HEIGHT & EGL_WIDTH in SurfaceVk
If currentExtent is unspecified and EGL_WIDTH & EGL_HEIGHT are provided,
we'll use a surface size of 0xFFFFFFFF. That's not going to work and
appears to be a typo. Use the size specified in EGL_WIDTH & EGL_HEIGHT
instead.
BUG=angleproject:2475
TEST=angle_end2end_tests on Fuchsia with an earlier version of
CL 1446496 PS12. It is N/A with later patches.
Change-Id: I7e67b2c796318bed512dd6d5d22ef2183916416d
Reviewed-on: https://chromium-review.googlesource.com/c/1461637
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
fe59f6b5
|
2019-01-16T09:34:30
|
|
Vulkan: Implement EGL Images for 2D and Renderbuffer sources.
No support for non-zero mipmaps as sources yet.
Suppress dEQP tests due to apparent driver bugs with scissored clears on depth
or stencil attachments.
BUG=angleproject:2668
Change-Id: Idaa5e70ce9b0c91232fbb989cbf4de1b9134aafb
Reviewed-on: https://chromium-review.googlesource.com/c/1415010
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
38833111
|
2019-02-06T16:19:49
|
|
Vulkan: implement eglSwapInterval
Uses FIFO with interval 1 and mailbox/immediate with interval 0 (with a
fallback to FIFO). An end2end test is added to make sure the present
mode is correctly set.
Bug: angleproject:2932
Change-Id: I45d2b1e551b5c63c42ca3c8964bd5e62abd2d459
Reviewed-on: https://chromium-review.googlesource.com/c/1456622
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2b0553ce
|
2019-02-08T10:07:21
|
|
Implement EXT_instanced_arrays
Bug: angleproject:3015
Change-Id: Ib01cc5e0df6db27981cb843a6bd386de5d10c2db
Reviewed-on: https://chromium-review.googlesource.com/c/1452740
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f256339a
|
2019-01-15T09:50:44
|
|
Vulkan: Implement eglBindTexImage
Now that vk::ImageHelper is stored as a pointer, it can be shared between an
offscreen surface and texture.
BUG=angleproject:3073
Change-Id: I91e520259106eef497950b8b2e622fbf910f7444
Reviewed-on: https://chromium-review.googlesource.com/c/1412234
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6c13c70c
|
2019-02-06T15:59:44
|
|
Vulkan: Enumerate instance & device extensions provided by layers
Add instance & device extensions provided by layers prior to running
VerifyExtensionsPresent() so that we won't abort when required extensions
are provided in a layer. This happens particularly on Fuchsia as the
swapchain extension is implemented in a layer.
BUG=angleproject:2475
TEST=angle_end2end_tests on Fuchsia
Change-Id: I30385dfe55b14783a20d1410f1209d3e3ad10632
Reviewed-on: https://chromium-review.googlesource.com/c/1456487
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Michael Spang <spang@chromium.org>
|
|
a07c9bf7
|
2019-02-07T19:10:15
|
|
Revert "Vulkan: Reduce Default Descriptor Pool Max Sets"
This reverts commit 1f8132a1da6e3752c08c5a2b1840e4d6fa44a52f.
Reason for revert: anglebug.com/3135
Bug: angleproject:3135
Original change's description:
> Vulkan: Reduce Default Descriptor Pool Max Sets
>
> The current value of kDefaultDescriptorPoolMaxSets is 2048, which
> allocates too much memory on a Pixel device, causing Android's low
> memory killer to terminate dEQP (leading to a test failure). This change
> reduces the value of kDefaultDescriptorPoolMaxSets to 128 to reduce the
> memory usage during the test. We suspect a later change may be required
> to dynamically grow the descriptor pools and update the recycling
> behavior.
>
> dEQP-EGL.functional.multicontext.non_shared_clear
>
> Bug: angleproject:3056
> Change-Id: I8a681b509823956a58d6c08f64a23203458e075e
> Reviewed-on: https://chromium-review.googlesource.com/c/1454280
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Tim Van Patten <timvp@google.com>
TBR=jmadill@chromium.org,timvp@google.com,syoussefi@google.com,syoussefi@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:3056
Change-Id: Iff950425141eb5028c3660ba0567a9d29e691604
Reviewed-on: https://chromium-review.googlesource.com/c/1459256
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
ab5acbd5
|
2019-01-23T13:58:09
|
|
Vulkan: implement swapchain resizing
Vulkan allows a swapchain to be created based off of an older swapchain
that's still presenting, to support seamless window resizing. The old
swapchain will remain alive (though no image can be acquired from it)
and automatically cleaned once no image is being presented from it.
The retired swapchain can be destroyed once all operations on its images
are completed. We store the old swapchain next to the serial of
submission that's used for CPU throttling and defer the destroy call
until after `finishToSerial` for that serial is called.
Bug: angleproject:2942
Change-Id: Ic62a5a57b712ffa2b087f5fecde0dc8942194075
Reviewed-on: https://chromium-review.googlesource.com/c/1435634
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
603ad164
|
2018-12-04T07:34:23
|
|
GLES1: dirty bit pass
This CL introduces a coarse layer of dirty bits and on-demand sending of
some uniforms to the underlying driver, instead of sending all uniforms
every draw, which should improve performance in cases where not much is
changing between draws.
BUG=angleproject:2306
Change-Id: I530515dfad2e4be74c73d8659acd4fe5decaa8b0
Reviewed-on: https://chromium-review.googlesource.com/c/1361222
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
|
|
740db7fd
|
2019-02-06T09:40:13
|
|
Vulkan: Add support for loading layers from DisplayVk
Fuchsia needs a layer to support VK_KHR_swapchain. Add the ability for
DisplayVk subclasses to request a layer in addition to an extension.
BUG=angleproject:2475
TEST=angle_end2end_tests on Fuchsia
Change-Id: If86c773d4bd4ebecaee4b1631d3d4975105fe849
Reviewed-on: https://chromium-review.googlesource.com/c/1456478
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|