|
bdedf146
|
2022-01-14T13:35:30
|
|
TextureVk: Implement getCompressedTexImage.
Extend ImageHelper::readPixels to support compressed formats.
Implement readPixelsForCompressedGetImage.
Add compression tests to GetImageTest.
Implement CaptureGetCompressedTexImageANGLE_pixels in
capture_gles_ext_params.
Test: angle_end2end_tests --gtest_filter="GetImageTest*.CompressedTexImage*"
Bug: angleproject:6177
Change-Id: I6e5b6d746b9c6cc9b885fa44f75a985660d8fb58
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3452110
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
5f3f13f6
|
2022-02-15T13:39:57
|
|
Vulkan: Invalidate D/S for multisampled EGL configs too
Regardless of whether the EGL config is MSAA, depth/stencil should be
invalidated at the end of the last render pass. Originally,
optimizeRenderPassForPresent was gated on !MSAA because it was only
affecting the layout of the color attachment.
Bug: angleproject:7007
Change-Id: I7cd5497a9da6eeb168c3b55b91f2ff6f5674adb6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3465498
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ed39d49a
|
2022-02-14T11:32:12
|
|
Metal: Fix Hang in WebGL CTS Occlusionquery_strict test
If a query was just in progress and then we switch contexts
a command buffer, which has already been enqueued, is not
committed. Later, other command buffers are enqueued and
committed and Metal hangs, waiting on the uncommitted but
previously enqueued command buffer.
The solution was to not enqueue a command buffer early
but instead, enqueue just before committing.
Bug: angleproject:6752
Change-Id: I62c07ca3d1ed98cc5b27c8c4af405fdedff922b8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3461419
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
760253ce
|
2022-01-27T07:24:27
|
|
Vulkan: replace uniforms FastIntegerMap with FastUnorderedMap
This is in preparation for removing FastIntegerSet and FastIntegerMap.
Bug: angleproject:6954
Change-Id: Ifa0a5c5ca39c705a9f774558bb6cad72ed8f0bc1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3420952
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
93186337
|
2022-02-14T11:15:04
|
|
Vulkan: Check Serial is valid in SyncHelperNativeFence
The change 6d94471bc70 incorrectly checked for validity of mUse
in the clientWait and getStatus methods. mUse is valid once the
constructor is complete, instead check for validity of the serial.
Bug: angleproject:2517
Test: EGLSyncTest.AndroidNativeFence_*
Change-Id: Id71eddc4ecf27cea487be56cb362afd68db1fd65
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3465455
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
904a4797
|
2022-02-15T10:58:07
|
|
Python3 upgrades
Required to run run_code_generation.py on gLinux.
Bug: angleproject:5707
Change-Id: Ifb416be6f89eb67faf43e7de66c6f9a92a5eb5e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3465514
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
3adace15
|
2022-01-10T22:53:19
|
|
Don't expose detailed driver version info to webGL
WebGL's GL_RENDERER string now only includes basic version information
on all backends. This is controlled through a bool passed through
getBackendVersionString.
Bug: angleproject:6777
Change-Id: Ie4e3d91d22c96f175a8139fac1c66e985ed9e1b7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3380263
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Sean Risser <srisser@google.com>
|
|
cf4b50c5
|
2022-02-14T14:12:13
|
|
Vulkan: Retain images before changeLayoutAndQueue
This change d9882db5f694c1c added retain calls for images in some
places. Such retains are needed for textures and renderbuffers as well.
Bug: angleproject:4628
Change-Id: I6b08033870f82851cc62a123bfd9c780812f17b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3462801
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e5045587
|
2022-02-11T22:29:55
|
|
Debug Overlay Demo
Add a new debug overlay to display texture descriptor set cache size
Bug: angleproject:6976
Change-Id: I8bb2d88d4550947f1c6cbd732f936e3e060b1b04
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3457356
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
527ceb73
|
2022-02-07T18:25:02
|
|
Vulkan: Switch XFB counter buffer to suballocation
Bug: b/205337962
Change-Id: I2e26fa3ab150b858f07665459fa108440af988d5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3402333
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
a0bc9dab
|
2022-02-10T13:40:18
|
|
Vulkan: Switch stencilBlitResolveNoShaderExport to suballocation
Bug: b/205337962
Change-Id: Ia7e2f80a9baadb68ec26d9e94af49dababf9bedb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3453310
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
1e29ba62
|
2022-02-11T15:08:05
|
|
Vulkan: Enable overlay by default with debug layers
Bug: angleproject:6976
Change-Id: I8fdd7546358fc1079525862cba0a4a6ff8357f78
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3457346
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
19f40531
|
2022-02-11T11:17:22
|
|
Vulkan: Enable subgroup feature in GenerateMipmap.comp
Enable subgroup feature to optimize shaders used for generating
mipmaps. Remove definition of SPD_NO_WAVE_OPERATIONS to enable
subgroups. Regenerate all internal shaders with target as
vulkan 1.1 to enable subgroup feature.
Bug: angleproject:7006
Change-Id: I36f50f3d27517fedb52e3028a8f6288347b1bfa0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3453288
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
06edae72
|
2022-01-11T11:13:20
|
|
Vulkan: Allow duplicated block name in different shader interface
In OpenGL ES 3.2 Shading Language specification(4.3.9), A block name is
allowed to have different definitions in different shader interfaces
within the same shader.
Bug: angleproject:5557
Test: KHR-GLES32.core.tessellation_shader.single.max_patch_vertices
Change-Id: I49f149cfd8f6f063fc5045aa154cc401d3e38cfb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3429684
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Brandon Schade <b.schade@samsung.com>
|
|
6cced91b
|
2022-02-08T10:24:11
|
|
FrameCapture: Remove destroyed contexts from share group
If a GL Context is destroyed, remove it from the list of shared
contexts tracked by FrameCapture.
Before this CL, we would crash in runMidExecutionCapture when trying
to iterate through contexts that were gone:
INFO: checking for SetupCalls in context id: 1
INFO: checking for SetupCalls in context id: 2
INFO: checking for SetupCalls in context id: 1769237601
Test: Mortal Kombat MEC
Bug: angleproject:6997
Change-Id: I3c2f6a77419d241af9a0b300936e7784446306f8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3448681
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
f7f26956
|
2022-02-10T13:33:32
|
|
Vulkan: Fix two bugs exposed by moving mEmptyBuffer to suballocation
There are two bugs exposed when I try to switch mEmptyBuffer to use
suballocation. 1) BufferHelper::initializeNonZeroMemory() for device
local memory uses GPU to do zero fill, but it is missing an
vkEndCommandBuffer call. 2) glTexSubImage2D call try to pick
glCopyuBufferToImage code path and we are not checking against pixel
format. Vulkan spec requires offset must be number of pixel size and we
are using "4" for pixel size which does not work for RGB format.
Bug: b/205337962
Change-Id: Ibca6a60ebd6afc5e2bca07b9cc6a43ebdd240f15
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3449348
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
4b45576d
|
2022-02-10T23:51:54
|
|
Keep ANGLE_base_vertex_base_instance available for ES 2.0
Bug: chromium:1289771
Change-Id: Ic8cd2d366985deeb7c1566cfcf8b8dd0425ed615
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3453802
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
d285d6a7
|
2021-11-23T23:12:00
|
|
Vulkan: Use VK_EXT_depth_clip_control
Bug: angleproject:6679
Change-Id: Iea3b7a2d8db630dcea19836732de8f9e0a7a568f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3298356
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3f0a28ba
|
2022-02-11T16:18:37
|
|
Add entry points for EGL_KHR_partial_update
Bug: angleproject:6960
Change-Id: If248b7ef5ebacd7dfb8c612e5a9106ba0060282e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3455787
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
fd378ce5
|
2022-01-25T18:06:31
|
|
Rebind program on glUseProgramStages
Rebinding program causes all uniform resetting. And uniform resetting
is required not to use wrong uniform for changed program stages.
Bug: angleproject:6946
Change-Id: Ic969aa8fec2ff6e16f46b96a61c6d876bf37ff2f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3416791
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
038adcae
|
2022-02-08T16:46:40
|
|
Vulkan: Render the overlay in the graphics pipeline
Bug: angleproject:6976
Change-Id: I388d429f0726b4d6a1c4ecd446ead93579a14a1b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3448643
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
419bca3f
|
2022-01-19T18:22:56
|
|
Vulkan: Use Vulkan API directly for BufferPool's buffer allocation
There are two motivations in this CL. 1) There are two layers of
suballocator right now. BufferPool provides first suballocation. It
tries to allocate from one of the buffers in the pool. If that failed,
it try to create a new BufferBlock (i.e, a VkBuffer). Right now that
calls into VMA which creates another pool to allocate a buffer. We
really only need one layer of suballocation. And 2) Because we uses VMA
to do actual VkBuffer allocation, we have to use Allocator object. But
VMA can not handle external buffers, so we end up having a BufferMemory
class just to handle two different cases. This CL attempts to clean up
this by let ANGLE calling into vulkan driver directly for the actual
buffer allocation, just like we did for VkImages. By doing so, we able
to remove BufferHelper::mMemory data member as well as BufferMemory
class all together. External memory is now treated exactly the same at
BufferHelper.
Bug: b/205337962
Change-Id: I7c183ab0fd7d9aceb6cf416b0214c300798bc010
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3402740
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
6fd2588d
|
2022-02-08T14:39:58
|
|
Update GL_MAX_CLIP_DISTANCES_EXT validation
GL_MAX_CLIP_DISTANCES_EXT is a valid enum to query only if either
"GL_APPLE_clip_distance" or "GL_EXT_clip_cull_distance" is supported.
Account for the possibility that "GL_EXT_clip_cull_distance" is
supported while "GL_APPLE_clip_distance" is not.
Bug: angleproject:5458
Change-Id: Ia2a089e0e9e2587449553ead6318b9b35fde0648
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3448688
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
734365a7
|
2022-01-27T06:05:56
|
|
Vulkan: improve command buffer reset performance
When trying to profile why a game's framerate was decreasing over time,
I found that memset() was taking the most self time out of any function
in the process.
The top two callers of memset() were:
RenderPassCommandBufferHelper::reset
OutsideRenderPassCommandBufferHelper::flushToPrimary
Profiling specifically called out mUsedBuffers.clear() and
mRenderPassUsedImages.clear() as being the worst offending lines.
The problem is that FastIntegerSet (and by proxy, FastIntegerMap, where
FastIntegerSet manages the keys) perform best when all keys are close to
zero. With large key values (in this case, large image and buffer
serials), significantly more memory gets allocated, causing
mUsedBuffers.clear() and mRenderPassUsedImages.clear() during command
buffer reset to take more and more time the longer the process runs.
This change is essentially a partial revert of f9a062c9754.
Bug: angleproject:6954
Change-Id: Id2542f6425f0845fe81d393ecf6b614b474c53c8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3420925
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
118ce6aa
|
2022-01-20T16:55:04
|
|
Support to open d3d12 shared handles
For
https://docs.microsoft.com/en-us/windows/win32/api/d3d12/nf-d3d12-id3d12device-createsharedhandle
Bug: angleproject:6927
Change-Id: I0f0ce7bff37abfc278a167c6eec92eb3b6df1370
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3404060
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
670a6e47
|
2022-02-09T09:18:33
|
|
Ignore invalid texture type error
When EGL_KHR_create_context_no_error is enabled, silent return when an
invalid texture type is passed in to glBindTexture and glTexParameteri.
Bug: angleproject:6995
Test: ContextNoErrorTest.InvalidTextureType*
Change-Id: I80034b18e7cb757bfa0e835f3aa15df7cd96775d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3447274
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
91f92540
|
2022-01-14T18:34:44
|
|
Metal: Fix multisample resolves.
1) Only use MTLLoadActionDontCare if store action was
MTLStoreActionDontCare, ignoring MTLStoreActionMultisampleResolve.
2) For color, depth and stencil attachments, if they have implicit
multisample textures, use MTLStoreActionStoreAndMultisampleResolve
rather than MTLStoreActionStore.
This addresses bugs when resolving a multisampled framebuffer and
copying it to a texture, and fixes these two Three.js demos:
https://threejs.org/examples/webgl_framebuffer_texture
https://threejs.org/examples/webgl_decals
Added CopyTextureTestES3.DrawThenCopyThenBlend modeled after new WebGL
2.0 conformance test in:
https://github.com/KhronosGroup/WebGL/pull/3379
Confirmed to catch the bug. On Intel Macs, the Metal debug layers and
load/store action validation must be enabled:
MTL_DEBUG_LAYER=1 \
MTL_DEBUG_LAYER_VALIDATE_LOAD_ACTIONS=1 \
MTL_DEBUG_LAYER_VALIDATE_STORE_ACTIONS=1 \
MTL_DEBUG_LAYER_VALIDATE_UNRETAINED_RESOURCES=4 \
angle_end2end_tests ...
Bug: angleproject:6972
Change-Id: I7bcb7c19e434e22e24b800fdce4c480d10b1fc40
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3450033
Reviewed-by: Gregg Tavares <gman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
82352237
|
2022-02-08T12:01:38
|
|
Vulkan: Fix incorrect DescriptorSet's bufferInfo in XFB emulation path
The mAlignmentOffsets are pre-calculated at TransformFeedbackVK::begin()
time but never gets updated when buffer changes after XFB begin call,
which causes us sending down incorrect bufferInfo to the descriptor set.
This CL removes mAlignmentOffsets and always calculate the aligned
offset when mBufferOffsets is needed.
This CL also modify the existing test to demonstrate the bug.
Test:
SimpleStateChangeTestES3.RespecifyBufferAfterBeginTransformFeedbackInDeletedPaddingBuffer
Bug: angleproject:6998
Change-Id: I11a9f114385d2e49ba9bdc2d820727c85c8244dd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3448682
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
4349904b
|
2022-02-04T14:22:53
|
|
Add keying on backend to ANGLE Display caching.
Webkit needs to use one ANGLE display with OpenGL and another with
Metal. Our display caching is interfering with this, so it should
be updated to also key on the selected backend.
Bug: angleproject:6978
Change-Id: I9ec47a28e16646f5fc75956e3bd78236990cc392
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3440780
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
9cfd8724
|
2022-02-09T08:23:02
|
|
Allow surface creation in DisplayVkNull
Previously DisplayVkNull was returning unusable surface from
createWindowSurfaceVk(). Updated it to return OffscreenSurfaceVk, which
makes it usable with some tests that try to create surface through EGL
Bug: chromium:1225002
Change-Id: If21a454201a32017b0e80ee7c01568a089ab0b0e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3450034
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
71d06198
|
2022-02-07T11:16:41
|
|
Vulkan: Fix vkCmdClearAttachments vs multiview
Bug: angleproject:6262
Change-Id: I5a24693bb1b35201213c2e3fa25f7864609357b3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3442255
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1b9774f5
|
2022-01-26T13:37:03
|
|
Vulkan: Force submit updates to immutable textures
Submit immutable texture updates recorded in outside renderpass
commands when the following conditions are met -
1. "forceSubmitImmutableTextureUpdates" feature is enabled
2. The texture is immutable
This works around a problem that manifests in some applications
that do not perform appropriate synchronization of shared contexts.
Bug: angleproject:6929
Test: EGLContextSharingTestNoSyncTextureUploads.*
Change-Id: I2a237046e2cc53650eb8dc07e3697f7481df9b02
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3418138
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
a3961843
|
2022-02-04T08:45:34
|
|
Vulkan: Bind aligned default uniform buffer size.
This makes us let reuse caches more often when uniforms change
size slightly. It also simplifies the cache key management.
Bug: angleproject:6776
Change-Id: I68ab48ab7761237bb9d28c4a4a88f4fc6e2c5af6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3439068
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6207fe88
|
2022-02-03T14:11:30
|
|
Vulkan: Minor cleanup to DynamicDescriptorPool.
In preparation for future changes.
Bug: angleproject:6776
Change-Id: I0a2ab004883ad482f4ed19075c5f5f4e9c451ae0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3437413
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5b43a30e
|
2022-02-08T13:15:45
|
|
Overlay: Rearrange the font image
Each glyph is now placed in a separate layer, and the image is made
mipped. This is to prepare for FS-based rendering of the overlay and
provide more flexible sizing of the font.
Bug: angleproject:6976
Change-Id: Iefe139d1801c22ce303e445f5759f9b25597cdce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3448710
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
70c510eb
|
2022-02-03T07:54:29
|
|
Vulkan: Use common storage for descriptor set descs.
This lets us avoid using templates when implementing descriptor set
caches. As an added bonus, the key size now scales with the number
of active items in the cache. In the case of using a smaller set of
active textures, our keys now use sizeof(uint32_t) *
(kFastBufferWordLimit) + sizeof(void *) bytes of storage (132/136)
instead of sizeof(uint32_t) * 3 * 96 bytes (1152) per set. This
reduction should improve cache coherency.
Bug: angleproject:6776
Change-Id: I904fc5527ff033af927e25abe6d13d98142e3f14
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3436767
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
52045876
|
2022-02-07T15:08:15
|
|
Vulkan: StreamVertexDataWithDivisor write beyond buffer boundary
StreamVertexDataWithDivisor() function is advancing dst with dstStride,
but then later on it is treating dst as if it never advanced, thus
result in write out of buffer boundary. This was hidden by VMA's memory
suballocation, which means it may result in some rendering artifacts.
Bug: angleproject:6990
Change-Id: Ic91e917cedd247dfe85b12a69ae26b21b7a4e67a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3445528
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
8b81742d
|
2022-02-03T07:41:16
|
|
Vulkan: Move shader resources descriptor set update.
This is in preparation for adding shader serial information to the
desc, to work around a bug with incorrect descriptor set cache
hits. It could have some perf impact if we restart command buffers
constantly while using UBOs/SSBOs.
Bug: angleproject:6776
Change-Id: I24f5cefd329a1c36f7f60cb2a520cfdf5f127051
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3436765
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
02ad19e3
|
2022-02-07T13:46:46
|
|
Vulkan: Fix vkCmdResolveImage offsets
glBlitFramebuffer takes identical regions for src and dst when
resolving. vkCmdResolveImage should use the clipped area instead of
using the actual offsets passed to this function.
Bug: chromium:1292537
Change-Id: I13b91a4e14bdb3fcbf8f01edb36d7fb4110429ea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3444340
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d9fcebb8
|
2022-02-07T14:11:58
|
|
Vulkan: Make framebuffer fetch syncval errors more specific
The errors are very generic, so now they are only suppressed if
framebuffer fetch is used by the application.
This change partially relands 2eeb87488.
Bug: angleproject:6951
Change-Id: I55f444d19360d3066f1d4b0959d25e676dbb1a38
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3444341
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9208dcc6
|
2022-02-07T18:23:12
|
|
Revert "Vulkan: Enable framebuffer fetch on SwiftShader"
This reverts commit 2eeb8748867c529474200d302f21f20ab461b9b4.
Reason for revert: Breaks tests for ANGLE-to-Chromium autoroller
Original change's description:
> Vulkan: Enable framebuffer fetch on SwiftShader
>
> Bug: angleproject:6951
> Change-Id: I10eeb58be9e8639c0519fc47f327a0894155b755
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3437409
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:6951
Change-Id: I35eaf2b7411d1bf055484bbb32f7e681286edd42
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3442370
Reviewed-by: Ian Elliott <ianelliott@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
959d4be5
|
2022-02-03T08:03:14
|
|
Vulkan: Remove buffer get method from descriptors desc.
This will make a future refactor to use a common desc class easier
to implement. We have the necessary buffer already in the call
context so we can instead pass this buffer down to where it gets
used.
Bug: angleproject:6776
Change-Id: Ia9782cba9f91c9604b1e937252bb293a346d025c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3436766
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f65e7c3c
|
2022-02-02T14:23:31
|
|
Vulkan: Take base level into account in image views
Similarly to how max level changes are handled, this change also handles
base level changes. In either case, the old views are retained and new
views are created for the [base, max] level range.
Test provided by m.maiya@samsung.com
Bug: angleproject:6967
Test: MipmapTestES31.UpdateBaseLevel/*
Change-Id: Iee8b2f035c1cc0fa916b987a91939b8ae65d27c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3441074
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@google.com>
|
|
6d30de10
|
2022-02-05T02:25:36
|
|
Metal: Fix ANGLEUniformBlock alignment
To pass Metal validation, the length of ANGLEUniformBlock
structure must be aligned to 16 bytes.
Bug: angleproject:5505
Change-Id: I1e2becaac48739966afb44e087fc4a70f7b21d02
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3440067
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
ac20272f
|
2022-01-19T17:13:50
|
|
Vulkan: Fix present region rectangles
EGL rectangles are specified relative to the bottom-left of the surface,
while Vulkan framebuffer space puts the origin on the top-left corner.
Bug: angleproject:6933
Change-Id: Ia57eea8601ee724c0a82eb718d831de6b7566472
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3423770
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2eeb8748
|
2022-02-03T13:10:54
|
|
Vulkan: Enable framebuffer fetch on SwiftShader
Bug: angleproject:6951
Change-Id: I10eeb58be9e8639c0519fc47f327a0894155b755
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3437409
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2ab8f48f
|
2022-02-04T08:23:09
|
|
Allow glCopyTexImage2D from BGRX and RGBX to GL_LUMINANCE
glCopyTexImage2D was failing with GL_INVALID_OPERATION when copying from
GL_RGBX8_ANGLE buffer to GL_LUMINANCE texture, while it should be
supported.
Also updated validator to allow copying from RGBX & BGRX to GL_RED_EXT,
GL_RG_EXT.
Bug: chromium:1269826
Change-Id: I865dcdd46921730968995822d71ba34b39e49262
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3439129
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c48e35b9
|
2022-02-04T01:44:36
|
|
Add more info in BlitFramebuffer error message
Bug: chromium:1290638
Change-Id: Id1faab26df2f19b90ec85aff6852334e8fda03ce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3436326
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2b00f4f5
|
2022-02-01T13:59:50
|
|
Fix bug in protected content validation
1. It is valid for a protected context to sample from an
unprotected texture
2. It is necessary to match protected state of framebuffer
attachment and the context
Bug: angleproject:6602
Change-Id: Ia3138c1a6dc46ff6b85fc5948c6a04ef48fba8a8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3430241
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
706f8a31
|
2022-02-04T04:22:10
|
|
Support gl internal format for creating EGLImage from VkImage
Bug: chromium:1290638
Change-Id: I5c9815b727497f63b9f04ecbd8c27deef4b929c8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3438666
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
da87b1db
|
2022-02-03T21:07:59
|
|
Fix GLES Display creation on ChromeOS when Vulkan is enabled
GetPlatformTypeFromEnvironment() returns
EGL_PLATFORM_VULKAN_DISPLAY_MODE_HEADLESS_ANGLE on ChromeOS when Vulkan
backend is enabled in build.
Previously it returned 0, which caused DisplayGbm to be created on
ChromeOS.
Restore the previous state of GLES backend by creating DisplayGbm even
for EGL_PLATFORM_VULKAN_DISPLAY_MODE_HEADLESS_ANGLE platform.
Note that this is a hack, and a proper solution would be to always use
DisplayEGL on ChromeOS.
Bug: chromium:1293420, chromium:1225003
Change-Id: Iab0324a56f0d426310d7db19fec3fc69e9bb5525
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3437779
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
7820ca23
|
2022-02-02T09:34:07
|
|
Vulkan: Binding available buffer range to descriptor.
This is fully conformant with GLES including robustness, where
robustness specifically allows returning any values in the buffer.
The goal is to eventually remove all shader-variable-specific info
out of the descriptor set update. This will let us fix cache bugs
that pop up when we move the descriptor set cache to the share
group.
Bug: angleproject:6776
Change-Id: Iccef33ca6174a68e359a07dc957a276b2484f97f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3431725
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1608a956
|
2022-02-02T13:54:53
|
|
Vulkan: Revert client vertex data streaming to use DynamicBuffer
In early CL crrev.com/c/3352489, I switched client vertex data streaming
from using DynamicBuffer to sub-allocating from the buffer pool. That
caused CPU overhead regression due to extra cost of handling the
suballocation object creating and garbage collection etc. Even after all
other optimizations I did since then that significantly improved garbage
collection performance, there is still 6% CPU time regression as
measured with gardenscape. This CL moves StreamVertexData() back to use
DynamicBuffer. In order to do that, I have cleaned up DynamicBuffer
interface to be consistent with suballocation interface by storing the
current allocated offset/size in the suballocation object. With that,
the BufferHelper object that returned from DynamicBuffer will be able to
pass around and referenced exactly like it comes from suballocation code
path, and you can retrieve offset/size from that BufferHelper object
instead of having to pass offset around between various function calls.
Given that streaming vertex data from client memory is only possible for
default vertex array and there is only one default vertex array for each
context, this stream vertex data dynamic buffer is essentially a per
context object. So the other change I made here is that I have merged
mDynamicVertexData with default attribute (which uses per context
dynamic buffers) code to use the same sets of dynamic buffers, since you
will only use one or the other but not both.
Bug: b/205337962
Change-Id: I0ceca5b854069f00afdb9544ee86953b9b773821
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3434645
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
9e323299
|
2022-02-02T18:09:36
|
|
FrameCapture: Regen framebuffers on Reset
Regenerate framebuffers that have been deleted and recreated during the
run. This required changing the order of how resources are updated
during Reset. Textures need to come before framebuffers so they can
be regenerated before being bound.
Test: MEC of genshin_impact trace frames 2-100
Bug: angleproject:6893
Change-Id: I0d14e09a5e378e7553dec54f4608eefe1bf397dd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3435112
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
3dbba51d
|
2022-01-28T16:47:19
|
|
Reland "Vulkan: Enable ANGLE_texture_multisample"
This is a reland of fe56532f503c9a6acde95f7573d705468102faff
Fixed to include suppression of trace tests that were failing.
Original change's description:
> Vulkan: Enable ANGLE_texture_multisample
>
> Bug: angleproject:3565
> Change-Id: Ic9556d25608a67540f7eee8841e54dc11773ca22
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3424664
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:3565
Change-Id: I9b95ce0823b0ee8cd82c8933f0d4c68bb044dda9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3437525
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
e56f0e29
|
2022-01-26T19:46:01
|
|
Vulkan: Check program fetch status when switching framebuffers
Before this patch, we only checked whether to update the framebuffer
fetch status when the program changes. We also need to check when
the framebuffer itself changes.
Test: FramebufferFetchES31.FramebufferMixedFetchTest
Bug: angleproject:6893
Change-Id: I92ff1f30dfb3f17aee362e5931fc4c94d18142ba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3418842
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
812d5fff
|
2022-01-31T17:32:47
|
|
Metal: End the current render pass at glInvalidateFramebuffer.
Prior to this, glInvalidateFramebuffer calls were discarding the
effects of draw calls made afterward, in the same render pass.
Add StateChangeTestWebGL2.InvalidateThenDrawFBO reproducing the basic
problem reported, and document the variations attempted. Minimal code
was changed to fix this issue because other changes hypothesized as
necessary weren't testable.
Drive-by cleanup of FragDepthTest, after which StateChangeTestWebGL2
was patterned.
Bug: angleproject:6923
Change-Id: If79805dbf62fae76b7b9147940b5d9d301142baa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3426828
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Gregg Tavares <gman@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
7d7cca47
|
2022-01-17T18:00:25
|
|
Vulkan: Update default FBO when fetch in use
If the fetch mode of the default framebuffer changes, lazily create
and use a new set of framebuffers (one per swapchain image) that are
setup for fetch (i.e. have a matching renderpass).
Test: FramebufferFetchES31.DefaultFramebufferTest
Test: FramebufferFetchES31.DefaultFramebufferMixedProgramsTest
Bug: angleproject:6893
Change-Id: Iff2b73d7c34b9b8ca9429c3f24aa700c2746cc81
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3401933
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
139f4bd4
|
2022-02-02T23:17:04
|
|
Revert "Vulkan: Enable ANGLE_texture_multisample"
This reverts commit fe56532f503c9a6acde95f7573d705468102faff.
Reason for revert: breaks win-trace trybot
https://ci.chromium.org/ui/p/angle/builders/ci/win-trace/764/overview
Original change's description:
> Vulkan: Enable ANGLE_texture_multisample
>
> Bug: angleproject:3565
> Change-Id: Ic9556d25608a67540f7eee8841e54dc11773ca22
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3424664
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:3565
Change-Id: Ia278894260b9e714542a8944cb132005c3700ddb
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3434285
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
49488710
|
2022-02-02T14:57:04
|
|
Metal: Remove emulatedInstanceID
The uniform variable is no longer referenced.
Bug: angleproject:5505
Change-Id: I8de518592e045707d024eaa1c07999caf4b5da66
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3431079
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
fe56532f
|
2022-01-28T16:47:19
|
|
Vulkan: Enable ANGLE_texture_multisample
Bug: angleproject:3565
Change-Id: Ic9556d25608a67540f7eee8841e54dc11773ca22
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3424664
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bc3be5a8
|
2022-01-27T12:12:58
|
|
Vulkan: Add a dedicated suballocation garbage list
Suballocations are the most common garbage objects in most usage cases.
The current garbage collection code will construct a garbage object from
suballocation and then construct a SharedGarbage object with a
std::vector that holds only one element. And then it adds this
SharedGarbage to the garbage list. This CL tries to avoid create
std::vector with just one element and avoid the cost of switch statement
for each garbage object by adding a new dedicated garbage list that only
holds the suballocation garbages, which is the most common garbages in
the system. With gardenscapes running offscreen with --minimum-gpu-work,
it reduces CPU overhead from 2.55ms to 2.20ms on Pixel6.
Bug: b/215768827
Change-Id: Ia2872442462917c0caadb263769a1cbf3dd7366f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3414356
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
be2da234
|
2022-01-30T13:59:21
|
|
Vulkan: Initialize exectuable with invalid uniform serial.
Instead of reserving valid serials from the range of device
serials, we can instead use an invalid serial. We can remove the
extra check for valid this adds if it becomes a hotspot later.
Bug: angleproject:6776
Change-Id: I81a36be503d6464ddc5dbb0e9df907f09dda9182
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3426883
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
33427a4b
|
2022-01-31T12:07:43
|
|
Vulkan: Fix vkCmdResolveImage extents
The source framebuffer's extents were accidentally used instead of the
blit area extents.
Bug: chromium:1288020
Change-Id: Ib723db50d9687fee0453d027141a94ea26d8a4b8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3427561
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
293c0b51
|
2022-01-21T15:53:38
|
|
Vulkan: Cache commonly used 6 ushorts stream index array data
Looking at all app traces that we currently have, 16 out of 100 apps are
making glDrawElements calls without element buffer. And among these
usages, most of them are calling glDrawElements with 6 unsigned shorts,
which makes sense for drawing a quad. This CL caches first four
BufferHelper objects with 6 uint16_t indices in a buffer and reuse them
if the data matches. With this we avoid create/destroy suballocations,
we even save the time of data copy and set DIRTY_BIT_INDEX_BUFFER when
called with same set of indices, which is the case for almost all apps
that uses glDrawElements based on app traces research.
In order to test the effect, I modified the `--minimize-gpu-work` to
keep glDrawElements calls with (count=6, tye=ushort) to pass down
count/type into angle, and only change the mode to point. That way this
new optimization will gets activated with `--minimze-gpu-work` command
line option (see crrev.com/c/3421377). With that, this CL sees cpu
overhead reduced from 2.54ms to 2.37ms on Pixel6 with
vulkan_offscreen_gardenscape.
Bug: b/215768827
Change-Id: I9b682868978e3bef7b5b9d1a596500ead2738d3e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3404677
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
38fada35
|
2022-01-27T18:16:18
|
|
Vulkan: Add support for OES_primitive_bounding_box
Add OES version of the primitive bound box extension
Bug: angleproject:3576
Test: dEQP-GLES31.functional.primitive_bounding_box.*
Change-Id: Ie44d952992a68dfffd5c124dda8dd11069f0c1e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3425086
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Brandon Schade <b.schade@samsung.com>
|
|
945a09d1
|
2022-01-30T13:57:32
|
|
Vulkan: Fix off-by-one in DynamicBuffer.
allocateFromCurrentBuffer was using >= when it should have been
using >. This prevented filling a buffer to the exact maximum.
Bug: angleproject:6776
Change-Id: I9656e398080381f97d06912ff10fe62e7e7333ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3426882
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
868c0739
|
2022-01-29T13:59:30
|
|
Vulkan: Fix image base/max level respecification case.
Bug: angleproject:6776
Change-Id: I3e7774c20bae6d7ad7b1775d46797104e2429b81
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3426208
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3c727e44
|
2022-01-31T22:18:22
|
|
Allow GL_RGBX8_ANGLE for texture copy destination
Updated IsValidCopyTextureDestinationInternalFormatEnum() to allow
GL_RGBX8_ANGLE.
Bug: chromium:1269826
Change-Id: I07533560d8f0d6f9d114e7c05927f670c6f96891
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3426820
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
508a8a02
|
2022-01-31T15:12:55
|
|
Remove old spellings for SYNC-HAZARD-WRITE_AFTER_READ skips
Obsoleted by VVL roll crrev.com/c/3426000
Bug: chromium:1292106
Change-Id: I360dea6f97e75a25245597e96553aa86d655c340
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3428099
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
2d3ce72d
|
2022-01-20T10:13:06
|
|
Refactor shared library load to avoid allocations.
Fixes a leak of an angle::Library detected in the EGL loader.
Bug: angleproject:6937
Change-Id: I623aa6172b98a35465e1d2641b92f67bdc5d24e7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3403060
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
665ddccd
|
2021-12-09T23:06:39
|
|
Vulkan: Emulate dithering
Dithering in OpenGL is vaguely defined, to the extent that no dithering
is also a valid dithering algorithm. Dithering is enabled by default,
but emulating it has a non-negligible cost. Similarly to some other
GLES drivers, ANGLE enables dithering only on low-bit formats where
visual banding is particularly common; namely RGBA4444, RGBA5551 and
RGB565.
Dithering is emulated in the fragment shader and is controlled by a spec
constant. Every 2 bits of the spec constant correspond to one
attachment, with the value indicating:
- 00: No dithering
- 01: Dither for RGBA4444
- 10: Dither for RGBA5551
- 11: Dither for RGB565
The translator appends code to the shader that, based on the format
specified by the specialization constant, adds dithering to each color
attachment output. A 2x2 Bayer matrix is used for dithering, indexed by
gl_FragCoord.xy % 2.
Bug: angleproject:6755
Change-Id: Ib45da5938e299b6626bff921119d63e7357dd353
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3374261
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
471f1852
|
2022-01-31T11:22:49
|
|
D3D11: Fix underflow with computing small strides.
When an attribute stride was less than the size of a vertex
element, and the D3D11 back-end emulates this vertex format, our
vertex streaming logic could decide that an unsigned int underflow
means our element count in a buffer is not computable and return
zero.
Fix this bug by using signed integers in the element conversion.
Bug: angleproject:6958
Change-Id: Ibd9a3599d780e953d492db739c7443662c7e6b82
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3427559
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
55ef2b4f
|
2022-01-28T23:24:49
|
|
Update one more SYNC-HAZARD-WRITE_AFTER_READ skip
vkCmdCopyImageToBuffer()
was changed to
vkCmdCopyImageToBuffer
in https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/3705
Skip both variants for now, the old one to be removed after a VVL roll.
Bug: chromium:1292106
Change-Id: I8c1a6be7bcf829c9a8b848c5ef2362462a965a11
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3424667
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
168e0ae5
|
2022-01-27T16:50:00
|
|
Vulkan: Refactor descriptor pool code.
This uses vk::Context to init DynamicDescriptorPool, and removes
some accesses to ProgramExecutableVk member variables so the methods
can more easily be moved into another class.
The changes should have no effective behaviour difference.
Note that the immutable sampler descriptor count is entirely set by
the format of the immutable samplers. However we can't determine this
count by looking at the descriptor set layout desc with the current
implementation.
Bug: angleproject:6776
Change-Id: I0a323d19fa3720b5afd8300401ed9c30b105c0ef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3424657
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a994ea99
|
2022-01-28T17:52:16
|
|
Update SYNC-HAZARD-WRITE_AFTER_READ skip
VK_PIPELINE_STAGE_2_NONE_KHR
was renamed to
VK_PIPELINE_STAGE_2_NONE
in https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/3705
Skip both variants for now, KHR to be removed after a VVL roll.
Bug: chromium:1292106
Change-Id: Ie8d095eccedc526880edf7d3601fa0aca23c1498
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3424665
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
e03f1753
|
2022-01-06T09:48:12
|
|
EGL: mutable_render_buffer deferredFlush fix
When in SINGLE_BUFFER mode, need to get around
deferredFlush and call Swapbuffers to force update
This must do status check for OUT_OF_DATE.
Bug: angleproject:6878
Change-Id: I34b7381f6799879bf6f6d490aba02feffc5c3748
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3373739
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Brandon Schade <b.schade@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8a1f8af4
|
2022-01-28T10:51:47
|
|
Turn on the Vulkan backend on ChromeOS
ChromeOS needs to switch from testing on legacy SwiftShader GL to
testing on SwANGLE instead. This CL allows ANGLE's Vulkan backend
to exist on ChromeOS.
Bug: chromium:1225003
Change-Id: I7bf702ce18857707226461152b560a570797fce0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3424658
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
|
|
287057b3
|
2022-01-25T17:01:43
|
|
FrameCapture: Don't track coherent buffers before capture starts.
Even though coherent buffer storages were only captured after capture
was activated, the buffer tracker was incorrectly initialized with the
first call to glMapBufferRange, even though capture was not active.
This fixes corrupted rendering in War Planet Online due to all coherent
buffer storages being tracked at initialization of the app, when
FrameCapture was enabled but not active.
Introduce mMidExecutionCaptureActive, which exposes if MEC is currently
executed.
Bug: angleproject:5857
Bug: angleproject:6774
Change-Id: I4849d6497e8e08aefc60e68bae027915e9b2912f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3416227
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
42c8b29d
|
2022-01-05T13:35:23
|
|
Tests: Add Dead By Daylight trace.
Add GL_EXT_shader_framebuffer_fetch prerequisite.
Ignore SYNC-HAZARD-READ_AFTER_WRITE validation error in RendererVk.
Test: angle_perftests --gtest_filter="*dead_by_daylight*"
Bug: angleproject:6870
Change-Id: I01f53ff8d26b704b75afe8c02ac12777b51fd5de
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3372793
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
c4a9d416
|
2022-01-05T15:28:11
|
|
Metal: Refactor to build without SPIR-V
Refactor ShaderInterfaceInfoMap and constant names to thier
own files, allowing Webkit to build without needing to compile
SPIRV code via mtl_glslang_utils.cpp.
Bug: angleproject:6782
Change-Id: I7a9c7e387145c95807f780e24bd2764e0efb5709
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3364970
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
|
|
701d51b1
|
2022-01-25T15:44:39
|
|
Vulkan: Add SmallBufferPool for small allocations
The small pool uses buddy algorithm that is much faster. The only
downside is that it rounds size to power of two. For small allocations
that rounding does not generate much waste and avoid fragmentation as
well. This CL adds a small pool for host visible non-coherent pool. My
testing with gardenscape shows that on top of other CLs, this reduces
CPU overhead from 1.77ms to 1.55ms as measured with --minimize-gpu-work
with offscreen.
Bug: b/215768827
Change-Id: I68434931f238c4e980b77d3df46d762260ef1db5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3415211
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
66e01ae5
|
2022-01-26T15:57:26
|
|
Expand error message on BindTexture validation failure
Bug: chromium:1288391
Change-Id: I34098a64162c78c20a485ece1cd98178242c6864
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3417919
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
df19e35a
|
2022-01-24T17:47:58
|
|
Vulkan: Use queue for mGarbageQueue
This variable is also acting exactly like queue as the name implies.
This CL changes from vector to queue so that the very last erase() call
will not actually move anything.
Bug: b/215768827
Change-Id: Ieb39c3a1b3acb25f93bcda2a46737a6d009d71f0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3414355
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
4e644b33
|
2022-01-22T16:17:46
|
|
Vulkan: Remove ProgramExecutableVk back-pointers.
This removes the mProgram and mProgramPipeline back-pointers from
ProgramExecutableVk. In order to fix this, we needed to refactor
the VkPipeline init functions to call through ProgramExecutableVk
only instead of passing through ProgramVk. We also needed to move
the early fragment shader optimization boolean out from Program.
This CL also fixes a few places where the early fragment test
optimization boolean wasn't properly updated.
Bug: angleproject:3570
Change-Id: Ie4c48087f6eb022e6f0a4dacc2710085165d49e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3408267
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b3ed4780
|
2021-12-21T17:20:19
|
|
Change Windows display initialization from ANSI to wide version
Bug: angleproject:6846
Change-Id: I2aee8f4b5b7546fc707705e435251fa9861e27d0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3352866
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
602b957b
|
2022-01-26T15:01:21
|
|
Enable robustnessEXT for SwiftShader.
This is a reland of commit b803b60df1806f189c1b29ca77da47896241e0f1.
The issue with webgl-oversized-printing.html crashes is supposed
to be resolved by commit b1216bf1759ab23ffe2d6b6727f9ec10ddfa4d0f
Failing test angle-instanced-arrays-out-of-bounds.html
disabled by commit d235e032000d611d31e6fd8a8190e4425b4c0ecb
I don't think we need to change the test expectations any more as
that swiftshader issue is supposed to be already fixed
http://anglebug.com/6906#c4
Bug: chromium:1287631
Bug: angleproject:6922
Change-Id: I0fdf806cac51d000088a029bbb3070906453dfb9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3415875
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2ad5f350
|
2022-01-25T12:15:16
|
|
Vulkan: Fix texture array level redefinition
When a level of a texture is redefined, all staged updates to that level
should be removed, not the ones specific to the new layers. The bug
fixed was that if the texture was redefined to have its number of layers
changed, the staged higher-layer-count update to the image was not
removed.
Bug: chromium:1289383
Change-Id: I9b90025f78af80ab19a280f90b58510716da31d2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3413004
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
45237a04
|
2022-01-11T00:14:01
|
|
Metal: Fix undefined behavior of depth write
Writing to an unbound depth attachment is undefined behavior in Metal.
Fix this by emitting a function constant to guard depth buffer use
in fragment shaders.
Bug: angleproject:6865
Change-Id: Id7c10d0aeb349aacfe09c397bc292a71199ab50a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3380304
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
a7970889
|
2022-01-24T11:50:27
|
|
Vulkan: Use queue instead of vector for mSharedGarbageList
The garbage collector code is iterating the mSharedGarbageList from
begin to end and if the garbage object is completed, we destroy it and
erase it from the vector. This is done one by one. The problem with that
is each erase call end up moving the remaining vector to ahead by one,
and this process is repeated for each completed element. This is O(N^2)
problem and really magnifies when you have many garbage objects. Since
we only add garbage when it is GPU pending, so most of these garbages
are in sort of fifo order anyway. This CL changes the garbage list from
vector to queue so that erase becomes pop and this becomes a O(N)
problem. This reduces CPU overhead as measured with minimize-gpu-work
for gardenscapes from 10ms to 2ms due to suballocation generates lots of
garbages. But this CL is a general improvement for the garbage
collection performance.
Bug: b/215768827
Change-Id: I002aadf75f958d8b79eb6281a2608597776e908d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3414354
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
39f66a9c
|
2021-12-16T23:26:00
|
|
Vulkan: Support different SCBs for outside and inside RP
The render pass command buffers are generally much larger than outside
render pass command buffers, and their allocation sizes and frequencies
differ.
This change allows choosing between ANGLE and Vulkan secondary CBs
independently for outside and inside render pass commands, as part of an
investigation to understand which implementation performs best for each.
Switching to Vulkan secondary command buffers is still slower. In the
ball park, switching outside render pass SCBs doesn't seem to make much
difference, while switching render pass SCBs duplicates the frame's CPU
time.
Bug: angleproject:6811
Change-Id: Ia8455fd19897a0eaeadf3d6db29286ea53df1f5e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3346341
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cb96c236
|
2022-01-26T18:53:55
|
|
Revert "Vulkan: Enable framebuffer fetch on SwiftShader."
This reverts commit 5107231939b5e04d3d5e4376176db42c3ae60193.
Reason for revert: Fails new code paths in Chrome+Skia.
Bug: angleproject:6947
Original change's description:
> Vulkan: Enable framebuffer fetch on SwiftShader.
>
> This also fixes a bug with non-coherent fetch in the symbol table.
>
> Bug: angleproject:6947
> Bug: angleproject:6948
> Change-Id: I190b2e0cddf1bc1b53a79079d3e2f79ccbb40d15
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3412998
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Cody Northrop <cnorthrop@google.com>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Bug: angleproject:6947
Bug: angleproject:6948
Change-Id: I8bd6c55598552b733547e45c854f6d55768d2b65
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3417503
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
7c1346bd
|
2022-01-21T11:35:45
|
|
Vulkan: Consolidate uniforms code in ProgramExecutableVk.
De-duplicates several methods. Refactoring change only.
Bug: angleproject:3570
Change-Id: Ib68bc30b3e9b1087871bb268ea292677e0c9fe2e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3408061
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b2d55742
|
2022-01-21T12:28:32
|
|
Program: Add generic uniform update methods.
This will make it easier to make central changes to all the update
methods. Otherwise we'd have to replicate changes in each separate
member.
Bug: angleproject:3570
Change-Id: Ia765720507642338d6e9777b7e38fb323800359b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3407734
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
374e0c43
|
2022-01-20T14:04:27
|
|
ProgramPipeline: Remove mHas members.
These are no longer needed now that the excutable mirrors uniforms/
samplers/sahder buffers/etc.. Refactoring change only.
Bug: angleproject:3570
Change-Id: I768381ac64a750f04180ab824302e3550030911c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3403047
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0dc0dc2a
|
2021-12-30T11:35:40
|
|
Re-land: "Vulkan: Remove "fillProgramStateMap"."
This copies additional shader info like uniforms from the Program
to the Program Piplines. There is now a duplication between PPOs
and Programs. There is no additional storage required for non-PPO
Programs.
Re-land fixes fragment in/out uniform updating with PPOs.
Bug: angleproject:3570
Change-Id: I64b2db6fbc3a610f3b5e617301f94eb30d915939
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3412999
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
51072319
|
2022-01-25T10:41:25
|
|
Vulkan: Enable framebuffer fetch on SwiftShader.
This also fixes a bug with non-coherent fetch in the symbol table.
Bug: angleproject:6947
Bug: angleproject:6948
Change-Id: I190b2e0cddf1bc1b53a79079d3e2f79ccbb40d15
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3412998
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c5498b95
|
2022-01-21T13:33:49
|
|
FrameCapture: Reset immutable buffers correctly.
Restore immutable buffers using UpdateClientBufferData.
Regenerate immutable buffers using CaptureBufferStorageEXT.
Bug: angleproject:4599
Bug: angleproject:5857
Bug: angleproject:6774
Change-Id: I8e80e9e32633b1303855e5a6ba7ac62941929645
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3406755
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
8474c8e1
|
2022-01-21T12:30:15
|
|
FrameCapture: Add Renderbuffers to mStartingResources.
This prevents Renderbuffers being deleted in Reset when they were
captured with MEC and added to the Setup function.
Bug: angleproject:5857
Bug: angleproject:4599
Change-Id: Ie61f75f69e3a3846877b1e8f5d9c98d5d0cecb2a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3406754
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
5f0badf4
|
2022-01-18T20:05:55
|
|
Vulkan: Prevent out of bounds read in divisor emulation path.
Split the replicated part of StreamVertexData out to
StreamVertexDataWithDivisor, there is only a partial argument
overlap between the two.
Bug: chromium:1285885
Change-Id: Ibf6ab3efc6b12b430b1d391c6ae61bd9668b4407
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3398816
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|