|
2dae09e8
|
2021-01-27T13:54:25
|
|
Fix draw mode validation of PPOs with geometry/tessellation
The properties related to geometry and tessellation shaders were not
being copied from the Program's exectuble to the Program Pipeline's.
Bug: angleproject:5557
Bug: angleproject:5579
Change-Id: Ied6ff82c7e30f24504c9a3f5c008181b179b07ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2653909
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ddba70da
|
2021-01-27T13:52:12
|
|
Fix xfb mode validation with geometry/tessellation
In the presence of geometry and/or tessellation shaders, transform
feedback mode must match what these shaders produce, instead of what's
passed to glDrawArrays.
Bug: angleproject:5557
Bug: angleproject:5579
Change-Id: I6a21621e66b31553ed6a3a50c3aebf60e1ac7be5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2653908
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
122a1cc5
|
2021-01-26T20:06:24
|
|
Fix several vulkan backend problem on Android.
* Load AHardwarebuffer API dynamically, so vulkan backend can be
built with old NDK, but can work with newer android releases.
* Do not link with libvulkan on android.
* Expose EGL_ANDROID_get_native_client_buffer extension with vulkan
backend.
Bug: chromium:1170339
Change-Id: Idf7f6867a86ae40ba6d57a86e419c610ba404ba8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2653506
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
4ec7021c
|
2021-01-27T16:41:45
|
|
Report angle_restricted_trace_gold_tests as interrupted on Exception
Otherwise step is reported as failed but build as succeeded
Bug: chromium:1153299
Change-Id: Id21d7ceafd04553634463be5acb64c070d251abb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2653859
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
2baa6288
|
2021-01-27T13:55:36
|
|
Fix validation of glCreateShaderProgramv for geometry/tessellation
Bug: angleproject:5557
Bug: angleproject:5579
Change-Id: I581d7485d0e8771f3f23dea4255139d56052bee9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2653910
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
53105997
|
2021-01-28T07:42:15
|
|
Initialize some missing vulkan function pointers
Those methods are used by VMA. However VMA can get those methods
by itself, if null function pointers are provided for creating
the VMA. But it will cause problem, when ANGLE & Chromium are
sharing one VMA implementation, since the VMA implementation
in chromium will be built with VMA_STATIC_VULKAN_FUNCTIONS=0 &
VMA_DYNAMIC_VULKAN_FUNCTIONS=0.
Bug: chromium:1170339
Change-Id: I5bf435698e4e361bfa7a6afce84390ccc4355b53
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2655795
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a408ce83
|
2021-01-27T13:48:27
|
|
Fix geometry shader draw mode validation
The draw mode (as passed to glDrawArrays) was being compared with the
transform feedback mode in the presence of geometry shaders, but the two
are completely unrelated.
Bug: angleproject:5579
Change-Id: I03bff97f79fe8d8a4354a6ea3abfed58c1e600eb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2653907
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
5e0a8f9b
|
2021-01-27T13:46:08
|
|
Translator: Enable geometry and tessellation in ES3.2
Symbols that these extensions introduced were only accepted if the
extension directive was present. This is not necessary for es 320
shaders. This change adds a new tag to builtin variable and function
declarations in the translator, namely "essl_extension_becomes_core_in"
which makes gen_builtin_symbols.py automatically create two entries for
the builtin; one with the specified level and extension, one with the
core level and without extension. Entries in
builtin_function_declarations.txt can potentially be deduplicated as a
follow up to take advantage of this tag, though likely an anologous
"glsl_extension_becomes_core_in" needs to be introduced.
Bug: angleproject:5557
Bug: angleproject:5579
Change-Id: I84c19f48a3ccc89d82d80a4f35f7833205bbc88f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2649449
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
badcf3bd
|
2021-01-27T17:14:43
|
|
Vulkan: Enable fbo.invalidate.whole.unbind_blit_msaa_[color|stencil]
These test failures were fixed with a recent SwS CL:
https://swiftshader-review.googlesource.com/c/SwiftShader/+/52088
Bug: angleproject:5044
Test: dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_color
Test: dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_stencil
Change-Id: I36034c72e28fc07ecff0eaca31745c97f054b77e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2654526
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5006a573
|
2021-01-26T17:15:10
|
|
Capture/Replay: Capture glUniformBlockBinding()
eFootball PES 2021 uses glBindBufferRange(), which requires
glUniformBlockBinding() to create the pairing of uniform block indexes
to buffer bindings. The uniform buffer indexes that are assigned when
each program is linked can differ between drivers, so the
glUniformBlockBinding() calls need to be recorded to get the correct
index values for the glBindBufferRange() calls.
Bug: angleproject:5564
Change-Id: I909e05d5b1cc50e592b887bd130aa80cdb1bb40f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2650993
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
351e6e8c
|
2021-01-26T17:08:59
|
|
Add 'UniformBlockIndex' struct
Add the new structure 'UniformBlockIndex'. This is in preparation for
capturing glUniformBlockBinding() calls, which requires the (new)
corresponding ParamType::TUniformBlockIndex.
Bug: angleproject:5564
Change-Id: I88613dd96d058659dd253e8088fab49670c32316
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2651287
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
ea0f3496
|
2021-01-25T12:47:27
|
|
GL: Update VertexArrayGL to not store per-context state.
Move StateManagerGL and FunctionsGL members out of VertexArrayGL and
query them directly from the context in methods.
Bug: angleproject:5577, chromium:1167179
Change-Id: I376f3eff15fbd9855c5956737064f56d54acbceb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2647868
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
f6925344
|
2021-01-25T13:13:33
|
|
Trace Tests: Update expectations.
Bug: angleproject:5530
Change-Id: I48a6dc5753406e6dd6cd1845f1f28fcbfc485e34
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2647871
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e7ca0aa2
|
2021-01-24T17:46:26
|
|
Fix crash in multi-context D3D11 backend.
The crash occured due to a lack of marking a context dirty on
eglMakeCurrent(), resulting in a situation where a thread B would
call eglMakeCurrent() but before issuing additional GL calls,
thread A would issue a draw command. Prior to this change, context
state would only be marked dirty on gl calls.
Test: dEQP-EGL.functional.sharing.gles2.multithread.*
dEQP-EGL.functional.multithread.*
dEQP-EGL.functional.render.multi_thread.*
dEQP-EGL.functional.color_clears.multi_thread.*
Bug: b/177602915
Change-Id: I765e0423002a373f94ea459b81b6e6f6942870d2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2646609
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Doug Horn <doughorn@google.com>
|
|
de53e308
|
2021-01-26T12:44:04
|
|
Metal: Fix XFB failures on ARM.
Metal back-end needs to generate 2 versions of XFB shader:
- one version without XFB emulation code for rasterized draw.
- one version with XFB emulation code for draws with rasterization
disabled.
Based on a change by le.hoang.q@gmail.com
Bug: chromium:1167763
Change-Id: I2858859e15b18701fadff09092bb08778c4a7e64
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2648636
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Le Hoang Quyen <le.hoang.q@gmail.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4921e457
|
2021-01-22T22:36:13
|
|
Vulkan: Avoid unnecessary pipeline rebinds
Bug: angleproject:5528
Change-Id: I5502498fa5d6767f55635fe9fff949d7fd644f4f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2645640
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c38413f8
|
2021-01-26T15:04:38
|
|
Make glmark2 benchmark output parsing more resilient
On Linux, the following info messages are being output which are
seemingly harmless:
INFO: EGL CRITICAL: eglQueryString: display is not initialized.
INFO: EGL ERROR: eglGetPlatformDisplayEXT: Bad platform type.
These lines are now parsed and forwarded to output.
Bug: angleproject:3139
Change-Id: Ia9feb2aef4c1809283588d6e5fc1b6a51ae8812b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2648641
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f9afaaee
|
2021-01-25T13:46:22
|
|
GL: Remove in-thread link status check from parallel link path.
A call to checkLinkStatus was wrongly placed in the
nativeParallelCompile path, which ended up blocking on shader linking,
rendering parallel compilation useless.
Bug: chromium:1169477
Bug: chromium:1099763
Change-Id: Id2c5fe31e651abac76207c93919fd83d79f30556
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2647987
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
9bbcd86a
|
2021-01-25T10:52:35
|
|
Capture/Replay: Fix instanced array client data.
Enables a bunch of self-tests.
Bug: angleproject:5530
Change-Id: Idd14574ba0f3d44124e153ccb32fec7318baf217
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2647745
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6689a54d
|
2021-01-21T00:36:14
|
|
Vulkan: autogen for SPIR-V instruction build and parse
Handwritten SPIR-V instruction parse and build code is replaced with
autogenerated functions based on the SPIR-V grammar.
Bug: angleproject:4889
Change-Id: I09d724fd944e79c03fe4eadca3ee3e3ef0b49872
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2644721
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
cc5083e0
|
2021-01-15T10:29:36
|
|
Compression of the data from vkGetPipelineCacheData.
The size of pipelineCacheData sometimes is greater than
64k which cannot be saved because of the Android blob cache
limitation (single cache data size should be < 64k).
Implement the compression to store more cache data.
Bug: angleproject:4722
Change-Id: I435b086d70d0e6378f1141464ae2bafbe076f193
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2631511
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
cfb9c30c
|
2021-01-25T10:54:09
|
|
Capture/Replay: Apply skips correctly on SwS.
The skips listed currently were explicitly for ES2_Vulkan instead of
applying to both desktop and SwS Vulkan implementations. This CL swaps
the expectations to use wildcards so they will work for both.
Bug: angleproject:5530
Change-Id: Iae83207411296cb819bb0a25d2247cb4af863adb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2645723
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3623868e
|
2021-01-22T12:24:50
|
|
Trace Tests: Add xvfb command line option.
This will enable running the tests on Linux.
Bug: angleproject:5530
Change-Id: I7cd2155fac89d395a8bebacb2f1a44be0e7d3739
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2644723
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3c3b82ab
|
2021-01-21T20:21:34
|
|
Tests: Add Hearthstone trace
Test: angle_perftests --gtest_filter="*hearthstone*"
Bug: angleproject:5571
Change-Id: Idc6535bbf817cd62d34aa9e684604be068455520
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2644143
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
c51c3548
|
2021-01-19T14:15:54
|
|
Vulkan: Unconditionally expose OES_shader_io_blocks
All relevant tests pass, so no longer conditioned to
exposeNonConformantExtensionsAndVersions.
Bug: angleproject:3580
Change-Id: I9b398bd962831fabf0ec39ad9aad3b200717d087
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2636687
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3846cff3
|
2021-01-21T16:37:12
|
|
Suppress headers includes privacy checks on iOS
shared libraries are hidden inside ios_framework_bundle,
so technically we are not allowed to include headers from them.
Ignore this check since everything works fine besides "gn gen --check".
All ANGLE headers are considered public, so we don't need this check.
Bug: angleproject:5417
Change-Id: I6b621132dfe85e0fb1bea4ae2b93097945a8801a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2643859
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
e60ce3da
|
2021-01-21T16:42:17
|
|
Capture/Replay: Allow testing with multiple versions.
This embeds the context version and device type info into the replay.
The self-tests then can create the correct display and context types.
This fixes testing against SwiftShader which is necessary for the
bots.
Bug: angleproject:4759
Change-Id: If9da6bfdc1c2b315ccd7e453872fc84063277054
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2643363
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b745f6df
|
2021-01-21T14:41:00
|
|
Capture/Replay tests: Fixes for goma & depot tools.
Adds the depot tools path to be specified via the command line.
This will allow the bots to specify working directory locations.
Also adds quotes around the goma path in the gn args.
Bug: angleproject:5530
Change-Id: I1291a8cdf4e36e55786403b4d9a6ce8565093352
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2642894
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ff5f715e
|
2021-01-19T16:46:04
|
|
Properly fail upon program binary version mismatch
Return angle::Result::Stop instead of Incomplete when
Program::deserialize detects version mismatch. This causes the caller,
Program::loadBinary, to stop trying to load it. At least with the
Vulkan backend, trying to load it results in a crash.
Added test case to ProgramBinariesAcrossPlatforms which exhibits the
old crash.
Bug: angleproject:5567
Change-Id: I2ebb27cee0aa895855504f758992b4dfec3f4aa3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2639078
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Steven An <stevenan@google.com>
|
|
9ccd3536
|
2021-01-20T18:19:41
|
|
Capture/Replay: Capture all indexed buffer bindings during MEC
"eFootball PES 2021" binds uniform buffers via glBindBufferRange()
before any frames haves been rendered and then uses those bound buffers
for all subsequent frames. A recent fix captured the UBOs that were also
bound as GL_UNIFORM_BUFFER, but failed to capture all indexed buffers
bound only with glBindBufferRange().
This CL captures all indexed uniform, atomic counter, and shader storage
buffers during MEC setup.
Bug: angleproject:5564
Change-Id: I0e638ec4407a091f943b9640e8fc6a7c9f4c4e08
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2640424
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
70f493d6
|
2021-01-20T14:22:14
|
|
Tests: Add Subway Surfers trace
Note this differs from the previous trace for the app,
"subway_surfer_500". The previous trace is no longer
compatible with the replay harness and could not be
re-recorded due to using Vulkan at the time.
Test: angle_perftests --gtest_filter="*subway_surfers*"
Bug: angleproject:5569
Change-Id: If941a3f0e88e3e1aee7fb7db736e623f66a65de6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2641098
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
535d4783
|
2021-01-20T14:14:02
|
|
Vulkan: Flush if sync object is pending during SyncVk::getStatus()
When a glGetSynciv() is performed for GL_SYNC_STATUS, we should flush
any pending commands if a sync object is pending a flush, since the
caller is interested in the status of a fence. This will guarantee that
the work is submitted to the hardware and eventually completes.
This is accomplished by moving mSyncObjectPendingFlush from ContextVk to
ShareGroupVk, so that any sync objects used by any contexts within the
share group are submitted to hardware and the required work completes.
Bug: angleproject:5306
Bug: angleproject:5425
Test: FenceSyncTest.BasicOperations
Change-Id: I2e2681ad01fda429ba37f061c9bac5eb91f800fd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2641095
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
26e02593
|
2021-01-15T12:38:46
|
|
Capture/Replay: Erase texture from mCachedTextureLevelData
When the caller issues a glCompressedTexImage call, we need to delete
the cached texture data, since the texture size/data are being
respecified and the old data is now stale.
This fixes MEC for "Klondike Adventures".
Bug: angleproject:5549
Change-Id: Ie788e2bf39f7a29ec6bc55f95d6f570f1d22d659
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2633071
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
f5d56799
|
2021-01-20T10:00:54
|
|
Do not make context current during context deletion.
ANGLE will make a context current during deletion, so ANGLE can release
related resources, but for an external context, the API user should make
sure the native context is current during deleting the ANGLE external
context, so ANGLE doesn't need to make the context current.
Bug: angleproject:5509
Change-Id: Ia4cee4e3965e9e9e811e3f989f6f6d72bd940f41
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2640593
Commit-Queue: Peng Huang <penghuang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
203154b5
|
2021-01-18T10:43:07
|
|
Vulkan: Remove swiftshader workaround for missing gl_Position
The following line was added by the translator to work around a
swiftshader bug where no gl_PerVertex declaration (and hence no
gl_Position) would fail an assertion:
gl_Position = gl_Position;
The swiftshader bug is fixed, so this line can be removed.
Bug: b/176161380
Change-Id: I68a8e0d9cd8b97e9d294a119c2daa4ab64ec863f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2633729
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9f4b159b
|
2021-01-19T12:48:15
|
|
Translator: Avoid vector copies with multi-replacement
Turns push_backs into emplace_backs and changes the TIntermSequence
constructor argument to &&.
Bug: angleproject:5535
Change-Id: I640ce879b6ade48a28dea6385ebb7a95cb8304ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2636680
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
bb766000
|
2021-01-20T16:58:16
|
|
Vulkan: Move Flush during SyncHelper::clientWait() earlier
The checks and call to contextVk->flushImpl() needs to be moved before
the timeout check to ensure that the vkEvent is flushed to HW eventually
when the caller is waiting on it, even if they don't specify a timeout.
Bug: chromium:1060139
Test: CopyOutputScalingPixelTest.ScaledCopyOfDrawnFrame/48
Change-Id: I725ea492aaf21e291fe3e5b9ae11ea009e59e019
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2640423
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Alexis Hétu <sugoi@chromium.org>
|
|
f0286e63
|
2021-01-19T12:38:46
|
|
Translator: Stop allocating TIntermSequence
The functions that take a TIntermSequence always copy out / Swap the
contents away. This change makes all TIntermSequences live on the stack
instead of being newed.
Bug: angleproject:5535
Change-Id: I942f1c5e57b00199d5308183f71bd9e18b0608bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2636679
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
137271ff
|
2021-01-13T14:34:12
|
|
Support specifying array slice for D3D11 texture EGLImage
Client can specify array slice for creating the SRV/RTV with
EGL_D3D11_TEXTURE_ARRAY_SLICE_ANGLE.
Test: D3DTextureTest.TextureArrayImage*
Bug: angleproject:5538, chromium:1116101
Change-Id: I81cb2823df2145f1d05ad1526b0e36d6a0724d5e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2628609
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
|
|
bb3adfa4
|
2020-12-01T15:43:13
|
|
Rename ShaderVariable::structName to structOrBlockName
Bug: angleproject:3580
Change-Id: Ic53a5267972f153dad2e20948e493e9767a45d16
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2568247
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
df33d561
|
2021-01-19T11:42:35
|
|
EGL: Respect eglMakeCurrent with a null context.
Our context virtualization code would try to optimize this case
and leave the current context bound when possible. This has the
side effect of leaving the current surface bound too, even if
it was deleted.
During Chrome's window resizing, it deletes the window, calls
eglMakeCurrent with null and then recreates the window. This
causes an error because the window still exists because it was
left current in ANGLE.
Bug: chromium:1167718
Change-Id: I857be88be48dfa9c0dd9173f235e155e727e3014
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2637717
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
2ebff7f2
|
2021-01-20T08:39:40
|
|
Support switch surfaces for external context.
WebView may change surfaces due to resizing. So we need to support
switching surfaces with the external context.
Bug: angleproject:5509
Change-Id: Id91eed092a63b3740fd796e0a3cb819ae18baaa9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2639077
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
0ae61c25
|
2021-01-20T10:40:24
|
|
Capture/Replay tests: Use failure exit code.
This will allow the test step to fail when run in CI.
Bug: angleproject:5530
Change-Id: I7c156438ded82aa7191b8b597a9a52200c0efe57
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2638989
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
ea71c6b6
|
2021-01-12T14:13:35
|
|
Vulkan: Emulate R32F images with R32UI
GL requires that imageAtomicExchange be supported for r32f formats.
However VK_FORMAT_FEATURE_STORAGE_*_ATOMIC_BIT is nearly unsupported
everywhere without some Vulkan extension that brings in unnecessary
support.
This GL feature is emulated by transforming the shader to use r32ui for
all images that originally specified r32f. floatToUintBits and
uintBitsToFloat is used to maintain correct usage of the image* builtin
functions.
Bug: angleproject:5535
Change-Id: Ie607089935d3283b3ffa054f4b4385b81fb8f53d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2635453
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
a4d05638
|
2021-01-18T14:58:22
|
|
Capture/Replay: Don't serialize compile resources string.
The resources string gets changed dynamically during capture. This
breaks the regression tests because they were comparing for identity.
Bug: angleproject:5530
Change-Id: I0734f735577a5ff4c9083adb8f25a37aad3c0e37
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2634830
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
2b242f53
|
2021-01-17T14:24:53
|
|
Vulkan: Simplify RewriteCubeMapSamplersAs2DArray
This change is mostly done to remove an unnecessary helper in
ReplaceVariable.cpp.
Tested locally, as the bots all support ES3.1+. There are a few
failures, with or without this change.
Bug: angleproject:5556
Change-Id: I7bd2d4294c9dc164146d713db6b45cbc73e59c16
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2633437
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
186fe990
|
2021-01-15T15:49:30
|
|
Vulkan: Redo RewriteAtomicCounters
With MonomorphizeUnsupportedFunctionsInVulkanGLSL and
RewriteArrayOfArrayOfOpaqueUniforms transformations run, it is no longer
possible to encounter array of array of atomic counters, or have any
passed to functions. As a result, RewriteAtomicCounters is greatly
simplified. Additionally, it is no longer necessary to pass
binding/offset information for atomic counters around and they can use
constants. This change removes dependency on the
shaderStorageBufferArrayDynamicIndexing Vulkan feature.
Bug: angleproject:3726
Bug: angleproject:3881
Change-Id: Ia43092a668f60d009eccbbceeed5deaf105a5895
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2633687
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
64c89120
|
2021-01-19T21:51:23
|
|
Suppress incomplete texture tests on mac/arm
Bug: chromium:1168370
Change-Id: I5f3e1b76b4efd21f3655d6995293ff4bbbebea17
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2639273
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
382f016d
|
2021-01-19T15:35:19
|
|
Vulkan: Retain OpSource in SPIR-V
Needed by AGI. It's a small instruction, and there's only one of it.
This change makes the SPIR-V transformer retain this instruction even on
release.
Bug: b/177556123
Change-Id: I0a2ba8afe55018b08f25abd8a139b64b2a5f6f11
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2636691
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0739f07a
|
2021-01-19T23:54:20
|
|
Revert "Add support for building in Flutter Windows UWP configuration"
This reverts commit 68ac4e43aa67c4bac9df639d80079648ea86dbe9.
Reason for revert: Crashes Chrome GPU process startup on Windows x86
See crbug.com/1168272
Original change's description:
> Add support for building in Flutter Windows UWP configuration
>
> Bug: angleproject:5527
> Change-Id: Idf5a4cbb6f84b24fa2448157cab1b6a3bce4d8be
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2620580
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
TBR=geofflang@chromium.org,stuart.morgan@gmail.com,jmadill@chromium.org,james@clarkezone.io
# Not skipping CQ checks because original CL landed > 1 day ago.
Tbr: jmadill@chromium.org
Bug: angleproject:5527, chromium:1168272
Change-Id: Ifb37c8026253c6a7c334d5b6c83018c888a9f51c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2638572
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
|
|
08e385b4
|
2021-01-15T17:31:19
|
|
Tests: Add Klondike Adventures trace
Test: angle_perftests --gtest_filter=TracePerfTest.Run/*klondike_adventures*
Bug: angleproject:5548
Change-Id: I1bab7696f3db6cb3b3be9d1f3e241891586a9cc8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2634204
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
192a0147
|
2020-10-08T16:47:35
|
|
Multithreading in D3D11 minimum viable product
Bug: b/168046573
Change-Id: I676a148333cbf5e9ca508768503e62cb14d8eeb0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2629618
Commit-Queue: Doug Horn <doughorn@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Trevor David Black <vantablack@google.com>
|
|
2e0490ee
|
2021-01-18T14:21:46
|
|
Capture/Replay: Serialize float states properly.
Previously we were always casting to int. Instead add a float
serialization helper function.
Bug: angleproject:5530
Change-Id: Ifc80e1dbad9da8a04b3b013c3a3ffa60444f6d26
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2634829
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
7489bb2e
|
2021-01-19T14:35:59
|
|
Suppress failing tests on mac ARM
Bug: chromium:1167763
Change-Id: I7f88bd60119dd630ea7733228baff97598bfd739
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2636688
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b912eec5
|
2020-11-27T11:08:41
|
|
Vulkan: Support GL_EXT_tessellation_shader.
Shader translator changes done in http://crrev.com/c/2633936
Adds a new DIRTY_BIT_PATCH_VERTICES state to Context.
Supportes state query and transform feedback.
4 test suppressions remain as follow-up fixes.
Adds a new varying packing mode for a simple Vulkan rule set.
Based on work by Mohan Maiya (m.maiya@samsung.com).
Test: dEQP-GLES31.functional.tessellation.*
Bug: angleproject:3572
Change-Id: I4cad2cca30adb754fd12c83027673906541f566a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2568234
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
acf2985d
|
2021-01-19T10:33:14
|
|
Vulkan: Add integer type incomplete texture tests
Add tests for both signed and unsigned integer
texture types.
Bug: angleproject:5502
Bug: angleproject:4432
Tests: IncompleteTextureTestES3.*IntegerType*
Change-Id: I22e451424d19c3e525cd08ad4c16e1150d9d2467
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2613244
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
dd6ac664
|
2021-01-18T16:30:18
|
|
Tests: Add Asphalt 8 trace
Test: angle_perftests --gtest_filter="*asphalt_8*"
Bug: b/150484427
Change-Id: I6a5f1feec61466eae55c1a2464272aba797ed56c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2636602
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
f45e625f
|
2021-01-18T21:56:46
|
|
Fix image bindings with an image after an image array of array
The logic to calculate the image binding offset for each element of an
array of array of images was incorrect, in that it used the arraySize
accumulated so far to offset the next image's binding.
Bug: angleproject:5535
Change-Id: I2dc3ce7bbf7b77302d1b56b4701bec2e990fdae1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2635452
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
feb470cc
|
2021-01-19T10:10:18
|
|
Test Runner: Prevent race by not resetting timeout.
This instead only sets the timeout when tests start to run. That
way the timeout should always be at least the default timeout
and we won't get into a situation where the watchdog times out
the test immediately when the test starts.
Bug: angleproject:5562
Change-Id: I6b12bb8fe8edcf35f46ba4fb106fdf80ff9402a1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2637182
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2e3786ed
|
2020-12-18T13:19:16
|
|
Capture/Replay: Use glUniform1iv on samplers, ignore images
In OpenGL, GL_INT is expected for sampler uniforms. Before this
our emitted code was using the underlying return type, which can be
unsigned, leading to glUniformuiv.
Also, don't try to set image uniforms with glUniform calls, it is
not allowed.
Test: Fortnite MEC
Bug: b/170755560
Change-Id: I6786df487285fee77cfe792dfa85eb17feb155e9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2611557
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
e670fc72
|
2021-01-18T15:51:42
|
|
Implement shader compiler changes for Tessellation.
Numerous rule changes to support validating Tessellation Control and
Evaluation shaders. New per-patch inputs and output variable support.
Includes a new traverser step that validates barrier function calls.
Functionality changes upcoming in http://crrev.com/c/2568234
Bug: angleproject:3572
Change-Id: If8da1c21d30efa12c60ed0d6c3f8cf0b27e4c86f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2633936
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
|
|
20f8828c
|
2021-01-15T16:04:29
|
|
Capture/Replay: Fixes for compressed texture cache
Some compressed block sizes don't align properly to surface
dimensions. For instance, ASTC_6x6_UNORM populating a 64x64 surface.
Our FrameCapture code was assuming block alignment and was losing
data.
To handle this, round the dimensions up to natural block alignment
before doing any scaling math. This also fixes the problem we've had
of losing small mip levels due to scaling.
Test: Aztec Ruins MEC
Bug: b/160808198
Bug: angleproject:5552
Change-Id: I194cdac87f7361f85539e78f85069b336ffb1f36
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2634205
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
81430e11
|
2021-01-18T11:56:16
|
|
Vulkan: Remove command processor special functions.
These functions are no longer needed.
Bug: b/170328907
Bug: b/170329600
Bug: b/172704839
Change-Id: Icf18717905fa79dc0ccf7063d8482d4ca07d8b80
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2635073
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
043fcf18
|
2021-01-07T13:23:57
|
|
Support create ANGLE EGLContext from an external EGLContext
For Android WebView, Android creates an EGLContext, EGLSurface
and FBO, and makeCurrent on them, and then calls WebView draw
function to draw the WebView content on the current EGLSurface or
binded FBO. So to use ANGLE in WebView, this CL adds a way to
create ANGLE EGLContext from an external EGLContext, and save
and restore GL state in eglMakeCurrent().
Bug: angleproject:5509
Change-Id: I874986813117f125e23e975ea1adc51ac5b3a631
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2615239
Commit-Queue: Peng Huang <penghuang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
5635dbb9
|
2021-01-15T09:43:25
|
|
Only call context::unMakeCurrent() if context is changed.
Bug: angleproject:5509
Change-Id: Ifbc6aa23a218498c5e2f6a094296045b2d5dfacf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2633421
Commit-Queue: Peng Huang <penghuang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b5424bb4
|
2021-01-14T15:09:41
|
|
Generate internal gl entry point functions as C functions.
Some internal GL functions are exported to our libGLESv1_CM library
and to properly export them, they must be C functions.
Bug: angleproject:5534
Change-Id: I37280312f73fd5e55166e4fa36659267d657a50b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2628139
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
409c1d5e
|
2021-01-15T10:32:56
|
|
GL: Add detection of IMG and Vivante GPUs.
Future workarounds will depend on being able to detect these GPUs.
Bug: chromium:983167
Change-Id: I0aee848594e6340550507a0cee8638c9b68785f1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2633422
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
679d1187
|
2021-01-12T18:25:39
|
|
Fix to build with VS2019
When building with VS2019 (using is_clang=false) multiples of the
following error are given:
../../src/common/mathutil.cpp(75): error C4244: '=':
conversion from 'double' to 'float', possible loss of data
(This is due to pow(), when passed an int for the second param, widens
the first param to a double then returns a double).
Since the code was being changed the opportunity was taken to:
- add missing unit tests for the two 999E5 conversions
- optimise out the common pow() functions
The unit tests were written against the original implementation, then
the optimisations added and verified against the original results.
Bug: angleproject:5521, dawn:602
Change-Id: Ic9e5eaedbe3fc7ceeed697898823b76dffcd989a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2624888
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
68ac4e43
|
2021-01-10T14:29:44
|
|
Add support for building in Flutter Windows UWP configuration
Bug: angleproject:5527
Change-Id: Idf5a4cbb6f84b24fa2448157cab1b6a3bce4d8be
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2620580
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
bd2954a9
|
2021-01-16T11:33:12
|
|
Reland "Cleanup translator option checks"
This reverts commit 9173e01730923823846348e513bb8cbe7eddbbe5.
Reason for revert: This was in a chain of reverts, but is unrelated to the issue.
Original change's description:
> Revert "Cleanup translator option checks"
>
> This reverts commit 9710c4e473c88a38f11eb10c600717181d6e24df.
>
> Reason for revert:
> Earlier CL breaks pre-rotation:
> https://chromium-review.googlesource.com/c/angle/angle/+/2598584
>
> Original change's description:
> > Cleanup translator option checks
> >
> > Use comparison with 0 for explicit conversion to bool.
> >
> > Bug: angleproject:3606
> > Change-Id: Ie0a76d7df829227c1376894535813b54e13491b4
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2631689
> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> > Reviewed-by: Charlie Lao <cclao@google.com>
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
>
> TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
>
> Change-Id: Ib597a62f3c7078d28f7f5b79d1cc9f8d9e469c31
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: angleproject:3606
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2634047
> Reviewed-by: Tim Van Patten <timvp@google.com>
> Commit-Queue: Tim Van Patten <timvp@google.com>
TBR=timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
Bug: angleproject:3606
Change-Id: I10ecca63a3db6dbc3ddedf5bb7e5319a82a80a30
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2633712
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6c5b766b
|
2021-01-16T11:33:00
|
|
Reland "Vulkan: Generate xfb support code in SPIR-V for extension path"
This reverts commit d090627616641f7524655627bfd415de6f8af942.
Reason for revert: Fixed parent CL
Original change's description:
> Revert "Vulkan: Generate xfb support code in SPIR-V for extension path"
>
> This reverts commit d06feeac1e79d6102e01c123a360bc9099d5bba3.
>
> Reason for revert:
> Earlier CL breaks pre-rotation:
> https://chromium-review.googlesource.com/c/angle/angle/+/2598584
>
> Original change's description:
> > Vulkan: Generate xfb support code in SPIR-V for extension path
> >
> > The only piece of code that's needed to be generated for the extension
> > path is the following, at the right spot (right before depth correction
> > and pre-rotation):
> >
> > ANGLEXfbPosition = gl_Position;
> >
> > The SPIR-V transformer already has gl_Position loaded for depth
> > correction and pre-rotation, so this change simply adds an OpStore to
> > ANGLEXfbPosition.
> >
> > As a result of this change, @@ XFB-OUT @@ is no longer emitted if
> > the transform feedback extension is supported. With the above code now
> > placed correctly for geometry shaders, transform feedback tests for
> > geometry shaders are enabled.
> >
> > Bug: angleproject:3606
> > Change-Id: I13a7956ab62a1a6b4196ff999442b99b50226c0f
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2617659
> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> > Reviewed-by: Charlie Lao <cclao@google.com>
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
>
> TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
>
> Change-Id: I74fa9fafe3c922cdb7cd09ee6351534e38528da9
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: angleproject:3606
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2634048
> Reviewed-by: Tim Van Patten <timvp@google.com>
> Commit-Queue: Tim Van Patten <timvp@google.com>
TBR=timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
# Not skipping CQ checks because this is a reland.
Bug: angleproject:3606
Change-Id: Ic49a0be10cdb58e2b47896554f272093e24f93b4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2633711
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
68635b43
|
2021-01-16T10:56:39
|
|
Reland "Vulkan: Move xfb position decl to translator in extension path"
This reverts commit b4b5972627e148ed91aac3cbc02806bb6407ef0a.
Reason for revert: This was in a chain of reverts, but is unrelated to the issue.
Original change's description:
> Revert "Vulkan: Move xfb position decl to translator in extension path"
>
> This reverts commit 8f5ca26678c12d54d2981a84e48a5304746ec824.
>
> Reason for revert:
> Earlier CL breaks pre-rotation:
> https://chromium-review.googlesource.com/c/angle/angle/+/2598584
>
> Original change's description:
> > Vulkan: Move xfb position decl to translator in extension path
> >
> > This change removes the @@ XFB-DECL @@ marker. The ANGLEXfbPosition
> > output is unconditionally emitted in VS, TES and GS by the translator,
> > and is appropriately decorated or removed by the SPIR-V transformer.
> >
> > Bug: angleproject:3606
> > Change-Id: Ia76224f5a6d147362eeb2d288f05e333aaf75481
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2617658
> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
> > Reviewed-by: Charlie Lao <cclao@google.com>
>
> TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
>
> Change-Id: Ia03988b9c17639513576e82e8f11cd4c7b52640b
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: angleproject:3606
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2634202
> Reviewed-by: Tim Van Patten <timvp@google.com>
> Commit-Queue: Tim Van Patten <timvp@google.com>
TBR=timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
# Not skipping CQ checks because this is a reland.
Bug: angleproject:3606
Change-Id: Ib5b5925528a5c8698390b81f71ee788f5b332a1f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2633708
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
beea4050
|
2021-01-16T11:32:50
|
|
Reland "Vulkan: Generate gl_Position.z correction in SPIR-V"
This reverts commit e3c357369f970a94759074418670de2ef131dcb8.
Reason for revert: Fixed parent CL
Original change's description:
> Revert "Vulkan: Generate gl_Position.z correction in SPIR-V"
>
> This reverts commit 1e4f8b02ae0603e7034c37e0ff6cee39c38771a9.
>
> Reason for revert:
> Earlier CL breaks pre-rotation:
> https://chromium-review.googlesource.com/c/angle/angle/+/2598584
>
> Original change's description:
> > Vulkan: Generate gl_Position.z correction in SPIR-V
> >
> > Instead of having the translator output code to transform gl_Position.z
> > to Vulkan clip space in the vertex stage, this change makes the SPIR-V
> > transformer perform this operation on the last geometry stage.
> >
> > An alternative solution would be to generate this transformation in the
> > translator in every geometry stage, each controlled by a separate
> > specialization constant. This change avoids unnecessary modifications
> > to earlier stages. Additionally, the transformer is already modifying
> > gl_Position.xy for pre-rotation, so the addition of a small
> > transformation of gl_Position.z in the same spot is rather trivial.
> >
> > Bug: angleproject:5479
> > Change-Id: Id971179ba47b206204bfdaf3b2b295ef97dd5117
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2598585
> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> > Reviewed-by: Charlie Lao <cclao@google.com>
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
>
> TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
>
> Change-Id: I3bdf3d6f743125eaf552608f2664b715bd6935c5
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: angleproject:5479
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2634203
> Reviewed-by: Tim Van Patten <timvp@google.com>
> Commit-Queue: Tim Van Patten <timvp@google.com>
TBR=timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
# Not skipping CQ checks because this is a reland.
Bug: angleproject:5479
Change-Id: Id23052b8fc6bffa5bab20cb93eb21ea49a0f80d7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2633710
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
dfd9bdfd
|
2021-01-16T11:32:30
|
|
Reland "Vulkan: Generate gl_Position pre-rotation in SPIR-V"
This reverts commit 3d39b7c5eab88c420d982155ffbb6181c678ceea.
Reason for revert: Fixed interaction with the
`forceDriverUniformOverSpecConst` workaround.
Original change's description:
> Revert "Vulkan: Generate gl_Position pre-rotation in SPIR-V"
>
> This reverts commit 0f86b196ffaffeeee3460e3188f20a7ac120796d.
>
> Reason for revert:
> Breaks pre-rotation for all apps, so they are displayed in portrait instead of landscape.
>
> Original change's description:
> > Vulkan: Generate gl_Position pre-rotation in SPIR-V
> >
> > Instead of having the translator output pre-rotation code in the vertex
> > stage based on a specialization constant, this change makes the SPIR-V
> > transformer perform pre-rotation of gl_Position on the last geometry
> > stage.
> >
> > An alternative solution would be to generate pre-rotation code in the
> > translator in every geometry stage, each controlled by a separate
> > specialization constant. This change avoids unnecessary modifications
> > to earlier stages. The generated shaders are also smaller, as they
> > don't contain a mat2[8] pre-rotation constant matrix. The SPIR-V
> > transformer knows the pre-rotation at transformation time, so it can
> > simply use swizzles to achieve the same results.
> >
> > This also ties in with upcoming changes which move gl_Position.z
> > correction to the last geometry shader stage, which is trivially done
> > piggy-backing on the infrastructure in this change.
> >
> > Bug: angleproject:5478
> > Change-Id: I9d5d9d19f3ccda665f5504368ce5ddfa5f383faf
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2598584
> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> > Reviewed-by: Charlie Lao <cclao@google.com>
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
>
> TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
>
> Change-Id: I81f237fa6b10c7d59831363bee8999e7ad2f09be
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: angleproject:5478
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2633694
> Reviewed-by: Tim Van Patten <timvp@google.com>
> Commit-Queue: Tim Van Patten <timvp@google.com>
TBR=timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
Bug: angleproject:5478
Change-Id: I7c5eaeef03d9520abd36a1c4a766b6abbf4fdb45
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2633709
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
60015ff6
|
2021-01-14T02:03:07
|
|
Vulkan: Redo RewriteStructSamplers
This transformation is split into two. The first transformation solely
takes out the samplers out of structs, and potentially generates array
of array of samplers. A second transformation is added that takes any
array of array of opaque uniforms and flattens it.
A follow up change will simplify RewriteAtomicCounters which also
handles array of arrays (which is no longer possible), and removes
dependency on shaderStorageBufferArrayDynamicIndexing.
Bug: angleproject:2703
Bug: angleproject:3881
Bug: angleproject:4071
Bug: angleproject:4211
Change-Id: I352bb2bbe65ac49f4d7d753c0ba3160fa3cc925a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2628138
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9f09435b
|
2021-01-14T08:13:47
|
|
Vulkan: Rename ReplaceClipDistanceVariable files
With the addition of EXT_clip_cull_distance extension
the files are renamed like so -
ReplaceClipDistanceVariable.h -> ReplaceClipCullDistanceVariable.h
ReplaceClipDistanceVariable.cpp -> ReplaceClipCullDistanceVariable.cpp
Bug: angleproject:5458
Change-Id: I277b2d4b6eea6f2014e10acb251284a159292dbc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2617572
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ff170c6f
|
2021-01-12T10:16:43
|
|
Tests: Add Real Gangster Crime trace
Note: Hand edits required to capture this trace:
CaptureMidExecutionSetup():
// Check for supported textures
ASSERT(index.getType() == gl::TextureType::_2D ||
index.getType() == gl::TextureType::_3D ||
index.getType() == gl::TextureType::_2DArray ||
index.getType() == gl::TextureType::CubeMap ||
index.getType() == gl::TextureType::External); <<--- add
Test: angle_perftests --gtest_filter=TracePerfTest.Run/*real_gangster_crime*
Bug: angleproject:5550
Change-Id: I32391cc8de0b4307334bb873af4f3c5899b584f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2626357
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3d39b7c5
|
2021-01-16T00:15:14
|
|
Revert "Vulkan: Generate gl_Position pre-rotation in SPIR-V"
This reverts commit 0f86b196ffaffeeee3460e3188f20a7ac120796d.
Reason for revert:
Breaks pre-rotation for all apps, so they are displayed in portrait instead of landscape.
Original change's description:
> Vulkan: Generate gl_Position pre-rotation in SPIR-V
>
> Instead of having the translator output pre-rotation code in the vertex
> stage based on a specialization constant, this change makes the SPIR-V
> transformer perform pre-rotation of gl_Position on the last geometry
> stage.
>
> An alternative solution would be to generate pre-rotation code in the
> translator in every geometry stage, each controlled by a separate
> specialization constant. This change avoids unnecessary modifications
> to earlier stages. The generated shaders are also smaller, as they
> don't contain a mat2[8] pre-rotation constant matrix. The SPIR-V
> transformer knows the pre-rotation at transformation time, so it can
> simply use swizzles to achieve the same results.
>
> This also ties in with upcoming changes which move gl_Position.z
> correction to the last geometry shader stage, which is trivially done
> piggy-backing on the infrastructure in this change.
>
> Bug: angleproject:5478
> Change-Id: I9d5d9d19f3ccda665f5504368ce5ddfa5f383faf
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2598584
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
Change-Id: I81f237fa6b10c7d59831363bee8999e7ad2f09be
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:5478
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2633694
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
e3c35736
|
2021-01-16T00:12:54
|
|
Revert "Vulkan: Generate gl_Position.z correction in SPIR-V"
This reverts commit 1e4f8b02ae0603e7034c37e0ff6cee39c38771a9.
Reason for revert:
Earlier CL breaks pre-rotation:
https://chromium-review.googlesource.com/c/angle/angle/+/2598584
Original change's description:
> Vulkan: Generate gl_Position.z correction in SPIR-V
>
> Instead of having the translator output code to transform gl_Position.z
> to Vulkan clip space in the vertex stage, this change makes the SPIR-V
> transformer perform this operation on the last geometry stage.
>
> An alternative solution would be to generate this transformation in the
> translator in every geometry stage, each controlled by a separate
> specialization constant. This change avoids unnecessary modifications
> to earlier stages. Additionally, the transformer is already modifying
> gl_Position.xy for pre-rotation, so the addition of a small
> transformation of gl_Position.z in the same spot is rather trivial.
>
> Bug: angleproject:5479
> Change-Id: Id971179ba47b206204bfdaf3b2b295ef97dd5117
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2598585
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
Change-Id: I3bdf3d6f743125eaf552608f2664b715bd6935c5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:5479
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2634203
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
b4b59726
|
2021-01-16T00:12:00
|
|
Revert "Vulkan: Move xfb position decl to translator in extension path"
This reverts commit 8f5ca26678c12d54d2981a84e48a5304746ec824.
Reason for revert:
Earlier CL breaks pre-rotation:
https://chromium-review.googlesource.com/c/angle/angle/+/2598584
Original change's description:
> Vulkan: Move xfb position decl to translator in extension path
>
> This change removes the @@ XFB-DECL @@ marker. The ANGLEXfbPosition
> output is unconditionally emitted in VS, TES and GS by the translator,
> and is appropriately decorated or removed by the SPIR-V transformer.
>
> Bug: angleproject:3606
> Change-Id: Ia76224f5a6d147362eeb2d288f05e333aaf75481
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2617658
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Charlie Lao <cclao@google.com>
TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
Change-Id: Ia03988b9c17639513576e82e8f11cd4c7b52640b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:3606
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2634202
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
d0906276
|
2021-01-16T00:11:27
|
|
Revert "Vulkan: Generate xfb support code in SPIR-V for extension path"
This reverts commit d06feeac1e79d6102e01c123a360bc9099d5bba3.
Reason for revert:
Earlier CL breaks pre-rotation:
https://chromium-review.googlesource.com/c/angle/angle/+/2598584
Original change's description:
> Vulkan: Generate xfb support code in SPIR-V for extension path
>
> The only piece of code that's needed to be generated for the extension
> path is the following, at the right spot (right before depth correction
> and pre-rotation):
>
> ANGLEXfbPosition = gl_Position;
>
> The SPIR-V transformer already has gl_Position loaded for depth
> correction and pre-rotation, so this change simply adds an OpStore to
> ANGLEXfbPosition.
>
> As a result of this change, @@ XFB-OUT @@ is no longer emitted if
> the transform feedback extension is supported. With the above code now
> placed correctly for geometry shaders, transform feedback tests for
> geometry shaders are enabled.
>
> Bug: angleproject:3606
> Change-Id: I13a7956ab62a1a6b4196ff999442b99b50226c0f
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2617659
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
Change-Id: I74fa9fafe3c922cdb7cd09ee6351534e38528da9
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:3606
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2634048
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
9173e017
|
2021-01-16T00:10:34
|
|
Revert "Cleanup translator option checks"
This reverts commit 9710c4e473c88a38f11eb10c600717181d6e24df.
Reason for revert:
Earlier CL breaks pre-rotation:
https://chromium-review.googlesource.com/c/angle/angle/+/2598584
Original change's description:
> Cleanup translator option checks
>
> Use comparison with 0 for explicit conversion to bool.
>
> Bug: angleproject:3606
> Change-Id: Ie0a76d7df829227c1376894535813b54e13491b4
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2631689
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com
Change-Id: Ib597a62f3c7078d28f7f5b79d1cc9f8d9e469c31
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:3606
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2634047
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
9710c4e4
|
2021-01-14T22:41:48
|
|
Cleanup translator option checks
Use comparison with 0 for explicit conversion to bool.
Bug: angleproject:3606
Change-Id: Ie0a76d7df829227c1376894535813b54e13491b4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2631689
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
cea86910
|
2021-01-14T08:13:00
|
|
Vulkan: Support EXT_clip_cull_distance extension
EXT_clip_cull_distance extension is supported except for
some features related to EXT_tessellation_shader and
EXT_geometry_shader. Also added a few compiler tests to validate
the transformation from ESSL to GLSL for Vulkan backend.
Bug: angleproject:5458
Tests: angle_end2end_tests --gtest_filter=Clip*DistanceTest*
angle_unittests --gtest_filter=*Clip*Distance*
Change-Id: Ie74e6b2b55112ad92ad111191d629b63506032ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2585987
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
dc99fc40
|
2021-01-13T00:21:41
|
|
Vulkan: Translator pass to monomorphize problematic functions
With array of array of samplers and images, we currently require the
shader*ArrayDynamicIndexing Vulkan features. With atomic counters, we
require the shaderStorageBufferArrayDynamicIndexing feature.
The above features are required to enable passing opaque uniforms to
functions. This change introduces a translator pass that monomorphizes
functions that receive atomic counters, or partially subscripted array
of array of samplers or images, etc by removing those arguments and
using the opaque uniform directly.
Follow up changes will include:
- Great simplification to RewriteStructSamplers, and removal of
RewriteStructSamplersOld. This will drop dependency to
shaderSampledImageArrayDynamicIndexing and
shaderStorageImageArrayDynamicIndexing.
- Great simplification to RewriteAtomicCounters. This will drop
dependency to shaderStorageBufferArrayDynamicIndexing.
- Emulation of imageAtomicExchange for r32f formats, but changing the
qualifier to r32ui.
Note that parts of RewriteStructSampler are obsolete with this change,
but will be refactored as a follow up.
Bug: angleproject:3881
Bug: angleproject:4071
Bug: angleproject:5535
Change-Id: Ifd1435b2a31ebf364815046886aeded60297da79
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2628127
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
d06feeac
|
2021-01-08T00:48:18
|
|
Vulkan: Generate xfb support code in SPIR-V for extension path
The only piece of code that's needed to be generated for the extension
path is the following, at the right spot (right before depth correction
and pre-rotation):
ANGLEXfbPosition = gl_Position;
The SPIR-V transformer already has gl_Position loaded for depth
correction and pre-rotation, so this change simply adds an OpStore to
ANGLEXfbPosition.
As a result of this change, @@ XFB-OUT @@ is no longer emitted if
the transform feedback extension is supported. With the above code now
placed correctly for geometry shaders, transform feedback tests for
geometry shaders are enabled.
Bug: angleproject:3606
Change-Id: I13a7956ab62a1a6b4196ff999442b99b50226c0f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2617659
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8f5ca266
|
2021-01-07T16:04:16
|
|
Vulkan: Move xfb position decl to translator in extension path
This change removes the @@ XFB-DECL @@ marker. The ANGLEXfbPosition
output is unconditionally emitted in VS, TES and GS by the translator,
and is appropriately decorated or removed by the SPIR-V transformer.
Bug: angleproject:3606
Change-Id: Ia76224f5a6d147362eeb2d288f05e333aaf75481
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2617658
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
ebdd8abb
|
2021-01-13T23:42:44
|
|
OpenGL: Remove avoidDXT1sRGBTextureFormat workaround
Bug: angleproject:5543
Change-Id: I2a7e2d563aa60e6e53dd6b6c32fbc449368e4e06
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2627425
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
738cb55b
|
2021-01-14T17:33:20
|
|
Capture/Replay tests: Fixes and improvements.
The script was broken after the change to build to a separate shared
library. Also fixes issues on Windows and cleans up the code. State
comparison is still broken on every test from what I can see.
Bug: angleproject:5530
Change-Id: I23e77e56fadedfb85d7afdb59dddac5558a71a56
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2630232
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
1e4f8b02
|
2020-12-21T23:47:47
|
|
Vulkan: Generate gl_Position.z correction in SPIR-V
Instead of having the translator output code to transform gl_Position.z
to Vulkan clip space in the vertex stage, this change makes the SPIR-V
transformer perform this operation on the last geometry stage.
An alternative solution would be to generate this transformation in the
translator in every geometry stage, each controlled by a separate
specialization constant. This change avoids unnecessary modifications
to earlier stages. Additionally, the transformer is already modifying
gl_Position.xy for pre-rotation, so the addition of a small
transformation of gl_Position.z in the same spot is rather trivial.
Bug: angleproject:5479
Change-Id: Id971179ba47b206204bfdaf3b2b295ef97dd5117
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2598585
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0f86b196
|
2020-12-21T22:54:05
|
|
Vulkan: Generate gl_Position pre-rotation in SPIR-V
Instead of having the translator output pre-rotation code in the vertex
stage based on a specialization constant, this change makes the SPIR-V
transformer perform pre-rotation of gl_Position on the last geometry
stage.
An alternative solution would be to generate pre-rotation code in the
translator in every geometry stage, each controlled by a separate
specialization constant. This change avoids unnecessary modifications
to earlier stages. The generated shaders are also smaller, as they
don't contain a mat2[8] pre-rotation constant matrix. The SPIR-V
transformer knows the pre-rotation at transformation time, so it can
simply use swizzles to achieve the same results.
This also ties in with upcoming changes which move gl_Position.z
correction to the last geometry shader stage, which is trivially done
piggy-backing on the infrastructure in this change.
Bug: angleproject:5478
Change-Id: I9d5d9d19f3ccda665f5504368ce5ddfa5f383faf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2598584
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
29eeb610
|
2021-01-12T11:59:48
|
|
Vulkan: Fix validation of MSRTT framebuffer attachment
The attachment was being accessed before being validated. A fuzzer test
was giving this function texture ID -1.
Bug: chromium:1146753
Change-Id: Ic48f5fd2eed4252e90be5d63fd698b38bd3ef85f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2623814
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
50c82f42
|
2021-01-14T15:15:10
|
|
Don't index into SystemInfo gpus if it's empty.
angle::GetSystemInfo may return success on some platforms without
writing any entires into the gpus vector. Make sure we don't index
into this vector when it's empty.
Bug:chromium:1166338
Change-Id: I4cafeadf7aa9ac55b25a1afa04c8d28a2edf52e0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2628140
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
861378be
|
2021-01-12T11:12:56
|
|
Tests: Add Magic Tile 3 trace
Test: angle_perftests --gtest_filter=TracePerfTest.Run/*magic_tiles_3*
Bug: angleproject:5540
Change-Id: I6d6f144d4c2a38cfc55724f7e454f756a162d054
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2622611
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c07ef602
|
2021-01-05T12:26:05
|
|
Vulkan: Move xfb buffer decl to translator in emulation path
This makes @@ XFB-DECL @@ empty on this path. Ultimately, this is
working towards removing both @@ XFB-DECL @@ and @@ XFB-OUT @@ macros
for both the emulation and extension paths, allowing the shaders to be
compiled at compile time rather than link time.
Bug: angleproject:3606
Change-Id: If16e9d92c419a04ecd3094481ed546d0708cdb43
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2611305
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
a1b4a1f3
|
2021-01-14T11:02:43
|
|
Capture/Replay: Only get source for linked programs
CaptureMidExecutionSetup() currently assumes that all created programs
have also been linked, since mCachedProgramSources is only updated when
glLinkProgram() is called. However, a call to glCreateProgram()
doesn't necessitate a call to glLinkProgram().
This leads to hitting an assert in
FrameCaptureShared::getProgramSources() when iterating all
glCreateProgram()'ed programs, but doesn't find that it in the list of
linked programs. This fix is to move the program->isLinked() call
earlier.
Bug: angleproject:5545
Change-Id: I49fdec08de1c2767fe7f6a08fd0a9d53fa865167
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2629789
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
e357cc6f
|
2021-01-14T14:47:02
|
|
Revert "Vulkan: Prefer host cached memory for Buffers"
This reverts commit 326f128b941d54c0277178f87e784da8ce2190eb.
Reason for revert: Fails of Mali platform. See bug:
Bug: angleproject:5544
Original change's description:
> Vulkan: Prefer host cached memory for Buffers
>
> This improves perf because vertex data upload uses host visible memory,
> and uncached memory can be slow.
>
> Test:
>
> Android on Windows with 1080Ti:
> glmark2 [build] vbo=false 265 -> 3900 fps
>
> Bug: angleproject:5515
> Change-Id: Ib75582bbdb4ca4a22d3a121c7b477a23a8a809ef
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2615742
> Commit-Queue: Lingfeng Yang <lfy@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Tim Van Patten <timvp@google.com>
TBR=geofflang@chromium.org,lfy@google.com,doughorn@google.com,timvp@google.com,jmadill@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:5515
Change-Id: I59695b1981b43471dbd309d4e859bae7a4821969
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2627604
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Lingfeng Yang <lfy@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0056151c
|
2021-01-12T16:49:46
|
|
Fix call to getImageFormatFeatureBits() in SurfaceVk.cpp
The function getImageFormatFeatureBits() was recently refactored which
changed its parameters. One call to this function in SurfaceVk.cpp is
underneath a #if ANGLE_ENABLE_OVERLAY though, so it was missed.
This CL updates the call to getImageFormatFeatureBits() with the correct
paramater as well as moves the code outside of the #if and into a normal
conditional to prevent similar issues in the future.
Bug: angleproject:5438
Change-Id: I499c25d98e4e22b5e1bb14e6e6c9ef378d77307f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2626348
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
198dc345
|
2020-08-06T16:32:03
|
|
Support importing NV12/P010/P016 D3D textures as EGLImage
Allow importing individual planes of NV12/P010/P016 D3D textures with
supported SRV/RTV formats. Restrict these to GL_TEXTURE_EXTERNAL_OES to
limit to using as shader inputs or render targets and prevent
unsupported operations like ReadPixels.
Test: D3DTextureYUVTest*
Bug: angleproject:5538, chromium:1116101
Change-Id: If5bf54f4f75bb2c703890ce3f5fbd67e4461c98f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2338827
Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
124cdcb5
|
2021-01-13T16:36:18
|
|
Don't build angle_end2end_tests_mac_sources on iOS
Getting a compile error for them:
../../third_party/angle/src/tests/egl_tests/
EGLIOSurfaceClientBufferTest.cpp:16:10:
fatal error: 'IOSurface/IOSurface.h' file not found
include <IOSurface/IOSurface.h>
^~~~~~~~~~~~~~~~~~~~~~~
../../third_party/angle/src/tests/egl_tests/
EGLIOSurfaceClientBufferTest.cpp:16:10:
note: did not find header 'IOSurface.h' in framework 'IOSurface'
(loaded from '/opt/s/w/ir/cache/xcode_ios_12a7209.app/Contents/
Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
iPhoneOS14.0.sdk/System/Library/Frameworks')
Bug: angleproject:5417
Change-Id: I60198bbacc0726a9842fe37fad5b10b9afff37a4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2628129
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|