|
80d7725d
|
2020-07-15T15:14:17
|
|
Use Subject/Observer pattern for Programs/Executables in PPOs
This CL updates the frontend to use the subject/observer pattern for
Programs and ProgramExecutables in PPOs.
This allows us to remove the hack that iterated through all PPOs and
marking them all dirty when a Program is re-linked. Instead, just the
PPOs the Program is bound to are signalled, and only when the Program
is in a PPO.
Additionally the necessary PPOs are signalled when an Executable's
textures are updated, rather than iterating through all PPOs and
signalling them.
Bug: angleproject:4559
Test: CQ
Change-Id: Iaefb88c64c13259e921c8dfe95cf640247d17f85
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2300705
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
d8ce865b
|
2020-07-19T00:20:17
|
|
Vulkan: Make room in RenderPassDesc for resolve attachments
Data in RenderPassDesc is packed better to make room for resolve
attachments (9 bits made available; 8 for color and 1 for
depth/stencil).
mColorAttachmentRange contains values in [0, 8). The right side of the
range is made inclusive (i.e. [0, 7]) so it will fit in 3 bits.
The number of samples is always a power of 2, and below 128 (for the
foreseeable future), so its log is stored instead in 3 bits.
This change doesn't add support for resolve attachments yet, but is
split off the one that does to simplify it.
Bug: angleproject:4836
Change-Id: I2856286d5239499d0ab0c78b8154881c003309bc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2306515
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
7e2a9820
|
2020-07-20T12:38:05
|
|
Vulkan: Make explicitly-[non-]rotated get methods
Split FramebufferVk::getCompleteRenderArea() into 2, [non-]rotated,
explicitly-named methods. Simplify the uses of these methods, and fix
some rotation cases. Also explicitly-name
FramebufferVk::getScissoredRenderArea().
Bug: b/151111296
Change-Id: I1754ec2796fd8625b916a2dba2e723e70ecba419
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2305389
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
bdc79361
|
2020-07-15T17:01:05
|
|
Vulkan: No need to add current buffer into mResourceUseList
This is follow up to
https://chromium-review.googlesource.com/c/angle/angle/+/2288325. There
is no need to add current buffer to mResourceUseList for the per context
dynamic buffers. These dynamic buffers always shut down after we
call finishImpl.
Bug: b/160777679
Change-Id: I013cb3c30b4d31804cee13ce9e42da381fd1ae1b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2300208
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
cd5489ad
|
2020-07-19T00:05:21
|
|
Vulkan: Faster FramebufferDesc compare
Objects of this class are used as keys to a hash map and contain 10
serials. Prior to this change, operator== would compare all 10 serials.
This change tracks the maximum index set and only compares up to that
many serials.
To make sure this maximum index stays low in the presence of
depth/stencil attachment, this class stores the depth/stencil
attachment's serial before the color attachments. The update API of the
class is improved so this implementation detail is not leaked.
This is in preparation for supporting resolve attachments, which would
add another 8 serials to the class. With this change, the performance
of cases that don't use resolve attachments won't be affected.
Bug: angleproject:4836
Change-Id: Ia4874ab79163901fb86f5bee4120e9f19babdc09
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2306514
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
234be194
|
2020-07-15T14:55:18
|
|
Vulkan: Move mEmptyBuffer from program to ContextVk
And merge that with TheNUllBuffer as well so that you only have one
dummy buffer per context.
Bug: b/161391337
Change-Id: I75fddb5c48393876e745ff237e11d9c5672ae10e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2300707
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0df0b79c
|
2020-07-17T16:26:21
|
|
Vulkan: Optimize changing texture max level
For applications that frequently change the texture max level, to a
value that is a subset of the texture's maximum levels, just recreate
the VkImageView's.
Test: NBA 2K20 game play
Bug: b/160976091
Change-Id: I62a05a90cdb90147056ba8cec960c2114479ec37
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2300532
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
49108a12
|
2020-06-30T11:53:23
|
|
Support BGRA_1010102 IOSurfaces in CGL and Vulkan.
Bug: chromium:1100599
Change-Id: I7bc2c2e35490e28e9f6fe8f2e0c26cdea50650b9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2275731
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
5671c2bd
|
2020-07-17T13:32:22
|
|
Capture/Replay: Fix vertex array objects for MEC
While debugging NBA2K20 MEC, fixed the following issues:
* Don't bind built-in attributes locations.
* Don't emit glGenBuffers for the default VAO.
* Include element array buffer in MEC.
Test: NBA2K20 MEC
Bug: b/160014453
Change-Id: I1b809946d67b6748b0670814be8dd090278dc38f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2307276
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Manh Nguyen <nguyenmh@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
08c4d094
|
2020-07-16T18:48:59
|
|
Improve WebGL 2.0 readPixels support.
Emulate GL_PACK_SKIP_PIXELS and GL_PACK_SKIP_ROWS on macOS, where it
appears the OpenGL driver ignores these parameters.
Add WebGL 2.0-specific validation constraints for pixel pack and
unpack parameters.
Bug: angleproject:4849
Change-Id: Iab566299223e05484a009817acb1ed2816023823
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2303905
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
9a9ef0ae
|
2020-07-15T16:50:32
|
|
Vulkan: Fix RTs attached to textures with non-0 mip
Cleared confusion between GL level indices and VK level indices by
adding the corresponding suffix to variables and function arguments. A
handful of places that sent one index and expected the other are fixed.
A couple more places needed this adjustment that were missed in the
first CL. Also included a test to provoke those situations.
The conversion between the two is given by:
levelIndexGL = levelIndexVk + baseLevel;
Bug: angleproject:4695
Change-Id: I3b8e5699abee1b011e52b666e6e245f44cb8ad6f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2302549
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
bcec11c2
|
2020-07-16T18:28:17
|
|
Vulkan: FramebufferVk::clearImpl() break-RP fix
FramebufferVk::clearImpl() needs to potentially rotate the results of
getCompleteRenderArea(), so that it can be compared with the results
of getScissoredRenderArea().
Bug: b/151111296
Change-Id: Iad1fbdcb1943bae00835d31863d32ee85dbc7c2d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2303606
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
cc551385
|
2020-06-29T10:25:45
|
|
Vulkan: Add cache for default uniform descriptor set
Instead of free and allocate a descriptor set whenever buffer changes,
add it into the descriptorset cache. Every time you get the buffer, we
also look in the cache first to see if there is a descriptorset for that
buffer or not. If yes, we use the cached descriptor set instead of
allocate one.
Bug: b/159457348
Change-Id: I64c252dfe22db66ea8188415e1b384af371b82ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2273698
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
67980f13
|
2020-07-08T08:51:02
|
|
Vulkan: add Buffer/Texture/ImageViewSerial class
In a few places we need a unique ID to represent that object and use
that to compute hash key. Right now we are using Serial for that purpose
but it creates confusion with QueueSerial which we are using Serial to
track GPU progress. This CL changes these usage of Serial to
TextureSerial, SamplerSerial, ImageViewSerial type so that compiler can
perform type checking. It also adds BufferSerial in preparation for next
CL.
Bug: b/159457348
Change-Id: I8e2da69c2029e4ddbcf163981ae46f85e19f751b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2287426
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e0a2bd5e
|
2020-07-15T18:07:45
|
|
Remove ProgramPipelineState::mHasBeenBound
The member ProgramPipelineState::mHasBeenBound is unused and should be
removed.
Bug: angleproject:3570
Test: CQ
Change-Id: Idc41574f79e665ac36bef5b206704c667c49dadb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2301101
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
22e1f3e2
|
2020-06-26T14:26:50
|
|
Vulkan: Let all shader stages share one buffer for default uniform
Right now each shader stage has its own vk::DynamicBuffer for default
uniform storage. This is less efficient than just share one buffer. This
CL moves the storage from per shader stage into its ProgramVk object.
Bug: b/159457348
Change-Id: If47248ea23c4e48407d3b211583ae2b048d4d10f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2265281
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
45f54928
|
2020-06-17T16:25:35
|
|
Vulkan: Fix capturing arrays using VK_EXT_transform_feedback
Vulkan is able to capture the whole array when using
transform feedback extension. Add a new end2end test
for it.
Due to the outdated nv bots, khr_gles31 tests are
faild. Add these suppressions in the khr_gles31
expectations file in order to unblock the commit.
Bug: angleproject:4723
Change-Id: I929f99544a01cf5fc781dc31c2c041c851976676
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2247952
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
349b661d
|
2020-07-08T12:50:00
|
|
Metal: fix max point size and RGB565 renderbuffer bug.
- Max point size is set to 64, since this is the max size observed. It
is not 511 as
https://developer.apple.com/metal/Metal-Feature-Set-Tables.pdf claims.
- RGB565 is emulated on macOS by RGBA, needs to disable alpha write for
this format. This was already done for TextureMtl, but wasn't for
RenderBufferMtl.
- Also enable true non-power-of-two textures support (OES_texture_npot).
This was technically already supported, just that the extension wasn't
advertised yet.
- New Test: FramebufferFormatsTest.RGB565Renderbuffer
Bug: angleproject:4816
Bug: angleproject:2634
Change-Id: Ie7e3efb4cb29bb9a3fd706c26e2b50b42ff3f6be
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2281797
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
dc9743fb
|
2020-07-14T11:33:29
|
|
Add buffer serialization capability
Serializes buffers' states stored on CPU.
Gets buffers contents on GPU by mapping buffers to CPU's address space,
then copy their data. Unmap buffers after finish. Since this feature is
for tests only, it is only implemented for the Vulkan backend.
Adds buffer serialization to serializeContext method so that capture
replay regresssion testing now compares the states of buffers too.
Bug: angleproject:4817
Change-Id: Ic9b529701014d5ba8420023a021cd5ea381bd9a1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2295950
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a3ed8e19
|
2020-07-09T12:31:15
|
|
GL: Fix issue with EXTBlendFuncExtendedES3DrawTest
The call to glBindFragDataLocationIndexedEXT was not being properly
forwarded through ANGLE because we assumed that if its location was
set, then its index was set, which is not always the case.
Fixed this, and also added a link status check after linking so the
error will properly propagate in the future.
Bug: chromium:1099763
Change-Id: I28981c04a3f2d6a59c239b35b3f7eb0c7f586804
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2289653
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
dd4723e3
|
2020-06-23T11:08:43
|
|
Capture/Replay: More ES 3.1 support
This CL adds the following changes:
* Support variable block sizes for ASTC
* Support glMapBuffer
* Additional param captures
Test: Capture from beginning of Asphalt 8 and Aztec Ruins
Bug: b/150484427
Bug: b/160808198
Change-Id: Ic1041011c3f51c32dbf7bf7105f41dffb9460b87
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2264832
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3e0b61a9
|
2020-07-06T01:18:22
|
|
Metal: Compile default shader source files separately.
- Previously all default shader files were included in one file named
master_source.metal.
- Now they will be compiled separately and link together to generate
binary shader.
- Also generate a debug binary variant that will be used in debug build.
Bug: angleproject:2634
Change-Id: Ic040835c4a729666e73afeba52f5be839b632396
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2281784
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9277ee74
|
2020-07-06T12:40:58
|
|
Metal: Implement MSAA default framebuffer.
GL_SAMPLE_COVERAGE_VALUE is implemented by inserting gl_SampleMask
writing logic to fragment shader.
New test added: MultisampleTest.ContentPresevedAfterInterruption.
- Skip on D3D11 (Bug: angleproject:4609)
Bug: angleproject:2634
Change-Id: Ib44daf0baccc36ea320596d81713156047da059c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2281783
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f9e01f12
|
2020-07-14T17:20:18
|
|
Fix stale validation cache on buffer deletion.
When we would delete the currently bound element array buffer we
would neglect to invalidate a specific validation cache variable.
This incorrectly would let us skip buffer size validation and lead
to internal invalid memory accesses.
Bug: chromium:1105202
Change-Id: I23ab28ccd3ac6b5d461cb8745b930f4d42d53b35
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2298145
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4ad0f250
|
2020-07-14T21:22:35
|
|
Revert "Vulkan: Enable VK_KHR_get_memory_requirements2 extension"
This reverts commit d98afb787a24285eccd554daa6b8de197187a636.
Reason for revert: Suspected for angle_perftests failure. See issue.
Bug: chromium:1105609
Original change's description:
> Vulkan: Enable VK_KHR_get_memory_requirements2 extension
>
> 1. Don't assume support for VK_KHR_get_memory_requirements2.
> Enable the extension, if supported, during device creation.
> 2. Also let VMA fill in the function pointers for these commands
> based on Vulkan API version -
> 1. vkGetBufferMemoryRequirements2KHR
> 2. vkGetImageMemoryRequirements2KHR
>
> Bug: angleproject:4830
> Change-Id: Icd0b3baf56732b5f5f49f320c1feb996204169ed
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2293633
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
TBR=syoussefi@chromium.org,jmadill@chromium.org,m.maiya@samsung.com
Change-Id: Ida9a333f897d87e7608d4fafe9da9f1fad0221e4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:4830
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2298146
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5e7b1c41
|
2020-07-06T12:34:52
|
|
Metal: Create a dedicated class for Window Surface.
To distinguish it from PBuffer class in future.
Bug: angleproject:2634
Change-Id: I1e256a74584fb001158465cd3068925847231984
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2281795
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
95bfb3e5
|
2020-07-08T23:07:48
|
|
Vulkan: Fix resolve draw path
If the draw path is taken for resolve, the internal shader previously
calculated (1+sum(sample.a))/sampleCount instead of
sum(sample.a)/sampleCount. Additionally, due to a typo, the result was
rounded.
This change also fixes a number of off-by-one errors when calculating
src/dst offsets in blit/resolve path.
Tests are added to resolve from default to FBO and vice versa to
exercise the draw path which was otherwise never invoked for color
buffers.
Bug: angleproject:4746
BUg: angleproject:4092
Change-Id: I4b9c181339b89af44b27d61d27a6b3d88cde2eea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2288224
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
d98afb78
|
2020-07-10T17:11:15
|
|
Vulkan: Enable VK_KHR_get_memory_requirements2 extension
1. Don't assume support for VK_KHR_get_memory_requirements2.
Enable the extension, if supported, during device creation.
2. Also let VMA fill in the function pointers for these commands
based on Vulkan API version -
1. vkGetBufferMemoryRequirements2KHR
2. vkGetImageMemoryRequirements2KHR
Bug: angleproject:4830
Change-Id: Icd0b3baf56732b5f5f49f320c1feb996204169ed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2293633
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
66d85686
|
2020-07-13T21:25:40
|
|
Revert "Refactor DisplayGbm::generateConfigs"
This reverts commit 7d82d29398cc9106af5204f9df3525660ffe2866.
Reason for revert: Suspect CL failing on Linux FYI Ozone
Original change's description:
> Refactor DisplayGbm::generateConfigs
>
> Bug: angleproject:4809
> Change-Id: I5f352f737bbd53c78d9e01055c17eabd17d5fb8a
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2278667
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
TBR=geofflang@chromium.org,jiajia.qin@intel.com,jmadill@chromium.org
Change-Id: I62c8a6a78d1ccfe8aa63bea7a9409229cd0059ab
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:4809, chromium:1105208
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2296041
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
|
|
e5c18475
|
2020-07-06T09:50:49
|
|
Multi-frames serialization + comparision for capture replay test
Changes how context states are serialized during capture run. Now,
context states are serialized after each frame until the end frame
is reached, or context is destroyed.
Adds an api to the trace files to query serialization results of
multiple frames. Makes change to CaptureReplayTest to serialize
multiple frames then compares the serialization results with the ones
retrieved from said api.
Adds to capture replay the ability to produce working, compilable trace
files even when end frame is not reached.
Adds to the generated trace files config information and makes
CaptureReplayTest utilize said config information to reproduce the exact
environment of the captured application.
Bug: angleproject:4817
Change-Id: Ie3d487af2bacf349dc3ff6f6b1b5f89e1169dc84
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2282885
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
92ffd40e
|
2020-07-08T18:25:55
|
|
Vulkan: Disable GL_EXT_robustness extension on Mali
Vulkan doesn't have a mapping extension to
GL_EXT_robustness, so we need to disable it.
Bug: angleproject:4823
Change-Id: If7b66c0eb7ba14b9349925af64ec2efcec9985a4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2287092
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7d82d293
|
2020-07-02T15:15:54
|
|
Refactor DisplayGbm::generateConfigs
Bug: angleproject:4809
Change-Id: I5f352f737bbd53c78d9e01055c17eabd17d5fb8a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2278667
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
120e1d66
|
2020-07-09T17:56:54
|
|
Vulkan: Set the wideLines features when available
Bug: angleproject:4827
Change-Id: I40fc893fdaf7135e2ad782a489b59c518346db9c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2290582
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
73b6b3a8
|
2020-06-03T14:38:34
|
|
Vulkan: Fully enable pre-rotation for Android
Bug: b/157667116
Change-Id: I3e5d41eed9b27eb2b49db853d85ec5c867dd2409
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2228366
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
2a2b4b13
|
2020-07-09T13:15:13
|
|
Vulkan: Force flush staged updates for external textures
For textures that are backed by external memory,
immediately flush sub image updates instead of
staging them.
Bug: angleproject:4828
Tests: angle_end2end_tests --gtest_filter=ImageTest.UpdatedExternalTexture*
Change-Id: I51e5bd0cb5df7df3af21f0cdb3007eebc1be29cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2290490
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
fe36a647
|
2020-07-08T18:27:21
|
|
Vulkan: Add driverUniform's buffer to mResourceUseList
There is a bug with mDriverUniforms' dynamicBuffer that we never add it
to context's mResourceUseList to let it hold onto it until GPU
completes. This causes old buffer gets recycled prematurely and gets
overwritten, result in rendering corruption. This CL adds current buffer
to the mResourceUseList so that it will be waited properly before gets
recycled.
Bug: b/160777679
Change-Id: I7707442e0f5ba408f5f28337422274e0c23b6bfb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2288325
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
f61272fb
|
2020-06-17T11:38:37
|
|
Add support for VK_KHR_sampler_ycbcr_conversion
This adds ability for applications to import Android Hardware Buffers
(AHBs) as OpenGL images which in turn can be sampled from and/or
written.
This was specifically tested with the common use case of importing a
buffer created by an media decoder and using that as a texture source to
include that video content on the screen. Tested with:
- Angry Birds 2 video player (for ads) requires YUV conversion.
- Basic Media Decoder example:
https://github.com/android/media-samples/tree/master/BasicMediaDecoder
Bug: b/155487768
Change-Id: I9255450f81aa4daa2aace7205d4f6c3f225abcca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2175103
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b549be96
|
2020-07-02T16:17:10
|
|
Vulkan: Warm up glslang on startup
As soon as glslang is initialized (which is done when EGL is
initialized), try to compile a simple shader. This will warm up
glslang's internals to avoid hitches on first shader compilation when a
WebGL application starts.
Potential future optimization is to use a worker thread to do this.
Bug: chromium:1091440
Change-Id: I6ac22e982d748af52a6e8b61239889425edc2edb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2280401
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a740b193
|
2020-07-08T16:58:46
|
|
Vulkan: Rotate damage rects for 90/270 rotation
ANGLE supports the EGL_KHR_swap_buffers_with_damage extension by using
the Vulkan-equivalent VK_KHR_incremental_present extension. The
damage rectangles need to be rotated for 90/270-degree rotations.
Test: Aztec Ruins with VVL
Bug: b/157667116
Change-Id: I9a43594b30bc67ca80aeff7705b4350659207d09
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2289035
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
13859945
|
2020-06-26T13:21:35
|
|
Capture/Replay: Fix default uniform array capture
The pointer from vector::data() already reflects the size of the
underlying type, so no need to include sizeof. This caused us to
write beyond the vector bounds when reading multiple values.
We were also missing component count.
Test: MEC of NBA2K20
Bug: b/160014453
Change-Id: I51fc3f5f80c732221d6ea4b4bd1afde635e410a1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2270909
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Manh Nguyen <nguyenmh@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
900c7e87
|
2020-07-07T14:20:36
|
|
Serialize d/s buffers + use color buffers' impl format for readPixels
Adds serialization of depth/stencil buffer contents
Currently, readPixels on color buffers uses the gles front-end format,
which can be different from the implementation format used in the
backend. This can cause seg fault crashes when the number of bytes in
a pixel differs between the two format. Changes so that readPixels for
color buffers always use the backend format.
Bug: angleproject:4817
Change-Id: I62d5deb1320ea38ee46143b2aa97f372ba01baeb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2284451
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
|
|
3688cb36
|
2020-06-28T15:28:10
|
|
Fix bugs in angle_end2end_tests and frame capture
1. CaptureGetShaderInfoLog_infoLog method should not require shader
object to be compiled
2. glCompressedTexImage3D's parameter locations are off by 1
3. EGLContextSharingTest.DisplayShareGroupObjectSharing test should not
delete buffers it has no access to since it will crash when running
capture replay
Bug: angleproject:4801
Change-Id: I0d407cdb44eb41eea4209eebab0996d3dd8ae5f5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2272862
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
6fc53fdb
|
2020-06-30T18:08:21
|
|
Fix typos in comment
This CL fix typo in a comment introduced recently.
There is no functional change.
Bug: chromium:1091259
Change-Id: I56f1963514b87b2a93859a6db707be093e865e28
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2276748
Commit-Queue: Etienne Bergeron <etienneb@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8b80e852
|
2020-06-25T09:43:01
|
|
Remove debug info from SPIR-V
When dcheck_always_on=false, the SPIR-V transformer will strip all debug
information to reduce the SPIR-V binary size.
Running T-Rex shows about 27% reduction in the SPIR-V binary size.
Bug: angleproject:4680
Test: CQ
Change-Id: Id9d0189cdc9c12fa5a1741cf62ef549a533cdf93
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2267358
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
36a97db1
|
2020-07-02T23:29:45
|
|
Vulkan: Compress internal shaders
Shaves ~200KB in binary size. The compressed SPIR-V blobs are in most
cases a little smaller than 1/3 of the original size.
The internal shader blobs at this point take ~100KB.
Bug: angleproject:2022
Change-Id: I1a2cec073cb1f330632c8dce7a550a0cca1e373d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2280945
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9349e262
|
2020-06-25T14:28:17
|
|
Fix multiDraw* with DYNAMIC_DRAW buffer usage
Specialized Context11 impl to prevent promote Dynamic during MultiDraw.
Add different buffer usage to MultiDraw and BaseVertexBaseInstance
tests.
Bug: angleproject:3402, angleproject:4754
Change-Id: I50e1a6fd6c8b6fd48f130c43545b895335d2e55b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2268581
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
796df76c
|
2020-06-25T11:49:12
|
|
MultiDraw Refactor
Refactor MultiDraw* from general Context to different ContextImpl.
Move general multiDraw code to renderer_utils.cpp.
Bug: angleproject:3402
Change-Id: I85cb4b781afa2b3a8beb382a9c735910057f2ebe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2268580
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
69fa4d23
|
2020-06-30T09:06:33
|
|
Vulkan: Query aspect flag from the image
When transferring images across queues we need
to query the aspect of the image instead of
hardcoding it to VK_IMAGE_ASPECT_COLOR_BIT
Bug: angleproject:4791
Bug: angleproject:4818
Tests: angle_end2end_tests --gtest_filter=ImageTest.SourceAHBTarget2DDepth*
Change-Id: Ia43a00262085dab492935c0c299635f3af468b50
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2274868
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3c8f6094
|
2020-06-26T12:42:37
|
|
EGL: Add basic multithreading support
Adds first step to allowing multithreaded contexts: letting multiple
threads use ANGLE as long as only one thread has a current context at
a time.
Bug: angleproject:4724
Bug: angleproject:4725
Change-Id: I4f606bdb15386cff9e3cb84d4120781e24e15fe4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2269864
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
d38c75c5
|
2020-07-02T22:12:19
|
|
Vulkan: Remove BufferUtils shader
This was the first internal shader written for prototyping UtilsVk. It
ended up never having a user.
Bug: angleproject:2022
Change-Id: I846dcc216c4c018f5bda16ad67463f698b8e1c56
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2280944
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
05e2fe78
|
2020-07-03T12:25:01
|
|
Remove class size static_asserts from serialize methods
Right now, the static_asserts will fail on certain platforms with
certain configurations as the class sizes differ between platforms.
Bug: angleproject:4779
Change-Id: I92f61393b2e9e5b7d6dc9085b1a42cb377143469
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2280987
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
bae95f81
|
2020-07-02T17:19:14
|
|
Convert GN libs lists to frameworks
GN recently added support for Apple frameworks to link, rather than
overloading the libs lists. This pulls .frameworks out of the libs
lists, so that GN can stop supporting .frameworks in libs in the
future.
Bug: chromium:1052560
Change-Id: I3aed298db01bdb5f6e7f37a74c1bbc06f99d760c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2279931
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
cbdb76b0
|
2020-07-02T10:09:34
|
|
Vulkan: Create sRGB views only when needed
Creating sRGB views was conditioned to
VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT being necessary, but that flag can be
set for reasons other than sRGB override, such as when recreating the
image to be used as a storage image.
Bug: angleproject:4551
Change-Id: I6f94a1c898b599d4333d74608c7451b4ce4f71f0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2279134
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
dce37b7d
|
2020-06-21T22:27:06
|
|
Serialize framebuffers + compare contexts for CaptureReplayTests
Adds to frame capture the ability to serialize a frame's pre-swap
GL state and store it in the binary data file
Adds to CaptureReplayTests the ability to compare its serialized GL
state with the serialized state pulled from the binary data file
Adds a serialization module that serializes framebuffers' GL states
and the contents of their color attachments
Adds checks to automation script so that it would skips tests that
do not produce the expected trace files
Adds exception handling to automation script so that it will not crash
when a replay build crashes
Bug: angleproject:4779
Change-Id: I40a02e018073749e79f0ddbfd3d4065745548f46
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2258295
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
65f7ab79
|
2020-07-02T10:04:48
|
|
Vulkan: Cleanup extension properties and features
Bug: angleproject:4551
Change-Id: Iae6b94027cfaca6c72318203a286865c2e3b19a9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2279133
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
62ff54eb
|
2020-05-12T13:27:21
|
|
Vulkan: Featurize shadow buffers
Shadow buffers help reduce the latency of glMap* operations
at the cost of CPU overhead. It might not be desirable to
incur such an overhead for all usecases. Featurize it but
enable it by default.
Bug: angleproject:4339
Change-Id: I6374618bf99677eef55fd50a139fb86f5ea70791
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2278102
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
cf63d872
|
2020-07-02T09:59:58
|
|
Vulkan: Use mipmap hint when generating mipmaps
If the application asks for GL_FASTEST, this uses VK_FILTER_NEAREST
instead of VK_FILTER_LINEAR.
Bug: angleproject:4551
Change-Id: I6c10758104bd63dd477ea853a3b0464665f371ed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2279132
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1ae8d2dd
|
2020-04-29T09:47:01
|
|
Fix blendable FP32 texture caps on ES2 contexts
Although the EXT_float_blend extension is defined only for ES 3.0+,
ANGLE exposes it on ES 2.0 client contexts.
Bug: angleproject:4595
Change-Id: I7451062ed8b1ab4eb18a8c7c1d37ee7383c8ea4b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2172738
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
28300e6f
|
2020-06-30T10:41:27
|
|
Vulkan: Fix off-by-1 180/270-rotated CopyTexImage
The rotation calculations are a little different for this code (that
uses a special shader) than for other pre-rotation cases. I also
modified the CopyTexImageTestES3.2DArraySubImage test to make future
bugs a little easier to diagnose.
Test: Test: angle_end2end_tests --gtest_filter=*CopyTexImageTestES3.2DArraySubImage*Vulkan*
Test: Test: angle_end2end_tests --gtest_filter=*WebGLReadOutsideFramebufferTest.CopyTexSubImage2D*Vulkan*
Bug: b/158245571
Change-Id: I497ec541cae5cd4085c3e9d596ee20943f5510f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2275733
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
68e60a92
|
2020-06-26T11:10:07
|
|
Vulkan: Don't store transformed SPIR-V
Since the original SPIR-V is never store after being modified, we don't
need to keep the transformed SPIR-V either.
Bug: angleproject:4513
Test: CQ
Change-Id: I4b70cfa355a08107e6a27377f6258cbf9e4072be
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2270718
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
34eb401b
|
2020-06-19T15:36:18
|
|
Vulkan: Skip repeated VkCmdClear call with the same value
Some apps actually do this. One of them is gfxbench. This helps
performance by dropping the redundant clear calls.
Bug: b/159489614
Change-Id: Ib7958042f081b8fd58c5bc912fbb45bb223aec0f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2255643
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
774cd1b2
|
2020-06-25T09:15:24
|
|
Vulkan: Only transform SPIR-V once
Prior to this change, the SPIR-V would be transformed as part of
GlslangGetShaderSpirvCode() and then possibly another time afterward to
disable the early fragment test optmization (for monolithic programs) or
to update the descriptor set/binding values (for PPOs). By storing the
original SPIR-V in the ProgramVk and the transformed SPIR-V in the
ProgramExecutableVk, we can now remove the SPIR-V transformation from
GlslangGetShaderSpirvCode() and only perform it once in
ProgramInfo::initProgram() for monolithic programs and PPOs.
Bug: angleproject:4513
Test: CQ
Change-Id: I4e7240b2abe7c796c46cf531948dad0e37c1419a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2267537
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7993f34d
|
2020-06-24T18:39:08
|
|
Vulkan: Store transformed SPIR-V in ProgramExecutableVk
The original SPIR-V is specific to a ProgramVk while the transformed
SPIR-V is specific to a ProgramExecutableVk. This CL keeps the original
SPIR-V in the ProgramVk::mOriginalShaderInfo and the transformed SPIR-V
in ProgramExecutableVk::mTransformedShaderInfo. This allows us to skip
an extra copy that was occurring during PPO link().
Bug: angleproject:4513
Test: CQ
Change-Id: I796dcd6bcfb2df08d9b8f1a5295b2821a4096f16
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2265484
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e2de2c1c
|
2020-06-25T11:59:14
|
|
Fix disable_native_parallel_compile workaround condition.
This workaround should only be enabled when ANGLE is built with TSAN
on.
Bug: chromium:1094869
Change-Id: If527457c11ce744b543ac69761cc64235d2f1dd8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2267420
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
58ff77a8
|
2020-06-27T09:30:00
|
|
Vulkan: Set new layout based on VkImageUsageFlags
When transferring vkImages between queues, the new layout
needs to be set based on the usage flags of the vkImage
instead of hardcoding it to AllGraphicsShadersReadWrite
Bug: angleproject:4791
Change-Id: I3b543a6280e6c2317cc11bf65dc4c337bc5f90b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2271563
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b31a1939
|
2020-06-25T08:13:20
|
|
Vulkan: Implement invalidate for color buffers
This will set the color buffer load_op to DONT_CARE if the application
has invalidated the color buffers prior to drawing.
Will also set load_op to DONT_CARE for depth & stencil, though this
isn't likely a common use case.
Tests:
angle_deqp_gles3_tests --gtest_filter=dEQP.GLES3/functional_fbo_invalidate_* --use-angle=vulkan
angle_end2end_tests --use-angle=vulkan --gtest_filter=StateChangeRenderTestES3.InvalidateNonCurrentFramebuffer/ES3_Vulkan
Bug: b/150458520
Bug: angleproject:4444
Change-Id: I6ce3d20fc1e9f4ab7ba3af9755c5ddc544f58ddd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2267057
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
b0245f68
|
2020-06-23T22:38:12
|
|
Vulkan: Remove superseded updates when flushing to image
Especially with emulated formats and robust resource init, a clear is
staged that's often superseded by a data upload to the same subresource.
This change ensures that superseded updates are dropped to avoid
unnecessary GPU work.
Bug: angleproject:4691
Change-Id: I697ccd438b92fd2fff17a5800550694658c95c54
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2262574
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
a935c65a
|
2020-06-24T00:09:45
|
|
Fix delegate Worker Thread Pool creation
This error was introduced while fixing nits in the
previous CL.
The Delegate Pool was not created at all and always
fallback to the Async thread pool instead.
Bug: chromium:1091259
Change-Id: I5036836b5d792372636f21e936a03906eb587f67
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2262573
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Etienne Bergeron <etienneb@chromium.org>
|
|
e69298d1
|
2020-06-26T08:20:47
|
|
Vulkan: External image layout needs to be ReadWrite
Textures specified through external images need to
transition to a ReadWrite layout and not ReadOnly.
Bug: angleproject:4791
Change-Id: I8c0d5999d65499de6a36725ed1cc9c390c479c8c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2270513
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
da3e6451
|
2020-06-25T23:49:22
|
|
Vulkan: Fix fbo_invalidate tests for pre-rotation
The BlitFramebuffer path wasn't properly supporting stencil and MSAA
paths for pre-rotation:
1) The stencil path on Android isn't going through
UtilsVk::blitResolveImpl, but requires changing
UtilsVk::stencilBlitResolveNoShaderExport for rotation.
2) MSAA resolves requires rotating clippedSourceArea.
Test: angle_deqp_gles3_tests --gtest_filter=dEQP.GLES3/functional_fbo_invalidate_\*
Bug: b/158337857
Change-Id: I092cab302c247ff9b2e262b12de3d1a56a257f8e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2269499
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
d4874cb3
|
2020-06-25T10:49:32
|
|
Reformat Framebuffer::readPixels
Reformat Framebuffer::readPixels and its overriding methods
to the following method signature
angle::Result readPixels(const Context *context,
const Rectangle &area,
GLenum format,
GLenum type,
const PixelPackState &pack,
Buffer *packBuffer
void *pixels);
This will allow capture replay tool to use its own PixelPackState
to read pixels from framebuffer without having to set the global states
Bug: angleproject:4787
Change-Id: Idc64179d8e8f6b5163ef0747f239cd5172a2491b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2267417
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b067db75
|
2020-06-25T23:47:09
|
|
Vulkan: Fix copySubImageImplWithDraw() for pre-rotation
This involves cases of copying from a rotated default framebuffer.
Various adjustments are needed for where the source is and its
relationship to gl_FragCoord in the custom ImageCopy fragment
shaders. Various tests are affected, including the following:
Test: angle_deqp_gles2_tests --gtest_filter=dEQP.GLES2/functional_texture_specification_basic_copy*teximage2d_*
Test: angle_deqp_gles3_tests --gtest_filter=dEQP.GLES3/functional_texture_specification_basic_copy*teximage2d_*
Bug: b/158245571
Bug: b/157933235
Change-Id: Id9ec56d849cd2268954dd82623a7632a10fb8e8f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2248204
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
6b49449d
|
2020-06-25T12:25:33
|
|
Vulkan: Fix mipmap generation and level redefinition
When generating mipmaps, the non-base levels are redefined to be
compatible. mRedefinedLevels was not updated to take this into account,
resulting in invalid copies to the image.
Additionally, noted a few spots where ImageDesc is used to respecify the
image, but those are not up-to-date when the backend functions are
called. Changed those to directly get the necessary information from
the allocated image.
Bug: chromium:1094644
Bug: chromium:1094599
Change-Id: I2afc9e5a53f24ef56836c5d7eec2e3e11df0ef61
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2267423
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
77c062aa
|
2020-06-24T01:34:28
|
|
Vulkan: Remove emulated clears before mipmap generation
If the image is recreated for mipmap generation, and if the format used
is emulated, clears are automatically staged for all levels of the
image. Since non-base levels will be completely rendered to (using
blit, so not through the staging buffer), there is no point in
performing these clears for non-base levels. This change drops those
clears.
Note that another change will drop the clear for base level if detecting
that a future update will supersede it, for example because the base
level is being copied from the old image.
Bug: angleproject:4551
Change-Id: If2f10cf67e24b44243b29d22bfcf1cb933895cd7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2262575
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c81da1c8
|
2020-06-19T22:05:38
|
|
Vulkan: Avoid double-copy when generating mipmap
If the image needs to be redefined with mips, level 0 was copied to a
buffer which was then copied to the new image. This change instead
stages the old image directly for copy to the new image.
Bug: angleproject:4551
Change-Id: I7625f140ddadde0a2b439c5e91c519ad49ae2fd7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2257264
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6ee18c2d
|
2020-06-17T12:54:52
|
|
Vulkan: Remove debug symbols from internal shaders
Shaves ~47KB on binary size.
Bug: angleproject:2022
Change-Id: Ifc861c4308a806d17f499bf2126009a59125b9f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2249566
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
69a78e6d
|
2020-06-22T13:52:54
|
|
CGL: Add basic multithreading support
Adds first step to allowing multithreaded contexts: letting multiple
threads use ANGLE as long as only one thread has a current context at
a time.
Bug: angleproject:4724
Bug: angleproject:4725
Bug: chromium:1087084
Change-Id: Ia6ca48c5fa838b93e49fc9ea259d626029439ca3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2257273
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
4eb2f6dc
|
2020-06-11T11:30:14
|
|
Add basic multithreading support to GLX
The first step for true multithreading support is allowing multiple
threads to use ANGLE as long as only one thread has a current context
at a time.
Added a test to MultithreadingTests to reproduce this behavior and
implemented it in GLX.
Bug: angleproject:4724
Bug: angleproject:4725
Bug: chromium:1087084
Change-Id: I908d3f02f34a681f1c9d0919dd17aee1a489173c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2241616
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
5474304a
|
2020-06-24T11:29:58
|
|
Vulkan: Handle overflow in maxCombinedUniformComponents computation
Certain vendors support large number of uniform buffer components.
The calculation of maxCombinedUniformComponents overflows when
captured in a 32bit lvalue. Update it to a 64bit variable.
Bug: angleproject:4788
Tests: dEQP-GLES3.functional.state_query.integers64.max_combined*
Change-Id: I355910218c56347c98a5dfa7359b00be7b40871a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2264849
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ea706304
|
2020-06-24T16:35:10
|
|
Capture/Replay: Fixups for draw surface
Ran into these two problems while capturing gfxbench and
trying to replay in the sample.
Test: Capture and replay sample of gfxbench
Bug: b/159238311
Change-Id: I1c873cbf2e297b5299581a7ffc2b1273e2d4c18a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2265287
Reviewed-by: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
86ae16b6
|
2020-06-23T01:03:00
|
|
Vulkan: Fix CPU path copy of 2D array textures
Bug: angleproject:4744
Change-Id: I88d997c39a7d5f8fa9609c43c2cd192b237611e7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2259202
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6ef0387d
|
2020-06-16T23:32:47
|
|
Vulkan: Fix mipmap generation discarding levels above max
Bug: angleproject:4551
Change-Id: I1f65e41049b8cc8065ff988bb708cb44acfdb98b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2257263
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
18d412cb
|
2020-06-18T11:57:53
|
|
Fix readBuffer validation
The argument to glReadBuffer should be validated against
GL_MAX_COLOR_ATTACHMENTS, not GL_MAX_DRAW_BUFFERS.
Bug: angleproject:4766
Change-Id: Ic184934bd01e68b936266eae69543ae66fd68ea3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2252978
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
054aeeed
|
2020-06-12T11:49:03
|
|
Vulkan: Batch vkUpdateDescriptorSets calls
Right now we are making this calls multiple times as we loop through
each shader stage. Qualcomm performance validation layer warns about
this. This change will aggregate the calls into one call per dispatch.
Bug: b/158787299
Change-Id: I48aa3752f708c26ffbca2fb7947cb8bbc0f76dcd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2243321
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
70e706f4
|
2020-06-22T18:14:44
|
|
Vulkan: Fix glBlitFramebuffer() for pre-rotation
This involves cases of blitting to/from a rotated default framebuffer,
potentially with scaling in one or both dimensions. Various
adjustments are needed at different times in the stack, including in
the custom BlitResolve fragment shaders. Various tests are affected,
including the following:
Test: angle_end2end_tests --gtest_filter=*EGLPreRotationLargeSurfaceTest.OrientedWindowWithBlitFramebuffer
Test: angle_deqp_gles3_tests --gtest_filter=dEQP.GLES3/functional_fbo_invalidate_\*
Bug: b/158337857
Change-Id: Ibb176e4215784e85c0f34e6e1c22ba662517fed2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2242359
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
62a2f513
|
2020-06-23T13:16:19
|
|
Vulkan: Remove DispatchHelper
This class is no longer used.
Bug: angleproject:4029
Change-Id: I2758b286ae10856a5dff3decbb1cf9c58b44e354
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2260936
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cf11beed
|
2020-06-22T15:51:51
|
|
Add mip-related corner-case tests
Bug: angleproject:4780
Bug: angleproject:4781
Change-Id: Iaf8e1df576c3676249751413a646244da41a0eaf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2258476
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ce3d3413
|
2020-06-23T09:29:05
|
|
Update glslang_validator binary for Linux.
This binary was updated using update_glslang_binary.py.
Please see instructions in tools/glslang/README.md.
Bug: None
Change-Id: Ib1c3ae292a90ec6aabc79b9396ca2e35007edc16
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2260573
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b47cc50a
|
2020-06-22T10:59:09
|
|
Enable validation layer custom extensions
With this change, Vulkan-ValidationLayers will allow the specified
extensions to pass through, instead of being nulled out:
* VK_STRUCTURE_TYPE_SAMPLER_FILTERING_PRECISION_GOOGLE
* VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT
Bug: b/159027603
Bug: b/154620295
Change-Id: I0ace3acdac06a6c115834ef88b0c883fa2dd4744
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2246304
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7db2dcec
|
2020-06-19T07:01:08
|
|
Roll Vulkan-ValidationLayers from 04f0b691eb4c to 74ed6cfd05c1 (20 revisions)
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/04f0b691eb4c..74ed6cfd05c1
2020-06-18 tony@lunarg.com layers: Remove leading comma in lists
2020-06-18 mark@lunarg.com corechecks: Fix DrawIndexedIndirect VUID name
2020-06-18 jeremyk@lunarg.com tests: Add combined image sampler test
2020-06-18 jeremyk@lunarg.com layers: Add combined image sampler check
2020-06-18 jeremyk@lunarg.com layers: Add CMD_TYPE parameter to pipeline binding
2020-06-18 tony@lunarg.com layers: Add is_khr to acceleration_structure_state
2020-06-17 mark@lunarg.com tests: Don't run ManySmallIndexedDrawCall test on shieldTV
2020-06-17 s.fricke@samsung.com tests: Add export handleType VUIDs
2020-06-17 s.fricke@samsung.com layers: Add export handleType VUIDs
2020-06-17 s.fricke@samsung.com layers: Wrap non external AHB logic together
2020-06-17 s.fricke@samsung.com tests: Validate maxSamplerAllocationCount
2020-06-17 s.fricke@samsung.com layers: Validate maxSamplerAllocationCount
2020-06-17 s.fricke@samsung.com layers: Add function calls to error log messages
2020-06-17 mark@lunarg.com tests: Add filters for BP Android test failures
2020-06-17 mark@lunarg.com tests: Compile best practices tests for Android
2020-06-17 mark@lunarg.com tests: Replace setenv with private settings extension
2020-06-17 mark@lunarg.com layers: Add private settings extension and write support
2020-06-17 s.fricke@samsung.com layers: Remove invalid check for AHB format
2020-06-17 szilard.papp@arm.com tests: Adding test for triple buffering
2020-06-17 szilard.papp@arm.com practices: Adding checks for triple buffering
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-validation-layers-angle-autoroll
Please CC courtneygo@google.com on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md
Bug: None
Tbr: courtneygo@google.com
Change-Id: I8c35e56e998560c53e8b54bfd26749d334172b30
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2254490
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
cfbf769d
|
2020-06-22T10:14:02
|
|
Vulkan:Level/Layer hash fix-up
Simplify has function for level/layer of imageView and add
asserts to make sure that there won't be hash collisions.
Bug: angleproject:4651
Change-Id: I8ab86a4f3d7aa668ad2c08e61bd5fd57744fcd12
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2257265
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
113c5e29
|
2020-05-11T22:49:03
|
|
Metal: deferred render command encoder creation.
MTLRenderCommandEncoder creation will be deferred until a render pass
ends.
Commands will be stored into a back-end owned buffer during render pass.
At the end of the render pass, those commands will be re-encoded into an
actual MTLRenderCommandEncoder.
Benefits:
- Useful for future implementation of occlusion query buffer where it
could be allocated right before the end of a render pass to be big
enough to store all queries within the render pass.
- It's possible to change load option (deferred clear) as long as there
is no draw call issued yet. This is not implemented yet.
- Possibility of commands' re-ordering.
Bug: angleproject:2634
Change-Id: I1348716aa882c0540d9120bf175d8dac13fb58bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2193196
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b772a955
|
2020-06-16T23:32:47
|
|
Vulkan: Make texture syncState aware of upcoming generateMipmap
By letting TextureVk::syncState know it's being called for
generateMipmap, it can make a better decision to initialize the image:
- Staged updates to mips that are going to be overwritten are dropped
- The image is created with full mipchain to avoid a redefine in the
following generateMipmap() call.
Bug: angleproject:4551
Change-Id: Ic70ee6c0a0b29c7bd62beaff612b2f2d5276defb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2249340
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
2919dc6e
|
2020-06-15T18:39:39
|
|
Add immutable samplers to descriptor set layout
To support YUV conversion we need to track the use of immutable samplers
in the descriptor set layout.
Bug: b/155487768
Change-Id: Ic7dc6a08551f5125c4a519b5cfada312f95ab914
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2225423
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
f56ba018
|
2020-06-19T11:30:59
|
|
Fix TSAN build error
This typo was hidden behind a THREAD_SANITIZER flag so it was uncaught
by the CQ. I verified this fix locally.
Bug: chromium:1097082
Change-Id: I4e31d1d1253cbcaf292c9a588bcd54fc298e85b6
TBR=jmadill@chromium.org
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2254558
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
34ca1ac7
|
2020-06-16T12:05:12
|
|
Vulkan: Fix FramebufferVk cache
Migrate Serial from Image to ImageView.
Imageviews are what are utimately used in FramebufferVk, so move
the Serials into the ImageViewHelper class. Since that class also
knows the level/layer of the imageView, we can revert to using a
single Serial per ImageView instead of the AttachmentSerial that
included the layer and level.
ImageViewHelper caches Serials per layer/level combo.
Bug: angleproject:4651
Change-Id: I3741d7d03523eada84295cb712c1cc1e6e3c3867
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2248203
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3589d9a0
|
2020-06-16T15:32:18
|
|
Add a test for generateMipmap after modify
To make sure TextureVk::syncState is called before generateMipmap.
Bug: angleproject:4551
Change-Id: Ibce0738b72fc81270e07617f04ffee57f1c8ed20
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2248209
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
1c484343
|
2020-06-17T10:10:16
|
|
Capture/Replay: Track the draw surface width/height
In order for captures to replay correctly, track the original
width and height of the draw surface, as provided by eglMakeCurrent.
Bug: b/159238311
Test: angle_perftests
Change-Id: Ic8697abaca7dbdb94dabf34b872f69faf17b0b4d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2250861
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Manh Nguyen <nguyenmh@google.com>
|
|
6cb8345f
|
2020-06-17T23:22:57
|
|
Vulkan: Non-zero memory initialization for all images
This was only implemented for single-level, single-layer, single-sample
color images. This change implements clear for all images.
Additionally, the move to VMA broke the initialization of the staging
buffer, so even for the supported case, the image was being initialized
with uninitialized data.
Bug: angleproject:4092
Bug: angleproject:4551
Change-Id: Ic2eee3f8454a93f1bcf3ca725afabcdc693047e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2249376
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c70b8f84
|
2020-06-17T17:06:27
|
|
GL: Workaround NVIDIA issue in glLinkProgram
When TSAN is enabled, it catches some bad memory access in the NVIDIA
driver on Linux during glLinkProgram with multithreaded linking.
To workaround this, assume we don't have native support for
KHR_parallel_shader_compile
Bug: chromium:1094869
Change-Id: I92f042b39028df108de2c5378311cc0c7b683e08
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2250938
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|