|
bd276beb
|
2021-02-12T10:58:43
|
|
Vulkan: Don't wait on unflushed sync objects without a Context
The app "Car Parking Multiplayer" issues a ClientWaitSync() command
without having already flushed the sync object and without an active
context. We should return TIMEOUT immediately rather than attempting to
wait on the sync object, since we can't flush it and it'll never be
signalled.
Bug: angleproject:5613
Bug: angleproject:5656
Test: MultithreadingTest.NoFlushNoContextReturnsTimeout
Change-Id: Ieaf675ca9144f9c851c73b9ca399daaf4ed1cd0f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2693375
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
7e990ef4
|
2021-02-16T18:15:43
|
|
Clean ups to generate_entry_points.
Switches to Python 3 support. Made a change to run_code_generation to
support this. Affects several generators. Also updates the generator
to make a few other small cleanups.
Bug: angleproject:5653
Change-Id: I045173c9ca85947c4eac22285701032c09f4c8d0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2699187
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
51c5137a
|
2021-01-05T16:58:50
|
|
Capture/Replay: Add texture buffer support
Test: Fortnite MEC
Bug: b/180418810
Bug: angleproject:5658
Change-Id: I2025f0b88f7488a827159029e6d04a4cf4e9a1b8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2611558
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
7ae8531b
|
2021-02-17T15:20:07
|
|
Vulkan: Fix crash with 0-sized element buffer
VertexArray::syncState syncs all dirty bits, including
DIRTY_BIT_ELEMENT_ARRAY_BUFFER even for draw calls that don't use this
buffer, such as glDrawArrays. If the element buffer is given 0 size,
this caused a crash in the Vulkan backend.
Bug: chromium:1172577
Change-Id: I02d78c9660c07b896f7403867b648901478251fe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2701831
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
907a3cee
|
2021-02-17T08:07:45
|
|
Vulkan: Add support for EXT_shader_framebuffer_fetch_non_coherent
EXT_shader_framebuffer_fetch_non_coherent is implemented using subpass
input attachments. The extension will be enabled in a follow up change
that adds required changes to the Vulkan translator.
Bug: angleproject:5454
Test: FramebufferFetchNonCoherentES31.*Vulkan
Change-Id: Ic73c66a476c4a21db5269431166a198841f1dc0c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2598059
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d6e0b0ca
|
2021-02-17T15:59:52
|
|
Remove a debugging code in renderergl_utils.cpp
Bug: chromium:1171371
Change-Id: I7cf00edbc337150e40e7afb4f6c5fc88862f0734
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2700332
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
2cb66715
|
2021-01-19T12:42:38
|
|
EGL: Merge DisplayAndroid into DisplayEGL.
These two classes have a lot of duplicated code for no reason.
Bug: angleproject:5563
Change-Id: Ia9d8efeb50f3e52ffb1df6a6e462efdb20fd4a9a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2636678
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Peng Huang <penghuang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
64b5b3d3
|
2021-02-12T17:31:58
|
|
Vulkan: Further restrict enabling LINE_RASTERIZATION_MODE_BRESENHAM
The app "Car Parking Multiplayer" enables GL_SAMPLE_ALPHA_TO_COVERAGE,
which leads to a VVL error when LINE_RASTERIZATION_MODE_BRESENHAM is
also enabled:
VUID-VkGraphicsPipelineCreateInfo-lineRasterizationMode-02766:
The Vulkan spec states: If the lineRasterizationMode member of a
VkPipelineRasterizationLineStateCreateInfoEXT structure included in the
pNext chain of pRasterizationState is
VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT or
VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT and if rasterization
is enabled, then the alphaToCoverageEnable, alphaToOneEnable, and
sampleShadingEnable members of pMultisampleState must all be VK_FALSE.
This CL adds the additional checking to
GraphicsPipelineDesc::initializePipeline() to ensure those conditions
are met before setting lineRasterizationMode to
VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT.
Bug: angleproject:5613
Test: StateChangeTest.AlphaToCoverageEnable
Change-Id: Ie2286078f6916c01a19ae6f932321a86619bd4e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2694094
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
3c28b2a0
|
2021-02-10T16:49:32
|
|
Vulkan: Remove render pass check from setupDraw()
... and move it to handleDirtyGraphicsRenderPass.
Bug: angleproject:5528
Change-Id: I416b2fedb1cd924d04fa739aecb65193fd845f6b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2686441
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e8c0aa81
|
2021-01-26T23:40:36
|
|
Vulkan: Clean up transform feedback extension pause/resume
1. The xfb counter buffer barrier issued was wrong, following a typo in
the spec. This barrier is now correctly issued using the usual
barrier APIs.
2. A mechanism was added to automatically pause/resume transform
feedback when a program pipeline needs to be rebound. This is
incorrect as it misses the xfb counter buffer barrier. The render
pass is broken instead if transform feedback is active/unpaused and
the program pipeline is changed.
3. The transform feedback counter buffers are now disposed of when
transform feedback is ended. This avoids an unnecessary barrier that
this change would have otherwise incurred (and hence render pass
break) in Manhattan which repurposes the same transform feedback
object.
Bug: angleproject:5528
Change-Id: I1ffe8b4b8975645ba43afd70e9cdbb0765529da5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2651647
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
60b03e62
|
2021-02-16T14:31:19
|
|
Create getRotatedExtents() and related methods
Created:
- WindowsSurfaceVk::getRotatedWidth()
- WindowsSurfaceVk::getRotatedHeight()
- RenderTarget::getRotatedExtents()
- ImageHelper::getRotatedExtents()
- ImageHelper::getRotatedLevelExtents2D()
Note: The FramebufferVk class doesn't use any of these methods
Bug: b/175793022
Change-Id: I64395688bfdb172d32853763743fc5f266a6b792
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2686102
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
741f4039
|
2021-02-16T17:00:31
|
|
Fix spelling in capture owners
Bug: None
TBR: geofflang@chromium.org
Change-Id: I60fd6bc18d8c86087d7640eb1145d575c4008edb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2697986
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
2b69462e
|
2021-02-12T15:55:00
|
|
Vulkan: Consolidate image format list initialization code
HardwareBufferImageSiblingVkAndroid, RenderbufferVk, SurfaceVk
and TextureVk all had similar code to initialize VkImage with
VK_KHR_image_format_list extension support. Consolidate all of
them into a helper.
Bug: angleproject:5520
Change-Id: Ib7ac582a35a26c0da15879e688bcaf0c2a92ea87
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2692641
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
d7037aa2
|
2021-02-11T14:35:30
|
|
Vulkan: noop glMemoryBarrier(CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT)
CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT requires a memory barrier: shader
buffer write -> host read. According to the spec, the data is only
available after a call to glFinish or wait on sync:
> The application must call MemoryBarrier with the
> CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT set and then call FenceSync with
> SYNC_GPU_COMMANDS_COMPLETE (or Finish). Then the CPU will see the
> writes after the sync is complete.
When a buffer is written to by the GPU, ANGLE calls
onHostVisibleBufferWrite(), which ensures a "memory write -> host read"
barrier is issued at the end of the command buffer.
Additionally, persistently mapped buffers use
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, so there's no need for a call to
vkInvalidateMappedMemoryRanges.
As a result, there's nothing necessary in ANGLE to do for this barrier
bit. Note that should persistenly mapped buffers start using
non-coherent memory, this barrier should imply a call to
vkInvalidateMappedMemoryRanges for the persistently mapped buffers.
Bug: angleproject:5070
Change-Id: Iaeae019dadfa659a47d2dac41c0c09f1c15e584b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2689380
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
79ae52dd
|
2021-02-11T14:18:41
|
|
Vulkan: Fix missing visibility barrier for host-visible buffer writes
See https://chromium-review.googlesource.com/c/angle/angle/+/1661252 for
context. This was accidentally broken during the command graph rework.
This will eventually be validated by syncval. See
https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/2329.
Bug: angleproject:5070
Change-Id: Ic16fa900e554d46e54b42fc3fbe0f96d5327fa0f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2689379
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
30622479
|
2021-02-16T12:33:40
|
|
Vulkan: Fix crash with deferred clears and MSRTT
The following scenario was mishandled:
- MSRTT draw with an unresolve operation (i.e. has two subpasses)
- Deferred clear
- Flush deferred clear with MSRTT framebuffer not needing unresolve
(i.e. has one subpass)
Bug: chromium:1178693
Change-Id: If3548e99897d698d61dfafbe9f86193723d06e5a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2697648
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e153063d
|
2021-02-16T18:34:25
|
|
Add timvp to ANGLE, vulkan and capture owners.
Bug: None
Change-Id: Ic23994efa3f4184c471eb21e7f3bb039f6b45057
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2697947
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
9c450bee
|
2021-02-12T14:23:42
|
|
Use the default build target vulkan_memory_allocator
Bug: chromium:1170339
Change-Id: I00c868e205a16a889e193383c35b2ed42d8a61ef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2693028
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ca6573eb
|
2021-02-13T21:21:26
|
|
Vulkan: Fix dirty bit bug when closing RP in setupDraw()
Bug: angleproject:5644
Change-Id: I2e1fa8c4db8eba1beb74c83dcb24cbe2e70ddca6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2694076
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
031dd5c5
|
2021-02-11T14:56:43
|
|
Vulkan: Add fast path for pack buffer copies
When vkCmdCopyImageToBuffer is possible, it is used to implement
glReadPixels with PBO instead of a CPU readback.
A few tests are added to verify synchronization between pack/unpack and
compute shader writes.
Bug: angleproject:5070
Change-Id: Ia5da0feb31348f6b52d164b973ff95e2a0510582
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2691466
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2b15062b
|
2021-02-11T12:52:39
|
|
Allow more formats as texture attachments in GLES 1
This change allows all formats in the GLES 1.1 spec, table 3.4
to be used as a texture attachment.
Also normalize values passed into glColorPointer if the format
is of type GL_UNSIGNED_BYTE.
These changes are needed for the android app, Kick the Buddy
to render correctly.
Bug: angleproject:5599
Tests: *DrawTextureTest.ColorArrayDifferentTypes*
*FramebufferObjectTest.TextureObjectDifferentFormats*
Change-Id: Ie9d27fc24d94106651262cf9b2080dd3f05af1c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2690920
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
19e4cf86
|
2021-02-09T21:49:42
|
|
Capture/Replay: Some fixes for capturing WebGL
Bug: angleproject:5635
Change-Id: I756471fbad34660c494fb7f9ba1144accd5c08b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2686119
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
12990d73
|
2021-02-11T11:37:03
|
|
GetBitSet now uses BitSetArray instead of IterableBitSet
Remove the now unused IterableBitSet class.
Bug: angleproject:3877
Change-Id: I161e5d062c8183e30a7eb9040f3018116fe6e69e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2683494
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
baf64903
|
2021-02-03T14:02:55
|
|
Allow small compressed mip level copies
Update ValidateCopyImageSubDataBase() to take into consideration if the
entire mip level is being written, even if the size of the mip level is
smaller than the compressed block size.
This also uncovered a bug in ImageHelper::initializeNonZeroMemory()
where the image extents are not at least as large as the compressed
format block size:
VUID-vkCmdCopyBufferToImage-imageExtent-00207
This CL adds isAllocateNonZeroMemoryEnabled() to allow skipping the test
when that feature is enabled while that bug is chased.
Bug: angleproject:5592
Bug: angleproject:5634
Bug: angleproject:5643
Test: Texture2DTestES3.CopyCompressedImageMipMaps
Change-Id: I0381e0d3490fb148604b61dc3bae8f96ba8b5f8e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2673069
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a9de5d99
|
2021-02-04T20:44:15
|
|
Vulkan: setAllDefaultUniformsDirty after createPipelineLayout
The default uniform descriptor set is reset while recreating the
pipeline layout during handling of immutable samplers and then is
never re-allocated and bound before the next draw.
The call stack to allocate the program uniforms descriptor set:
ProgramExecutableVk::allocUniformAndXfbDescriptorSet
ProgramVk::updateUniforms
ContextVk::setupDraw
ContextVk::drawArrays
Context::drawArrays
Unfortunately, this occurs before the pipeline layout is reset (and the
descriptor sets are reset) due to the presence of an immutable sampler:
ProgramExecutableVk::reset <<---- mDescriptorSets.fill(VK_NULL_HANDLE);
ProgramExecutableVk::createPipelineLayout
ContextVk::updateActiveTextures
ContextVk::invalidateCurrentTextures
ContextVk::syncState
Context::syncDirtyBits
Context::prepareForDraw
Context::drawArrays
This CL calls setAllDefaultUniformsDirty() for the Program/PPO to ensure
the default uniforms descriptor sets are re-allocated and re-bound
before the next draw command.
Bug: b/178424566
Bug: angleproject:5624
Test: CtsCameraTestCases
Change-Id: If54a9f2cc09809a5103bc3eac641c77f56362229
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2677385
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
46203e32
|
2021-02-10T18:41:06
|
|
Workaround context lost for Adreno 42x and 3xx
Bug: chromium:1171371
Change-Id: I8c2e13f3f35bf1f780526ad1d9d483226ce5ea34
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2688901
Commit-Queue: Peng Huang <penghuang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
1094d324
|
2021-02-12T03:14:38
|
|
GL: Add allow_etc_formats workaround
Enable ETC2/EAC formats on newer Intel GPUs.
Bug: angleproject:1552
Change-Id: I240b07d6d81d48e1e03dfcd56aad6fa9f1d7817f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2690952
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
8b624c6d
|
2021-02-05T15:33:52
|
|
Use constexpr initializer list for bitsets
Allows setting/resetting multiple bits to be coalesced into one
operation.
Bug: angleproject:5528
Change-Id: Ibf2dff8c81441a75c268d95066d23da1b2a3c810
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2678885
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e281fbb0
|
2021-02-11T15:37:43
|
|
Revert "GL: Cache the results of glGetString"
This reverts commit 27906e9c9f8a6767fb8af22d9f80264d8672243a.
Reason for revert: Causes failures in mac_optional_gpu_tests_rel
Original change's description:
> GL: Cache the results of glGetString
>
> To reduce the amount of queries to the driver, we can cache the
> results of glGetString. On Mac, we need to invalidate this cache
> on GPU switch.
>
> Bug: chromium:1173672
> Change-Id: I039172068aec35034a87881a8804f52c080ce4ce
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2676882
> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
TBR=geofflang@chromium.org,jonahr@google.com,jmadill@chromium.org
Change-Id: I5799c5d287dd01b946446bd66d4c89aef6756d3a
Bug: chromium:1173672
Bug: angleproject:5639
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2690145
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5af5808b
|
2021-02-10T13:06:36
|
|
GL: Do not support ETC1 textures on Desktop GL
As pointed out in WebGL issue 3014, ANGLE has been exposing ETC1
texture support on desktop GL when GL_ARB_ES3_compatibility or GL
4.3+ is available. However, it is very likely that none of these
platforms actually have hardware support for this format, and are
only supporting it for compatiblity with ES3. We shouldn't expose
this so that desktop clients can use a better format instead.
Bug: chromium:1048244
Change-Id: I53837a05719d0ca3ff390b5b45b61a1f9c72a535
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2687466
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
807d1ad7
|
2021-02-10T23:30:56
|
|
Metal: fix incorrect default viewport size with contentsScale>1
The correct metal layer's drawable size should be calculated after
mMetalLayer.get().contentsScale is set during initialization to allow
initial viewport to be computed properly on front-end side.
Bug: angleproject:2634
Change-Id: If278f40c0b6800bbe12fb5ea94986f728381bc00
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2687300
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
45a493ea
|
2021-02-05T13:48:48
|
|
Vulkan: Use a dirty bit to start the render pass
Some dirty bits need to run before the render pass starts. An upcoming
change for example needs to break the render pass when the program
pipeline is changed while transform feedback is active. Another
upcoming change may need to do the same based on a preceding
glMemoryBarrier.
This change adds a new dirty bit to start the render pass after some
dirty bits have already been processed.
Bug: angleproject:5528
Change-Id: I993c9efefed4c8fee268b218a8dd66a582d4e7cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2678863
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
dccec125
|
2021-02-08T16:21:30
|
|
Vulkan: Clear mCurrentGraphicsPipeline after createPipelineLayout()
Set mCurrentGraphicsPipeline = nullptr when the pipeline layout is
recreated if immutable samplers are used to prevent a use-after-free.
For a fuller discussion on why this is necessary, see:
Vulkan: clear mCurrentGraphicsPipeline during invalidate |
https://chromium-review.googlesource.com/c/angle/angle/+/2647746
Bug: b/178424566
Bug: angleproject:5624
Change-Id: I70679bda85cd587dbd8893a4576ee5d33aee2b70
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2683041
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
393c44f1
|
2021-02-01T15:45:24
|
|
EGL: Trim requested config parameters to EGL.
ANGLE requests a config with several uneccessary parameters.
I suspect these parameters are causing issues in the wild
where eglChooseConfig fails.
Try requesting ES3 then fall back to ES2 configs.
Skip config caveats, floating point configs and multisample
configs, we provided the default parameters.
The resulting config is very similiar to the one Chrome
requests in gl_surface_egl.cc
Bug: chromium:1173161
Change-Id: Ifa78ff8081e3d86e823036981e1e2b5f8f751fed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2665888
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Peng Huang <penghuang@chromium.org>
|
|
0e8f7727
|
2021-02-10T15:03:10
|
|
Fix crash in gl::Context::unMakeCurrent()
gl::Context's ctor may need to create a native EGL context and it can
fail. If it fails, the context->mImplementation will be nullptr, and
it will cause crash elsewhere. Fix the problem by checking it after
create a gl::Context instance.
Bug: chromium:1171371
Change-Id: Ic57f088dcbf9716b85fee92bf54d557eb94642d0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2686439
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
6fc10389
|
2021-02-10T11:20:16
|
|
Move Frame Capture to capture/ folder.
This will make it easier to trigger the trace tests when these files
are modified.
Bug: angleproject:5530
Change-Id: I5f0c450595b380cd91b20c1477dc1845bee35dd9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2686120
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
27906e9c
|
2021-02-04T16:54:56
|
|
GL: Cache the results of glGetString
To reduce the amount of queries to the driver, we can cache the
results of glGetString. On Mac, we need to invalidate this cache
on GPU switch.
Bug: chromium:1173672
Change-Id: I039172068aec35034a87881a8804f52c080ce4ce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2676882
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
a8a2a71b
|
2021-02-01T17:18:18
|
|
Vulkan: Support y-flip with no driver support.
We can reuse the surface rotation matrix code to do the y-flip.
This requires the SPIR-V transformation support. Because not
all rotations are encoded into the table we can only support
rotation with the driver support for y-flip (currently).
Includes some very minimal regression testing. This work is
targeted towards supporting vk-portability implementations
which are not as up-to-date with Vulkan features.
Bug: angleproject:5596
Change-Id: I270fa1efc03267551d28df33ddac9972e1343d60
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2665892
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
80308e20
|
2021-02-08T16:16:36
|
|
Vulkan: Match min/magFilter to chromaFilter
VkSamplerCreateInfo.magFilter and minFilter must match
VkSamplerYcbcrConversionCreateInfo.chromaFilter.
VkSamplerYcbcrConversionCreateInfo.chromaFilter is currently
hard-coded to VK_FILTER_NEAREST in
HardwareBufferImageSiblingVkAndroid(), so force magFilter and minFilter
to VK_FILTER_NEAREST in SamplerDesc::init() if an externalFormat is
being used.
Bug: b/178424566
Change-Id: Ia1f7fc21e3faa4e57f837ed3ae70608134150aea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2683038
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
bb062070
|
2021-02-09T15:30:04
|
|
Vulkan: Fix updates to element buffer
If glBufferSubData results in a new vk::BufferHelper allocation,
VertexArrayVk::mCurrentElementArrayBuffer needs to be updated.
VertexArrayVk::syncState was working under the assumption that
DIRTY_BIT_ELEMENT_ARRAY_BUFFER_DATA cannot result in a vk::BufferHelper
pointer change.
This assumption was broken in
https://chromium-review.googlesource.com/c/angle/angle/+/2204655.
Bug: b/178231226
Change-Id: I969549c5ffec3456bdc08ac3e03a0fa0e7b4593f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2685439
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c3887991
|
2021-02-03T13:52:32
|
|
Capture/Replay Don't capture invalid commands
Special Forces Group 2 issues invalid OpenGL ES commands, which are
currently captured by ANGLE's frame capture. These invalid commands
generate errors on both ANGLE and the native driver, causing the test to
be marked as "failed".
This CL updates FrameCapture::captureCall() to not capture invalid
commands, which prevents replay errors. However, the other work related
to the call is still performed, including:
- maybeOverrideEntryPoint()
- maybeCapturePreCallUpdates()
- maybeCapturePostCallUpdates()
This work is necessary, otherwise calls that update necessary members
like FrameCapture::mClientArraySizes may be missed, causing leading to
compilation failures related to missing symbols. For example,
mClientArraySizes is updated via the following call stack:
captureClientArraySnapshot()
maybeCaptureDrawArraysClientData()
maybeCapturePreCallUpdates()
It's necessary for mClientArraySizes to contain non-zero values, so that
the variable gClientArrays[] is output by WriteCppReplayIndexFiles().
Otherwise a compilation error will occur when it's referenced by a
glVertexAttribPointer() call in the capture.
Bug: angleproject:5592
Change-Id: I625a074e035eb75267d8384dc61ce6de1717af91
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2673068
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
f6784006
|
2021-02-08T16:39:04
|
|
Modify data type of ActiveTextureMask and ImageUnitMask
ActiveTextureMask and ImageUnitMask need more than 64bits. We
can now use the BitSetArray datatype and avoid the perf penalty
of using std::bitset
Bug: angleproject:3877
Tests: angle_perftests.exe --gtest_filter=TexturesBenchmark*
Change-Id: Ic82e09d1aa2c1904d06ad48ba6200f35896665ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2664734
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f1cbcaba
|
2021-02-07T13:37:49
|
|
Use const reference when possible
When retrieving BitSet masks return a const reference
of the mask to avoid invoking the copy-constructor.
Bug: angleproject:3877
Change-Id: I9f724a4864f3db17aa6f1ab74b81053c65313764
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2681767
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
ad60c22d
|
2021-02-09T13:22:09
|
|
Add an option to use "metal" as ANGLE_DEFAULT_PLATFORM.
Bug: angleproject:5632
Change-Id: Id470993a01609ace851372b1bbe01fee8cde274b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2684635
Commit-Queue: Stephen White <senorblanco@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
54242b8f
|
2021-02-04T12:20:57
|
|
Vulkan: Leverage ExtendedDirtyBitType
Expand ExtendedDirtyBitType to include bit for clip distance,
mipmap generation hint and shader derivative hint. Handle these
dirty bits in ContextVk::syncState
Bug: angleproject:5611
Change-Id: If8d1646334e737f81ac72cdddb8fe3ba613b4b94
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2676173
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4968f6f2
|
2021-02-04T16:40:36
|
|
Move getRendererDescription from ContextImpl to DisplayImpl
The other backend description strings are in DisplayImpl. This will
help with caching the result of glGetString in the GL backend. Also
Update the getters to not be const in order to allow caching.
Bug: chromium:1173672
Change-Id: I43df35688762b23429f47f169c04482cf4cd089a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2676881
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
e174c358
|
2021-02-04T15:14:10
|
|
GL: Consolidate glGetString calls
First step for cacheing the result of glGetString calls is mostly
cleanup.
Bug: chromium:1173672
Change-Id: I47281a09b9bd5859655d16376977a6eabcfbb3c4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2676203
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
580961fb
|
2021-02-02T10:27:48
|
|
Micro-optimizations for setUniform*
This CL improves the setUniform* call for the case where the
niform component size is 4. In that case, we can issue a single
memcpy. This reduces the average wall time of setUniform4fv in
our test app by ~20%.
Test: Run the dEQP shader tests.
Bug: b/179160884
Change-Id: I9352f6188bc87449719aac522d1a2323adf7fca5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2667592
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Doug Horn <doughorn@google.com>
|
|
ce540d8c
|
2021-02-01T17:38:10
|
|
Create MSAA-swapchain windows' VkImages differently
The actual VkImage needs to have rotated extents, but the ImageHelper
needs to have non-rotated extents in order for the rest of ANGLE's
pre-rotation to work.
Bug: b/175793022
Change-Id: I6fa25ab8c636886787ac50b194e566111308f30b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2666514
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
df48c027
|
2021-02-02T13:34:29
|
|
Vulkan: Don't request aliased FB attachments.
This produces undefined pixel values in GL. We can also return
UNSUPPORTED if required and still be conformant. This fixes an
assert in the gfx-rs portability implementation.
Bug: angleproject:5601
Change-Id: Ifb84ad9b5e2365360a81cddba766b0bea81f2d51
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2668311
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
18a5e7a6
|
2021-02-04T11:19:21
|
|
Enable packing extensions for the Vulkan backend
The following extensions are ES2 extensions which
become core in ES3:
- EXT_unpack_subimage
- NV_pack_subimage
Since the Vulkan backend already fully supports ES3,
it should be ok to enable these for ES2 contexts.
This fixes all YUV related viz_unittests failures when
using SwANGLE with the passthrough command decoder.
Bug: chromium:1060139
Change-Id: I24ffd7a58f576799b93fe91e6be4032ca3175eda
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2676201
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
|
|
54367a3e
|
2021-02-02T19:31:33
|
|
Capture/Replay: Support glCopyImageSubData with compressed formats
Special Forces Group 2 uses glCopyImageSubData() to copy compressed
texture data, which requires special handling for ANGLE's frame
capture since compressed texture data can't be read back.
To support this, when glCopyImageSubData() is called with textures using
compressed formats, a new mCachedTextureLevelData entry will be created
for the destination texture which is a copy of the source texture data.
Note that this implementation only supports copying the full level data.
http://anglebug.com/5604 will track adding support for partial level
copies if an app requires that in the future.
Bug: angleproject:5592
Bug: angleproject:5604
Change-Id: Ibce13f91f838fd691269c796fbeb5b9c6133c6aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2669955
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
89f50584
|
2021-02-03T08:51:04
|
|
Vulkan: Add ExtendedDirtyBitType bitset
ExtendedDirtyBitType qualifies DIRTY_BIT_EXTENDED dirtybit.
Clip control code path can now set the appropriate ExtendedDirtyBitType
when there is a change in state. Also remove the ClipSpaceOrigin member
in the Vulkan backend that cached front-end state.
Bug: angleproject:5471
Tests: dEQP-GLES2.functional.clip_control.*
Change-Id: I8dbb509ef940e7905439d32483fd67a8fc171a6e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2673062
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
6cc845bb
|
2020-12-07T18:14:50
|
|
Vulkan: Add support for EXT_blend_func_extended
This implementation utilizes vulkan's dualSrcBlend
feature. Expose this extension if the underlying vulkan
backend allows the use of this feature.
Test: angle_end2end_tests --gtest_filter=EXTBlendFuncExtendedDrawTest*
Bug: angleproject:5074
Change-Id: I7d2f611df89d65e5cac35158cb5f41a0ebd58aae
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2593151
Commit-Queue: Brandon Schade <b.schade@samsung.com>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4a09df13
|
2021-02-02T17:52:56
|
|
Vulkan:Fix wrong outputCount of emulated RGB copies.
The output count of shaderParams equals componentCount
divided by Ed. To avoid losing the last data,replace
division with UnsignedCeilDivide function.
Bug: angleproject:5598
Change-Id: I079d72f4eefa3d6b0f5d80ada25829fea673410c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2666869
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7e81056a
|
2021-02-01T11:16:14
|
|
Vulkan: Support integer type incomplete texture
Support both signed and unsigned integer type incomplete textures.
Bug: angleproject:5502
Bug: angleproject:4432
Tests: IncompleteTextureTestES3.*IntegerType*
dEQP.KHR_GLES31/core_sample_variables_mask_rgba8*i_*
Change-Id: Ic8c972aac0ca8589b26333b66dd0cc5fb5134043
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2613245
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
572afd90
|
2021-01-29T22:45:29
|
|
Disable SH_SCALARIZE_VEC_AND_MAT_CONSTRUCTOR_ARGS workaround.
It causes incorrect compilation of some shaders. The original graphics
driver bugs that motivated enabling it have been fixed, at least on
one of the platforms (macOS).
Tested with new WebGL conformance test in
https://github.com/KhronosGroup/WebGL/pull/3214 .
Bug: chromium:1165751
Change-Id: Iee9747769ca918aab143592d6cf158ce02a75ee0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2661024
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
4a426e1f
|
2021-02-01T12:10:46
|
|
Vulkan: Add missing variable inits to ContextVk.
This was preventing testing with the viewport flip disabled.
Bug: angleproject:5596
Change-Id: I5cc39eb2e1b431625f2f1498ab73828961af42ee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2664249
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0d175f30
|
2021-01-20T16:34:40
|
|
Tests: Add eFootball PES 2021 trace
Test: angle_perftests --gtest_filter=TracePerfTest.Run/*efootball_pes_2021*
Bug: angleproject:5564
Bug: angleproject:5517
Change-Id: I9738876b6a6c365984cecce01f2f09e0260b41cc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2656989
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
b15de455
|
2021-01-27T13:58:42
|
|
Remove extension check in validation of ES3.2 entry points
Bug: angleproject:3582
Change-Id: I563c6d77b825afd44809db0d08dc4842a5f93b6a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2653914
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0be050a4
|
2020-09-23T15:12:56
|
|
Pass GL_VERSION info through ANGLE's GL_RENDERER string
Chrome needs ANGLE to pass through the underlying driver vendor and
version, which cannot always be determined by the SystemInfo library.
This is done by construction GL_RENDERER in the frontend through
combining GL_VENDOR, GL_RENDERER, and GL_VERSION from the backends.
Example changes are in the doc:
https://docs.google.com/document/d/1p0dvrLlu8NKhO-RCU5gqlQ_LvcQj-ZqhvfwSk1n3Sz8/edit?usp=sharing
Bug: chromium:1126526
Bug: chromium:1131248
Bug: chromium:1134669
Bug: chromium:1169861
Change-Id: Ia618ebcd7f3caaeb376b4b6a03446732efdaeecb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2427383
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
61f60161
|
2021-01-27T13:57:13
|
|
Vulkan: Set missing geometry/tessellation limits
Bug: angleproject:5557
Bug: angleproject:5579
Change-Id: Idb8ebc0c3beee8f273d0df3b4e0d84722a8590b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2653912
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
c6a8bc4a
|
2021-01-30T14:58:22
|
|
Fix a crash in DynamicBuffer::~DynamicBuffer()
The crash is because mBufferFreeList is not moved from the rhs
value for DynamicBuffer's move constructor.
Bug: chromium:1170339
Change-Id: I7d41b775ab56af8fa9412369d5a4008f59da3053
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2661615
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
eae262e7
|
2021-01-27T13:56:49
|
|
Vulkan: Fix image layout barriers for tessellation shaders
Also fixes a bug where invalid stages may be specified for example if
AllGraphicsReadOnly or DepthStencilReadOnly layouts are used and
geometry or tessellation shaders are not supported by the
implementation.
Bug: angleproject:5557
Change-Id: Ia25a6aec8138c67701c63da65783263d8a7bda27
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2653911
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
6d86a0fe
|
2021-01-29T11:08:04
|
|
Fix mActiveImageShaderBits not updated in PPO's executable
Allows the backend to rely on this bitset always being valid, instead of
working around the bug.
Bug: angleproject:5587
Change-Id: I25e1304c0e5e34b5fc1677a819315574603ed034
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2658885
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
d5ca645e
|
2021-01-29T13:29:49
|
|
Capture/Replay: Set uniform buffer offset alignment
During capture, we need to set a common uniform buffer offset
alignment so the trace will be more portable. The offset used
by the trace needs to be divisible by the device's actual value
for GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT.
Empirically I've seen the following values supported by devices:
ARM (16), Intel (32), Qualcomm (128), Nvidia (256)
Test: Manhattan 3.1 MEC
Bug: angleproject:5589
Change-Id: I071b6ae7be4c827eb8df4a8b39db901226d0f00b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2659849
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
37a0dced
|
2021-01-28T17:52:05
|
|
Vulkan: Disable clip space transform based on EXT_clip_control
When depth is set to "ZERO_TO_ONE_EXT" using EXT_clip_control
API, don't transform the z position in shader since it now matches
Vulkan's depth range. Toggle transformPositionToVulkanClipSpace
accordingly.
Bug: angleproject:5471
Tests: dEQP-GLES2.functional.clip_control.depth_mode_zero_to_one
Change-Id: I7e715cb3c98cecf5aaa5cdc3822a3a83bae9c720
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2615864
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a5ab7974
|
2021-01-28T12:32:10
|
|
Turn on vulkan backend for android ndk level < 26
Fixes two issue for build Vulkan backend for android ndk level < 26,
* Disable Vulkan validation layers for android ndk level < 26
* Share vulkan memory allocator implementation with chrome to avoid
duplicated symbols link errors.
* Only run vulkan backend test with Android P or newer
Note: This change will break android-binary-size try bot, we need to
update expected_static_initializer_count to 4 at [1] while rolling this
change into chromium.
[1] https://source.chromium.org/chromium/chromium/src/+/master:chrome/android/static_initializers.gni;l=19?q=expected_static_initializer_count&ss=chromium%2Fchromium%2Fsrc
Bug: chromium:1170339
Change-Id: Idb9238d8f339724c4d8f9ac136305b95ff06fae4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2656980
Commit-Queue: Peng Huang <penghuang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b4fd4628
|
2021-01-27T15:56:58
|
|
Revise WebGL's shaderSource validation.
Per discussion in the WebGL working group, shaderSource no longer
generates INVALID_VALUE for sources containing characters outside the
ESSL character set. Compilation and/or linking is still specified to
fail when illegal constructs are used.
With this change, https://github.com/KhronosGroup/WebGL/pull/3206
passes with the passthrough command decoder.
Revise WebGL compatibility tests to follow the new rules.
Bug: chromium:1171506
Change-Id: Id132e0b64fa94b373f2732acf2a7071f38f0d4ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2654264
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
80a4223e
|
2021-01-28T17:51:31
|
|
Vulkan: Handle changes to viewport when clip origin is modified
The expected view port is different from current viewport translation
when the clip origin is the upper left. So now, it has four different
view port translations based on clip origin and y-flip of framebuffer.
- add query and state management for EXT_clip_control
- add dirty bit for clip control
- change viewport, scissor and cull face when clip origin changes
Bug: angleproject:5471
Tests: dEQP-GLES2.functional.clip_control.*
Change-Id: I78dc752c3287b09f25496034e0d0d2724138010c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2615863
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6cfbe252
|
2021-01-27T13:42:55
|
|
Fix geometry/tessellation checks to account for ES3.2
Bug: angleproject:5557
Bug: angleproject:5579
Change-Id: Iae54940cefb5ba516dc173413b35b646e1968ba6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2653906
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
74f7be6d
|
2021-01-28T14:04:47
|
|
Vulkan: Rectify typo in EXT_texture_format_sRGB_override
The extension string for EXT_texture_format_sRGB_override was
missing the "format" substring.
Bug: angleproject:4561
Change-Id: I19788191b589b64639b036d2bb54508077fca7e8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2658355
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|