Граф коммитов

133 Коммитов

Автор SHA1 Сообщение Дата
Mohan Maiya cc34aa734c Move BinaryStream to common and expose ShaderState to compiler
This is a refactor change in preparation for adding support for
glShaderBinary.
Move BinaryStream to common so that it is accessible by both libANGLE
and the Compiler.
Extract members that hold the result of compilation from ShaderState
and move into new CompiledShaderState struct.
Move helper functions & classes relevant to ShaderVar serialization to
the CompiledShaderState header.

Tests: EGLBlobCacheTest*
Bug: angleproject:7833
Change-Id: I7ec575247eccb3afbc6ab6bfa24d36e69d4576f5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4080998
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
2022-12-22 19:57:53 +00:00
Mohan Maiya 38c0100863 Vulkan: Fix a cornercase bug when dynamically loading AHB APIs.
The commit 122a1cc583 enabled dynamic loading of AHB APIs but did
not handle the cornercase where some Android system services load
"libnativewindow.so" with the RTLD_LOCAL flag. In such cases AHB
APIs would not be resolvable through dlsym lookup. Explicitly dlopen
"libnativewindow.so" in such cases.

Bug: angleproject:7656
Change-Id: Ie74140ad816b756e1afc325d370f26bcb09428ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3894658
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Peng Huang <penghuang@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
2022-09-16 02:31:22 +00:00
Sungyong Choi 313884ce56 Vulkan: Move dmabuf extensions support
Moves dmabuf support functions from DisplayVkWayland to DisplayVkLinux
to support other linux winsys.

Bug: angleproject:7480
Signed-off-by: Sungyong Choi <sywow.choi@samsung.com>
Change-Id: I2a36557815b8e5c4bab7ec1d9248989345e536c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3735863
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Reviewed-by: Jeff Vigil <j.vigil@samsung.com>
2022-07-26 14:19:55 +00:00
Chris Dalton c460c29914 Implement GLSL additions for ANGLE_shader_pixel_local_storage
Specs out, implements, and thoroughly tests the GLSL additions for
ANGLE_shader_pixel_local_storage. Adds a simple transformation that
rewrites PLS directly into shader images. Updates the existing PLS tests
to use the newly built-in PLS features and ensures they continue
passing.

For now, applications call glBindImageTexture to configure their pixel
local storage. The OpenGL ES API side of this extension will follow
shortly.

Bug: angleproject:7279
Change-Id: I141183069b5cbfcca01cbb77b5b36d3e5f834bf5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3761876
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
2022-07-21 14:58:20 +00:00
Min Zhang 3d55cf0c0f Vulkan: Optimize the vkImage layout when used as GL_image
If one vkImage has been used as GL_image in compute shader and as
a GL_texture in fragment shader, no dependencies are needed for the
fragment shader and other pre-fragment graphics shaders, like
vertex/tess/geom.
If we only assign the vkImage layout as writable when running GL
executables that have Image Textures, we can specify more precise
read-only barriers when running read-only GL executables.

Bug: angleproject:6862
Change-Id: Iff37fdce13fea637751899253e535bf3f6663200
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3366014
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
2022-05-12 13:16:31 +00:00
Brandon Schade 527557b9c2 Fix ValidateFramebufferTextureLayer for cubemap arrays
GL_INVALID_VALUE is generated if texture is a cube map array texture
and layer is larger than MAX_ARRAY_TEXTURE_LAYERS-1.
GL_INVALID_VALUE is generated if texture is a cube map array texture
and level is larger than the log base 2 of MAX_CUBE_MAP_TEXTURE_SIZE.

Fix validation to account for the spec.

Bug: angleproject:3584
Tests: dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.framebuffer_texture_layer
Change-Id: I51028145fa83ef5eb46c39030a28984411ca801e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3615613
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Brandon Schade <b.schade@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2022-05-02 23:22:04 +00:00
Guoxing Wu 13784ebe34 Vulkan: use "undefined" for layerProvokingVertex
Use "undefined" for layerProvokingVertex because different
platforms has different behavior on this. APP would have
to set gl_Layer identically.

Bug: angleproject:7185
Change-Id: Ia5c31f617c2441c1a6ac8d682c9ce98f464045e0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3592274
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2022-04-21 13:51:55 +00:00
Andrew Naumov d36df8d736 Unicode support for system_utils on Windows
Failed to load ANGLE_GLESV2_LIBRARY_NAME via ansi WinAPI
if path contains unicode, use wide version instead.

Bug: chromium:1296105
Change-Id: Ifae18b2aba83f3ae84954cc4dd9afc0e2c58834c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3452103
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2022-02-14 19:58:20 +00:00
Steven Noonan 01341f9483 D3D11: implement EXT_clip_control
This implements EXT_clip_control for the D3D11 renderer, so that I can
use a reversed-Z depth buffer with ANGLE.

Tested with
    angle_deqp_gles2_tests.exe --deqp-egl-display-type=angle-d3d11 --deqp-case=dEQP-GLES2.functional.clip_control.*
and
    angle_end2end_tests.exe --gtest_filter=*D3D11*

Bug: angleproject:6554
Change-Id: I1d11cd04a6654c28530b11104470f0cad0009abe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3218659
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-10-12 18:57:15 +00:00
Hailin Zhang e1befb35d4 fix a EXT_buffer_storage issue.
According to spec, GL_MAP_PERSISTENT_BIT_EXT indicates that
it is not an error for the GL to read data from or write data
to an immutable buffer while it is mapped.

Bug: b/188685164
Change-Id: I899a978dbf9c1d1ad3489063028fd5500c4bd5e1
Signed-off-by: Hailin Zhang <hailinzhang@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3151278
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
2021-09-13 18:35:09 +00:00
Ivan Murashov 7108f83c8a GCC: Remove double declaration of ContextSet
After the CL
https://chromium-review.googlesource.com/c/angle/angle/+/2965780
the build with GCC failed with error:
/third_party/angle/src/libANGLE/Display.h:325:37: error: declaration of
'typedef class std::__1::set<gl::Context*> egl::Display::ContextSet'
changes meaning of 'ContextSet' [-fpermissive]
/third_party/angle/src/libANGLE/Display.h:75:7: note: 'ContextSet'
declared here as 'using ContextSet = class std::__1::set<gl::Context*>'

To fix the error the double declaration of ContextSet is removed.

Bug: angleproject:5878, chromium:819294
Change-Id: Id9e52061af53ea18dd5d13b960daaa67a14f61ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3038804
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-07-20 14:04:39 +00:00
Mohan Maiya b77a6c25d9 Vulkan: Avoid using VK_WHOLE_SIZE when using dynamic offsets
Binding descriptor sets that use VK_WHOLE_SIZE with a dynamic offset
results in the VUID-vkCmdBindDescriptorSets-pDescriptorSets-01979
validation error.
Updated the updateDefaultUniformsDescriptorSet function to use the
uniform's size instead of using VK_WHOLE_SIZE.

Bug: angleproject:5924
Tests: dEQP-GLES31.functional.shaders.multisample_interpolation.*
       SimpleStateChangeTest.UniformUpdateTest*Vulkan
       UniformTestES3.MatrixUniformUpload*Vulkan
Change-Id: Ie4633af61d59a9401f599d336a5b9040cdf18004
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2950309
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-06-16 22:06:53 +00:00
Mark Lobodzinski 1b2000f523 Docs: Update CONTRIBUTORS with LunarG info
Add LunarG, Inc. and Mark Lobodzinski to the CONTRIBUTORS file
and LunarG, Inc. to the AUTHORS file.

Bug: None
Change-Id: Id3f9ff2075498532280d4a652a5fffa85dd77f45
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2945696
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
2021-06-08 16:29:43 +00:00
Cheryl Wei 0380f115f7 Skip ResizeWindow test on Linux.
ARM Linux doesn't support window surface resize.

Bug: angleproject:4453
Change-Id: Ia8631f5191c2b3ebd822766cc7f92275aa62dff3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2777578
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2021-03-22 15:33:39 +00:00
Lubosz Sarnecki 08bfc351bb Add Collabora, Ltd. to AUTHORS and CONTRIBUTORS
This change adds Collabora, Ltd. to the AUTHORS file as described in the
ContributingCode guide.
Also adds Collabora, Ltd. and myself to CONTRIBUTORS.

Bug: angleproject:5516
Change-Id: Ie24ef8ec01720d9d207d36c4a4c21fab96d08dcd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2690949
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-02-23 20:49:54 +00:00
Carl Woffenden 679d118787 Fix to build with VS2019
When building with VS2019 (using is_clang=false) multiples of the
following error are given:

    ../../src/common/mathutil.cpp(75): error C4244: '=':
    conversion from 'double' to 'float', possible loss of data

(This is due to pow(), when passed an int for the second param, widens
the first param to a double then returns a double).

Since the code was being changed the opportunity was taken to:

    - add missing unit tests for the two 999E5 conversions
    - optimise out the common pow() functions

The unit tests were written against the original implementation, then
the optimisations added and verified against the original results.

Bug: angleproject:5521, dawn:602
Change-Id: Ic9e5eaedbe3fc7ceeed697898823b76dffcd989a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2624888
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-01-18 16:58:37 +00:00
Kyle Griffiths 298c276886 Add PowerVR Vendor ID & Vulkan GL Line Emulation Exclusion
Adds the PowerVR VendorID into the accepted vendor list, and prevent
basic GL line emulation from being ran on PowerVR hardware as it's
not required on those platforms, yet causes CTS failures when enabled.

Fixes a variety of line failure tests across OGLES3/3.1 test suites
seen on PowerVR hardware.

Bug: angleproject:5145
Change-Id: I7383f1c09d026b8d33e6fbda66418c5f8b7f90bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2462094
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2020-10-13 21:19:31 +00:00
Jose Dapena Paz cee5748326 GCC: init kImageMemoryBarrierData with initializer constructor
GCC fails to automatically map the initializer assignment for
initializing the angle::PackedEnumMap. So this change adds the
type hint ImageMemoryBarrierData to the second part of the pairs
passed to construct the PackedEnumMap.

GCC error:
    ./../third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp:387:1: error: could not convert ‘{{rx::vk::ImageLayout::Undefined, {"Undefined", ...}}}’ from ‘<brace-enclosed initializer list>’
    to ‘const angle::PackedEnumMap<rx::vk::ImageLayout, rx::vk::{anonymous}::ImageMemoryBarrierData>’
      387 | };
          | ^
          | |
          | <brace-enclosed initializer list>

Bug: chromium:819294
Change-Id: I314c43c0795e54cabd891205ee935c6354d11658
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2401778
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2020-09-09 18:41:52 +00:00
Mohan Maiya 33c28e353a Optimize thread specific storage and retrieval with native ASM
Android reserves specific TLS slots to store thread specific
values. Given that the Context object gets queried on every
call we leverage Android's ASM code to improve the speed of
this operation.

TLS_SLOT_OPENGL is an unused slot in Android and using that
in combination with the ASM code,rather than using the
pthread API, allows angle to store and retrieve thread specific
context object much more efficiently.

Bug: angleproject:4717
Change-Id: I27a117fe82e62407e01c8c372918b866aaea9ee5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2231883
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-06-17 00:21:26 +00:00
Tobin Ehlis df2caf5c19 doc: Update CONTRIBUTORS
Added a number of names that were missing from CONTRIBUTORS.

Bug: angleproject:1944
Change-Id: I5e8e2d13494b5ded7dec7a094218e4aef90d9da3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2235931
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
2020-06-08 21:14:32 +00:00
Patrick To a2ec926cfc Specify LUID in D3D11
Add an extension to provide the ability to specify the LUID of the
GPU adapter to use when using D3D11.

Corresponding chromium CL:
https://chromium-review.googlesource.com/c/chromium/src/+/2096778

Bug: chromium:792657
Change-Id: Iefebea221a4b7a20f150b445ae1adf375444726d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2096663
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
2020-05-06 22:21:27 +00:00
Mohan Maiya dac5cc3b6a EGL: Add support for EGL_EXT_image_gl_colorspace extension
Add support for creating images with custom colorspace.

Bug: angleproject:3756
Tests: angle_end2end_tests --gtest_filter=ImageTest*
Change-Id: I9c332c012541c094728d9d9bde7add4189084a33
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2104088
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
2020-04-09 17:31:30 +00:00
Jian Li 8aa2006978 Skip some tests on Mali because of a known issue
Type decorations may be ignored when using multiple OpAccessChains.

Bug: angleproject:4492
Change-Id: I2e51af600394a69cb5f7e02228ca7e4fd1c826e0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2105529
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-03-19 15:44:35 +00:00
Amy Liu 5bb36cc03b Passing covgl/covgl
Fix the following gles1-API implementation codes and some validation functions:
glClearColorx
glClearDepthx
glDepthRangex
glGetFixedv
glGetTexParameterxv
glLineWidthx
glPolygonOffsetx
glSampleCoveragex
glTexParameterx
glTexParameterxv
ValidateMaterialCommon
ValidateFogx
ValidateFogxv
ValidatePointSizex
ValidateRotatex
ValidateTexEnvx
ValidateTexEnvxv

Bug: angleproject:4281
Change-Id: Ia1d9e53c3ffde2bc77b7ca7eaa0d790e8ca43f10
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2075341
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-03-12 17:47:48 +00:00
Ancheng Qiao 90019cea5e Vulkan: Add depth to mipmap generation
In generateMipmaps, remove hard coded depth of 1, shift depth
like every other dimension.

Remove MipmapsForTexture3D test pixel value check, in es spec3.2 8.14.4
"No particular filter algorithm is required, though a box filter is recommended."
It's implementation-dependent. In current angle implementation, will
choose VK_FILTER_LINEAR/VK_FILTER_NEAREST according to vkdeice support.

Bug: angleproject:3983
Test: MipmapTestES3.MipmapsForTexture3D/ES3_Vulkan
Test: dEQP-GLES3.functional.samplers.single_tex_3d.diff_max_lod
Test: dEQP-GLES3.functional.samplers.single_tex_3d.diff_min_lod
Test: dEQP-GLES3.functional.samplers.multi_tex_3d.diff_max_lod
Test: dEQP-GLES3.functional.samplers.multi_tex_3d.diff_min_lod
Change-Id: I5e73f8c743053aeb521b5e0b3e372bbe77e57ad2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2076740
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-03-03 17:23:55 +00:00
Xiaoxuan Liu b07816d62b Vulkan: Add robust init for NULL texture image.
In gl::ReadPixels(), ValidateReadPixels() will try to
flush staged updates before readPixels. In the case
where a texture was initialized with null RGBA data,
no Framebuffer dirty bits are set, and thus the staged
clear would never be flushed from the staged updates.

1. Add robust init in TextureVk::initImage to ensure
image is initialized.

Test: ./angle_end2end_tests --gtest_filter=\
RobustResourceInitTest*_Vulkan_AllocateNonZeroMemory

2. Update stageSubresourceRobustClear() to
kEmulatedInitColorValue in the case where robust resource
was initialized without full RGBA format to update
init value of robust resource.

Test: texture-attachment-formats.html in
webgl_conformance_vulkan_passthrough_tests.

3. Revert "Suppress Vulkan RobustResourceInit tests."
Revert commit a8e6a46312.

Reason for revert: re-enable related robust tests.

Bug: angleproject:4255
Change-Id: I79f20e0c02c2f1b1cd68ab590f0f765229f9e780
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1985503
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-02-28 20:43:58 +00:00
Brandon Schade 0a6e118d49 Change g_Mutex from std::mutex to std::recursive_mutex
When running flatland on android-10.0.0_r21 (Pixel 3), libgui's ~EglImage calls
eglTerminate which grabs angle's EGL entry point mutex. The path continues
to libvulkan where eventually another egl call happens (eglDestroyImageKHR) and
it will attempt to take the mutex at the entry point again. So we try to get the
mutex multiple times from the same thread.

Change this mutex to a recursive_mutex to allow for this re-entry of EGL calls

Tests: android-10.0.0_r21/frameworks/native/cmds/flatland
Bug: angleproject:4354
Change-Id: If8a817df45e9f58d5f06884510350e17d7127fa9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2029218
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2020-02-09 15:08:10 +00:00
Alexey Knyazev 58fc8b11cf Implement RGTC (BC4, BC5) compressed texture formats
gl.xml was modified as two enums were missing from their proper group.
dxgi_support_data.json was fixed to not expect BC4 and BC5 on FL9_3

Bug: angleproject:3149
Change-Id: Ieb97a8cf8e92258c1b44e090e823fac227997174
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2033068
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
2020-02-04 22:58:25 +00:00
Artem Bolgar ffdd58f5c0 Fixing OVR_multiview and OVR_multiview2 issues
Found two issues when native OVR_multiview and OVR_multiview2 extensions are generated.
1. OVR_multiview got replaced by the OVR_multiview2 in the translated shader (ESSL & GLSL)
2. Duplicate #extension OVR_multiview2 (for Fragment & Vertex) and 'layout (num_views=x)' (for Vertex) got generated into the translated shader.

Bug: angleproject:4247
Change-Id: I9a550883eeb326d95af4557578f8202a9493f4ec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1983802
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2020-01-15 19:07:46 +00:00
Eric Binet 5aed7c74b7 Narrow point size range clamping to affected versions
Bug: angleproject:2970
Change-Id: Ie14725b0cf30738d394320c24a72bc947135f5cf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1993204
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-01-11 01:56:01 +00:00
Gary Sweet 7b55aac3b3 Add Broadcom as a known vendor
Broadcom's vendor ID wasn't listed anywhere.

Fixed the sort order of vendor names in a number
of places also.

Bug: angleproject:4218
Change-Id: Iddc504fa35833ac14375cb77e7a2b1cc405f0e80
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1972714
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2019-12-19 18:00:56 +00:00
Brandon Schade b8e748be6b Vulkan: Add an end2end test to log GLES capabilities
Logs information listed at:
https://opengles.gpuinfo.org/listcapabilities.php
in CSV format

The list from gpuinfo doesn't include capabilities
introduced by extensions

Test: angle_end2end_tests.exe --gtest_filter=*PrintGLESCapabilities*
Bug: angleproject:4093
Change-Id: I59c82879ee2e3486269aa0cb40e2ee6c6e646ec5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1917443
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2019-11-21 00:27:22 +00:00
Sunny Sun df41552841 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>
2019-11-05 05:02:48 +00:00
Josh Matthews 67527cb452 Fix compilation on UWP targets.
Bug: angleproject:4053
Change-Id: Iaa358c8ce61d0ebaae11672bfb6dac2d3e847be1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1881343
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-11-05 03:04:38 +00:00
Xinyi He 052167bc15 Vulkan: Mipmap is unconditionally enabled in ANGLE
ANGLE always enables the Mipmap. The fix does redefining
the image with mipmaps and replace the origin one only
when it is necessary.

Bug: angleproject:3737
Change-Id: Ia33a16fd7feae303fb114988059c4eec58c4232d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1750627
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
2019-10-23 20:38:28 +00:00
Nathan Zabriskie 5d9c4ee328 Add D3D11on12 device option
This CL adds a new D3D11on12 device option which runs the D3D11
API on top of D3D12. This is done to aid in preliminary
investigations into the feasibility of creating a full D3D12
backend implementation.

Bug: angleproject:3919
Change-Id: I0ad4250eb3c93b0b74274c904aac74f03753c7ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1814404
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-10-10 02:07:39 +00:00
Jaedon Lee a0159c0348 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>
2019-09-27 12:25:46 +00:00
Mohan Maiya fea6576678 Vulkan: Add support for OES_vertex_type_10_10_10_2
- Add support to CPU/GPU convert vertex formats
- Add test cases for type conversion in angle_end2end_tests
- Fix a bug in shader script by adding a ceil when calculating bytes

Bug: angleproject:3192
Test: angle_end2end_tests --gtest_filter=VertexAttributeTest*Packed1010102*
Change-Id: I57bab9fc1c1041cd734746d0e52a33717b635ec0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1788495
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
2019-09-19 19:27:53 +00:00
Jaedon Lee 3b46885e19 Vulkan: Implement EXT_texture_type_2_10_10_10_REV
- Expose GLES 3.0 feature of 2_10_10_10_REV texture type
  on GLES 2.0 as EXT.
- Handle alpha channel value as 1.0 when used with RGB format.
- Add test for "RGB+UNSIGNED_INT_2_10_10_10_REV" case into TextureUploadFormatTest.

BUG=angleproject:3232.
Test:
 dEQP-GLES2.capability.extensions.uncompressed_texture_formats.GL_EXT_texture_type_2_10_10_10_REV
 dEQP-GLES2.functional.fbo.completeness.renderable.texture.*2_10_10_10_rev
 dEQP-GLES3.functional.fbo.completeness.renderable.texture.*2_10_10_10_rev
 KHR-GLES2.core.internalformat.*2_10_10_10_rev*
 KHR-GLES3.core.internalformat.*2_10_10_10_rev*

Change-Id: Iac00517971f9242161115c7256117a69093fb5df
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1732618
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-08-23 15:28:26 +00:00
Jeff Vigil 265fdf0c5f EGL: Set errors per spec for eglCreateContext
Per spec, in eglCreateContext when client version attributes are invalid - set
EGL_BAD_ATTRIBUTE. Set EGL_BAD_MATCH when config is not compatible.
Rename config variables in ValidateCompatibleConfigs to distinguish context
from surface configs. Context config handled differently when EGL_NO_CONFIG.

Bug: angleproject:3755
Test: angle_end2end_tests --gtest_filter=EGLCreateContextAttribsTest*
Change-Id: Iaea57653cf643ff60c8d4eabd3f022306bf1f4ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1747298
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
2019-08-16 19:03:34 +00:00
Mohan Maiya abce77a652 Add tex2d half float tests to expectations file
GL_HALF_FLOAT and GL_HALF_FLOAT_OES have different
values and only the latter is valid in GLES 2.0.
However, angle_deqp_khr_gles2_tests expects these
two enums to be treated as interchangable. This
is a bug in deqp, so the affected tests should
be expected to fail until the bug is fixed.

Bug: angleproject:3451
Test: dEQP.KHR_GLES2/core_internalformat_texture2d_*_half_float_*
Change-Id: If3a8078e592b18c60c883dfebd246435761a4423
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1743051
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-08-09 15:04:40 +00:00
Mohan Maiya 8400d05c09 Vulkan: Support the vertex_type_2_10_10_10_rev format
- Modify the python script and json file to generate the code which
adds the function for vertex_type_2_10_10_10_rev. These functions
handle the loading and conversion for vertex_type_2_10_10_10_rev.

- Modify ConvertVertex.comp and ConvertVertex.comp.json to perform
a GPU based conversion for vertex format of type 2_10_10_10_rev

- Modify BindingIsAligned function to check that both stride and
binding offset is aligned to the format size when the component
size is not aligned to 8 bits.

- Modify deqp3 expectations file to enable type_2_10_10_10_rev format
vertex array tests.

Bug: angleproject:3193
Test: dEQP-GLES3.functional.vertex_arrays.single_attribute.*2_10_10_10*
Change-Id: I2358d0d8888f7dfd7eac999dc150f643167de817
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1709035
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-08-08 13:53:11 +00:00
Hyunchang Kim 4c118cb3d3 Vulkan: Add support for OES_vertex_half_float
Expose GLES 3.0 feature of half_float vertex on GLES 2.0 as an extension.

Bug: angleproject:3191
Test: dEQP-GLES2.capability.extensions.vertex_data_formats.GL_OES_vertex_half_float
Change-Id: Ia093b66f9c32c81946b2cbc15ff227baea4bfb02
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1728749
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-08-02 19:07:07 +00:00
Fei Yang a71549b112 Vulkan: Intermittent failures in many GLES2 CTS
The stage mask in vkCmdPipelineBarrier is incorrectly set.

Bug: angleproject:3473
Change-Id: I4fea5994a391b0db0f81183f1c4d4ba47d387acb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1631849
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2019-07-22 17:37:04 +00:00
Cody Northrop 7d6923de4f Revert "Vulkan: pipeline cache not populated as blob cache is not set"
This reverts commit 134d6eed2a.

Reason for revert: glmark2 is unable to start on Android-Q when using ANGLE as the driver.

Original change's description:
> Vulkan: pipeline cache not populated as blob cache is not set
> 
> 1. Use vkMergePipelineCaches in eglSetBlobCacheFuncsANDROID as
>    blob cache callbacks are set after eglInititalize.
> 2. Use a more proper way to save the cache data to disk.
> 
> Bug: angleproject:3318
> Change-Id: Ieb5d10ab93e7afb2aab4446b387d7f36c878a686
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1559671
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>

TBR=syoussefi@chromium.org,jmadill@chromium.org,fei.yang@arm.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: angleproject:3318
Change-Id: I51e49bf103142e80b2c9028b3af6d3bb58cf6348
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1683820
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-07-01 12:58:57 +00:00
Fei Yang 134d6eed2a Vulkan: pipeline cache not populated as blob cache is not set
1. Use vkMergePipelineCaches in eglSetBlobCacheFuncsANDROID as
   blob cache callbacks are set after eglInititalize.
2. Use a more proper way to save the cache data to disk.

Bug: angleproject:3318
Change-Id: Ieb5d10ab93e7afb2aab4446b387d7f36c878a686
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1559671
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-06-28 12:29:35 +00:00
Courtney Goeltzenleuchter b867bc6f10 Vulkan: Fix dirty element array buffer updates.
The issue occurs that binds the same buffer and calls glDrawElements
with the same indices. The offset has been reset in the
VertexArrayVk::syncState(), but it doesn't check the actual value
in the ContextVk::setupIndexedDraw().
Also corrected case where update via BufferSubData wasn't being
sent to the HW.

Bug: angleproject:3362
Change-Id: I0f7d2fc162bc8f1c36cb09ba689fd27b482b9035
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1666345
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2019-06-20 21:10:17 +00:00
Mohan Maiya 141a23f64f Add support for OES_depth24
Allow 24-bit depth as a valid Renderbuffer format.

Bug: angleproject:3229
Test: angle_end2end_tests --gtest_filter=DepthStencilFormatsTest.DepthBuffer/*
Change-Id: I166639ec0e000595dc55848e4b8b7bef627b6471
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1661050
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2019-06-18 12:32:35 +00:00
Minkyu Jeong 431ef2fdd3 Add support for EXT_blend_minmax
This is to add additional modes (MIN, MAX) to "BlendEquation".
- add cases for "GL_MIN" and "GL_MAX" into "PackGLBlendOp()" in
vk_cache_utils.cpp
- add enabling "blendMinMax" codes into vk_caps_utils.cpp

And, AUTHORS and CONTRIBUTORS are updated.

BUG=angleproject:2897
Tests: dEQP-GLES3.functional.fragment_ops.blend.*min*
       dEQP-GLES3.functional.fragment_ops.blend.*max*

Change-Id: I13a1d6d28a104b18e21697f9f23d77e4eda2d1a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1621582
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2019-05-24 04:09:44 +00:00
Nick Shaforostov 8fb00484a4 fix a freeze when returning from fullscreen to maximized (nvidia only)
freeze happens after repetitive enter & exit full screen mode

Bug: angleproject:3431
Change-Id: Iea4cd75dc30cd17e53c0a7f1174e39b24d878d4b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1599617
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-05-08 18:12:07 +00:00