|
97843bda
|
2020-10-30T17:03:36
|
|
Vulkan: Fix EGL Surface robust init.
The error here was related to using a single cache variable for the
robust init setting for all the surfaces in a DisplayVk. Fix this by
passing down the robust init setting from the SurfaceVk to image init.
Bug: angleproject:5274
Change-Id: I9bc9c20990268d1d5166411fb53f8f2593fd1971
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2510694
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
82817c9a
|
2020-10-12T15:27:28
|
|
Reimplement WindowSurfaceVkAndroid::getCurrentWindowSize()
Use vkGetPhysicalDeviceSurfaceCapabilitiesKHR() instead of
ANativeWindow_getWidth() & ANativeWindow_getHeight(). The former
gives the proper size of the window, where the latter gives the size
of the device's display (which is the default size of a window).
Bug: b/168327817
Change-Id: I524116b7b07bf2ec7637fe2874806c5eb8318171
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2464920
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
86ca5d2b
|
2020-10-01T11:56:05
|
|
Vulkan: Add plumbing to render pass when ImageHelper gets deleted
ImageHelper object is not refcounted and garbage collected and
endRenderPass call is deferred until next render pass starts. This
caused a situation that an ImageHelper object gets deleted while still
referenced in the open render pass. This CL make sure that we call into
all shared context's open renderpass when an image goes away so that
they can take appropriate action for this.
Bug: b/169618408
Change-Id: I5075e805980084db82ca3e699462272eee5d2d59
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2443571
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
348814f9
|
2020-09-30T09:50:10
|
|
EGL: Add stencil8 to configs
Add stencil8 option to Depth and Stencil of configs based on
support of stencil8 format from GLES.
Add stencil8 to configs
Adjust dEQP-EGL expectations
Unblocks dEQP-EGL.functional.*.*_no_depth_stencil tests
Test: angle_deqp_egl_tests
Bug: angleproject:3231
Change-Id: I57d7085a71a5b0dc45803351c9116a1694668852
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2430191
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
62778cb9
|
2020-09-22T23:10:04
|
|
Rename version/commit headers.
Prefix the files with angle_ to disambiguate them from other tools.
Bug: b/168736059
Change-Id: I7be25ca18fb69d7f2ab71bdf355932865d134954
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2425197
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ed518d15
|
2020-09-11T12:47:52
|
|
EGL: Refcount external AHB when backing an image
When an image is backed by an external source like an AHB
we need to refcount the buffer appropriately to prevent
deletion of the buffer while in use.
Bug: angleproject:5018
Tests: angle_end2end_tests --gtest_filter=ImageTest.SourceAHBTarget2DEarlyDelete*
Change-Id: Ib6318fc3dc442460d1a2bdd6d75a4458895667bb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2406615
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
84bd9dad
|
2020-08-26T22:01:44
|
|
Vulkan: Allow pbuffer usage if no window support
Vulkan allows rendering to non-swapchain images, so pbuffers can always
be supported on every config. With this change, if the window system
does not support a configuration, EGL_WINDOW_BIT is removed from the
config instead of dropping the config entirely.
Bug: chromium:1034840
Change-Id: Ib972ed8ddf7660c327123fa83ae0674456cf2a35
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2378921
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: back sept 10 - Jamie Madill <jmadill@chromium.org>
|
|
a0d048a4
|
2020-08-27T12:03:02
|
|
Vulkan: Fool-proof usage of GL and VK level indices
Using boxed types, this change allows the compiler to catch errors when
a level index in one space (e.g. GL) is mistakenly used in another space
(e.g. VK).
This change uncovered a number of bugs due to such mistakes which are
fixed.
Mistakes are still possible when the index is explicitly extracted, for
example to be given to a Vulkan command, or when it's created, for
example when retrieved from gl::ImageIndex::getLevelIndex. Future work
can include using gl::LevelIndex in gl::ImageIndex directly to alleviate
the latter at least.
Bug: angleproject:4880
Change-Id: I6427c68c3bc096f771402f51c8554d8171758aa9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2380232
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@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>
|
|
1a455f4e
|
2020-06-12T15:49:46
|
|
Vulkan: Set external image's usage flags based on AHB usage flags
For vkImages that are backed by external memory we need to derive
the VkImageUsageFlags based on the usage flags of the AHB.
Bug: angleproject:4739
Change-Id: I92bee943c66f7eadd9b63bb9bf1b59ffe5bc5a37
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2243765
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
0eae0d6c
|
2020-06-11T08:53:39
|
|
Vulkan: Set external image's tiling mode based on AHB usage flags
For external images which can be accessed by CPU,
the tiling mode should be linear. So, query the usage
of the Android Hardware Buffer and derive the tiling
mode based on AHB usage flags.
Bug: angleproject:4735
Change-Id: I1b91c6800d414d73091032e40d8e4f1e8f6c101b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2241780
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8f6d1af9
|
2020-03-19T14:35:48
|
|
Vulkan: Implement EXT_texture_format_sRGB_override
Implemented support for EXT_texture_format_sRGB_override
This is done by creating new imageviews for textures with sRGB
overridden that reinterpret the format to its sRGB counterpart.
As preparation for this, textures that use this feature are
reallocated with VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT. This will
have a performance cost for textures that use this feature, but
should have no performance cost for regular textures, since they
will not have this bit set.
Bug: angleproject:4561
Test: angle_end2end_tests --gtest_filter=SRGBTextureTest.*Vulkan*
Change-Id: Iba25f1f2b0a7227959c1cb4ba6e3ca8311c20d06
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2152145
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
2ed71c81
|
2019-11-27T11:42:08
|
|
Vulkan: Isolate DisplayVk.h from Display.cpp.
With this change we no longer can access Vulkan (or Volk) headers
in the ANGLE front-end. The only header that needs to be visible is
the new "DisplayVk_api.h".
This will simplify a bit of Volk integration.
Also reworks how the entry points and headers are exposed to the tests.
Bug: angleproject:3740
Change-Id: Ic1434f304619427ed6ad6370bc090ceb7858df94
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1936707
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
5883a44b
|
2019-11-02T19:34:47
|
|
Vulkan: Don't pass width/height to Surface constructors.
These values are accessible already from the Surface state. Sometimes
they don't apply (e.g. GGP). Remove them to keep the code clearer.
Updates the offscreen surface constructor to pull width and height from
the attributes map instead of using parameters. Otherwise they weren't
used.
Refactoring change only.
Bug: angleproject:4078
Change-Id: I9e49eadc7116562f62bd8d11342d6b8835376719
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1895762
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
88a74e59
|
2019-10-29T09:48:18
|
|
Vulkan Android: Remove support for EGLConfig's with GL_RGB10_A2 & GL_RGBA16F
These were recently reverted from the Android Vulkan loader, and must
also be reverted from ANGLE. When the Android Vulkan loader adds
back support, it will be conditional based on whether the device
supports those formats. Therefore, at that time, ANGLE will need to
do the same.
Bug: http://anglebug.com/4019
Bug: http://anglebug.com/4061
Bug: http://anglebug.com/4062
Change-Id: I0b749dc8be0439e6f3b8eeeb51716d4185e9b021
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1887393
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
beacd8c8
|
2019-10-17T14:34:02
|
|
Vulkan: Rename format fields.
Renames 'angleFormat' to 'intendedFormat'. Also renames 'bufferFormat'
and 'imageFormat' to 'actualImageFormat' and 'actualBufferFormat'. This
renaming should make it clearer to the reader what the meaning of the
different format fields are. Intended format is the front-end format
and the actual formats are the formats we pass to Vulkan. Also updates
the documentation.
Bug: angleproject:4009
Change-Id: If61bf7250e88f7ed3d452718574c963d718e27b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1866077
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f10bf6bf
|
2019-09-26T10:27:18
|
|
Vulkan: Implement multi-threaded GL.
The main component of this change is to make vk::BufferHelper,
vk::ImageHelper and vk::SyncHelper use a common path. We introduce a
new "vk::SharedGarbage" helper class that stores small lists of garbage
from individual objects like an ImageHelper or BufferHelper. The
SharedGarbage is stored in the RendererVk with the ResourceUse of the
helper object. The ResourceUse tells RendererVk when it is safe to
destroy the GarbageObjects.
New "onGraphAccess" commands are added in a few places to enable the
common garbage collection path. A couple Context-only resources like
default attributes now are referenced where they were not before.
Also reorganizes some functions so we can add a few helpful ASSERTs
to our graph dependencies. Added "updateCurrentAccessNodes" for this.
Also adds a "RendererScoped" helper to replace many uses of
"ContextScoped".
The multithreading EGL tests mostly pass but have some remaining
flakiness so cannot yet be enabled.
Bug: angleproject:2464
Change-Id: Ia3e3ae8848d731abf3f21ebe04c33e381e130be0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1808444
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
cb16fb5f
|
2019-08-29T16:53:55
|
|
Vulkan: Support texture base and max levels
The Vulkan backend uses a vkImage that matches the number
of effective levels in the GL texture. This is due to the fact
that GL textures can have really strange layouts that only make
sense when base level and max level are applied.
For instance, take the following layout with disjoint mip levels:
Level 0: 4x4 RGBA
Level 1: 2x2 RGBA
Level 2: 10x10 RGB
If base level is set to zero and max level is set to 1, the image is
still considered mip-complete:
Level 0: 4x4 RGBA ==> Base Level 0 ==> Level 0: 4x4 RGBA
Level 1: 2x2 RGBA ==> Max Level 1 ==> Level 1: 2x2 RGBA
Level 2: 10x10 RGB
If base and max level are then both set to 2, the texture is still
considered complete, but of a different size and format:
Level 0: 4x4 RGBA
Level 1: 2x2 RGBA
Level 2: 10x10 RGB ==> Base/Max Level 2 ==> Level 2: 10x10 RGB
When the base or max level is changed, we must recreate the vkImage to
match the new level count.
To support that, we:
- Stage updates from the current image to the new image
- Only stage updates if there aren't already staged updates for a level
- Free the current image and so it can be recreated at the next draw
This CL does the following:
- Refactors TextureVk::copyImageDataToBuffer to support staging updates
without flush
- Adds TextureVk::copyImageDataToBufferAndGetData to support previous
use model
- Adds TextureVk::changeLevels, triggered during syncState, which stages
updates and releases the current image.
- Updates ImageHelper::flushStagedUpdates to understand base/max levels
- Updates TextureVk::ensureImageInitialized and TextureVk::generateMipmap
to account for base/max level
- Tracks base and max levels in ImageHelper
- Adds ImageHelper::stageSubresourceUpdateFromBuffer to support
this use case
- Adds ImageHelper::isUpdateStaged to determine if changeLevels
should propagate data
- Makes gl::TextureTypeToTarget available for use outside of ImageIndex
- Enables several deqp and end2end tests
Bug: angleproject:3148
Test: dEQP-GLES3.functional.texture.mipmap.*base_level*
Test: dEQP-GLES3.functional.texture.mipmap.*max_level*
Change-Id: I14ca071c9c62eb310dfed7ef9290dc65fc3ff696
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1776933
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
33ffed01
|
2019-09-26T10:19:35
|
|
Vulkan: Clean up garbage APIs.
Instead of dumping resources to a context, we use the release APIs
consistently. Refactoring/cleanup change only. Should have very litte
impact on runtime behaviour.
Bug: angleproject:2464
Change-Id: I2dc7f8316c466f7ccfad50a7b792ba0ee7bc2e49
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1804883
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c327370e
|
2019-07-23T12:54:12
|
|
Vulkan: Pass VkExtent3D to TextureHelper::init.
Bug: angleproject:3189
Change-Id: I4b95240bb32fbc2b3d0c8f097e0552d0fe23417d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1713094
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
66b5ff58
|
2019-06-28T14:34:22
|
|
texture3D: Implement functionality and enable for Vulkan
Also update test expectations for texture3D.
Bug: angleproject:3188
Change-Id: If8a8e0a83a86c48c2afb0c36534c1e9d4120fe47
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1682782
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Lingfeng Yang <lfy@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
b16d69c3
|
2019-05-13T16:28:27
|
|
Vulkan: Add support for surface multisampling
A multisample image is created for the surface if multisampling is
enabled. Prior to present, this multisample image is resolved into the
swapchain image.
FramebufferVk::readPixelsImpl similarly has got the ability to resolve
the region of interest into a temporary image prior to readback.
Tests are added to render a point, line and a triangle on a 4x
multisampled surface.
Bug: angleproject:3204
Change-Id: I34aca502fa1918b5cbf000ff11521c350372e051
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1610188
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e755a537
|
2019-04-10T09:58:21
|
|
Vulkan: Add a new garbage type gated by fences.
This allows Vulkan EGL objects such as EGL Syncs and EGL Images to give their
garbage to the renderer before destroying.
BUG=angleproject:2464
Change-Id: I59b8e1080e4292bd0856e59a928750c7e77a372e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1562522
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
83740f97
|
2019-04-22T11:56:56
|
|
Android: Add ANGLE version to logcat
We need addtional info in logcat to diagnose ANGLE issues.
Before this, only Vulkan version and hardware details are reported:
ANGLE : Vulkan 1.1.87(Adreno (TM) 540 (0x05040001))
After this, we also get the ANGLE version:
ANGLE : Version (2.1.0.bc20af89d498), Renderer (Vulkan 1.1.87(Adreno (TM) 540 (0x05040001)))
Bug: angleproject:3395
Change-Id: I4b67fe5ce389d3d2d641a4cc8b2e0b67649dc70d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1579044
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
0631e19b
|
2019-04-18T16:09:12
|
|
Vulkan: Rename Vulkan "Texture" format to "Image"
Also adds some comments to vk_format_utils.h.
Bug: angleproject:3372
Change-Id: I529b9b189e4cdfd400c3c981a47139727d9954ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1565062
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
009696c5
|
2019-01-31T14:47:07
|
|
Vulkan: Support EGL_ANDROID_image_native_buffer on Android.
BUG=angleproject:2668
BUG=angleproject:3121
Change-Id: I0dfb2ec0737ebd963b0fadb78cf720a90874f00b
Reviewed-on: https://chromium-review.googlesource.com/c/1452264
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9429f216
|
2019-02-15T10:43:14
|
|
Vulkan: Add missing EGLConfigs for Android Native pixel formats
GL_RGBA16F correlates to HAL_PIXEL_FORMAT_RGBA_FP16.
GL_RGB10_A2 that correlates to HAL_PIXEL_FORMAT_RGBA_1010102.
This fills-in key holes between generated ANGLE config formats and the
Android native formats after GL_RGB565 was added to fix the configs
that were missing for some games.
Modified EGLContextCompatibilityTest to exclude GL_RGB10_A2 and
GL_RGBA16F from some of the EGLContextCompatibilityTest cases.
EGLContextCompatibilityTest uses the OSWindow utility, which only
works with UNORM-compatible EGLConfigs that are a proper subset of
GL_RGBA8. The new configs won't work with the WindowDifferentConfig
and WindowSameConfig test cases.
Bug: angleproject:3155
Change-Id: I693ed24f13ba787ea6d661f42ec65dc3d26f08f6
Reviewed-on: https://chromium-review.googlesource.com/c/1276807
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
ab5acbd5
|
2019-01-23T13:58:09
|
|
Vulkan: implement swapchain resizing
Vulkan allows a swapchain to be created based off of an older swapchain
that's still presenting, to support seamless window resizing. The old
swapchain will remain alive (though no image can be acquired from it)
and automatically cleaned once no image is being presented from it.
The retired swapchain can be destroyed once all operations on its images
are completed. We store the old swapchain next to the serial of
submission that's used for CPU throttling and defer the destroy call
until after `finishToSerial` for that serial is called.
Bug: angleproject:2942
Change-Id: Ic62a5a57b712ffa2b087f5fecde0dc8942194075
Reviewed-on: https://chromium-review.googlesource.com/c/1435634
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
740db7fd
|
2019-02-06T09:40:13
|
|
Vulkan: Add support for loading layers from DisplayVk
Fuchsia needs a layer to support VK_KHR_swapchain. Add the ability for
DisplayVk subclasses to request a layer in addition to an extension.
BUG=angleproject:2475
TEST=angle_end2end_tests on Fuchsia
Change-Id: If86c773d4bd4ebecaee4b1631d3d4975105fe849
Reviewed-on: https://chromium-review.googlesource.com/c/1456478
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
7c985f5c
|
2018-11-29T18:16:17
|
|
Make angle::Result an enum.
This moves away from a class type to a value type. This should improve
performance when using angle::Result as a return value. Previously the
generated code would return a pointer instead of a value.
Improves performance in the most targeted microbenchmark by 10%. In
more realistic scanarios it will have a smaller improvement. Also
simplifies the class implementation and usage.
Includes some unrelated code generation changes.
Bug: angleproject:2491
Change-Id: Ifcf86870bf1c00a2f73c39ea6e4f05ca705050aa
Reviewed-on: https://chromium-review.googlesource.com/c/1356139
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b980c563
|
2018-11-27T11:34:27
|
|
Reformat all cpp and h files.
This applies git cl format --full to all ANGLE sources.
Bug: angleproject:2986
Change-Id: Ib504e618c1589332a37e97696cdc3515d739308f
Reviewed-on: https://chromium-review.googlesource.com/c/1351367
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
06270c9e
|
2018-10-03T17:00:25
|
|
Vulkan: Safer struct initialization
Using x = {}; before filling out each field, we can be sure any missing
field is 0 initialized. This in turn helps us not have to specify
certain fields that are generally unused (at the moment), such
as pNext.
Bug: angleproject:2860
Change-Id: Ia1fa2db3ecfb316673a02ac0c5e13e47e055a19f
Reviewed-on: https://chromium-review.googlesource.com/c/1259764
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
607f907d
|
2018-10-02T14:39:20
|
|
Vulkan: Add 565 configs for Android
Generate GL_RGB565 internal format configs for Android VK. This allows
apps requesting such formats to map to the appropriate corresponding
Android internal pixel format.
Bug: angleproject:2863
Change-Id: I18f119d6554a601037a40db27234bf33e0ada438
Reviewed-on: https://chromium-review.googlesource.com/c/1258083
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
80efe08d
|
2018-09-18T06:38:07
|
|
Log Renderer string on Android displays.
This adds a custom logging step to DisplayAndroid and DisplayVkAndroid.
It's easiest to add to these two classes since we have no common info
logging code and other platforms may not want startup spam. It would
also be possible to put this into debug info hooks.
Bug: angleproject:2823
Change-Id: I12a1ea9e27880648d8a73a9e3faa56f318620cbe
Reviewed-on: https://chromium-review.googlesource.com/1230273
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
38971fd1
|
2018-06-28T15:19:18
|
|
Vulkan: Support multiple depth stencil formats for backbuffers.
Since the backbuffer's depth stencil is always emualted, it can support any
depth stencil format.
BUG=angleproject:2692
Change-Id: I29df62bb322c1ac4e9fcd54e4cbc4c219cf12e83
Reviewed-on: https://chromium-review.googlesource.com/1119075
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
21061026
|
2018-07-12T23:56:30
|
|
Vulkan: Use angle::Result error handling.
Introduces a vk::Context class to contain an error handler and Renderer
pointer. This abtracts the common code path for ContextVk + DisplayVk.
Removes vk::Error in favor of the POD angle::Result class. There are a
few remaining usages of gl::Error that will have to be cleaned up when
we can change the front-end APIs.
Bug: angleproject:2713
Change-Id: I5e68f223d595c6c561b59d6a85759e5738ed43c6
Reviewed-on: https://chromium-review.googlesource.com/1128924
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
6cad7736
|
2018-07-11T09:01:17
|
|
Vulkan: Remove vk::ErrorOrResult.
The ErrorOrResult pattern doesn't help much. Removing it enables the
Error passing refactor in the Vulkan back-end.
Bug: angleproject:2713
Change-Id: I4e8277ad856c785bf22b4d37b7ae880b534ef005
Reviewed-on: https://chromium-review.googlesource.com/1128919
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
cb8a921b
|
2018-06-28T12:30:36
|
|
Vulkan: Support RGB/BGR backbuffers emulated on RGBA/BGRA.
BUG=angleproject:2692
BUG=angleproject:2523
BUG=angleproject:2715
BUG=angleproject:2716
Change-Id: I538b385f8b66fb97e176953b0fc4a6299849c005
Reviewed-on: https://chromium-review.googlesource.com/1118713
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|
|
475ef575
|
2018-06-27T15:54:18
|
|
Vulkan: Refactor config generation out of platform specific code.
Permuatations of configs are now generated in platform-independent code and
a DisplayVk callback is used to determine native support.
BUG=angleproject:2692
Change-Id: Iad450c1a3275239d6bcbc350e8dd8e37470fa8e0
Reviewed-on: https://chromium-review.googlesource.com/1117563
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
9e14164d
|
2018-06-27T11:43:18
|
|
VK: Support pbuffer surfaces.
TEST=PbufferTest
TEST=dEQP-EGL.functional.color_clears.single_context.gles2.rgba8888_pbuffer
TEST=dEQP-EGL.functional.color_clears.multi_context.gles2.rgba8888_pbuffer
TEST=dEQP-EGL.functional.render.single_context.gles2.rgba8888_pbuffer
TEST=dEQP-EGL.functional.render.multi_context.gles2.rgba8888_pbuffer
BUG=angleproject:2622
Change-Id: I99f64689c274fbb565b365f4a05b52252528fc38
Reviewed-on: https://chromium-review.googlesource.com/1117030
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f618c9e5
|
2018-02-15T14:45:40
|
|
Vulkan: Add depth/stencil surfaces.
This change lets us create egl::Surfaces from a D24S8 config. This is
a bit hacky, because the spec only mandates 24 -or- 32 bit depth
support, but not both or either individually. Will need follow-up work
for proper EGL config setup.
A single depth buffer is allocated for the entire set of swapchain
images and is used with each. This also might be a problem if we're
rendering to multiple frames at the same time. We'll likely have to
revisit this in the future as well.
This adds a new RenderTargetVk to the SurfaceVk class which points to
the Depth/Stencil image. Since ImageViews must refer to either the
depth or stencil, but not both, we'll need to address this when we
get to implementing depth/stencil texture reads in shaders.
Bug: angleproject:2357
Change-Id: Ibed0eed7e1d0efb272758dbfc79fa2c5aa93997f
Reviewed-on: https://chromium-review.googlesource.com/919761
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
199f4294
|
2018-01-19T19:04:05
|
|
Vulkan: Enable on Android
Add Android DisplayVk and WindowSurfaceVk variants.
Build Vulkan backend and validation layers on Android
if toolchain uses required NDK API level.
Fix validation layers discovery to work on Android.
BUG=angleproject:2314
TEST=angle_end2end_tests builds and runs on Nexus 5X, 12 VULKAN tests pass
Change-Id: Iac2ec4ecd6470a7552f9f60c023ba1760aa090c5
Reviewed-on: https://chromium-review.googlesource.com/887797
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|