|
6fe13477
|
2021-11-11T00:47:14
|
|
Vulkan: Add external's pNext to ANGLE_external_objects_flags
ANGLE was chaining VkImageFormatListCreateInfoKHR to
VkImageCreateInfo::pNext to support sRGB extensions. For external
images, it was unknown whether that was valid because there was no way
to know if external used an identical chain of pNexts. This was causing
a discrepancy between images created by Chrome and those created by
ANGLE as part of an import.
This change updates ANGLE_external_objects_flags to take in the pNext
chain external has used to create the image so ANGLE could create the
image identically.
Bug: chromium:1266094
Change-Id: I479b9e7ff39d437425dc91c79834880749766f99
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3274177
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Peng Huang <penghuang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8ea87a67
|
2021-08-17T18:46:36
|
|
Vulkan: Avoid texture format fallback when possible
Some texture formats are not renderable on some hardware. For example,
R4G4B4A4 are not renderable on nvidia and not blendable on ARM.
R5G5B5A1 are also not blendable on nvidia. Right now when we generate
format table, we are being most conservative, picking an actual format
that is always renderable and blendable. This means when R4G4B4A4 is
used on one of these GPUs, we are always falling back to R8G8B8A8
regardless if the texture is actually being used as color attachment or
not. This CL adds a actualRenderableImageFormatID field in vk::Format.
Initially we will pick actualImageFormatID which only ensures texture
sample capability. If later on the texture is being attached to FBO,
then we will switch to actualRenderableImageFormatID and do data copy if
necessary. This way we save memory and reduce texture bandwidth for most
usage of these textures. For renderBuffer and surfaces and EGLImages, we
always pick the renderable textures.
Bug: b/196456356
Change-Id: I02eec3365c2a317b0d1bad6dbdc3e741114c5bba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3104514
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
de09f8db
|
2021-09-02T18:21:37
|
|
Revert "GL: Update StateManagerGL binding funcs to use ANGLE_GL_TRY"
This reverts commit 4b5a774e855af2493d64b0635f56053bd795c5c5.
Reason for revert: broken on iOS and Skia
Original change's description:
> GL: Update StateManagerGL binding funcs to use ANGLE_GL_TRY
>
> Bug: angleproject:3020
> Change-Id: Iff460a1012d06e1c5feff84d91117de87e7c870a
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3123167
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Bug: angleproject:3020
Change-Id: I54d81a7b734d007f65ff97990008f5e6eb8536f6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140453
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f015ae81
|
2021-08-02T12:47:32
|
|
Implement onLabelUpdate method.
This change will implement the onLabelUpdate method by calling from
every TextureStorage object. Instead of using setDebugName,
introduced two new functions, setInternalName and setKHRDebugLabel,
which will set the internal name and KHR label respectively that will
further be sent to D3D string.
Bug: chromium:1164111
Change-Id: I401ca9f6e8a2099a8807f0d7f321efe74269f9f0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067921
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
|
|
4b5a774e
|
2020-04-03T14:56:36
|
|
GL: Update StateManagerGL binding funcs to use ANGLE_GL_TRY
Bug: angleproject:3020
Change-Id: Iff460a1012d06e1c5feff84d91117de87e7c870a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3123167
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
f3bccd9d
|
2021-08-26T18:04:13
|
|
Revert "GL: Update StateManagerGL binding funcs to use ANGLE_GL_TRY"
This reverts commit 8d7f4cc986778bfff0b242dbea6083346da6c54d.
Reason for revert: Broke CrOS build.
Original change's description:
> GL: Update StateManagerGL binding funcs to use ANGLE_GL_TRY
>
> Bug: angleproject:3020
> Change-Id: If60448f80daaeeb1503b41db8ac309e45923fd13
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2135929
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Bug: angleproject:3020
Change-Id: I0930c1bdb5356d533fae563428893aa8a9f91a52
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3123266
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
8d7f4cc9
|
2020-04-03T14:56:36
|
|
GL: Update StateManagerGL binding funcs to use ANGLE_GL_TRY
Bug: angleproject:3020
Change-Id: If60448f80daaeeb1503b41db8ac309e45923fd13
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2135929
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
eb458fbe
|
2021-08-18T14:17:31
|
|
GL: Add emulateImmutableCompressedTexture3D workaround
The workaround replaces glTexStorage3D with a series
of glCompressedTexImage3D calls.
Bug: chromium:1060012
Change-Id: I08e026e68dd697654cc4ab8feb190a35e56ea133
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3103070
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
8333d061
|
2021-06-14T11:01:35
|
|
GL: Respect TexSubImage upload limits for robust init
The chunked_texture_upload splits texture uploads for glTexSubImage
calls but ANGLE uses glTexSubImage internally for robust resource
initialization. Also chunk those uploads.
Bug: chromium:1181068
Change-Id: Ia6eaac8117173946630f420b396cbc54c163b7ce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2961230
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
c12f594a
|
2021-05-31T10:48:20
|
|
GL: Chunk uploads of texture data >120kb on Mac.
Mac drivers are hanging and crashing after large glTexSubImage uploads.
Chunk those uploads to avoid this problematic path in the driver.
Bug: chromium:1181068
Change-Id: I7dca0b8e49420f015ff7830283c14283a0515826
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2928098
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
5a0925de
|
2021-05-14T15:25:07
|
|
GL: Recreate textures on eglReleaseTexImage.
Texture data should be reset on eglReleaseTexImage but ANGLE sometimes
skipped this because it generated GL errors on Mac. Instead, delete
and recreate the native texture to make sure ANGLE doesn't hold any
references.
Bug: chromium:1181068
Change-Id: I1252b0900361852f66f73b8c9d20a29c53897ee4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897544
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
2b7fdb62
|
2021-03-04T13:20:32
|
|
Reland "Fix bindFramebuffer problem with GLES2 devices"
This is a reland of 92049513f46e2d4bc09d47d00f63d64fdb25a220
Original change's description:
> Fix bindFramebuffer problem with GLES2 devices
>
> GLES2 and OpengGL 2 don't support GL_{DRAW,READ}_FRAMEBUFFER.
> Always uses GL_FRAMEBUFFER for them.
>
> Bug: chromium:1167731
> Change-Id: Iab75a27b4c47d0bdaa2ec18a9019fd2d2535b04d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2737062
> Commit-Queue: Peng Huang <penghuang@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Bug: chromium:1167731
Change-Id: I530a47fa3367ca98dbde24e3084515d5562ac8b0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2743664
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
2d07b04d
|
2021-03-09T15:23:25
|
|
Revert "Fix bindFramebuffer problem with GLES2 devices"
This reverts commit 92049513f46e2d4bc09d47d00f63d64fdb25a220.
Reason for revert: crbug.com/1186140
Original change's description:
> Fix bindFramebuffer problem with GLES2 devices
>
> GLES2 and OpengGL 2 don't support GL_{DRAW,READ}_FRAMEBUFFER.
> Always uses GL_FRAMEBUFFER for them.
>
> Bug: chromium:1167731
> Change-Id: Iab75a27b4c47d0bdaa2ec18a9019fd2d2535b04d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2737062
> Commit-Queue: Peng Huang <penghuang@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Bug: chromium:1167731, chromium:1186140
Change-Id: I1425bc9cf4145887193b7d18f956d6fbf07ce028
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2743661
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
92049513
|
2021-03-04T13:20:32
|
|
Fix bindFramebuffer problem with GLES2 devices
GLES2 and OpengGL 2 don't support GL_{DRAW,READ}_FRAMEBUFFER.
Always uses GL_FRAMEBUFFER for them.
Bug: chromium:1167731
Change-Id: Iab75a27b4c47d0bdaa2ec18a9019fd2d2535b04d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2737062
Commit-Queue: Peng Huang <penghuang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
72b68950
|
2020-12-02T16:22:21
|
|
Ignore redundant Texture state changes
Dirtying the state unnecessarily was causing Vulkan backend to create
new framebuffer objects when it didn't need to.
Bug: b/174700581
Change-Id: I74e0ed51a2c6598ab3dca9a955c247ec97b6856f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2570201
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
86d7e4d8
|
2020-11-10T15:55:34
|
|
Vulkan: Support texture buffers
Texture buffers are placed in the same descriptor set with the rest of
the textures. However, the different code paths that handle textures
have special cases for texture buffers as they create a different
descriptor type (texel buffer instead of combined image sampler). Image
view serials are used to track the buffer view serials as well so the
texture descriptor cache can handle texture buffers as well.
This CL is missing storage texel buffer support.
Bug: angleproject:3573
Change-Id: Iff80ca22ff9b9957a0c9a3c7aaada1fa54b24ec8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2532653
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
5dec9d19
|
2020-11-16T16:52:23
|
|
Use 0 as special value for glTexBuffer instead of UINT_MAX
This is more in line with the rest of ANGLE which assumes a binding of 0
size means the size of gl::Buffer. This allows
GetBoundBufferAvailableSize to be used in texture buffer related code.
Bug: angleproject:3573
Change-Id: I305835f305d4bf4422759bb96e030cbbc136871a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2542863
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5b419533
|
2020-11-03T13:33:44
|
|
GL: Implement EXT_YUV_target
Add test coverage of YUV format sampling as RGB or directly as YUV and
rendering as YUV using layout(yuv).
Initializing YUV AHardwareBuffers requires Android API 29 so ANGLE must
be compiled with:
android32_ndk_api_level = 29
android64_ndk_api_level = 29
The following tests can still run with Android API 26 because they don't
need to initialize the buffer:
ImageTestES3.ClearYUVAHB
ImageTestES3.YUVValidation
Bug: angleproject:4852
Bug: b/172649538
Change-Id: I4fe9afb2a68fb827dc5a5732b213b5eb60d585ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2517562
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
620cb770
|
2020-11-11T14:45:14
|
|
Fix texture buffer unbind and size query
- Fixes a crash with glTexBuffer given 0 as buffer.
- Fixes query of TEXTURE_BUFFER_SIZE. If glTexBuffer is used to bind a
buffer, and the buffer is modified, the result of this query must
adapt to the new buffer size. The spec mentions that unlike Desktop
GL, ES doesn't have immutable buffers, and so they had no choice but
to allow mutable buffers.
Bug: angleproject:3573
Test: KHR-GLES31.core.texture_buffer.texture_buffer_parameters
Test: dEQP-GLES31.functional.texture.texture_buffer.state_query.texture_buffer_size_integer
Change-Id: Iec77c14ccf0e9ee11a171dbe2c7386678304bcc8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2533494
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
fbaae6ce
|
2020-07-24T11:47:12
|
|
GL: Add support for GL_OES/EXT_texture_buffer
This extension is core in 3.2
Based on a CL by Jonah Ryan-Davis.
Bug: angleproject:3573
Bug: angleproject:4933
Change-Id: Ib5ce038414075a5cdce36e9404e25d7af33fb39c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2519401
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f02a6e0c
|
2020-10-26T14:35:14
|
|
Work around Mac glGenerateMipmap with missing levels bug.
Some Mac GL drivers fail to generate mipmaps if level zero is not set
before the texture is first used, all mipmap data is black.
To work around this, whenever a texture level is allocated, ensure that
level zero is also allocated with at least a 1x1 image.
Bug: angleproject:5223
Change-Id: If1a728e017dec600c77a54f7ae185b719aaaae84
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2497569
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
25bbf5d7
|
2020-04-03T11:58:13
|
|
GL: Use ANGLE_GL_TRY when setting pixel pack and unpack state.
Bug: angleproject:3020
Change-Id: Ifd36973d66c850d0d0520d9721ab9e5294489b39
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2134424
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
1ca0c2a9
|
2020-10-14T14:07:46
|
|
Populate LevelInfoGL's format/internalFormat in eglBindTexImage.
Previously GL_NONE were being used, causing
nativegl::SupportsNativeRendering to think the bound texture wasn't
renderable, and TextureGL::copySubTextureHelper (called via
CopyTexSubImageCHROMIUM) to use CPU readback. This affected the WebGL
DrawingBuffer's premultiplyAlpha:false code path.
Thanks to geofflang@ for the patch.
Bug: chromium:1136613
Change-Id: Iee650156983f880fa802b3a17d3989f5a9322e91
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2472535
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
331581e9
|
2020-08-27T11:55:16
|
|
Make copy*Texture parameters consistent for level indices
They were passed as size_t, while GL level indices are GLint throughout
ANGLE.
Bug: angleproject:4880
Change-Id: I43bc9f01a607e457b55a061f473450d3360db808
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2380230
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
48ba75ac
|
2020-08-06T15:26:53
|
|
Remove TextureCommand
TextureCommand::GenerateMipmap can be moved into gl::Command allowing us
to remove TextureCommand.
Bug: angleproject:4753
Test: CQ
Change-Id: Idc546df519e199ffd3a8b8e03b9868cd9152e9ef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2338823
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
fc4bd898
|
2020-08-03T16:29:06
|
|
Vulkan: Support ANGLE_external_objects_flags
With this extension, it is possible to import Vulkan images into ANGLE
(similar to EXT_external_objects) while specifying the Vulkan create and
usage flags used to create that image. This can be used by the
application to drop usage flags it does not need to improve performance,
or add create flags as it requires.
Bug: angleproject:4912
Bug: fuchsia:52759
Change-Id: Ia568973b19670999dd0e69f6ac5548e8ef0c3eec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2335020
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Michael Spang <spang@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>
|
|
336e8915
|
2020-05-29T16:09:47
|
|
Workaround broken copyTexImage2D on iOS
Use BlitGL to reimplement copyTex[Sub]Image2D on iOS.
Bug: angleproject:4674
Change-Id: Ie3018d6d33da57797162922410f76557124df4b6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2222718
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
60803838
|
2020-05-20T17:24:49
|
|
GL: Work around drivers that generate mipmaps in linear color space
Mac drivers generate mipmaps in linear color space. To work around
this, copy the sRGB texture to a linear texture, generate mipmaps
and then copy back.
TEST=conformance2/textures/misc/tex-srgb-mipmap.html
BUG=angleproject:4646
Change-Id: I8675d0ab004bcd2985f685d64cbb84deff5f1c86
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2211083
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
651378b2
|
2020-05-14T20:44:54
|
|
Support OES_texture_{half_}float on ES 3.0 without these extensions.
Emulate the LUMINANCE, ALPHA and LUMINANCE_ALPHA formats with
GL_RED/GL_RG textures on platforms that don't support the
OES_texture_{half_}float extensions. Fix a preexisting bug in
TextureGL's luminance/alpha emulation where it would use desktop
GL functionality on GLES.
This change makes WebKit on iOS pass WebGL's
conformance/extensions/oes-texture-{half-}float tests per
https://bugs.webkit.org/show_bug.cgi?id=210524 .
Bug: angleproject:4636
Change-Id: I6c158058e4b170b16ece578a3930c230de16a9ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2203283
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
78a471ba
|
2020-04-03T16:21:21
|
|
TextureGL: Signal DirtyBitsChanged on dirty bits.
This is a refactoring change only in preparation for a change in the
Vulkan back-end. We'll need to split the handling for Vulkan and GL
into different functions.
Bug: angleproject:4517
Change-Id: I2ddf9c70fe247d1dcb4e0aa9ca929bbbd61bd42b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2135893
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c916fe8a
|
2020-04-02T16:57:49
|
|
Don't call syncState inside FBO queries.
This prevents a syncState ordering issue that was confusing FBO sync
when robust resource init is enabled. Also cleans up some redundant
format processing for the half float extensions.
Bug: angleproject:4517
Change-Id: Ieb13fc5203cf824a3e8affda96ea5cbbd89d78ee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2134411
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e4aa679c
|
2020-04-01T17:46:31
|
|
Texture: Pass explicit unpack buffer to setImage.
This will allow us to call setImage internally even if there's an
unpack buffer bound. Useful when implementing robust resource init with
copyTexImage in some edge cases.
Bug: angleproject:4517
Change-Id: I7e8e9536ab9222c620e572f7b6c20b08fa29d646
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2133088
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
e39d055d
|
2020-03-23T17:45:57
|
|
Fix robust resource initialization with clipped CopyTexSubImage2D.
When CopyTexSubImage2D calls were clipped against the bounds of the
read framebuffer by the underlying renderer backends, the robust
resource initialization code assumed that the original destination
area would be overwritten by the renderer, which was not the case.
Add new tests which were previously failing on macOS with the
ES2_OpenGL and ES3_OpenGL backends. The Metal backend is still failing
and a follow-on bug has been filed.
Bug: angleproject:4504
Change-Id: I34821dd90597f31b3cbf0921b94756556e485c91
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2116873
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
7a37d3ac
|
2020-01-05T13:52:03
|
|
Work around Intel driver bug with CopyTex{Sub}Image2D/DeleteTextures.
Dependencies seem to be incorrectly tracked in some Intel OpenGL
drivers (on macOS specifically), causing crashes in glDeleteTextures
if a GL command buffer is being constructed where those textures are
destinations of CopyTexImage2D/CopyTexSubImage2D. Work around this bug
by flushing before texture deletion if CopyTex{Sub}Image have been
called recently. The tracking is only done on a per-context rather
than a per-device basis, but seems sufficient to work around the
problem as identified.
Tested both with new ANGLE test on affected hardware, and in WebKit's
ANGLE backend for WebGL. Works around the crash reported in
https://bugs.webkit.org/show_bug.cgi?id=205707 .
Bug: angleproject:4267
Change-Id: I2266a5590759f6a3f19080def08710ef4b66d463
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1987932
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
17b3c2f3
|
2019-10-14T14:13:59
|
|
Implement SamplerVideoWEBGL for WEBGL_video_texture extension on desktop
WEBGL_video_texture is an extension that will improve uploading video frame to WebGL performance.
(https://www.khronos.org/registry/webgl/extensions/proposals/WEBGL_video_texture/)
This extension introduced a new texture type TEXTURE_VIDEO_IMAGE_WEBGL and a new sampler type
samplerVideoWEBGL to sample it.
In chromium implementation, TEXTURE_VIDEO_IMAGE_WEBGL maps to different native texture type
based on platform. On desktop, it maps to GL_TEXTURE2D(Currently supported). On Android, it
should map to GL_TEXTURE_EXTERNAL(TODO). SamplerVideoWEBGL needs to be mapped to sampler2D or
samplerExternalOES according to TEXTURE_VIDEO_IMAGE_WEBGL implementation.
This patch implements samplerVideoWEBGL in Angle to support WEBGL_video_texture on desktop. In
this case, samplerVideoWEBGL should map to sampler2D.
Bug: chromium:776222, angleproject:3889
Change-Id: Idb0a5fcde37ca75ccc1181226b91f257212e7500
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1866274
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
df415528
|
2019-10-24T09:22:39
|
|
Vulkan: Enable VK_IMAGE_USAGE_STORAGE_BIT when it is needed
VK_IMAGE_USAGE_STORAGE_BIT is always enabled for vkImage, this
increases memory bandwidth in some platforms.
This CL changes the behavior to enable VK_IMAGE_USAGE_STORAGE_BIT
when necessary.
Bug: angleproject:3904
Test: angle_end2end_tests
Test: angle_deqp_gles2_tests
Change-Id: I8ffd37efa8d99d04328fa6232de0755be3273d9e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1857799
Commit-Queue: Sunny Sun <sunny.sun@arm.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c2fc8bd8
|
2019-10-01T18:21:22
|
|
GL: Fix support for glCopyTextureCHROMIUM with source rectangle textures.
Shader generation didn't use the correct sampler type and discarded pixels
outside the [0, 1] texcoord which is almost always true when sampling rectangle
textures.
Added end2end test coverage.
BUG=990368
Change-Id: Ifaa73dfa83467d5bfa32e3795b52033254436a77
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1834582
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
24e7ecfc
|
2019-10-01T10:52:35
|
|
GL: Temporarily disable GPU copy paths for rectangle texture sources.
Sampling from rectangle textures produces incorrect results for glCopyTextureCHROMIUM.
Temporarily disable this path while the underlying issues are investigated.
BUG=990368
Change-Id: I690252ed4d09cdb6a7fd94f6f24d1300c53afc1b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1832496
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
4e57520a
|
2019-08-23T16:14:07
|
|
GL: Update BlitGL to use ANGLE_GL_TRY.
BUG=angleproject:3020
Change-Id: I587e638ca9dea2cb84aaad68aa8d1ce32fc62053
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769062
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
e6582161
|
2019-09-16T12:39:18
|
|
Convert DXT1 RGB data to DXT3 RGBA when uploading to the GPU.
DXT1 has a specific 'BLACK' code that results in transparent black pixels when
sampled. D3D does not have specific RGB-only DXT1 formats like OpenGL does so
when this code is encountered, we sample 0 alpha for these pixels when GL would
expect 1 because the alpha channel should not exist.
Work around this by converting to DXT3 RGBA, adding an extra block of 1.0 alpha
pixels for each color block.
Mac Intel OpenGL requires additional workarounds to always sample 1.0 alpha.
Set the texture swizzle parameters to force it.
BUG=angleproject:3729
Change-Id: Ia3647085acd97bb01af4e95ef3f6f21dcfb6a554
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1804880
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
d8e821aa
|
2019-08-29T12:38:35
|
|
Expand the TextureGL::releaseTexImage size reset workaround to Win AMD.
Windows 10 AMD drivers have also had issues with generating errors when calling
glTexImage2D with zero size after unbinding a surface.
BUG=angleproject:3859
Change-Id: Iae3e31418b6c89056d0d4aab954519598d8f25f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1775111
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
2a19c59f
|
2019-08-23T14:10:24
|
|
GL: Check for errors around GL calls.
Add a macro to check for GL errors after each GL call to catch errors as they
happen even if the debug callbacks are unavailable. GL errors are only checked
when asserts are enabled unless explicitly requested with the
ANGLE_GL_TRY_ALWAYS_CHECK macro to verify GL calls that may allocate memory.
Updated TextureGL to use the macro.
BUG=angleproject:3020
Change-Id: I7678b204899e940824b010ab4be7e7f159bee6de
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1764476
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
e2ea45ba
|
2019-08-23T14:05:53
|
|
Don't reset the texture size to zero in TextureGL::releaseTexImage on Mac.
After unbinding IOSurface textures, we reset the texture size to 0 because
some platforms don't correctly update their state tracking. This call ends
up generating GL_INVALID_OPERATION errors on Mac for unknown reasons.
Skip the call, the size reset is not required on Mac anyways.
BUG=angleproject:3859
Change-Id: I5e39b6a36aaff41082a5fcc923970f8e97774675
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769059
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
2ed7b290
|
2019-08-23T13:56:22
|
|
GL: Unset the bound PBO when initiailizing texture data.
If a PBO is bound when uploading the initialization data, GL erorrs or crashes
can happen.
Covered by tests added in
https://chromium-review.googlesource.com/c/angle/angle/+/1764476
BUG=angleproject:3858
Change-Id: I16963b1c09b5b173665a87f77296607f8639c975
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769058
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
7e48c9eb
|
2019-08-06T17:17:19
|
|
Add explicit integer casts
WebKit uses the -Wshorten-64-to-32 flag which warns on these cases.
Bug: 3439
Change-Id: I8c1de60da0f173ca2036e2120e79b857f5f2775f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1740866
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
b3eeb2a4
|
2019-08-05T17:02:43
|
|
Emulate RGB textures using BGRX IOSurfaces.
When the user requests an IOSurface Pbuffer with an RGB format, emulate the
missing alpha channel by clearing it to 1.0 and masking reads and writes in
shaders.
BUG=angleproject:3766
Change-Id: I58c992bf641d9ece0f923603f32640615150e4f3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1737437
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
369f9e5d
|
2019-07-30T13:46:14
|
|
GL: Support Rectangle textures as sources for glCopyTextureCHROMIUM.
Chrome uses rectangle textures on mac to copy data. ANGLE's frontend allowed
them as CopyTexture sources but did not implement them in the backend.
TEST=Any WebGL test on Mac
BUG=982294
Change-Id: If2e40292b22c4f49676e3ece8cc6fa126c5b7b94
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1726849
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
8b2dfa0f
|
2019-07-04T16:22:05
|
|
GL: Implement EXT_external_objects
This allows the GL backend to import Vulkan resources.
BUG=angleproject:3656
Change-Id: Ie5e55ce3e1ba05e917619e3f192c13dcc36c3739
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1688507
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Clemen Deng <clemendeng@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
950e1a4d
|
2019-07-16T13:10:29
|
|
GL: Reset the pixel unpack state after initializing texture data.
Texture data initialization happens after dirty bit synchronization so
TextureGL::initializeContents must be careful to leave the applied state the
same way it found it.
BUG=angleproject:3703
Change-Id: I1647cfc59c45fd9fad0fcde2e37af831e56f2e57
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1704215
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
13be06e6
|
2019-07-11T16:39:45
|
|
Fix copyTexImage2D corner case with same source/target image.
When the source and target textures are the same texture but different
levels, there is a corner case which makes the framebuffer incomplete on
calling glCopyTexImage2D and fails
conformance2/textures/misc/copy-texture-image-same-texture.html
Bug: angleproject:2994
Change-Id: I906869c78aefded5688d4491e93b95dd2662175c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1697262
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
ecd2e3b1
|
2019-07-09T15:39:39
|
|
GL: Reset the texture base level before uploads on Mac.
Reset the base level of textures before call glTexImage on Mac
to prevent driver bugs that cause texture corruption.
BUG=angleproject:3671
Change-Id: I90e94b8395a781a2142ef6be3af1d6117f084152
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1692975
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
8db211bc
|
2019-07-10T12:58:52
|
|
Fix CopyTexture to support GL_LUMINANCE/ALPHA/LUMINANCE_ALPHA
A few WebGL tests were failing on Linux/NVIDIA/passthrough because the
luminance workaround doesn't handle the case where the destination
texture is a luminance texture. For now, fallback to CPU readback in
this case.
Bug: chromium:773861
Change-Id: I1b85edccc2e257a5fa19cd496d86443ba96e07ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1695922
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
235e56fb
|
2019-06-27T11:28:31
|
|
BlitGL: Support CL readback from non-renderable textures.
External textures are often not renderable for the CPU readback path.
Instead, copy them into a renderable texture and then read them back.
BUG=906724
Change-Id: I61bd0a9d51c4b24e1d285b5f1883e01ccb53ebea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1680053
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5ff8cae9
|
2019-06-21T11:09:25
|
|
GL/D3D: Use texture uploads instead of clearing for robust init.
Chrome uses regular texture uploads on all platforms except OpenGL on
Mac to do robust resource init for textures because multiple bugs have
been observed with texture corruption.
BUG=883276
BUG=882580
BUG=941620
Change-Id: I5fcd6862147822a08c7533e6a6a9277223034ebd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1669104
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
87748543
|
2019-06-18T18:45:42
|
|
GL/Vulkan: handle depth texture discrepancy
In GLES 3.0, depth textures where changed to behave like RED textures,
but in GLES 2.0 with ARB/OES_depth_texture, they were treated as
luminance textures.
This change produces the expected behavior on GLES 2.0 for the GL
backend and on GLES 3.0 for the Vulkan backend.
Bug: angleproject:3540
Change-Id: Iad6b4e03cf947b27eb97dbb10419bc8bcdb11024
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1666363
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: James Dong <dongja@google.com>
|
|
857880e5
|
2019-05-27T13:39:15
|
|
GL: Add extensions to enable hardware video decode on Android.
The Android SurfaceTexture API has to be initialized with a texture id
which Chrome has to query from an ANGLE external texture. It also
rebinds and sets the texture dimensions on calls to
SurfaceTexture.updateTexImage so ANGLE must be notified about these
changes so that state tracking and validation continue to function.
BUG=967410
Change-Id: I92e9077f75835b088da3a8caffb3ff40e9ad0361
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1630293
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
124f78c2
|
2019-06-18T11:48:24
|
|
Remove gl::Context parameter from Observer functions.
It was only used in exactly one instance in VertexArray. Instead we can
cache a bool and avoid needing to pass it around.
Will make signaling dirty easier in the Vulkan back-end.
Bug: angleproject:3539
Change-Id: Ia570aec051a24a5280df49edc4345c54022b46ec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1663838
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
beb0eb2d
|
2019-06-14T15:10:33
|
|
Clean up workarounds/features to single location.
Rename all workarounds structs to features, and move the lists to a
shared location in include/platform (to help with documentation,
see:
https://cs.chromium.org/chromium/src/ui/gl/gl_switches.cc?sq=package:chromium&g=0&l=69)
Bug: angleproject:1621
Change-Id: I4069f08131db5e886047a007efb5d7764dfee5f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1660952
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5a808b86
|
2019-05-27T13:22:32
|
|
GL: Allow BlitGL to copy from external textures.
BUG=967410
Change-Id: I503dda6f2493b56123a8bd369e2f1305971abb4e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1364110
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
e4faae21
|
2019-05-10T08:27:00
|
|
Rename state change notification messages.
This makes the style use CamelCase instead of ALL_CAPS. It also cleans
up some of the naming. It also changes some uses of the messages in
some of the objects to hopefully be more consistent. See the comments
added to the enum SubjectMessage in Observer.h for more details.
Bug: angleproject:3427
Change-Id: I6dff4f6d335ecf1a27e48df65743b1490bd3025a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1600411
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
776694cd
|
2019-05-08T10:28:55
|
|
Change all ANGLE workarounds to use struct definition with info.
Change each workaround from a simple bool to a struct with info
including name, workaround set, description, and bug IDs. This will help
with future workaround integration with Chrome.
Bug: angleproject:1621
Change-Id: Ia27c180abaf845e280060c803e5994cc3152a057
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1593917
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f02a767d
|
2019-04-09T18:45:23
|
|
Vulkan: Implement glTexStorageMem2DEXT
This implements support for creating textures that alias vulkan images
allocated inside external memory.
Bug: angleproject:3289
Change-Id: Iad071f353a217793102ae737647c7cd572f7b0ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1552029
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Michael Spang <spang@chromium.org>
|
|
c3dc5d48
|
2018-12-30T12:12:04
|
|
Merge gl::Context and gl::ContextState.
This reduces the number of indrections when accessing the Extensions
or Caps structures. It will provide a small speed-up to some methods.
It also cleans up the code.
Bug: angleproject:2966
Change-Id: Idddac70758c42c1c2b75c885d0cacc8a5c458685
Reviewed-on: https://chromium-review.googlesource.com/c/1392391
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Markus Tavenrath <matavenrath@nvidia.com>
|
|
be607ad6
|
2018-11-29T10:14:22
|
|
GL: Implement GL_OES_EGL_image_external and GL_OES_EGL_image_external_essl3
Chrome uses external textures as part of its hardware video decode paths
on Android.
BUG=angleproject:2507
Change-Id: I2af608f84a99843c99a16dcfb9fb2fa28cc8fbb6
Reviewed-on: https://chromium-review.googlesource.com/c/1361480
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Geoff Lang <geofflang@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>
|
|
526392dd
|
2018-11-16T09:35:14
|
|
Use angle::Result in front-end (Part 9)
This removes the ANGLE_TRY_HANDLE macro. Also the internal uses of
gl::ErrorStreamBase. There are remaining uses in the validation code.
Further progress will be blocked on removing egl::Error and the use
of gl::Error in the validation layer.
Also reduces binary size by up to 4k.
Bug: angleproject:2491
Change-Id: I3e0481f99738f9f24256c10e73f3efcce9826a35
Reviewed-on: https://chromium-review.googlesource.com/c/1334427
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
666818ea
|
2018-11-14T09:54:33
|
|
Use angle::Result in front-end (Part 8)
Refactors the gl::Texture class and a few related methods. Also reduces
binary size by up to 4k.
Bug: angleproject:2491
Change-Id: Ib9a69d7f507b0dce35abb17b90532f812bf43214
Reviewed-on: https://chromium-review.googlesource.com/c/1291845
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
b8543630
|
2018-10-02T19:46:14
|
|
Support GL_OES_texture_border_clamp
Added support for GL_TEXTURE_BORDER_COLOR and GL_CLAMP_TO_BORDER in
OpenGL/OpenGLES, Direct3D9 and Direct3D11 backends.
For integer textures in OpenGLES3 contexts these additional entry points
are available now:
void glTexParameterIivOES(enum target, enum pname, const int *params);
void glTexParameterIuivOES(enum target, enum pname, const uint *params);
void glGetTexParameterIivOES(enum target, enum pname, int *params);
void glGetTexParameterIuivOES(enum target, enum pname, uint *params);
void glSamplerParameterIivOES(uint sampler, enum pname, const int *params);
void glSamplerParameterIuivOES(uint sampler, enum pname, const uint *params);
void glGetSamplerParameterIivOES(uint sampler, enum pname, int *params);
void glGetSamplerParameterIuivOES(uint sampler, enum pname, uint *params);
BUG=angleproject:2890
TEST=angle_end2end_tests.TextureBorderClamp*
Change-Id: Iee3eeb399d8d7851b3b30694ad8f21a2111f5828
Reviewed-on: https://chromium-review.googlesource.com/c/1257824
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7818a85c
|
2018-09-06T15:02:04
|
|
Implement GL_ANGLE_texture_multisample API part
Support GL_ANGLE_texture_multisample extension.
This patch adds enums of multisampled texture and texStorage2DMultisampleANGLE
API.
TEST=angle_end2end_tests.exe --gtest_filter=TextureMultisampleTest*
TEST=angle_end2end_tests.exe --gtest_filter=NegativeTextureMultisampleTest.Negtive*
BUG=angleproject:2275
Change-Id: I2cab997edc33aa2d0be6082381545335423f64e0
Reviewed-on: https://chromium-review.googlesource.com/c/804613
Commit-Queue: Yizhou Jiang <yizhou.jiang@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
6f755b21
|
2018-10-09T12:48:54
|
|
Use angle::Result in front-end. (Part 1)
This covers most of the hot paths used in draw calls. Gives in the
order of a 5% reduction in draw call overhead.
Bug: angleproject:2491
Change-Id: I2d53afb1163eaceed61fb9cd9ce6c1267c85c0fa
Reviewed-on: https://chromium-review.googlesource.com/c/1258149
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e39e8f46
|
2018-10-05T08:17:38
|
|
GL back-end error refactor.
Adds explicit error handling to a few scoped state handler classes.
Otherwise mostly mechanical refactoring.
Bug: angleproject:2753
Change-Id: I2bf969a68f45880902b6e7902297c1340a76a1c4
Reviewed-on: https://chromium-review.googlesource.com/c/1255647
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4e6f2aea
|
2018-09-19T11:09:51
|
|
Implement ANGLE_copy_texture_3d Extension
Adds copyTexture3DANGLE and copySubTexture3DANGLE that adds copy
operations on volumetric textures.
Bug: angleproject:2762
Test: angle_end2end_tests
Change-Id: I0076989c2b7ed69abfc73143c325065bdb06a360
Reviewed-on: https://chromium-review.googlesource.com/c/1207216
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1395134c
|
2018-09-30T15:24:28
|
|
Remove more uses of gl::ErrorOrResult.
Only gl::LinkResult remains.
Bug: angleproject:2753
Change-Id: I5e9c68c11453e8ab9db4908451957d7b3db0b110
Reviewed-on: https://chromium-review.googlesource.com/c/1254044
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f668a4b5
|
2018-09-23T17:01:20
|
|
Skip Texture::syncState when no dirty bits.
We sometimes generate local dirty bits in TextureGL. To make sure the local
dirty bits don't get skipped we use a Subject/Observer pattern between the
TextureGL and gl::Texture. This allows us to skip syncState in the hot path.
Also inlines a couple of other texture functions. And fixes a stray header
in EGLBlobCacheTest.
Bug: angleproject:2763
Change-Id: Ie1d8a5865deaf2a563a358c31ae28bef6b2458b1
Reviewed-on: https://chromium-review.googlesource.com/1228374
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
7f232939
|
2018-09-12T11:03:06
|
|
Run git cl format on several files.
Bug: angleproject:2763
Change-Id: Idcb8a714a6dccdff3dd953679e17a7314866a37d
Reviewed-on: https://chromium-review.googlesource.com/1214206
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
097d3c0c
|
2018-09-12T11:03:05
|
|
Make SamplerState a contained class.
This will more easily allow us to use a cached completeness comparison
value. The cached value only gets updated on certain setters.
Bug: angleproject:2763
Change-Id: Ib80db8517560617087ae8360f7af69d6c2392b76
Reviewed-on: https://chromium-review.googlesource.com/1171507
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
8370e6bc
|
2018-09-11T17:56:23
|
|
Rename constant to kCubeFaceCount.
This corrects the naming style for this constant variable. Also updates
many usages in TextureD3D.cpp and TextureGL.cpp.
Bug: angleproject:2470
Change-Id: I029dd98e925cabf23a4bb26467a62afe6c5bb6e0
Reviewed-on: https://chromium-review.googlesource.com/1220726
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0d0fb43f
|
2018-09-07T17:43:32
|
|
Pass unpack buffer as explicit parameter to texSubImage.
This allows us to override it in the incomplete texture init. Any
back-end that used incomplete textures was vulnerable to a bug where
the unpack buffer would be used to initialize the incomplete texture.
Bug: chromium:880906
Change-Id: Ica558e4a4d81de9212f0bc6619ccd812a048ad45
Reviewed-on: https://chromium-review.googlesource.com/1214207
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0c5a9e22
|
2018-08-27T14:36:23
|
|
Implement TexStorage3DMultisample on the GL backend
BUG=angleproject:2775
TEST=angle_end2end_tests
Change-Id: Ic980d86cd787bcf29f622e68b0c38b0eb6ca5688
Reviewed-on: https://chromium-review.googlesource.com/1190182
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
4787d70b
|
2018-08-08T15:49:26
|
|
Use active textures mask in GL and Vulkan.
This also inlines a few accessors and changes the type of the texture
cache.
Bug: angleproject:2763
Change-Id: I82f3c508613f6284d835e8cb64808cfe26a56161
Reviewed-on: https://chromium-review.googlesource.com/1166142
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
dbd16127
|
2018-07-19T11:30:21
|
|
EGL: Implement EGL Image extensions.
BUG=angleproject:2507
Change-Id: Ica33166e9e23e933977c3ab034d4f5a8cada9fb1
Reviewed-on: https://chromium-review.googlesource.com/1143454
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
dec86230
|
2018-07-11T09:01:18
|
|
Generalize Context scratch buffer errors.
This refactor will allow us to generate different error types in
different backends. This makes Vulkan happy because it won't have to
generate gl::Errors and can stay with vk::Error.
Bug: angleproject:2713
Change-Id: I981402450f3b519d4f79851982547695d583355a
Reviewed-on: https://chromium-review.googlesource.com/1128921
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
ca2ff38b
|
2018-07-11T09:01:17
|
|
Refactor internal format pixel math methods.
This removes the use of the ErrorOrResult class from these methods.
This will enable more performant Error handling. Also cleans up the
ANGLE_TRY_CHECKED_MATH macro to be more general.
Bug: angleproject:2713
Change-Id: I349947d320907839ca88ec1f9251e6ddc3858a08
Reviewed-on: https://chromium-review.googlesource.com/1128920
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
6a455206
|
2018-05-31T14:20:36
|
|
Use IsCubeMapFaceTarget on texture targets
This patch introduces IsCubeMapFaceTarget() to determine if a
teture target belongs to cube map.
BUG=angleproject:2169
Change-Id: I3968ee267887665835f3eb3eda281c054e5d4375
Reviewed-on: https://chromium-review.googlesource.com/1080450
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
|
|
31d3deb4
|
2018-05-18T18:32:16
|
|
Add `formatType` arg to computeSkipBytes.
Fix texture upload format tests:
- Format tests should definitely run on ES3 also.
- Also set filters to NEAREST since some formats aren't filterable.
- Fix RGB9_E5 test reference encoding and add a test for it.
- True int/uint textures require i/usamplers.
Bug: angleproject:2576
Change-Id: Ia5bac34cdee6554a88db339de443689a71a0cf70
Reviewed-on: https://chromium-review.googlesource.com/1068142
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2cb7f974
|
2018-05-07T13:49:13
|
|
GL: Refactor TextureGL to not hold renderer objects.
BUG=angleproject:2464
Change-Id: I24b07557d90988369bc8b7e4b2fe3a500ab7bc36
Reviewed-on: https://chromium-review.googlesource.com/1048115
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
023371b3
|
2018-04-24T17:43:32
|
|
Fix setting mip level metadata on GL backend
LUMA texture workarounds are now being used correctly in case texture
levels that have only been touched by generateMipmap are used to draw.
BUG=angleproject:2498
TEST=angle_end2end_tests
Change-Id: I739550d59f99a4a22ffae766a5ee52c07610d78a
Reviewed-on: https://chromium-review.googlesource.com/1025995
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
00689191
|
2018-03-27T17:34:20
|
|
GL: Fix the CPU readback path of CopyTextureCHROMIUM.
1. BlitGL's resources were not being intialized.
2. The format/type information was not enough to know if the destination
texture was SRGB.
BUG=693090
Change-Id: I3fc277a175772d3b6acace1810cb43f4a9bdc473
Reviewed-on: https://chromium-review.googlesource.com/982642
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
4bba74f0
|
2018-04-19T14:40:45
|
|
Refactor Texture::syncState to pass down the Context
Also returning a gl::Error everywhere.
Bug: angleproject:2478
Change-Id: Ic8cae0ee7aee318bb95b3588044c34c62707b578
Reviewed-on: https://chromium-review.googlesource.com/1020083
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
cc129377
|
2018-04-12T09:13:18
|
|
ImageIndex: Consolidate layer/cube face.
In terms of the Texture or Image resource, a cube face
refers to a layer of a 2D texture. This layer has a special
meaning for cube textures, but it is represented as a layer
with a layer index. Cube array textures are no different,
they just use a different indexing scheme for the array
layers.
This also cleans up the ImageIndex helper to have a class
structure with private data, and cleans up a few cases to
use generic Make functions and iterators where they were
setting properties of the index directly.
This will make it easier to have ImageIndexes address
entire levels of a Cube map in the future, and makes the
layer count logic in Vulkan cleaner.
Bug: angleproject:2318
Change-Id: Iea9842e233f974a9896282ca224cb001f7882bd1
Reviewed-on: https://chromium-review.googlesource.com/987525
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c4f27e4b
|
2018-03-31T14:19:18
|
|
Texture: Pass ImageIndex to relevant methods.
The Vulkan back-end will be using this helper struct, so make it
available everywhere. This cleans up a lot of the code for D3D.
Potentially in the future we could generate these in the entry
points if we supported packing multiple arguments into one.
Also changes a few parameter types to GLint for compatibility.
Also updates the Vulkan Texture implementation check the stored
vk::Format on setImage changes.
Bug: angleproject:2318
Change-Id: I57cea4a42483ab51859229517d783b58f206b8e7
Reviewed-on: https://chromium-review.googlesource.com/985203
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|
|
13e31bb0
|
2018-03-27T15:03:36
|
|
GL: Check framebuffer completeness before running blit shaders.
Cube map destination textures may not be complete until all faces have been
initialized.
BUG=693090
Change-Id: I19816c9def3b9663491397cded5d24ca808a3f78
Reviewed-on: https://chromium-review.googlesource.com/982393
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
385b3e03
|
2018-03-21T09:43:28
|
|
Use packed enums on shader types in ANGLE renderer
This patch uses a packed internal enum ShaderType everywhere we
need a shader type instead of the GLenum value of the shader type.
This patch also uses program::getAttachedShader(type) everywhere
we need to get gl::Shader from a program in ANGLE.
BUG=angleproject:2169
Change-Id: I28a7fa1cfe35622c57a486932911110688eaadec
Reviewed-on: https://chromium-review.googlesource.com/972844
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
3cd48fff
|
2017-10-03T15:37:16
|
|
Implement robust resource initialization for OpenGL.
BUG=angleproject:2107
BUG=angleproject:2407
BUG=angleproject:2408
BUG=693090
Change-Id: I6444f80f9703d6341f2ec67518050adc88f71d96
Reviewed-on: https://chromium-review.googlesource.com/678482
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
690c8eb7
|
2018-03-12T15:20:03
|
|
Framebuffer: syncState before internal format query.
Since querying the internal format of an attachment might need ot look
at the RenderTarget for some back-ends, or otherwise flush attachment
changes, we should call syncState internally. This means that we can't
mark these queries as const.
Bug: angleproject:2372
Change-Id: I9bfb43a472bcd7dfdd6ea7fab4751d494e1126bb
Reviewed-on: https://chromium-review.googlesource.com/948784
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
99d492c2
|
2018-02-27T15:17:10
|
|
Use packed enums for the texture types and targets, part 2
This completes the refactor by using the packed enums in the gl:: layer
and in the backends.
The packed enum code generation is modified to support explicitly
assigning values to the packed enums so that the TextureTarget cube map
faces are in the correct order and easy to iterate over.
BUG=angleproject:2169
Change-Id: I5903235e684ccf382e92a8a1e10c5c85b4b16a04
Reviewed-on: https://chromium-review.googlesource.com/939994
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
bacaa714
|
2018-01-30T14:01:39
|
|
ES31: support stencil texture via DEPTH_STENCIL_TEXTURE_MODE.
BUG=angleproject:2373
Change-Id: I5edd9db6ef6101b0ad75f71fdcdfbb1261100583
Reviewed-on: https://chromium-review.googlesource.com/936421
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a8fe18fc
|
2018-02-05T13:46:05
|
|
GL: Fix usage of glGetInternalFormativ.
The Target was being passed cube map faces for cube map textures.
The return value is an enum, not a bool.
BUG=angleproject:1932
Change-Id: I975f510fc0f6bc4d29adcbb152b0329ecbcdfa92
Reviewed-on: https://chromium-review.googlesource.com/902192
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|