|
e0a28ba4
|
2020-01-14T09:44:27
|
|
Add blendable checks to GL_EXT_color_buffer_float
The GL_EXT_color_buffer_float spec
https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_color_buffer_float.txt
mentions that some of the formats must be blendable:
"Blending applies only if the color buffer has a fixed-point or
floating-point format. If the color buffer has an integer format,
proceed to the next operation. Furthermore, an INVALID_OPERATION
error is generated by DrawArrays and the other drawing commands
defined in section 2.8.3 (10.5 in ES 3.1) if blending is enabled
and any draw buffer has 32-bit floating-point format components."
So any non 32-bit floating-point must be blendable.
Bug: angleproject:4291
Change-Id: I850fb13b71e4ad03fd07e2a265896c9106bc0ce1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2001478
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
df0203a9
|
2020-01-15T14:05:33
|
|
EGL: Add support for EGL_EXT_pixel_format_float extension
Add support for floating point configs. On backends that
support rendering to floating point formats, add them to
EGL's frambuffer config list
Bug: angleproject:3958
Tests: dEQP-EGL.functional.wide_color.*fp16*
angle_end2end_tests --gtest_filter=EGLFloatSurfaceTest*
Change-Id: Ie65f63013483267985c2b308567bf5025acf750e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1993686
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0d2c75f4
|
2020-01-14T19:35:16
|
|
DisplayGLX::isValidNativeWindow, avoid X11 exiting the program
The previous implementation of the function had an incorrect comment
that implied XQueryTree was a great way to check if a Window is valid.
Any X11 function taking a Window is a good candidate, what we need to be
careful about is X11 exiting the program on any error.
Replace it with a call to XGetWindowAttributes while ignoring X11
errors.
This fix was found while implementing similar functionality in Dawn.
Bug: dawn:269
Change-Id: I777e59cddbe94baf63286d11887b58c63ac2b66c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2001301
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
86f73097
|
2020-01-10T16:19:02
|
|
Upstream support for iOS Simulator.
Originally authored in the WebKit repository:
https://bugs.webkit.org/show_bug.cgi?id=205618
Has been tested with WebKit's WebGL backend on top of ANGLE inside the
iOS Simulator. TODOs will be addressed in forthcoming CLs.
Bug: angleproject:4263
Change-Id: Ic879866aaee5f933599d956b0646d0c01db55d0d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1995824
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
11c35d0e
|
2020-01-10T18:19:05
|
|
Fix uninitialized variable in driver bug workaround.
Bug: angleproject:4267
No-Try: True
Change-Id: I5d9846779e4ac27313ec57b6ded935dbb40e1970
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1995829
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
12ce8f68
|
2020-01-03T16:40:06
|
|
Upstream WebKit's iOS port of ANGLE.
Added the EAGL backend authored by Dean Jackson from Apple, and the
refactoring changes needed to support it side-by-side with the macOS
backend. Ran "git cl format" against these diffs.
Defined the EGL_ANGLE_device_eagl extension and allocated an enum out
of ANGLE's reserved range.
The iOS backend is not yet included in any of the GN files.
Bug: angleproject:4263
Change-Id: I631c32930433c03bb16a242955ffedf55174bb29
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1987278
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: James Darpinian <jdarpinian@chromium.org>
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>
|
|
27db2458
|
2019-10-03T13:46:28
|
|
Optimize disabling ARB_texture_rectangle
In https://crrev.com/c/1838418 I added the ability to disable
ARB_texture_rectangle so that we can use it in the WebGL implementation
but disable it when compiling user shaders. Unfortunately disabling
and re-enabling the extension causes the shader translator to be
reinitialized which turns out to be more expensive than the actual
work of shader translation, at least for small shaders. It's slow enough
to cause timeouts in WebKit's WebGL conformance test runs.
This introduces an alternate method of disabling ARB_texture_rectangle
in the translator which is much faster because it avoids reinitializing
the translator.
Bug: angleproject:3956
Change-Id: I5d31b683ff19a59bdfd289cfd3c609f64ef5e25b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1991969
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
|
|
8c0bbfbb
|
2019-11-25T14:48:11
|
|
EGL: Implement EGL_ANDROID_framebuffer_target
Add attribute to configs.
Add attribute matching logic.
Does not set attribute in Vulkan configs, need solution to
query Android for which formats are valid. anglebug.com/4208
New end2end test.
Bug: angleproject:3961
Test: angle_end2end_tests --gtest_filter=EGLAndroidFramebufferTargetTest*
Change-Id: I7e14c47b39e9539f6181c3c1d75c76fe63ca0f8c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1960508
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
f8ae5dc6
|
2019-12-20T16:32:09
|
|
GL: Enable EXT_gpu_shader5
Bug: angleproject:3569
Change-Id: I08666bde75ac158e051817e689e2c0b82d6b6f70
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1978579
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
81ee4d29
|
2019-12-04T17:05:11
|
|
Workaround EXT_texture_norm16 for OpenGL ES drivers
Implement a workaround for widespread bugs calling glReadPixels with
RGBA/UNSIGNED_SHORT against R16/RG16 color attachments. Read back the
data using the GL_IMPLEMENTATION_COLOR_READ_FORMAT, and then rearrange
the read back pixels to fit the RGBA layout.
Also skip RGB16/RGB16_SNORM texture sample test on Nexus 5X/Nexus 6P
due to a another driver bug.
Bug: chromium:1000354, angleproject:4214, angleproject:4215, angleproject:4245
Change-Id: Iedea6f4136878cac5ad0dec3757c77b73502e1cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1952166
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Shrek Shao <shrekshao@google.com>
|
|
942d9152
|
2019-12-23T15:31:52
|
|
EGL: Add support for EGL_KHR_gl_colorspace extension
If the Vulkan backend supports VK_EXT_swapchain_colorspace extension,
enable the option for applications to create surfaces with non-linear
formats. Not all formats have non-linear versions and is platform
specific.
Tests: dEQP-EGL.functional.wide_color.*
angle_deqp_egl_tests --use-angle=vulkan --deqp-gl-context-type=egl --deqp-case=dEQP-EGL.functional.wide_color.*
Bug: angleproject:2514
Change-Id: I441ee797cceef92c84473bfa18605c4fd8180de1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1951963
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
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>
|
|
63c15519
|
2019-12-05T12:59:13
|
|
Also use GL_RENDERER to determine vendorID
~10% or more Linux users* do not have AMD/ATI in the GL_VENDOR,
only in GL_RENDERER. Our heuristics only checked GL_VENDOR, so
this CL adds GL_RENDERER to the string being checked to find the
vendor ID.
(*According to https://feedback.wildfiregames.com/report/opengl/feature/GL_VENDOR)
Bug: angleproject:4204
Change-Id: Ie89080b4431fdf02a4ca09709973ea3f271a3e84
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1953486
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
11e6944e
|
2019-12-05T13:12:10
|
|
Linux AMD crash when src blit region outside framebuffer
Linux AMD has a crash on an assert in the mesa driver that the source rectangle
for blitFramebuffer be inside the framebuffer. Add Linux AMD to the existing
workaround for this case.
Note: this will duplicate some work on Linux AMD if the blit call is outside
the framebuffer and also very large (the adjustSrcDstRegionBlitFramebuffer
workaround)
Bug: 1014370
Change-Id: I1afd1c92ab07dba6814d6b87ff7c3c19a19bdc0e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1953487
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
5f3456e3
|
2019-12-03T14:16:19
|
|
Expose GL_ARB_sync for GL
BUG=chromium:1028799
R=jonahr
CC=vasilyt
Change-Id: Id17c4061b206953b1e904bf7938cb371612e33fd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1948534
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
e4ac2ff3
|
2019-11-28T16:30:15
|
|
GL: Make GL_EXT_texture_format_BGRA8888 enableable.
Disable returning BGRA as an implementation read format unless
GL_EXT_texture_format_BGRA8888 is exposed. WebGL doesn't support this extension
and returning BGRA as an implementation read format is invalid.
TEST=functional/gles3/negativebufferapi.html
TEST=functional/gles3/integerstatequery.html
BUG=angleproject:4179
Change-Id: I313721f09da0e455128b88b129bd34338d47af73
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1943407
Reviewed-by: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
c4f889fb
|
2019-11-25T16:53:04
|
|
Fix format/internalformat confusion
Bug: angleproject:4084
Change-Id: I24a184b78bef2994a3045b141ecd72a49d66cfdf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1934890
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
|
|
a825eb70
|
2019-11-21T11:37:17
|
|
Implement BaseVertex draw calls for Vulkan, OpenGL, NULL contexts.
This adds support for the following functions:
- glDrawElementsBaseVertex
- glDrawRangeElementsBaseVertex
- glDrawElementsInstancedBaseVertex
Bug: angleproject:3582
Bug: angleproject:3402
Bug: angleproject:4166
Change-Id: I83770f62e3a918c0965fd4ca8c7d9e598b8b4154
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1929083
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4c7db77e
|
2019-10-31T15:42:31
|
|
Vulkan: Set limitation on maxComputeWorkGroupCount
According to Table 20.45 and Chapter 17 in the ES 3.1 spec, MAX_COMPUTE_WORK_GROUP_COUNT
is get as a GLint by using GetIntegeri_v. However, it is an unsigned integer
in the Vulkan. It needs to set limitation on maxComputeWorkGroupCount[] during
translating.
1. Change the data type to GLint stored in Caps.
2. Ensure that the limitation is set during initialization.
3. Add workaround for angleproject:4120
Bug: angleproject:4066
Change-Id: I1659ba1d560e30b9599cace0feeab8a18890c3ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1890586
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
7c95d081
|
2019-11-12T15:42:43
|
|
Fix crash during resizes when using the OpenGL renderer on Windows
Partial revert of f06076396afa8585e19e140f4a8b02720ede77e5
Address test failures
Guard context reset in DisplayWGL::makeCurrent with !mUseDXGISwapChains
BUG=chromium:1004117
Change-Id: I9b6eb7bc83a6e4b1a21fa0703404e41c6090730d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1913314
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
4193e212
|
2019-11-20T11:03:09
|
|
Clean up dontUseLoopsToInitializeVariables condition
This workaround is ported from chrome's
dont_use_loops_to_initialize_variables workaround, which is enabled on
Qualcomm Adreno devices. Better to check for Qualcomm than !NVIDIA
Bug: 784817
Change-Id: I2f8314ca97aeca7fdcea60ef9d2fb9e64f075a32
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1924625
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
f9c3eaf4
|
2019-11-19T15:19:04
|
|
Add ability to disable all ANGLE features
Chrome has a --disable-gpu-driver-bug-workarounds flag that needs to be
able to be forwarded to ANGLE
Bug: 1016377
Change-Id: Ied6c8656742e25c32d508b8bfe76a902d82bcf93
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1925249
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0303cf6b
|
2019-10-30T16:46:38
|
|
OpenGL: Port all Intel-related workaround conditions from gpu_driver_bug_list.json
This patch ports all the Intel-related shader workarounds defined in
gpu_driver_bug_list.json used by Chromium validating command buffer
into ANGLE so that they can also take effect in Chromium passthrough
command buffer.
Bug: 1020467
Bug: 642605
Bug: 403957
Change-Id: I8e4866fc34d5e8f1b2f4dbfa8e526b80249ba166
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1889386
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
a829c0b9
|
2019-11-14T16:49:02
|
|
Expose EGL_CHROMIUM_sync_control via GLX_OML_sync_control
On GLX, we can expose the EGL_CHROMIUM_sync_control extension by
forwarding to GLX_OML_sync_control when it's available. This will help
with accurate vsync times for Chrome
Bug: 1020252
Change-Id: I9b1e8cf0f8b1a548cc7cc7202fac2d0cdb01d74d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1918104
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
e33c1582
|
2019-11-06T16:55:29
|
|
Fix EXT_texture_norm16
* Add norm16 format info for OpenGL backend
* Add validation for newly introduced norm16 formats
* Fix some logic of texture tests
Bug: chromium:1000354, angleproject:1365
Change-Id: Ie6d6e5e276da4df4b7c667be28d324d4976b35ec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1902720
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shrek Shao <shrekshao@google.com>
Commit-Queue: Shrek Shao <shrekshao@google.com>
|
|
012d1519
|
2019-10-31T16:50:23
|
|
Stop using __has_include<Cocoa/Cocoa.h>
__has_include seems to cause problems with goma builds.
Instead, detect iOS vs MacOS using TargetConditionals.h. Also use
plain C++ instead of Objective-C++ when possible.
Bug: angleproject:3439
Bug: 1015591
Change-Id: I816624e0cdc54ad3a18d3891b4efecf6fe640574
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1894243
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
|
|
60a396a8
|
2019-11-07T16:36:45
|
|
Reset texture swizzle state to default after LUMA workaround
The copySubImage LUMA workaround sets special TEXTURE_SWIZZLE_RGBA
values to work. However, it must reset this parameter back to the
default state after the workaround completes.
Bug: 1022080
Change-Id: I84870f1264311c106ebece1e6a37d5f92a1da28c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1904627
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
50919254
|
2019-11-07T10:52:21
|
|
Only enable addAndTrueToLoopCondition feature on Mac Intel
The issue which reported the need for this workaround only found a
problem on Mac. The failure doesn't happen on other the Linux
OpenGL Intel driver, so it shouldn't be enabled there.
Bug: chromium:1021900, chromium:644669
Change-Id: I65e7462828419aeb9182898f73977ee1c5e72ff3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1904291
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
|
|
19dd51b0
|
2019-11-04T11:28:19
|
|
GL: Expose PBO extensions
Ensure WebGLCompatibilityTest.EnablePixelBufferObjectExtensions functions
in surfaceless mode by creating a framebuffer to do the test glReadPixels
from.
BUG=angleproject:4079
Change-Id: I109b3cdeb85625a6a97832ecf8130d53a4074af9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1893058
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: 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>
|
|
c017cee9
|
2019-10-24T12:55:10
|
|
Enable "-Wundefined-reinterpret-cast".
A couple cases popped up where we were using an undefined cast.
Fix them by rearranging assignment macros to use decltype.
Another warning that is enabled in Skia.
Bug: angleproject:4046
Change-Id: Ibdbae0b2a96909b101a259ff805b8b2d43a5174b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877479
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4db96149
|
2019-10-24T16:38:45
|
|
GL: Temporarily disable emulatePrimitiveRestartFixedIndex.
This workaround appears to cause problems on Mac ASAN builds.
Disabling it while investigating the root cause.
BUG=1017337
BUG=angleproject:3997
Change-Id: I16a2f07f8fc69ec4d5ab40a5bf521c43f6854a49
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1879873
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
a6206854
|
2019-10-24T12:55:09
|
|
Enable "-Wmissing-field-initializers".
This is another warning required by Skia. This one didn't find
anything that surprising. Enabling the warning does help enforce
code consistency and avoids a bit of possible undefined behaviour.
Bug: angleproject:4046
Change-Id: Ifec7f4afad49cd820bf3c0a79df3f46559473ee2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877477
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
859ca039
|
2019-10-24T12:55:08
|
|
Enable "-Wshadow-field".
This warning verifies we don't give variables names that shadow
fields. This is another good warning to enable that Skia requires.
This CL also fixes a small number of points in code that used this
bad pattern. We have to disable the warning for Glslang for now.
Bug: angleproject:4046
Change-Id: I072a686e3023b60cfafa778525fe712ce1fb5a50
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877476
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3a8b8908
|
2019-10-23T13:26:13
|
|
GL: Follow-up primitive restart emulation fixes.
- Use the existing utility function for computing the primitive
restart index.
- Fix bad merge that removed the unfoldShortCircuits feature.
BUG=1017337
BUG=angleproject:3997
Change-Id: I4ba5ada9816731bdd29a0e518ce225bdd69a762e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1876453
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
b3070102
|
2019-10-18T16:01:34
|
|
Add SH_REMOVE_DYNAMIC_INDEXING_OF_SWIZZLED_VECTOR
This is a workaround for the webgl2 conformance test case
WebglConformance_conformance2_glsl3_vector_dynamic_indexing_swizzled_lvalue.
Dynamic indexing of swizzled lvalue like "v.zyx[i] = 0.0" is problematic on
various platforms. This removes the indexing by translating it this way:
void dyn_index_write_vec3(inout vec3 base, in int index, in float value){
switch (index) {
case (0):
(base[0] = value);
return ;
case (1):
(base[1] = value);
return ;
case (2):
(base[2] = value);
return ;
default:
break;
}
if ((index < 0))
{
(base[0] = value);
return ;
}
{
(base[2] = value);
}
}
...
dyn_index_write_vec3(v.zyx, i, 0.0);
...
Bug: chromium:709351
Change-Id: I971b38eb404209b56e6764af1063878c078a7e88
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869109
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0b779a7c
|
2019-10-10T14:54:09
|
|
GL: Emulate primitive restart when PRIMITIVE_RESTART_FIXED_INDEX is unavailable.
PRIMITIVE_RESTART_FIXED_INDEX isn't available until desktop GL 4.3. When it is
not available, emulate it by enabling PRIMITIVE_RESTART and set the primitive
restart index before each draw call based on the index type.
TEST=deqp/functional/gles3/primitiverestart/*
BUG=angleproject:3997
Change-Id: Id736f1056cb07da91c6d592693406333142e6265
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1853885
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
7e23efd3
|
2019-10-17T14:43:14
|
|
Fix compiler warning in NativeBufferImageSiblingAndroid.h.
BUG=angleproject:4026
Change-Id: If66f21c4d5693213611b05fa71ba1da328ea612c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1866078
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
ae1b7786
|
2019-10-16T16:42:53
|
|
Fix ANGLE_FEATURE_CONDITION style issue
Macro should end with a ;
Bug: angleproject:3976
Change-Id: I4aaa146464d9d7e6230a3de44c30cfd1179a89ae
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1864620
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2d0e5b55
|
2019-08-27T13:49:07
|
|
GL_EXT_multisampled_render_to_texture extension. Part 2.
For textures that use this extension, a multisampled texture is
implicitly created for the texture.
Upon write or read, the multisampled texture is either return
to be drawn to or resolved and returned as a single sampled texture.
This is the functionality change with end2end tests.
Bug: angleproject:980428
Change-Id: I5776875a132fed7a3f4f00fb02f9e8e250684630
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1773717
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a21362f5
|
2019-10-10T15:26:19
|
|
GL: Missing check for texture format sample counts
ANGLE was hitting an issue running on llvmpipe because llvmpipe doesn't
properly implement texture formats with multisampling, but claims
otherwise to be OpenGL 3.3 compliant. ANGLE did not validate the claim
on the backend, so the frontend was hitting an ASSERT that failed.
This patch makes sure to validate this part of the spec, and limits the
driver to OpenGL 2 if it's not conformant.
Bug: 976382
Change-Id: I6ad6d757e26f90068df83aeb3caf7685aa2f1c07
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1853889
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
6e653981
|
2019-10-09T15:19:02
|
|
Added PVRTC compression extension needed for Metal on iOS.
Bug: angleproject:2634
Change-Id: I413f754fe5551b1e248bc2b824b327b92d8c70f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1849076
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c5e0ac75
|
2019-10-09T20:33:09
|
|
Conditionalize DeviceCGL implementation.
Needed in order to build in WebKit.
Bug: angleproject:3973
Tbr: geofflang@chromium.org
Tbr: jmadill@chromium.org
Change-Id: I9818a2f74d07daa4709892c1cfa81670e5f80617
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1851245
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
ef4c25e7
|
2019-10-08T17:03:04
|
|
GL: Skip buffer validation for transform feedback buffers.
Transform feedback buffer state is managed by TransformFeedbackGL, the
state tracked in StateManagerGL is not correct.
BUG=angleproject:3900
Change-Id: I73f7b9b1c8d3b4087e25eb4cf3844faf210793a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1848392
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
8e7d9d6c
|
2019-10-04T18:19:32
|
|
Add EGL_ANGLE_device_cgl extension.
Supports querying the CGLContextObj and CGLPixelFormatObj associated
with ANGLE's underlying OpenGL context on macOS.
Minor refactorings to implementation of device attribute queries on
all platforms.
Bug: angleproject:3973
Change-Id: I24341668be4cbfed0b7f2df4c1402df1effe275e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1846733
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d01ae535
|
2019-10-05T23:30:29
|
|
(ANGLE) Rename CHROMIUM_compressed_texture_etc to use ANGLE_ prefix.
This is the ANGLE side of a two-sided patch including Chromium to
rename this synthetic OpenGL extension to use an ANGLE_ prefix.
Bug: chromium:1011653
Change-Id: Ice4b526a34157ebbd8c283aacc9437fae2e35d6e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1843506
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
dce09168
|
2019-10-03T13:47:47
|
|
Enable unfold_short_circuits workaround on Apple.
Bug: angleproject:3957
Change-Id: I49ba77b2daeed01a2b668fc68c26663e87997ad5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1838421
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
|
|
74f28333
|
2019-08-23T16:16:19
|
|
GL: Update RenderbufferGL to use ANGLE_GL_TRY.
BUG=angleproject:3020
Change-Id: I9e16b651c5845412dd58b87474490fd92f69223b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769063
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@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>
|
|
901aa3fa
|
2019-10-01T18:03:06
|
|
GL: Refactor BlitGL program types into tuples of enums.
Previously we expanded out all the program variations into individual enums
but as we add more variations this becomes hard to maintain. Generate the
BlitGL program based on the individual parameter instead.
BUG=990368
Change-Id: I94fd5132baa5b6828aec7823ca5d9f0ffe94379f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1834581
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
588ba833
|
2019-10-03T14:36:21
|
|
Keep state up to date after bindBufferBase/Range
Missing state tracking in StateManagerGL::bindBufferBase and
bindBufferRange.
Bug: angleprojects:3900
Change-Id: Ibaa4731962532f85b3e8a34d974c308d72b20a7f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1838452
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
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>
|
|
7dd03446
|
2019-09-30T13:50:12
|
|
Ensure Features* descriptions stay up to date
Created a macro to help keep Features' descriptions up to date. This
will avoid confusion in the future when conditions change. Also update
all descriptions to match current state.
Bug: angleproject:3947
Change-Id: Ifc65e7789c916fab79f1323798dfb59d7a4efad2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1829584
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a0159c03
|
2019-09-02T14:49:07
|
|
Vulkan: Implement basic geometry shader feature
Enable the default behavior of the geometry shader
Bug: angleproject:3571
Test: dEQP-GLES31.functional.geometry_shading.input.basic_primitive.points
dEQP-GLES31.functional.geometry_shading.input.basic_primitive.lines
dEQP-GLES31.functional.geometry_shading.input.basic_primitive.line_loop
dEQP-GLES31.functional.geometry_shading.input.basic_primitive.line_strip
dEQP-GLES31.functional.geometry_shading.input.basic_primitive.triangles
dEQP-GLES31.functional.geometry_shading.input.basic_primitive.triangle_strip
dEQP-GLES31.functional.geometry_shading.input.basic_primitive.triangle_fan
Change-Id: I65708d19bbfe6a0ad8ca392a1d6b3609b1410ef4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1793753
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
70d79b76
|
2019-09-11T11:43:55
|
|
GL: Add state validation functions to GL backend
These functions validate that the driver's reported state matches
ANGLE's internal state. Can be useful for debugging
Bug: angleproject:3900
Change-Id: I35d15e991986dcab114939c551a88549f09bd263
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1797254
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8007ca02
|
2019-09-25T11:06:33
|
|
GLX: Forward XExposeEvents to parent window
ANGLE creates a child window on X11, but Expose events need to be
forwarded to the parent window. Caused an issue on Chrome Linux with a
non-compositing window manager.
Bug: 991577
Change-Id: Ia240d83403ed28e8e9a6e87164327d6d683dd9ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1824036
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
1057aaef
|
2019-09-23T15:36:03
|
|
Update GL state tracking on VertexArrayGL::streamAttributes
When emulating streamed attributes, the internal state is not
being correctly updated in the GL backend.
This fixes this issue for the particular edge-case.
Bug: angleproject:3933
Change-Id: I4b785d76ccfc475d80e431977e4d482c7f2d1389
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1817103
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: 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>
|
|
ac7c876b
|
2019-09-17T11:20:47
|
|
GL: DisplayGLX::makeCurrent should handle drawSurface==0
In this case the draw surface should be unbound, but ANGLE had been
skipping this case (and handling it internally). This caused a crash on
Linux Intel. Now makeCurrent is actually called on the driver with
drawSurface mDummyPbuffer.
Bug: chromium:988440
Change-Id: Ifae7a828455eb67e516a47515ec6c24cc36e3c2b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1808719
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: 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>
|
|
a7003d5f
|
2019-07-19T11:43:34
|
|
Reland "EGL: Implement EGL_KHR_no_config_context"
Add extension string and flag to all renderers that pass
Modify eglCreateContext to accept EGL_NO_CONFIG
Modify eglQueryContext per specification
Modify eglMakeCurrent to bypass surface-context config compatibility checks
Add check for client API
Create new end2end test EGLNoConfigContextTest
Disable on most renderers to prevent possible fail with future configs
Bug: angleproject:3635
Test: dEQP-EGL.functional.create_context.no_config*
angle_end2end_tests --gtest_filter=EGLNoConfigContextTest*
Change-Id: I88c1922a1e75afcc49922a9eccb4f1ae046c024a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1806140
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b5560486
|
2019-08-30T17:09:04
|
|
BaseInstance VertexAttribDivisor fix
Add tests not using gl_InstanceID/gl_BaseInstance but set
vertexAttribDivisor which implicitly reference base instance value.
Add fixes and workarounds based on this change.
Bug: chromium:891861, angleproject:3402
Change-Id: I2d93c181029f4ca1741f244363568096964d6b19
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1779350
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d32dae1b
|
2019-09-13T22:06:56
|
|
Revert "EGL: Implement EGL_KHR_no_config_context"
This reverts commit c4b1fbd69b12c0af30a58d0810f88d1301b8dabd.
Reason for revert: https://crbug.com/1003971
Original change's description:
> EGL: Implement EGL_KHR_no_config_context
>
> Add extension string and flag to all renderers that pass
> Modify eglCreateContext to accept EGL_NO_CONFIG
> Modify eglQueryContext per specification
> Modify eglMakeCurrent to bypass surface-context config compatibility checks
> Add check for client API
> Create new end2end test EGLNoConfigContextTest
> Disable on most renderers to prevent possible fail with future configs
>
> Bug: angleproject:3635
> Test: dEQP-EGL.functional.create_context.no_config*
> angle_end2end_tests --gtest_filter=EGLNoConfigContextTest*
> Change-Id: I7fbb137f1222ae7eebff4192013b7d3c5fcf0436
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1762709
> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
TBR=geofflang@chromium.org,timvp@google.com,jmadill@chromium.org,m.maiya@samsung.com,j.vigil@samsung.com
Change-Id: I849aa796803e3cda9b480a39be813ef9105325bb
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:3635
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1803789
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
|
|
c4b1fbd6
|
2019-07-19T11:43:34
|
|
EGL: Implement EGL_KHR_no_config_context
Add extension string and flag to all renderers that pass
Modify eglCreateContext to accept EGL_NO_CONFIG
Modify eglQueryContext per specification
Modify eglMakeCurrent to bypass surface-context config compatibility checks
Add check for client API
Create new end2end test EGLNoConfigContextTest
Disable on most renderers to prevent possible fail with future configs
Bug: angleproject:3635
Test: dEQP-EGL.functional.create_context.no_config*
angle_end2end_tests --gtest_filter=EGLNoConfigContextTest*
Change-Id: I7fbb137f1222ae7eebff4192013b7d3c5fcf0436
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1762709
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
790abf03
|
2019-08-28T13:57:52
|
|
Vulkan: Support program interface queries for inputs
Program interface queries are a generic way to query attributes of
the program like uniforms, samplers, attributes, etc. This change
supports those queries for program inputs.
Bug: angleproject:3596
Test: dEQP-GLES31.functional.program_interface_query.*
Test: ProgramInterfaceTest.cpp
Change-Id: Ie904274f4efd87357256f559b69e148e8eda6119
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1775458
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
eb4f2d50
|
2019-09-04T16:56:25
|
|
Fix WebKit iOS build
WebKit's iOS and Mac builds do conditional compilation with preprocessor
directives rather than relying on the build system. Cocoa.h is not available on
iOS, so these Objective-C files must be conditionally compiled.
Bug: angleproject:3439
Change-Id: I8a1228f5b14ca6441c7d9a7f1c3f45d060003135
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1785653
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
90a58622
|
2019-09-04T15:39:58
|
|
Refactor ShaderVariable to Remove Specializations
The following structs are being refactored and moved into the parent
struct ShaderVariable:
VariableWithLocation
Uniform
Attribute
OutputVariable
InterfaceBlockField
Varying
Bug: angleproject:3899
Test: CQ
Change-Id: I389eb3ab4ed44a360e09fca75ecc78d64a277f83
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1785877
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
7e44ec26
|
2019-08-26T15:59:48
|
|
GL_EXT_multisampled_render_to_texture extension. Part 1.
Adding new parameters for extension without adding any real code change. Since no new code paths were added, we expect all tests to pass as before.
Bug: angleproject:980428
Change-Id: I551b46a66f422eabd357fd021e00cf266a991efb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1772377
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c3f7873b
|
2019-08-30T15:00:52
|
|
Use TransformFeedbackID in place of GLuint handle
Bug: angleproject:3804
Change-Id: Ib8fbec89f28645790df98a184f47303f4a8d64c1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1779343
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
050b124d
|
2019-06-30T03:26:18
|
|
Reland "Vulkan: Debug overlay"
This is a reland of e54d0f90d1a165404236fd7abd1b05ddd041a686
This was reverted due to a build failure as a result of a missing
virtual destructor in the widget base class.
Original change's description:
> Vulkan: Debug overlay
>
> A debug overlay system for the Vulkan backend designed with efficiency
> and runtime configurability in mind. Overlay widgets are of two
> fundamental types:
>
> - Text widgets: A single line of text with small, medium or large font.
> - Graph widgets: A bar graph of data.
>
> Built on these, various overlay widget types are defined that gather
> statistics. Five such types are defined with one widget per type as
> example:
>
> - Count: A widget that counts something. VulkanValidationMessageCount
> is an overlay widget of this type that shows the number of validation
> messages received from the validation layers.
> - Text: A generic text. VulkanLastValidationMessage is an overlay
> widget of this type that shows the last validation message.
> - PerSecond: A value that gets reset every second automatically. FPS is
> an overlay widget of this type that simply gets incremented on every
> swap().
> - RunningGraph: A graph of last N values. VulkanCommandGraphSize is an
> overlay of this type. On every vkQueueSubmit, the number of nodes in
> the command graph is accumulated. On every present(), the value is
> taken as the number of nodes for the whole duration of the frame.
> - RunningHistogram: A histogram of last N values. Input values are in
> the [0, 1] range and they are ranked to N buckets for histogram
> calculation. VulkanSecondaryCommandBufferPoolWaste is an overlay
> widget of this type. On vkQueueSubmit, the memory waste from command
> buffer pool allocations is recorded in the histogram.
>
> Overlay font is placed in libANGLE/overlay/ which gen_overlay_fonts.py
> processes to create an array of bits, which is processed at runtime to
> create the actual font image (an image with 3 layers).
>
> The overlay widget layout is defined in overlay_widgets.json which
> gen_overlay_widgets.py processes to generate an array of widgetss, each
> of its respective type, and sets their properties, such as color and
> bounding box. The json file allows widgets to align against other
> widgets as well as against the framebuffer edges.
>
> Two compute shaders are implemented to efficiently render the UI:
>
> - OverlayCull: This shader creates a bitset of Text and Graph widgets
> whose bounding boxes intersect a corresponding subgroup processed by
> OverlayDraw. This is done only when the enabled overlay widgets are
> changed (a feature that is not yet implemented) or the surface is
> resized.
> - OverlayDraw: Using the bitsets generated by OverlayCull, values that
> are uniform for each workgroup (set to be equal to hardware subgroup
> size), this shader loops over enabled widgets that can possibly
> intersect the pixel being processed and renders and blends in texts
> and graphs. This is done once per frame on present().
>
> Currently, to enable overlay widgets an environment variable is used.
> For example:
>
> $ export ANGLE_OVERLAY=FPS:VulkanSecondaryCommandBufferPoolWaste
> $ ./hello_triangle --use-angle=vulkan
>
> Possible future work:
>
> - On Android, add settings in developer options and enable widgets based
> on those.
> - Spawn a small server in ANGLE and write an application that sends
> enable/disable commands remotely.
> - Implement overlay for other backends.
>
> Bug: angleproject:3757
> Change-Id: If9c6974d1935c18f460ec569e79b41188bd7afcc
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1729440
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Bug: angleproject:3757
Change-Id: I47915d88b37b6f882c686c2de13fca309a10b572
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1780897
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fc58af47
|
2019-09-02T07:46:44
|
|
Revert "Vulkan: Debug overlay"
This reverts commit e54d0f90d1a165404236fd7abd1b05ddd041a686.
Reason for revert: causes compile failure on Linux CFI bot.
Sample build: https://ci.chromium.org/p/chromium/builders/ci/Linux%20CFI/14810
Sample log: https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8903575125463586160/+/steps/compile/0/stdout?format=raw
Original change's description:
> Vulkan: Debug overlay
>
> A debug overlay system for the Vulkan backend designed with efficiency
> and runtime configurability in mind. Overlay widgets are of two
> fundamental types:
>
> - Text widgets: A single line of text with small, medium or large font.
> - Graph widgets: A bar graph of data.
>
> Built on these, various overlay widget types are defined that gather
> statistics. Five such types are defined with one widget per type as
> example:
>
> - Count: A widget that counts something. VulkanValidationMessageCount
> is an overlay widget of this type that shows the number of validation
> messages received from the validation layers.
> - Text: A generic text. VulkanLastValidationMessage is an overlay
> widget of this type that shows the last validation message.
> - PerSecond: A value that gets reset every second automatically. FPS is
> an overlay widget of this type that simply gets incremented on every
> swap().
> - RunningGraph: A graph of last N values. VulkanCommandGraphSize is an
> overlay of this type. On every vkQueueSubmit, the number of nodes in
> the command graph is accumulated. On every present(), the value is
> taken as the number of nodes for the whole duration of the frame.
> - RunningHistogram: A histogram of last N values. Input values are in
> the [0, 1] range and they are ranked to N buckets for histogram
> calculation. VulkanSecondaryCommandBufferPoolWaste is an overlay
> widget of this type. On vkQueueSubmit, the memory waste from command
> buffer pool allocations is recorded in the histogram.
>
> Overlay font is placed in libANGLE/overlay/ which gen_overlay_fonts.py
> processes to create an array of bits, which is processed at runtime to
> create the actual font image (an image with 3 layers).
>
> The overlay widget layout is defined in overlay_widgets.json which
> gen_overlay_widgets.py processes to generate an array of widgetss, each
> of its respective type, and sets their properties, such as color and
> bounding box. The json file allows widgets to align against other
> widgets as well as against the framebuffer edges.
>
> Two compute shaders are implemented to efficiently render the UI:
>
> - OverlayCull: This shader creates a bitset of Text and Graph widgets
> whose bounding boxes intersect a corresponding subgroup processed by
> OverlayDraw. This is done only when the enabled overlay widgets are
> changed (a feature that is not yet implemented) or the surface is
> resized.
> - OverlayDraw: Using the bitsets generated by OverlayCull, values that
> are uniform for each workgroup (set to be equal to hardware subgroup
> size), this shader loops over enabled widgets that can possibly
> intersect the pixel being processed and renders and blends in texts
> and graphs. This is done once per frame on present().
>
> Currently, to enable overlay widgets an environment variable is used.
> For example:
>
> $ export ANGLE_OVERLAY=FPS:VulkanSecondaryCommandBufferPoolWaste
> $ ./hello_triangle --use-angle=vulkan
>
> Possible future work:
>
> - On Android, add settings in developer options and enable widgets based
> on those.
> - Spawn a small server in ANGLE and write an application that sends
> enable/disable commands remotely.
> - Implement overlay for other backends.
>
> Bug: angleproject:3757
> Change-Id: If9c6974d1935c18f460ec569e79b41188bd7afcc
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1729440
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=geofflang@chromium.org,syoussefi@chromium.org,jmadill@chromium.org
Bug: angleproject:3757
Change-Id: Ib08e2e7b1a9449ca097673acb11655df5d2bbf31
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1778862
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
e54d0f90
|
2019-06-30T03:26:18
|
|
Vulkan: Debug overlay
A debug overlay system for the Vulkan backend designed with efficiency
and runtime configurability in mind. Overlay widgets are of two
fundamental types:
- Text widgets: A single line of text with small, medium or large font.
- Graph widgets: A bar graph of data.
Built on these, various overlay widget types are defined that gather
statistics. Five such types are defined with one widget per type as
example:
- Count: A widget that counts something. VulkanValidationMessageCount
is an overlay widget of this type that shows the number of validation
messages received from the validation layers.
- Text: A generic text. VulkanLastValidationMessage is an overlay
widget of this type that shows the last validation message.
- PerSecond: A value that gets reset every second automatically. FPS is
an overlay widget of this type that simply gets incremented on every
swap().
- RunningGraph: A graph of last N values. VulkanCommandGraphSize is an
overlay of this type. On every vkQueueSubmit, the number of nodes in
the command graph is accumulated. On every present(), the value is
taken as the number of nodes for the whole duration of the frame.
- RunningHistogram: A histogram of last N values. Input values are in
the [0, 1] range and they are ranked to N buckets for histogram
calculation. VulkanSecondaryCommandBufferPoolWaste is an overlay
widget of this type. On vkQueueSubmit, the memory waste from command
buffer pool allocations is recorded in the histogram.
Overlay font is placed in libANGLE/overlay/ which gen_overlay_fonts.py
processes to create an array of bits, which is processed at runtime to
create the actual font image (an image with 3 layers).
The overlay widget layout is defined in overlay_widgets.json which
gen_overlay_widgets.py processes to generate an array of widgetss, each
of its respective type, and sets their properties, such as color and
bounding box. The json file allows widgets to align against other
widgets as well as against the framebuffer edges.
Two compute shaders are implemented to efficiently render the UI:
- OverlayCull: This shader creates a bitset of Text and Graph widgets
whose bounding boxes intersect a corresponding subgroup processed by
OverlayDraw. This is done only when the enabled overlay widgets are
changed (a feature that is not yet implemented) or the surface is
resized.
- OverlayDraw: Using the bitsets generated by OverlayCull, values that
are uniform for each workgroup (set to be equal to hardware subgroup
size), this shader loops over enabled widgets that can possibly
intersect the pixel being processed and renders and blends in texts
and graphs. This is done once per frame on present().
Currently, to enable overlay widgets an environment variable is used.
For example:
$ export ANGLE_OVERLAY=FPS:VulkanSecondaryCommandBufferPoolWaste
$ ./hello_triangle --use-angle=vulkan
Possible future work:
- On Android, add settings in developer options and enable widgets based
on those.
- Spawn a small server in ANGLE and write an application that sends
enable/disable commands remotely.
- Implement overlay for other backends.
Bug: angleproject:3757
Change-Id: If9c6974d1935c18f460ec569e79b41188bd7afcc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1729440
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2c5d48a6
|
2019-08-23T09:28:35
|
|
Use FramebufferID in place of GLuint handle
Bug: angleproject:3804
Change-Id: I5e1b5f1903b05a91468379e00ec130802315cdc2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769039
Reviewed-by: Jiacheng Lu <lujc@google.com>
Commit-Queue: Jiacheng Lu <lujc@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>
|
|
5d27a696
|
2019-08-13T11:29:07
|
|
Support separable shader programs
The spec states:
Shader stages including vertex shaders, fragment shaders, and compute
shaders...A single program object can contain all of these shaders, or
any subset thereof.
This change allows shader programs without a fragment shader. The
biggest driver of this change is dEQP since a large number of tests
create shader programs without a fragment shader.
Bug: angleproject:3803
Test: dEQP-GLES31.functional.program_interface_query
Change-Id: Id6cb098c62a1489a14b9ec1b31bd4cd59f655e49
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1752010
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
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>
|
|
cd31f286
|
2019-06-25T14:22:41
|
|
Implement Draw base vertex and base instance functions
This patch implements functionality of glDrawArraysInstancedBaseInstanceANGLE,
glDrawElementsInstancedBaseVertexBaseInstanceANGLE,
glMultiDrawArraysInstancedBaseInstanceANGLE,
and glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE
Workaround for OpenGL driver on Mac:
gl_VertexID on Mac with AMD GPU doesn't include baseVertex value.
So replace gl_VertexID with (gl_VertexID + angle_BaseVertex) if any.
Workaround for Vulkan GLSL:
gl_InstanceIndex on Vulkan includes baseInstance. So replace
gl_InstanceIndex with (gl_InstanceIndex - angle_BaseInstance) when
angle_BaseInstance is declared.
Bug: chromium:891861, angleproject:3402
Change-Id: Ia1d94b5d4d7da7e635468c05c962c4f7eb1b1919
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1750126
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Jamie Madill <jmadill@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>
|
|
91dc5da8
|
2019-08-21T15:17:50
|
|
WebKit requires "Web" as prefix to Objective-C class names
WebKit's build process requires that every Objective-C class name begin with the
prefix "Web". While this is unfortunate, we only have one Objective-C class in
the codebase that needs to change so we might as well just do it.
Bug: angleproject:3439
Change-Id: I07d1f5478b067f680971d0f24befe2f63651c735
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1764649
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
|
|
cdecd97c
|
2019-06-25T14:22:41
|
|
Add Draw base vertex and base instance function entrypoints
Split from https://chromium-review.googlesource.com/c/angle/angle/+/1705035/27
This patch adds entrypoints glDrawArraysInstancedBaseInstanceANGLE,
glDrawElementsInstancedBaseVertexBaseInstanceANGLE,
glMultiDrawArraysInstancedBaseInstanceANGLE,
and glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE
Implementation will come in a later separate patch.
Bug: chromium:891861, angleproject:3402
Change-Id: I18e19b850cddd79be4798b9ae7efe0680a050c7f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1750125
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
9d737966
|
2019-08-14T12:25:12
|
|
Standardize copyright notices to project style
For all "ANGLE Project" copyrights, standardize to the format specified
by the style guide. Changes:
- "Copyright (c)" and "Copyright(c)" changed to just "Copyright".
- Removed the second half of date ranges ("Y1Y1-Y2Y2"->"Y1Y1").
- Fixed a small number of files that had no copyright date using the
initial commit year from the version control history.
- Fixed one instance of copyright being "The ANGLE Project" rather than
"The ANGLE Project Authors"
These changes are applied both to the copyright of source file, and
where applicable to copyright statements that are generated by
templates.
BUG=angleproject:3811
Change-Id: I973dd65e4ef9deeba232d5be74c768256a0eb2e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1754397
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@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>
|
|
4c833efb
|
2019-07-11T11:29:35
|
|
Vulkan: Enable sampler objects
This is the initial implementation to get GLES3.0 Sampler Objects
working on the Vulkan backend.
When samplers are dirty, a corresponding Vulkan sampler object will be
created with associated state and textures are flagged as dirty anytime
sampler bindings change.
Then when handling textures dirty, any bound sampler objects are pulled
from active texture units. When sampler objects are bound, their state
is used instead of the built-in texture's sampler state.
This change also adds a test that uses the same texture object with
different sampler objects to test a corner case that dEQP misses.
Bug: angleproject:3208
Change-Id: I643d9c9d5cb92fecc02dad815a07bcf349534c70
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1706897
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
31ab533e
|
2019-07-19T15:31:01
|
|
Sampler::syncState now returns angle::Result
This is a foundational refactor in preparation for implementing sampler
objects in the Vulkan backend.
Bug: angleproject:3208
Change-Id: I5970f141d3f825aee1f8b713be8e162c7d0f8bbe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1710961
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
22ec7dc9
|
2019-08-06T10:10:52
|
|
Remove all global constructors and exit time destructors.
WebKit compiles with -Wglobal-constructors, so they want this. I decided
to do -Wexit-time-destructors at the same time.
Bug: angleproject:3439
Bug: angleproject:1459
Change-Id: I4b44ae4f8e6f066e07dc7f9f6ced9a5d49dc8f8a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1738438
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Jamie Madill <jmadill@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>
|
|
5c6a6cb6
|
2019-07-04T15:51:48
|
|
GL: Load external object extension entry points.
BUG=angleproject:3656
Change-Id: I360d5a0eda820a4138e5400614332ae919216db6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1688506
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Clemen Deng <clemendeng@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
758b12fa
|
2019-07-17T14:55:38
|
|
Filter out redundant depth&stencil state updates
1. Compare updating values with active ones at frontend when
depth&stencil related gl call happens and do not set any unnecessary
dirty bits.
2. Remove d3d and gl backends' checking of depth&stencil states when
detect any dirty bits, as it is now being done at frontend.
3. Modification to graphics pipeline description update, make sure it
syncs with gl::State initial value.
4. Change gl_vk::CullMode return type to VkCullModeFlagBits, as it only
represents single value.
Bug: angleproject:3700
Change-Id: Id3aa5186455ee3a10a9c147edad13944e3e41098
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1706903
Commit-Queue: Jiacheng Lu <lujc@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
73e5e9b5
|
2019-07-22T15:26:17
|
|
Clang warn implicit float to int conversion
1. add '-Wfloat-conversion' in compiler flag for clang
2. fix existed implicit float conversion
Bug: angleproject:3728
Change-Id: I0dc07eeb74c5d6dc480c6f0aa88bc75ab98e4292
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1713741
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0716ce0a
|
2019-07-22T15:20:47
|
|
Re-add case to blitframebuffer workaround where src is outside of bounds.
On Mac, blitFramebuffer calls fail if the source region is not enclosed
by the framebuffer. In this case, we must naively clip the source region
and adjust the dest region accordingly. This is slightly different
behavior and may cause issues with scaling so we use a separate
workaround.
Also, Windows NVIDIA has a driver bug that affects Vulkan device
creation after blitting large textures, so it should be included in the
original workaround.
This CL cleans up the workaround to use more helpers from ANGLE and to
generally improve readability.
Bug: chromium:830046
Change-Id: I50bd97449725b738036e6bd3af82362020d7eda8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1713090
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7151fe54
|
2019-07-17T15:15:27
|
|
Port adjust_src_dst_region_for_blitframebuffer workaround to ANGLE.
BlitFramebuffer has issues on some platforms with large source/dest
textures. As per the WebGL2 spec, this was caught with validation for
sizes over 2^32, but there is a specific issue on Linux NVIDIA where it
fails on sizes over 2^16. A better workaround (from chromium), resizes
the blitframebuffer call based on the framebuffer size.
Bug: chromium:830046
Change-Id: Ic6196db6228d0d0ac92b12a68bbced76dcbcdf8c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1707115
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
610f2388
|
2019-07-18T16:28:49
|
|
Return backwards compatible context versions in Vulkan, GL and D3D11.
This allows us to pass some dEQP GLES 2.0 tests that require using an ES 3.0
context and matches native driver behaviour of returning a higher-than-
requested context version when it's backwards compatible.
BUG=angleproject:3425
BUG=angleproject:3300
BUG=angleproject:3715
BUG=angleproject:3243
BUG=angleproject:3240
BUG=angleproject:3716
Change-Id: I03dfd56deb6191c3363808717e0eea6fdcf5f3ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1709111
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
6a02f06d
|
2019-07-18T16:27:14
|
|
Implement EGL_ANGLE_create_context_backwards_compatible
This extension allows the user to specify if ANGLE should create a
context of the exact requested version or a higher version context that
is backwards compatible.
BUG=angleproject:3425
Change-Id: I7d0b75cdd7e34a2fc888aa238e1eeb67af82ae0d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1601560
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7a5f35c4
|
2019-07-15T09:21:11
|
|
Filter out redundant glDepthRange calls
1. Compare depth range with active config in frontend when glDepthRange
is called. It avoids triggering unnecessary backend update. Also remove
depth range checking in D3D and GL backends as they are now done in
frontend.
2. Change the clamp on far and near plane to ASSERT statement in vulkan
backend, as clamp already been applied in frontend.
Bug: angleproject:3696
Change-Id: I52ad420dc446d685b98d53690637a19553372873
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1702284
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Jamie Madill <jmadill@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>
|
|
ec9ff8ce
|
2019-07-15T16:59:10
|
|
Fix checks for GL_ETC1_RGB8_OES, disable it on D3D11.
The GL backend was checking the wrong extension for GL_ETC1_RGB8_OES.
WebGL doesn't want to expose compressed formats that are emulated,
disable this format in D3D11 where it is always emulated.
BUG=98314
Change-Id: I1ba8418ad1578c070891828b87e49cf894dabc29
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1700574
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|