|
02b5328b
|
2018-07-24T11:06:47
|
|
D3D: Make computeOffset not use ErrorOrResult.
Unblocks further error refactoring. Also cleans up some checked math
logic.
Bug: angleproject:2738
Change-Id: I0c9fba9bb908dfc8424921d0db9871241b86e7de
Reviewed-on: https://chromium-review.googlesource.com/1142954
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
20d6d48c
|
2018-07-24T11:06:47
|
|
D3D11: Make createStagingTexture return Error.
This removes the use of the ErrorOrResult pattern in Renderer11.
Bug: angleproject:2738
Change-Id: Icc046ddd86394df56ca1acd10b1804fd6afa8ad0
Reviewed-on: https://chromium-review.googlesource.com/1142953
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
df0e48fe
|
2018-07-24T11:06:46
|
|
Buffer11: Don't use ErrorOrResult.
This pattern isn't available when using angle::Result instead of
gl::Error. Refactor the Buffer11 class to use gl::Error instead. This
unblocks further return value refactoring for perf.
Bug: angleproject:2738
Change-Id: I739044ae318c6b1fc40756a4f1fcadf609276c1a
Reviewed-on: https://chromium-review.googlesource.com/1142952
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0359b697
|
2018-07-23T17:22:00
|
|
Vulkan: Check mInFlightCommands doesn't grow too fast
The mInFlightCommand vector could grow faster than
the GPU can complete tasks. Check for this edge case
and give the GPU a chance to catch up with work.
Also allows us to enable performance tests for Draw
Calls on vulkan since it was affected by this limit
check before.
Bug: angleproject:2742
Change-Id: I66a86ea6b5300fa3d74b07dc341aa597824b5f09
Reviewed-on: https://chromium-review.googlesource.com/1147607
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
faf50849
|
2018-07-24T13:49:05
|
|
EGL: Validate that EGL_GL_TEXTURE_ZOFFSET is used only for 3D sources.
BUG=angleproject:2507
Change-Id: I0e5879acfbb7ba1b9d711f518205cebad2edb643
Reviewed-on: https://chromium-review.googlesource.com/1148657
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
21edf3db
|
2018-07-23T16:44:16
|
|
Fix stencil mask check in Framebuffer::partialClearNeedsInit
Bug: 850060
Change-Id: I9672e6c93e92941e61763d77180bef1548f5fbde
Reviewed-on: https://chromium-review.googlesource.com/1148897
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
ddd6e874
|
2018-07-24T10:49:06
|
|
Vulkan: Suppress 3 failing blit tests on Pixel 2.
Bug: angleproject:2743
Change-Id: I1693a5b301fa10a92263aab0cec14829851fe21f
Reviewed-on: https://chromium-review.googlesource.com/1148461
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
06235df9
|
2018-07-20T14:26:07
|
|
Make HLSL shaders use only one main function
Instead of having separate main() and gl_main() functions in HLSL
shaders, add initializing outputs and inputs directly to the main
function that's in the AST.
This works around some HLSL bugs and should not introduce name
conflicts inside main() since all the user-defined variables are
prefixed.
BUG=angleproject:2325
TEST=angle_end2end_tests
Change-Id: I5b000c96aac8f321cefe50b6a893008498eac0d5
Reviewed-on: https://chromium-review.googlesource.com/1146647
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
522095f7
|
2018-07-23T14:59:41
|
|
Rename "color" functions to "pixel" functions.
This extends of the copy, read and write functions to cover depth and
stencil formats.
Refactoring change only.
Bug: angleproject:2673
Change-Id: I4b0b2f4cf8621051cacd95cdbd6d70f94ca612e2
Reviewed-on: https://chromium-review.googlesource.com/1147152
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b436aac3
|
2018-07-18T17:23:48
|
|
Vulkan: Support inverted blit for depth/stencil.
Depth/stencil formats are packed tightly when reading back Images with
vkCmdCopyImageToBuffer. Same for the reverse. Thus we need to take this
into account when doing our blitWithReadback implementation.
This splits the depth/stencil blit into two separate steps. Fixes all
the remaining blit failures in BlitFramebufferANGLETest.
Bug: angleproject:2673
Change-Id: Ie9f43f782a82b5a0746d00122b24f81088d57c4c
Reviewed-on: https://chromium-review.googlesource.com/1140740
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3003f048
|
2018-07-23T14:41:57
|
|
Don't generate error for compressed texture formats in glFramebufferTexture2D
This validation error was added in 0186813531a7e8f47d584ca7fb54a73ed99d19be
without explanation. Shouldn't be an error according to GLES 2.0.25 spec.
Bug: 844846
Change-Id: Idc6d4d76304cbede7aa6d96bdccaefec40272b84
Reviewed-on: https://chromium-review.googlesource.com/1147149
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
db9c69ed
|
2018-07-18T17:23:47
|
|
Make PackPixels take an angle::Format.
This removes the format type parameter from places where it isn't
needed. It also removes the 'write color' functions map. This map was
redundant with the angle::Format write function.
Bug: angleproject:2729
Change-Id: I24e4548a89342237d7ed25180fea156fba51ccab
Reviewed-on: https://chromium-review.googlesource.com/1142300
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
cd7cd2a8
|
2018-07-19T11:25:54
|
|
Pass Context to EGLImage creation and Display to EGLImage initialization.
BUG=angleproject:2507
Change-Id: I6c195434131709203f892be6037e974002c174c2
Reviewed-on: https://chromium-review.googlesource.com/1143453
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
0df813c3
|
2018-07-12T12:52:06
|
|
GLES1: GL_OES_draw_texture
BUG=angleproject:2306
This implements GL_OES_draw_texture using a few bits of new state
in the renderer and adding a code path for it in the shader, using
gl_VertexID to draw the quad backing the texture draw. This allows us
to avoid allocating a separate vertex array for the texture draw and
reuses the current shader as much as possible, plugging in to the
existing multitexturing pipeline.
- Add unit test and sample
- No new test expectations, but advertising GL_OES_draw_texture makes
the DrawTex GLES1 conformance test non-trivial and actually test
glDrawTex*.
Change-Id: I1485098249fe44d46a01cab4bb7b2c39d0492923
Reviewed-on: https://chromium-review.googlesource.com/1135930
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
|
|
94c91a95
|
2018-07-19T15:10:24
|
|
Don't allow multiview clear during timer query
This brings the ANGLE_multiview spec in line with WEBGL_multiview.
This also fixes the test so that the timer query extension is
requested when it is being tested.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: Ibd5c117a5ae2642d26137d9ad44420d6601ba762
Reviewed-on: https://chromium-review.googlesource.com/1143283
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
ba365939
|
2018-07-18T17:23:46
|
|
Rename angle::Format::ID to angle::FormatID.
This allow for predeclaring the enum. It solves some include dependency
issues.
Bug: angleproject:2729
Change-Id: Ibbbab0796e466c62848404ba277c5f454fd9ac62
Reviewed-on: https://chromium-review.googlesource.com/1142299
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d754eb56
|
2018-07-19T14:55:03
|
|
Vulkan: Clean up FramebufferVk blit methods.
Renames mReadPixelBuffer to make it consistent with the blit buffer.
Also moves the rectangle clipping out of the blit implementation
methods. This shares a bit of code.
Also renames some blit implementation methods for consistency.
Bug: angleproject:2729
Change-Id: Ida81e85af4751cf8cb4b3029ed4e4b53bfa7b03d
Reviewed-on: https://chromium-review.googlesource.com/1142298
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0be37b44
|
2018-07-19T10:03:52
|
|
Fix ImageTest.
This test suite was missing the "GL_" prefix on some of the extension
checks. This was causing every test in the suite to be skipped. Fix
the check and also add some sanity checks that should ensure we expose
certain extensions on particular platforms and renderers.
Was discovered while working on changing the egl::Image class.
Bug: angleproject:2714
Change-Id: Ida89b5c3c33c534e60cbd55c7e1117a6ef6faae9
Reviewed-on: https://chromium-review.googlesource.com/1142963
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
da41ac69
|
2018-07-19T16:45:32
|
|
Fix decorating ViewID_OVR in HLSL output
ViewID_OVR should not be decorated in HLSL output since it is an
internal variable. Make sure that DecorateVariableIfNeeded() is used
for varyings instead of just Decorate() so that the internalness is
checked correctly and ViewID_OVR doesn't get decorated.
This avoids possible name conflicts between the internal ViewID_OVR
and any user-defined variables named ViewID_OVR.
BUG=angleproject:2062
TEST=angle_end2end_tests, angle_unittests
Change-Id: I9ed9876d4b2c760e7a11b0b270a2190993e840e5
Reviewed-on: https://chromium-review.googlesource.com/1143398
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
da92a476
|
2018-07-02T15:55:19
|
|
Clean up VaryingPacking
This patch intends to clean up some issues in VaryingPacking
to implement geometry shader easiler.
1. Use emplace_back() instead of push_back() when necessary.
2. Remove unnecessary parameter in VaryingPacking::packUserVaryings().
3. Remove the assignment of semanticIndex and only handle them in D3D11
back-ends.
BUG=angleproject:1941
Change-Id: Ia09c07f01dc442ce95cb4984e4b768d0c79872c7
Reviewed-on: https://chromium-review.googlesource.com/1128576
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
|
|
6a5d98c4
|
2018-05-04T15:42:20
|
|
ES31: Implement Vertex Attrib Binding on D3D11
This patch implements Vertex Attrib Binding on D3D11 and enables all
the test cases related to Vertex Attrib Binding on D3D11 back-ends.
On D3D11 back-ends the information in both GL vertex attributes and
bindings should be updated together. When a binding is dirty, we need
to find out and update all the attributes that are using this binding.
To speed up this process, this patch adds a map from each binding to
all the attrib indexes that are using this binding. This map may be
updated when VertexAttribBinding is implicitly or explicitly called.
With this map we can easily get all the attributes that should be
updated with the current dirty binding.
This patch also removes some unused variables in VertexArray11.cpp.
BUG=angleproject:2700
TEST=dEQP-GLES31.functional.vertex_attribute_binding.*
angle_end2end_tests
Change-Id: I9a28ec357fd3aba835812cecc410cfa4e3734f0c
Reviewed-on: https://chromium-review.googlesource.com/1048980
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c16f518e
|
2018-07-18T10:40:03
|
|
Vulkan: Disable the depth/stencil states when there are no depth/stencil buffers
We sometimes emulate depth-only or stencil-only buffers with depth-stencil
buffers. Disable depth-stencil states that allow reading or writing to these
buffers that should not exist.
BUG=angleproject:2739
Change-Id: I4f54800404f340eb53f04176e208f19a83a2899c
Reviewed-on: https://chromium-review.googlesource.com/1141932
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
639bc908
|
2018-07-18T17:08:27
|
|
Vulkan: Pass Renderer to FramebufferVk init.
This cleans up a few places where we were initializing the dynamic
buffers.
Bug: angleproject:2729
Change-Id: I0c9a61c62ef4d0eb865abc0011f7086d6e2acef6
Reviewed-on: https://chromium-review.googlesource.com/1142297
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
4edf1bca
|
2018-07-17T15:14:14
|
|
Roll Vulkan repos fwd as of 7/17
Update Vulkan Layers/Loader/Header to latest versions as of 7/17.
This includes additional validation checks related to vertex attributes
that will be useful to have in ANGLE.
Bug: angleproject:2736
Change-Id: I7c5b07c73be8958cb9f8783fd9dd7a51e1f82caa
Reviewed-on: https://chromium-review.googlesource.com/1141081
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c685586b
|
2018-07-18T15:06:54
|
|
Vulkan: Fix size_t warning in TextureVk.
Bug: angleproject:2740
Change-Id: I5f942e3add90b0cbf82aff7280d3a256ee60ac3b
Reviewed-on: https://chromium-review.googlesource.com/1142381
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
38971fd1
|
2018-06-28T15:19:18
|
|
Vulkan: Support multiple depth stencil formats for backbuffers.
Since the backbuffer's depth stencil is always emualted, it can support any
depth stencil format.
BUG=angleproject:2692
Change-Id: I29df62bb322c1ac4e9fcd54e4cbc4c219cf12e83
Reviewed-on: https://chromium-review.googlesource.com/1119075
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
799e075a
|
2018-07-17T13:27:21
|
|
Replace D24_UNORM with a packed version.
Adding an explicit X8 channel packs the format into 32 bits. This gives
the correct 4-byte alignment instead of a mysterious 3-byte version.
Bug: angleproject:2729
Change-Id: Id38f74db4ba61c500baeb6526a9d14e1d31d4363
Reviewed-on: https://chromium-review.googlesource.com/1140739
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e2c00841
|
2018-07-13T16:50:49
|
|
GenerateMipmaps should generate INVALID_OPERATION in ES 2.0 with EXT_sRGB
According to the OpenGL extension spec EXT_sRGB.txt, EXT_SRGB is based on
ES 2.0 and generateMipmap is not allowed if texture format is SRGB_EXT or
SRGB_ALPHA_EXT.
BUG=769989
TEST=SRGBTextureTest.SRGBValidation*
TEST=SRGBTextureTest.SRGBAValidation*
Change-Id: Ic51da224fcd318187865a44630af6fca5c3ad2de
Reviewed-on: https://chromium-review.googlesource.com/1137924
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Yizhou Jiang <yizhou.jiang@intel.com>
|
|
04f0f133
|
2018-07-16T15:45:44
|
|
Vulkan: Expose an unimplemented EGL_ANGLE_robust_resource_initialization.
Simply exposing the extension string allows the passthrough command decoder to
initialize for testing. It still fails all tests that use the extension.
BUG=angleproject:2722
Change-Id: I71f408d05009afb594835c0b741256e26209d93e
Reviewed-on: https://chromium-review.googlesource.com/1138824
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
252ec919
|
2018-07-16T15:39:34
|
|
Vulkan: "Implement" EGL_ANGLE_display_texture_share_group
BUG=angleproject:2724
Change-Id: I4a86c88ec8a1508a0961091ad6b4429dcd8775d4
Reviewed-on: https://chromium-review.googlesource.com/1138823
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
d691aeeb
|
2018-07-11T16:32:06
|
|
Vulkan: Implement GL_CHROMIUM_copy_texture with CPU copies.
BUG=angleproject:2723
Change-Id: Ic3905531d3e91f94ff0ce10a09ca5dcdf643e21f
Reviewed-on: https://chromium-review.googlesource.com/1134084
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
6fb8ba4e
|
2018-07-16T19:12:33
|
|
DisplayD3D: Don't release bound texture in restoreLostDevice.
If we are restoring a lost device we should have deleted all Contexts.
This would have freed any bound textures.
Remove the release call and replace it with an ASSERT. One usage of the
Proxy Context remains: Display::destroyImage.
Bug: angleproject:2714
Change-Id: Id3e4b7b0341092a8fae37705a6bb171167196fe2
Reviewed-on: https://chromium-review.googlesource.com/1137880
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
e62489f3
|
2018-07-16T19:12:33
|
|
Surface: Use ref count for bindTexImage.
This frees up one more use of ProxyContext. It will also keep the
bound surface alive until it is unbound from a Texture.
Two usages of the proxy context remains.
* DisplayD3D::restoreLostDevice.
* Display::destroyImage.
Bug: angleproject:2714
Change-Id: Ied72c6ebe060d7fc1743b3313e162d540fcbfe02
Reviewed-on: https://chromium-review.googlesource.com/1137878
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
80d4ef10
|
2018-07-13T17:08:19
|
|
Vulkan: Fixed improperly set env variable
After the first test using the Mock ICD runs, an environment
variable VK_ICD_FILENAMES is set when previously it did not
exists. The cleanup of that test, rather than deleting the
environment variable, set it to an empty string, which the
Vulkan loader would use for subsequent Vulkan tests, causing
issues with Vulkan not finding the correct extensions.
Had to disable two more tests since they started failing once
those backends were enabled.
Bug: angleproject:2604
Change-Id: Ie103756eed60d255d1dd92d7ef3b726183feeb1e
Reviewed-on: https://chromium-review.googlesource.com/1137342
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Omar El Sheikh <theoking@google.com>
|
|
e076a232
|
2018-07-16T15:34:05
|
|
Vulkan: Fix ReadPixels checking the wrong FBO for flipping.
Only the read framebuffer should affect the flipping for ReadPixels.
BUG=angleproject:2673
Change-Id: I3733bb823f5f3ebd55df63a36cc99b510dc0b1aa
Reviewed-on: https://chromium-review.googlesource.com/1138817
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
242c4fe8
|
2018-07-12T15:56:56
|
|
Vulkan: Store ProgramVk shaders in ShaderInfo.
This encapsulates most of the logic for a Program into a helper class.
Now we can store multiple instances of the Program's back-end to
implement different shader behaviour at draw time.
This will be useful for shader patching for OpenGL line segment raster.
Bug: angleproject:2598
Change-Id: I800a737088574e28f3a4ec23b91c0cb2647e4e12
Reviewed-on: https://chromium-review.googlesource.com/1127302
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b4927eb0
|
2018-07-16T11:39:46
|
|
Context: Fix missing "setErrorSet".
This would cause internal errors to trigger a nullptr dereference.
Bug introduced in "Add gl::ErrorSet and angle::Result." 6b873dd7
Bug: angleproject:2491
Change-Id: Ia98d59d27614912631d41ff0823ee5aa50769733
Reviewed-on: https://chromium-review.googlesource.com/1138408
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5a4c932a
|
2018-07-16T11:01:58
|
|
Vulkan: Implement "default" vertex attributes.
Rendering from disabled attributes is implemented using small dynamic
buffers. The buffers use a stride of zero so the same vertex data is
pulled for every index.
This fixes all the disable attribute tests in dEQP.
Bug: angleproject:2444
Change-Id: I04fe139076da3e3ff723bed8eb17e333b4cb0ddf
Reviewed-on: https://chromium-review.googlesource.com/1136664
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
419acc8f
|
2018-06-24T19:57:31
|
|
Vulkan: Convert streamed vertex data as needed.
Add two members to vk::Format:
- vertex data copy function
- flag indicating if the function converts or not
Use the function when streaming vertex data so it gets converted if needed.
Add fallbacks for integer formats. These formats will now work everywhere,
as long as they are in client memory, not a buffer object.
Adjust test expectations accordingly.
BUG=angleproject:2405
Change-Id: I677221219d933c35740633a0ab7694293e218177
Reviewed-on: https://chromium-review.googlesource.com/1084328
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
84c662b9
|
2018-07-12T15:56:55
|
|
Vulkan: Store program textures cache.
The program textures update needs to call into the incomplete textures
cache. Moving this step into an update mechanism allows us to avoid
some complexity of calling the incomplete textures cache inside the
ProgramVk class.
This enables further refactors for draw call shader patching and line
segment raster.
Bug: angleproject:2598
Change-Id: I0fd81ca58d2641572a2dd444992ccddd99ebc823
Reviewed-on: https://chromium-review.googlesource.com/1127301
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d34aa362
|
2018-07-12T15:56:54
|
|
Vulkan: Add a create shader helper.
This will be useful for line segment rasterization.
Bug: angleproject:2598
Change-Id: I84912c976665ecb32903181fa820b8db88786a28
Reviewed-on: https://chromium-review.googlesource.com/1127299
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ddd8eaa8
|
2018-07-16T14:28:58
|
|
Suppress reverse blits tests on Qualcomm/Vulkan
BUG=angleproject:2732
Change-Id: I1fa3c46654c7e6d446ec3bb43eb3a6c01a15e8f9
Reviewed-on: https://chromium-review.googlesource.com/1138234
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
76c1d14b
|
2018-07-14T11:33:39
|
|
D3D11: Lift dEQP-GLES3 uniform_api test expectations.
Unclear if these tests are still failing.
Bug: angleproject:1098
Change-Id: If64a0a046d2b21b67f67aba1efb92d33a30b96c3
Reviewed-on: https://chromium-review.googlesource.com/1137390
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
92e955f2
|
2018-07-13T17:20:48
|
|
Vulkan: Fix premature pointer freeing
Pointer was freed before using it's contents to set the
value of the ImageExtent to be returned
Bug: 863603
Change-Id: Ibdb26c862f3216e7314516f7aee64942467b4add
Reviewed-on: https://chromium-review.googlesource.com/1137349
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
06ca634e
|
2018-07-12T15:56:53
|
|
Vulkan: Refactor for draw call shader patching.
This refactors a few methods to enable draw call shader patching. The
shader serials in the Pipeline description are inserted right before
we query the pipeline cache. This is done during a draw call. Also
renames the 'QueueSerial' member of the ObjectAndSerial class to just
'Serial' to more accurately reflect it usage in ShaderAndSerial.
Also changes the GlslangWrapper class to have all static methods. If we
need to store state we can revert these changes at some point.
Also splits the GlslangWrapper link call into two static calls. One
call is called to get the linked source code. The second call compiles
the linked sources into shader code. Only the second call will be
necessary for draw call shader patching to implement OpenGL line
rasterization in Vulkan.
Bug: angleproject:2598
Change-Id: I7bad3c3eeab1fb062c15a840836db4a28f841a26
Reviewed-on: https://chromium-review.googlesource.com/1127158
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d9618bf4
|
2018-06-24T19:57:31
|
|
Vulkan: prepare for buffer format fallbacks.
Generate code for buffer fallbacks as well as texture fallbacks.
No functional change.
BUG=angleproject:2405
Change-Id: I9f30a2cbb3cd9ba1d18474f99cba434b030b0232
Reviewed-on: https://chromium-review.googlesource.com/1113026
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ecbaf666
|
2018-07-13T15:00:38
|
|
dEQP: Fix non-GTest error logging.
Using the non-GTest dEQP targets led to crashes when deferencing a
nullptr error logging method. Fix this by skipping platform init if
there is a nullptr logError function.
Bug: angleproject:2552
Change-Id: I161e35b49f7e9a7592cec968e3540a2e8b625f94
Reviewed-on: https://chromium-review.googlesource.com/1136663
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|
|
e835609c
|
2018-07-12T12:36:47
|
|
Vulkan: Implement gl_DepthRange support using driver uniform
Bug: angleproject:2592
Change-Id: Iec3d111df4d8e5cef205c8afb177f0514ffac5c8
Reviewed-on: https://chromium-review.googlesource.com/1135448
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f786b706
|
2018-07-10T11:01:43
|
|
Vulkan: Enable viewport Y flipping
Bug: angleproject:2728
Bug: angleproject:2726
Bug: angleproject:2673
Bug: angleproject:2729
Change-Id: Iad657a116bf9fcd06c3d4cf1918aaacba4f1fd38
Reviewed-on: https://chromium-review.googlesource.com/1131515
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
21061026
|
2018-07-12T23:56:30
|
|
Vulkan: Use angle::Result error handling.
Introduces a vk::Context class to contain an error handler and Renderer
pointer. This abtracts the common code path for ContextVk + DisplayVk.
Removes vk::Error in favor of the POD angle::Result class. There are a
few remaining usages of gl::Error that will have to be cleaned up when
we can change the front-end APIs.
Bug: angleproject:2713
Change-Id: I5e68f223d595c6c561b59d6a85759e5738ed43c6
Reviewed-on: https://chromium-review.googlesource.com/1128924
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
6b873dd7
|
2018-07-12T23:56:30
|
|
Add gl::ErrorSet and angle::Result.
gl::ErrorSet can handle errors and is accessible from ContextImpl.
It allows the implementation to mutate the error set without using
the gl::Context directly.
angle::Result is the faster POD return value class. It should generate
optimal code. It can also be used seamlessly with the ANGLE_TRY macro.
Also introduces an internal enum as a workaround for generating and
consuming errors in the back-end. When the internal enum is used as
an error return value the error is not consumed in the front-end. This
is a temporary workaround only.
Bug: angleproject:2491
Bug: angleproject:2713
Change-Id: I6cbdaadd075ccbdf241844cbcbc4ed5c3be40a8b
Reviewed-on: https://chromium-review.googlesource.com/1133200
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
0cc29136
|
2018-07-12T14:06:41
|
|
Vulkan: Remove contextVk warnings in syncState
Bug: angleproject:1578
Change-Id: I1ce739f596b74397b625fee3806f2e1d219b29b6
Reviewed-on: https://chromium-review.googlesource.com/1135573
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
523c5e31
|
2018-07-12T16:39:30
|
|
Vulkan: Suppress PointCoord test on Android.
This started failing with the driver uniform rework:
Vulkan: Add driver uniforms for point coords flipping
https://chromium-review.googlesource.com/1133584
Suppress until we can investigate.
Bug: angleproject:2727
Change-Id: Id1d1fe713ac058a0bb45230ba9e292f012755bcc
Reviewed-on: https://chromium-review.googlesource.com/1135729
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1617e69e
|
2018-07-11T11:08:19
|
|
Vulkan: Implement depth/stencil blit with flip of the viewport
- This makes all end2end tests pass successfully on Win/Nvidia
with viewport flipping enabled.
Bug: angleproject:2673
Change-Id: I031c0a0f5fb0aede58b59479e57c2c127bcb964c
Reviewed-on: https://chromium-review.googlesource.com/1133703
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
1283ef62
|
2018-07-12T10:15:42
|
|
translator: Add TIntermPreprocessorDirective.
This new node type can be used to inject preprocessor directives into
the intermediate tree. Outputting the preprocessor directive is easy
for the GLSL back-end. This can be used to implement workarounds such
as the OpenGL line rasterization rules on Vulkan.
Also fixes the build that was broken on Win/x64 with a prior change and
makes more methods in IntermNode.h const.
Bug: angleproject:2598
Change-Id: Ifd6d0ac7912ccf2137997bb9a0187fd063023d5e
Reviewed-on: https://chromium-review.googlesource.com/1133420
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9ff9c773
|
2018-07-11T13:08:18
|
|
Vulkan: Add driver uniforms for point coords flipping
This new driver uniform allows us to dynamically decide if we
flip the y coordinate of the gl_PointCoord variable.
We only flip the coordinate if we render downside-up, and otherwise
we cancel the flipping since the y coordinate doesn't need
modification anymore.
This completes all end2end and deqp gles2 tests success when viewport
flipping is enabled on Windows Nvidia.
Bug: angleproject: 2673
Change-Id: I570e01ef4965933428375f6ebd8eac83ef16fbff
Reviewed-on: https://chromium-review.googlesource.com/1133584
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
6c70bd8a
|
2018-07-11T18:01:43
|
|
Mark key functions as nodiscard.
This marks the internal format pixel bytes compute helpers and the
Context scratch and zero buffer helpers as "no discard". This prevents
sketchy code where we don't catch error values.
Bug: angleproject:2713
Change-Id: Ic6d285897dc36ad529cd5361d2763338578df61f
Reviewed-on: https://chromium-review.googlesource.com/1134207
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5396f2a6
|
2018-07-12T08:24:23
|
|
Return Error from onMakeCurrent
- Preliminary change for gl_PointCoords fix for Vulkan.
Bug: angleproject:2673
Change-Id: Ie43e8aeccf75a8daa4a137b98292d848522ea2f0
Reviewed-on: https://chromium-review.googlesource.com/1134877
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
c9c259cc
|
2018-06-13T11:03:22
|
|
Add a shared traverse() function for most node types
The traversal logic for many node types is essentially the same. Use
a single traverse() function for all simple node types instead of
having different ones for each node type. Special traversal code is
only needed for those node types where the traversal logic is
overridden in specific traversers or which do special bookkeeping.
This makes traverser behavior a bit more consistent: InVisit calls are
now done for all node types, including if/else, ternary and loop
nodes. Also false returned from visit function will always skip
traversing the next children of that node.
This reduces shader_translator binary size on Windows by 8 kilobytes.
The added helper functions will also make it easier to implement
alternative more efficient traversers.
Unfortunately this also regresses compiler perf tests by around 2-3%.
BUG=angleproject:2662
TEST=angle_unittests, angle_end2end_tests
Change-Id: I3cb1256297b66e1db4b133b8fb84a24c349a9e29
Reviewed-on: https://chromium-review.googlesource.com/1133009
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
5598148b
|
2018-07-11T09:01:18
|
|
Vulkan: Don't use gl::ErrorOrResult.
This removes usages of ErrorOrResult from SurfaceVk and FramebufferVk.
This will enable the Vulkan error handling refactor.
Bug: angleproject:2713
Change-Id: I69430dba51390a5cdc18b7b47ca423b9635e65de
Reviewed-on: https://chromium-review.googlesource.com/1128923
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
eebe2190
|
2018-07-11T09:01:18
|
|
Vulkan: Clean up Error usage.
* Adds a nodiscard to the Error class.
* Fixes the places where Error was discard.
* Uses more vk::Error instead of gl::Error.
This enables the Vulkan back-end Error refactoring.
Bug: angleproject:2713
Change-Id: I09606d965e8b7cfd341ad7fb95cf029b9d694ef4
Reviewed-on: https://chromium-review.googlesource.com/1128922
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
12222070
|
2018-07-11T14:59:48
|
|
Vulkan: Move Feature init before device creation.
We were previously creating our device *before* initializing the
FeaturesVk fields. This means we weren't requesting the MAINTENANCE1
extension correctly. Moving feature init before the first createDevice
call fixes the ordering issue.
This unblocks the viewport flip behaviour fixes.
Bug: angleproject:2673
Change-Id: Iae6973b57bcb4da78134a17b0644cd248bfb4981
Reviewed-on: https://chromium-review.googlesource.com/1133920
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
dec86230
|
2018-07-11T09:01:18
|
|
Generalize Context scratch buffer errors.
This refactor will allow us to generate different error types in
different backends. This makes Vulkan happy because it won't have to
generate gl::Errors and can stay with vk::Error.
Bug: angleproject:2713
Change-Id: I981402450f3b519d4f79851982547695d583355a
Reviewed-on: https://chromium-review.googlesource.com/1128921
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
ca2ff38b
|
2018-07-11T09:01:17
|
|
Refactor internal format pixel math methods.
This removes the use of the ErrorOrResult class from these methods.
This will enable more performant Error handling. Also cleans up the
ANGLE_TRY_CHECKED_MATH macro to be more general.
Bug: angleproject:2713
Change-Id: I349947d320907839ca88ec1f9251e6ddc3858a08
Reviewed-on: https://chromium-review.googlesource.com/1128920
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
89ef177f
|
2018-07-10T11:19:43
|
|
EGL: Fix binding EGL_NO_SURFACE without surfaceless support.
It was possible for ANGLE to call eglMakeCurrent with EGL_NO_SURFACE and
a valid context when the client called eglMakeCurrent with
EGL_NO_SURFACE and EGL_NO_CONTEXT. Fix this by always binding a surface
when the driver has no native surfaceless support.
Don't expose the surfaceless extension when it's not possible to support
it (unvirtualized contexts and no native surfaceless support).
BUG=860800
BUG=angleproject:2464
Change-Id: Id8af9638d4356dbd710c453c9f196b9f25a2bbf9
Reviewed-on: https://chromium-review.googlesource.com/1131555
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
6cad7736
|
2018-07-11T09:01:17
|
|
Vulkan: Remove vk::ErrorOrResult.
The ErrorOrResult pattern doesn't help much. Removing it enables the
Error passing refactor in the Vulkan back-end.
Bug: angleproject:2713
Change-Id: I4e8277ad856c785bf22b4d37b7ae880b534ef005
Reviewed-on: https://chromium-review.googlesource.com/1128919
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
84c11c53
|
2018-07-11T10:12:39
|
|
Vulkan: Implement sampler structs as function args.
Bug: angleproject:2494
Change-Id: Ia8e374846427b7140ab2565ae5b9b18409a76d96
Reviewed-on: https://chromium-review.googlesource.com/1117323
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
5c8113d3
|
2018-07-10T15:03:01
|
|
Vulkan/D3D11: Improve blit framebuffer tests and fix bug in D3D11
- Improving the tests revealed a bug in D3D 11 Fast Path rendering.
- These changes here are preliminary to implementing the blit for
depth/stencil in Vulkan when using the viewport flipping.
Bug: angleproject:2673
Bug: angleproject:2719
Change-Id: I6d55084e559d3110c8eeb0e7acb4e6fb09b6c1b5
Reviewed-on: https://chromium-review.googlesource.com/1132125
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
a6a7842f
|
2018-06-28T08:32:54
|
|
ES31: Support atomic functions on D3D11 - Part I
This patch is the first one of the implementation of atomic
functions in D3D11.
There are mainly two differences in the usage of GLSL and HLSL
atomic functions:
1. All GLSL atomic functions have return values, which all
represent the original value of the shared or ssbo variable;
while all HLSL atomic functions don't, and the original value
can be stored in the last parameter of the function call.
2. For HLSL atomic functions, the last parameter that stores the
original value is optional except for InterlockedExchange and
InterlockedCompareExchange. Missing original_value in the call
of InterlockedExchange and InterlockedCompareExchange results
in a compile error from HLSL compiler.
To handle these differences, we plan to implement the translation
in two steps:
1. Support direct translations from GLSL atomic functions to HLSL
ones.
Direct translation can only handle the following two situations:
(1) The sentence is a GLSL atomic function call without requesting
a return value and it is not atomicExchange or atomicCompSwap:
e.g.
GLSL: atomicAdd(mem, value);
-> HLSL: InterlockedAdd(mem, value);
(2) The sentence is a simple assignment expression: its right is
a GLSL atomic function call and its left is a declared variable.
e.g.
GLSL: oldValue = atomicAdd(mem, value);
-> HLSL: InterlockedAdd(mem, value, oldValue);
2. Support atomic functions in the situations that don't support
direct translations.
We will modify the intermediate tree to make direct translation work
on all these situations.
e.g.
atomicExchange(mem, value);
-> int oldValue;
oldValue = atomicExchange(mem, value);
int oldValue = atomicAdd(mem, value);
-> int oldValue;
oldValue = atomicAdd(mem, value);
return atomicAdd(mem, value);
-> int temp;
temp = atomicAdd(mem, value);
return temp;
for (i = 0; i < atomicAdd(mem, value); ++i)
-> int temp;
temp = atomicAdd(mem, value);
for (i = 0; i < temp; ++i)
{
...
temp = atomicAdd(mem, value);
}
int result = isTrue ? atomicAdd(mem, value) : 0;
-> int result;
if (isTrue)
{
result = atomicAdd(mem, value);
}
else
{
result = 0;
}
This patch completes Step 1 which mainly focus on the translation
from GLSL atomic functions to HLSL ones.
BUG=angleproject:2682
TEST=angle_end2end_tests
Change-Id: I3b655b6e286dad4fd97f255f7fe87521c94db30c
Reviewed-on: https://chromium-review.googlesource.com/1121835
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
a2f043d8
|
2018-07-10T17:21:20
|
|
dEQP: Implement platform error handling.
Also downgrades several Vulkan UNIMPLEMENTED() to WARN().
Also downgrades a couple D3D-specific errors to warnings.
Also downgrades an undefined behaviour integer clear error to warning.
Also includes suppressions for failing D3D11 ES 3.1 SSBO tests.
Also includes suppressions for failing Android GLES format tests.
Also includes suppressions for failing Android Vulkan buffer tests.
Bug: angleproject:2552
Bug: angleproject:2567
Bug: angleproject:1951
Bug: angleproject:2405
Change-Id: Ie619085021d42012cd578b669f7ff4252ca41a58
Reviewed-on: https://chromium-review.googlesource.com/1062791
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
569b9cb9
|
2018-07-07T21:44:35
|
|
Fix run_code_generation.py hash calculation.
Open files with mode 'r' instead of 'rb' so the hash calculation
produces the same results on Linux and Windows.
Recalculate the hashes and proc_table_autogen.cpp which was out of date.
BUG=angleproject:2711
Change-Id: I31562c96ce36e6df009c44c565fe9a3f1b5ba6c4
Reviewed-on: https://chromium-review.googlesource.com/1128549
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
efaa09fd
|
2018-06-27T15:40:21
|
|
Enabled Vulkan backend on as many tests as possible
Bug: angleproject:2694
Change-Id: I299d71e0857065d0f60204977d395793f921deaa
Reviewed-on: https://chromium-review.googlesource.com/1117702
Commit-Queue: Omar El Sheikh <theoking@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
cb8a921b
|
2018-06-28T12:30:36
|
|
Vulkan: Support RGB/BGR backbuffers emulated on RGBA/BGRA.
BUG=angleproject:2692
BUG=angleproject:2523
BUG=angleproject:2715
BUG=angleproject:2716
Change-Id: I538b385f8b66fb97e176953b0fc4a6299849c005
Reviewed-on: https://chromium-review.googlesource.com/1118713
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|
|
b01b4802
|
2018-07-10T12:43:57
|
|
Vulkan: Apply driver uniforms descriptor set.
Also modifies the ProgramVk to initialize the Pipeline and Desriptor
Set layouts with driver uniforms enabled.
Bug: angleproject:2717
Change-Id: I24f7bf6f89b450d1dcb62dcfa7411555ebe3a937
Reviewed-on: https://chromium-review.googlesource.com/1131568
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c0bb36cb
|
2018-07-10T11:10:31
|
|
Vulkan: Add driver uniforms to shader.
Bug: angleproject:2717
Change-Id: I542f3b0f2de21857d7fea0267f07d2d0eec78a8c
Reviewed-on: https://chromium-review.googlesource.com/1131567
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b7c4f2b9
|
2018-07-09T12:01:30
|
|
translator: Refactor interface block layout qualifiers.
This will make it easier to insert internal uniform layouts in Vulkan.
Bug: angleproject:2717
Change-Id: Ic1a76848337cc67a57698913c584d8596bf4f27e
Reviewed-on: https://chromium-review.googlesource.com/1127300
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6ed6c71c
|
2018-07-10T12:02:30
|
|
Roll Vulkan repos fwd as of 7/10
Update Vulkan Layers/Loader/Tools/Header to latest versions as of 7/10.
The layers were updated to correctly comprehend which device extensions
are enabled which should fix a false error being flaged on negative
Viewports in ANGLE.
Bug: angleproject:2704
Change-Id: Ie51660f539beb249c3b11dc7e0d553ff7cabfde3
Reviewed-on: https://chromium-review.googlesource.com/1131919
Commit-Queue: Tobin Ehlis <tobine@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
69b47390
|
2018-07-10T12:06:53
|
|
Vulkan: Fix last parameter of viewport driver uniform.
This was introduced in a prior patch.
Bug: angleproject:2717
Change-Id: I8f34377cbb9cbede4237efb1610400a8ed20ae2a
Reviewed-on: https://chromium-review.googlesource.com/1131566
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b70ad524
|
2018-07-09T16:06:26
|
|
Vulkan: Fix all depth/stencil related failures due to Y flip
- Fixes all deqp functional_fragment_ops_depth_stencil_* with Y flipping enabled.
Bug: angleproject:2673
Change-Id: I94a4225dec8adf9113309e8b8b2c8aa61f6a2bb9
Reviewed-on: https://chromium-review.googlesource.com/1129857
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
30b84854
|
2018-07-09T09:18:50
|
|
SwapchainD3D: Take Display instead of Context.
This cleans up another use of the proxy context.
Bug: angleproject:2714
Change-Id: Icba5bf76a3e9f811ee571529de16fd8162c76b3a
Reviewed-on: https://chromium-review.googlesource.com/1128928
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
7dc43051
|
2018-07-09T09:18:49
|
|
D3D: Move Incomplete Textures to Context9/11.
This cleans up another usage of getProxyContext.
Bug: angleproject:2714
Change-Id: I5337e30cdd96e282e355c727bb40cd30e049ec1a
Reviewed-on: https://chromium-review.googlesource.com/1128926
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e8cc4a64
|
2018-07-09T09:18:49
|
|
Surface: Don't use a BindingPointer for BindTexImage.
The BindingPointer pattern isn't necessary. Every time we delete a
Texture we call ReleaseTexImage internally. There shouldn't be any time
that we keep an orphaned Texture is Surface.
This cleans up one place where we were using the ProxyContext.
Bug: angleproject:2714
Change-Id: I3b0fd2125d02ea7545922ec6da7f487451bed871
Reviewed-on: https://chromium-review.googlesource.com/1128925
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
aa2126c4
|
2018-07-09T15:36:36
|
|
Vulkan: Fix all copyTexImage/copySubTexImage cases with Y flip
- Validated by running:
-functional_texture_specification_basic_copytexsubimage2d_*
-functional_texture_specification_basic_copyteximage2d_*
With the flip flag enabled.
Bug: angleproject:2673
Change-Id: I5a3041af79f9316256b0650ab7e3fd0e086e46e3
Reviewed-on: https://chromium-review.googlesource.com/1129820
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
82eda93f
|
2018-07-09T15:10:22
|
|
Vulkan: Fix for framebuffer blit and Y flip
- The depth/stencil related tests are now disabled since I found out
that the tests are too simple to find issues if there is a flip since
they use only a single color and no gradient / checked board.
This is left to implement in the Vulkan backend later on.
Bug: angleproject:2673
Change-Id: I8f7091d4b9c8c3bec0353ebab28304b6209ea350
Reviewed-on: https://chromium-review.googlesource.com/1129629
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
853f8255
|
2018-07-09T09:18:50
|
|
DisplayImpl: Make waitClient/waitNative non-const.
These methods can mutate the display resources. Necessary for getting
rid of ProxyContext and for the Vulkan error refactor.
Bug: angleproject:2714
Bug: angleproject:2713
Change-Id: Ibffb1a382ecb064daaa7c664f9fc65cbcf927b37
Reviewed-on: https://chromium-review.googlesource.com/1128927
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
63cc351f
|
2018-06-27T17:35:19
|
|
Fix PMurHash.cpp mingw clang 64-bit compilation.
Tested with Firefox build, upstream bug:
https://bugzilla.mozilla.org/show_bug.cgi?id=1471632
Change-Id: I4b44847dfc69ee26cf2215b0a0b7573becfd369d
Reviewed-on: https://chromium-review.googlesource.com/1117187
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d8b1c5c5
|
2018-06-20T12:08:46
|
|
Return ImmutableString from ArrayString()
This makes the compiler a few kilobytes smaller, and prepares getting
rid of TString altogether.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I93a003fe27b99bef72f872fa1066e2e108f934c5
Reviewed-on: https://chromium-review.googlesource.com/1107713
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
26c61b24
|
2018-06-29T12:50:59
|
|
Vulkan: Fix to unset NULL Driver after tests
Updated ScopedVkLoaderEnvironment destructor to delete an environment variable
that gets set during initialization of the renderer to load the Mock/Null
driver for tests that request it.
Bug: angleproject:2698
Change-Id: Ibbac795b6315971b303d97a55d24565a403d056c
Reviewed-on: https://chromium-review.googlesource.com/1120940
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c56adf60
|
2018-07-03T11:29:11
|
|
Roll Vulkan repos fwd as of 7/3
Update Vulkan Layers/Loader/Tools/Header to latest versions as of 7/3.
This updates the ICD build to use inputs from the Header repo instead
of copies of the file from its own repo. Those copies have been deleted
and some of the generation scripts in Tools repo have been renamed.
Also put script dependencies from Vulkan-Headers repo into a shared var
that's imported by the other repos to minimize repeat code.
Bug: angleproject:2704
Change-Id: I98a18be055482dccdad8468115b4045d09342bfb
Reviewed-on: https://chromium-review.googlesource.com/1124966
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
834a3a10
|
2018-07-09T13:32:39
|
|
Vulkan: Add driver uniforms set.
This will be used to specify the applied Vulkan. We will use this to
implement OpenGL line rasterization rules.
Bug: angleproject:2717
Change-Id: I3395bf620a01c4b84b19a00037d05f148e5523f3
Reviewed-on: https://chromium-review.googlesource.com/1120151
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|
|
534343ab
|
2018-07-09T16:43:16
|
|
Vulkan: Roll SPIRV-Tools and SPIRV-Headers.
This fixes a bug in SPIRV-Tools validation. vec3s were not being packed
properly. Affected some of the more complex dEQP shader tests.
Unblocks better Debug error reporting.
Bug: angleproject:2552
Change-Id: I83447813a4ae3347157321a30a91b5dee55ff6c1
Reviewed-on: https://chromium-review.googlesource.com/1129824
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
e4a6d7a3
|
2018-07-09T13:32:37
|
|
Vulkan: Make DynamicDescriptorPool single pool.
This completes a prior refactor. DynamicDescriptorPool couldn't
robustly handle multiple pools so only accept one as a parameter. We
were already only using one at a time in practice.
This removes the need to look up the pool index from the descriptor
type which became problematic later on.
Bug: angleproject:2717
Change-Id: I7fb92d5ab55bbe1f35b6b9cfcd8981cc1ca358f1
Reviewed-on: https://chromium-review.googlesource.com/1127157
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|
|
caa55cd7
|
2018-07-05T13:19:35
|
|
Vulkan: Support EGL_ANGLE_surface_orientation for vertical surface flipping.
This is a simpler way of flipping when the client is aware of the extension.
This allows Chrome to render with the correct orientation.
BUG=angleproject:2709
Change-Id: I52216b765a42930f2be043a07fe441a9f875a14d
Reviewed-on: https://chromium-review.googlesource.com/1127342
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
189ad877
|
2018-07-09T13:32:37
|
|
Return an Error from ContextImpl::syncState.
This will allow the Vulkan back-end to call Vulkan commands that return
VkResult within syncState.
Bug: angleproject:2717
Change-Id: I05e1379e71acaac56bcc9493c8561e82da000934
Reviewed-on: https://chromium-review.googlesource.com/1120150
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|
|
d7890bca
|
2018-06-29T11:57:22
|
|
Skip noop draws in the frontend
If a draw does not have enough vertices for its primitive count to
produce a primitive then skip it. If an instanced draw has 0 instances
or not have enough vertices for its primitive count to
produce a primitive then skip it.
This means a Point with 0 vertices, a Line w/ 0-1 vertices, or a tri
with 0-2 primitives.
Updated some redundant code in the D3D11 backend. Draws below the
minDrawCount will no longer be passed to the backend so updated the
associated state in StateManager11 to only track the case where all
primitives should be culled due to GL state settings.
BUG=angleproject:2568
TEST=functional_transform_feedback_basic_types_interleaved_lines_lowp_int
Change-Id: I9faa767c12004fcdec923ec70a8ee5615d789813
Reviewed-on: https://chromium-review.googlesource.com/1120849
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
44a3cf49
|
2018-07-09T09:40:57
|
|
Vulkan: Flip on Y, fix for MaxTextureSizeTests
- This change fixes the tests that were failing in angle_end2end_tests
- MaxTextureSizeTest.*
Bug: angleproject:2673
Change-Id: I9c671b8be0e2360a80f6298897ec298c6e998863
Reviewed-on: https://chromium-review.googlesource.com/1128811
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1a135adc
|
2018-07-04T10:35:31
|
|
Vulkan: Fix how the viewport is calculated with Y flip
- This fixes all ViewportTest.* and MipmapTest.*
- Tests left to fix in end2end:
- BlitFramebuffer*
- MaxTextureSizeTest.*
- PointSpritesTest.*
Every other test in angle_end2end_tests are working.
Bug: angleproject:2673
Change-Id: I162083bc847c15fa5490ab524ad4c22747d232ea
Reviewed-on: https://chromium-review.googlesource.com/1126333
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c2136b67
|
2018-07-09T10:35:33
|
|
Allow constexpr initialization of PackedEnumMap.
By making mData public we can use aggregate initialization. The syntax
is the same as for initializing a std::array. It might be possible to
also use std::map initialization syntax using a list of pairs. That is
left for a follow-up.
Bug: angleproject:2568
Change-Id: I30a6f280172cb197208d14b1a53b9cc12b7834d8
Reviewed-on: https://chromium-review.googlesource.com/1127181
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
8fbd9d96
|
2018-06-21T15:27:44
|
|
Use ImmutableString in ImageFunctionHLSL
This code is analoguous to the code in TextureFunctionHLSL and is now
implemented in a similar manner.
BUG=angleproject:2267
TEST=angle_unittests, angle_end2end_tests
Change-Id: Ie3503766217dad4f3848f2d4b2fc3f62b3edce0c
Reviewed-on: https://chromium-review.googlesource.com/1110366
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
7e585118
|
2018-07-04T15:49:02
|
|
Vulkan: Implement eglWaitClient using a finish.
In the future this can be implemented with a flush.
BUG=angleproject:2707
Change-Id: I1dd4eae9551f7797865e6e17e6caa77f6ec5a9b2
Reviewed-on: https://chromium-review.googlesource.com/1126457
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|