|
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>
|
|
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>
|
|
bea35a63
|
2018-07-05T11:54:10
|
|
Vulkan: Use Scoped resource init helper.
In a few places we initialize resource on the stack in the Vulkan
back-end. When we do this we should use a RAII wrapper so that if we
generate an error and unwind the stack we can auto-release the object.
This fixes a bug that was being triggered by an unexpected failure on
Present with the Vulkan back-end on Intel.
There are several other places in the code that should be modified to
use the new wrapper.
Bug: angleproject:2690
Change-Id: I49a1c5516756f8b7dba833aca65926aa7b8bd5c6
Reviewed-on: https://chromium-review.googlesource.com/1118610
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
be7e455c
|
2018-07-05T14:47:39
|
|
Vulkan: Regenerate builtin shaders.
BUG=angleproject:2691
Change-Id: Iafb1b4828fa0d54974bfb9d11a436ccaa910b942
Reviewed-on: https://chromium-review.googlesource.com/1127356
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
62edcce8
|
2018-07-04T12:43:39
|
|
Vulkan: Initialize the max pbuffer size members of Config.
Pass the VkPhysicalDeviceProperties to GenerateDefaultConfig to initialize the
pbuffer size limitations in a platform independent way.
BUG=angleproject:2622
Change-Id: Id99bc505a1965cc037c5dcd65af031c1c655d424
Reviewed-on: https://chromium-review.googlesource.com/1126406
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|
|
bf6dc379
|
2018-06-28T15:24:19
|
|
Vulkan: Flip viewport on y for the backbuffer only
- Hide the implementation behind a feature flag, currently
disabled permanently as I'm working on fixing the different
failures.
- SimpleOperationTest.* passing
Bug: angleproject:2673
Change-Id: Ic86520c3cc478d62bebbaeaf4c6b33c439a67b0f
Reviewed-on: https://chromium-review.googlesource.com/1119089
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
258e8718
|
2018-06-21T17:29:19
|
|
EGL: Support unvirtualized contexts and unsafe multithreading.
-Add a new renderer and context type to own native EGL contexts and
handle destruction.
-Track the current EGL surface and context per-thread.
-Support unvirtualized contexts by creating a new context for every client
context.
BUG=angleproject:2464
Change-Id: Ib2efa1d88c771b4a78625e0e3546f6ed95678c91
Reviewed-on: https://chromium-review.googlesource.com/1110943
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
838f304d
|
2018-06-27T10:43:41
|
|
EGL: Skip creation of the dummy pbuffer when surfaceless is supported.
BUG=angleproject:2464
Change-Id: If1834cf88aed0ffae12bb584d6936c6c09a296a0
Reviewed-on: https://chromium-review.googlesource.com/1117022
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
a72ebeba
|
2018-06-28T11:16:58
|
|
Vulkan: Fix issue in DynamicBuffer
- We weren't keeping track of mSize correctly, causing some very
specific index buffer bindings to fail. The size returned when allocating
the buffer can be a bit different than the size requested, and that extra
space between mSize and the allocated size was not meant to be used,
causing errors in the validation layers.
Bug: angleproject:2580
Change-Id: I47eb7b8de6f4f657de14385b77ba6a459add599b
Reviewed-on: https://chromium-review.googlesource.com/1118607
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
2b06054d
|
2018-07-03T14:48:13
|
|
Vulkan: Insert a barrier after buffer copy
According to the spec(section 18.1), all copy commands are treated
as transfer operations for the purposes of synchronization
barriers. Some tests are flaky on Intel platform without such
barriers.
Bug: angleproject:2663
Bug: angleproject:2664
Change-Id: Ic8bc9a0eb000670342c0df0449257324f04ad1f8
Reviewed-on: https://chromium-review.googlesource.com/1124103
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1266d20a
|
2018-06-29T09:11:34
|
|
Vulkan: Add Features class.
This class will control optional features in the Vulkan back-end. It
allows toggling the feature support from a centralized place. This can
be useful for performance or correctness testing.
Add a placeholder feature for line segment raster. We can also use a
feature for enabling backbuffer flipping.
Bug: angleproject:2598
Bug: angleproject:2673
Change-Id: I8ddec2dba2181d5b014267be68aee9d2cb015ccf
Reviewed-on: https://chromium-review.googlesource.com/1120149
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
fa5d84be
|
2018-06-28T10:40:04
|
|
Vulkan: Fix offset handling for vertex buffers
Bug: angleproject:2580
Change-Id: I22f62a8549e998275224a6b1f9c133cf31ebb5b9
Reviewed-on: https://chromium-review.googlesource.com/1118419
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
475ef575
|
2018-06-27T15:54:18
|
|
Vulkan: Refactor config generation out of platform specific code.
Permuatations of configs are now generated in platform-independent code and
a DisplayVk callback is used to determine native support.
BUG=angleproject:2692
Change-Id: Iad450c1a3275239d6bcbc350e8dd8e37470fa8e0
Reviewed-on: https://chromium-review.googlesource.com/1117563
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
1ee33552
|
2018-06-28T10:22:49
|
|
Emulate eglSwapBuffersWithDamageKHR when needed
When driver does not support the EGL_KHR_swap_buffers_with_damage
extension, call regular eglSwapBuffers instead.
BUG=angleproject:2464
Change-Id: Ie3a395d37b61ef5ac65b098b312e9ead1c8bc799
Reviewed-on: https://chromium-review.googlesource.com/1117832
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
be30c4fb
|
2018-06-21T09:43:08
|
|
Vulkan: Framebuffer blit support for depth/stencil cases
Bug: angleproject:2643
Change-Id: Ib50e4051f5b3965c2a752cf2cd45d3470312cdcf
Reviewed-on: https://chromium-review.googlesource.com/1115370
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
a0adaf98
|
2018-06-27T15:49:35
|
|
Vulkan: Work around unused sampler validation.
Work around glslang's improved validation by using a valid but very
high layout binding. This should be more robust.
Tests already passing:
dEQP-GLES2.functional.state_query.shader.uniform_value_sampler
Bug: angleproject:2691
Bug: angleproject:2612
Bug: angleproject:2600
Change-Id: Ie78ae89f76cc0a42806724b622d7f201241bd041
Reviewed-on: https://chromium-review.googlesource.com/1117477
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9e14164d
|
2018-06-27T11:43:18
|
|
VK: Support pbuffer surfaces.
TEST=PbufferTest
TEST=dEQP-EGL.functional.color_clears.single_context.gles2.rgba8888_pbuffer
TEST=dEQP-EGL.functional.color_clears.multi_context.gles2.rgba8888_pbuffer
TEST=dEQP-EGL.functional.render.single_context.gles2.rgba8888_pbuffer
TEST=dEQP-EGL.functional.render.multi_context.gles2.rgba8888_pbuffer
BUG=angleproject:2622
Change-Id: I99f64689c274fbb565b365f4a05b52252528fc38
Reviewed-on: https://chromium-review.googlesource.com/1117030
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
26581113
|
2018-06-21T09:43:08
|
|
Vulkan: Support for framebuffer blit extension
- No support for formats that do not support vulkan blit.
- The depth/stencil format used in the tests do not support
blit, so currently no tests validate the depth/stencil blits.
Bug: angleproject:2643
Change-Id: I89a0d5b102396d8254fe272681326615bd6800ed
Reviewed-on: https://chromium-review.googlesource.com/1111611
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
e0234aeb
|
2018-06-26T17:06:25
|
|
GL: Don't print driver performance warnings.
They can add an large ammount of spam to the logs of our test suites and have
never been actionable.
BUG=768943
Change-Id: Ibee3d7ece97cc03500b10ffa7bcaf3a4d7d51581
Reviewed-on: https://chromium-review.googlesource.com/1115700
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
3f332584
|
2018-06-26T21:00:14
|
|
Revert "RendererGL: Limit warning output to 5 per message type."
This reverts commit 7c37ca1836402b654dbbf5f00007e09bdf2a7051.
Reason for revert: Causes crashes on Android.
Original change's description:
> RendererGL: Limit warning output to 5 per message type.
>
> BUG=768943
>
> Change-Id: I8ed69c70d1914b56145c52ffe26f13193fb55e9e
> Reviewed-on: https://chromium-review.googlesource.com/685278
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
TBR=geofflang@chromium.org,cwallez@chromium.org
Change-Id: I641ac5d508d238e275eaeef4fac4033d9015960d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 768943
Reviewed-on: https://chromium-review.googlesource.com/1115658
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0bb02368
|
2018-05-27T20:35:11
|
|
Vulkan: add SCALED vertex formats to table.
Add SCALED formats, which correspond to non-normalized integers, to Vulkan
format table. Adjust test expectations accordingly. For now these new
formats only work when the native Vulkan supports them.
BUG=angleproject:2405
Change-Id: Ia6fdcbec61774536e6396cf713e46f28f49585c1
Reviewed-on: https://chromium-review.googlesource.com/1110710
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
60437586
|
2018-06-15T09:47:04
|
|
Vulkan: Fix unused sampler struct uniforms.
These were not being parsed correctly. Turns on all uniform_api dEQP
tests.
Bug: angleproject:2612
Change-Id: I365bbe4cc52bb6a62fc47c53355962af38298b7f
Reviewed-on: https://chromium-review.googlesource.com/1101573
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3bb2bbea
|
2018-06-15T09:47:03
|
|
Program: Sampler uniform query in front-end.
We have this information stored in the front-end sampler bindings.
This solves sampler uniform query across the various back-ends.
Turns on a bunch of uniform_api dEQP tests.
Bug: angleproject:2612
Change-Id: If8752a26438595ad103598369df360e2f5e12d53
Reviewed-on: https://chromium-review.googlesource.com/1101572
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
8c379f36
|
2018-06-21T19:55:05
|
|
Vulkan: enable some vertex data tests.
Enable tests that don't use fixed or unnormalized short/byte vertex data,
with some exceptions for Android and AMD.
BUG=angleproject:2405
Change-Id: I9e37ebca3a873617f11fee065b7a0ba67f80998c
Reviewed-on: https://chromium-review.googlesource.com/1111317
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|
|
0bb940a8
|
2018-06-22T09:59:34
|
|
Vulkan: Edge case test and fix for alpha channel masks
The contextVk color mask needed to be updated when we
were syncing the state of the framebufferVk to make sure
the right mask gets applied in the test described in
ClearTest.cpp
Bug: angleproject:2685
Bug: angleproject:2597
Change-Id: I575028aad4cd495bf4ec1484cc870940dcde92d5
Reviewed-on: https://chromium-review.googlesource.com/1112038
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
9c1b3e2b
|
2018-06-26T12:59:16
|
|
Partially revert "WGL: Support unvirtualized contexts and unsafe multithreading."
Caused timeouts on the Skia bots when rolling ANGLE.
BUG=angleproject:2686
BUG=angleproject:2464
Change-Id: I311b075522b86410d055e0b742342423eaa7eeb5
Reviewed-on: https://chromium-review.googlesource.com/1115216
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
10887984
|
2018-06-20T11:46:41
|
|
Vulkan: Sampler structs in arrays.
Samplers are extracted from arrays of struct uniforms similarly as
with non-arrays. They are named according to the variable name,
array element and sampler field name.
Nested structs to come later.
Bug: angleproject:2494
Change-Id: Ie2f5f7bd1f747e73b3c6b505b2b1043cfe1073b5
Reviewed-on: https://chromium-review.googlesource.com/1101568
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
7c37ca18
|
2017-09-26T16:56:32
|
|
RendererGL: Limit warning output to 5 per message type.
BUG=768943
Change-Id: I8ed69c70d1914b56145c52ffe26f13193fb55e9e
Reviewed-on: https://chromium-review.googlesource.com/685278
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
e4e2d0c5
|
2018-06-22T08:25:05
|
|
Vulkan: Add RenderTargetVk::getImageForRead.
This helper method will also transition the Image to the correct read
layout. We will need to revisit the implementation when working on
simulatenous read.
Bug: angleproject:2539
Change-Id: Id61404460f3ef0dbb054e6ac2dfc0b59adb78402
Reviewed-on: https://chromium-review.googlesource.com/1108378
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|
|
16f391d4
|
2018-06-22T08:57:40
|
|
ParallelCompile: Update gl.xml
Updated from https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/master/xml/gl.xml.
BUG=chromium:849576
Change-Id: I92520d53844f7fff7e68ca49207151d4fa69c79e
Reviewed-on: https://chromium-review.googlesource.com/1111469
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
edeaa835
|
2018-06-22T09:18:41
|
|
Vulkan: Fix mixed descriptor pool updates.
When updating the Uniforms and Textures pools at different rates we
could trigger an ANGLE bug. We would sometimes reset and free the
currently bound descriptors. We can fix this by using separate
descriptor pools for each descriptor set.
Bug: angleproject:2678
Change-Id: I605b558531e7745484e16156a3af5eac40ffcc79
Reviewed-on: https://chromium-review.googlesource.com/1110662
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|
|
caaff169
|
2018-06-22T08:55:37
|
|
Vulkan: Fix releasing Programs that are in use.
The bug would only manifest after a glUseProgram(0) at a specific time.
Fix the bug by releasing the uniform buffer to the Renderer instead.
Bug: angleproject:2397
Change-Id: Ia071da5af00dfc740e0fc20864d41f7b3e0afda4
Reviewed-on: https://chromium-review.googlesource.com/1110712
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|
|
8a4c49fb
|
2018-06-21T15:43:06
|
|
Vulkan: Refactor DynamicDescriptorPool.
Changes the set counting to use a free count by descriptor type. Also
changes the init to take a pool size count that more closely mirrors
Vulkan.
Will lead to a fix for descriptor set recreation.
Bug: angleproject:2678
Change-Id: I26816befec28ebb866fb0f3aaba27d2bc1d3be43
Reviewed-on: https://chromium-review.googlesource.com/1110661
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3cacf69b
|
2018-06-20T16:49:57
|
|
Pass all context creation parameters to DisplayImpl::createContext.
Knowing the share context at native context creation time is required if
we want to honor the requested share group instead of virtualizing
contexts or using global share groups.
BUG=angleproject:2464
Change-Id: I1fb4d71de266b3191986b1754e73d474e49445bb
Reviewed-on: https://chromium-review.googlesource.com/1108743
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
24ddc7a8
|
2018-06-11T14:56:34
|
|
WGL: Support unvirtualized contexts and unsafe multithreading.
When using unvirtualized contexts, DisplayWGL still creates a Renderer for
managing any internal GL resources such as emulated back buffers for
DXGISwapChainWindowSurfaceWGL or D3DTextureSurfaceWGL but also creates a new
Renderer for each GL context. All created contexts share resources.
BUG=angleproject:2464
Change-Id: I945502514079368e062beef70bed49c61ed44403
Reviewed-on: https://chromium-review.googlesource.com/1097459
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
5bdf8bd1
|
2018-06-20T09:51:37
|
|
Vulkan: enable the rest of dEQP tests in fbo.render.*
Vulkan does not support separate depth and stencil attachments.
Adding this check to checkStatus skips the relevant tests to that.
There was also a bug in FramebufferVk::clear where we were not
checking the number of bits for depth/stencil attachments before
setting the aspects for clearing.
Bug: angleproject:2597
Change-Id: Iabe9f77a51fc7aca08b8faf3cecc3df9f99a7f1e
Reviewed-on: https://chromium-review.googlesource.com/1107847
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
05a449a7
|
2018-06-20T18:08:04
|
|
Replace reinterpret_cast with safer or no cast
When casting types to one another in C++, the weaker the cast,
the better.
This change replaces instances of reinterpret_cast with static_cast
or no cast where it safe and correct to do so.
BUG=angleproject:2683
Change-Id: I99c9033614a65282ae1d78cf0f4b80fabd75877a
Reviewed-on: https://chromium-review.googlesource.com/1109396
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5fd3693e
|
2018-06-19T14:55:50
|
|
Vulkan: Mask the alpha channel for draw when needed
When the angleFormat we have has no alpha channel, but the actual
texture underneath has one, we shouldn't be drawing over the alpha
channel, so we apply a mask on it when we're in this situation.
Bug: angleproject:2597
Change-Id: Ia7110709e6ee32bb61988d08f5049e4e80e7e24e
Reviewed-on: https://chromium-review.googlesource.com/1106759
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
e033999e
|
2018-06-20T11:46:40
|
|
Vulkan: Add struct sampler parsing.
Vulkan requires all uniforms to be declared in a block. Uniform
blocks can't have store samplers. Thus we can't use structs in
samplers with Vulkan GLSL.
To work around this limitation we extract samplers from structs
and move them into standalone types. The samplers are named
according to the variable and struct fields.
Arrays of structs and nested structs to come later.
Bug: angleproject:2494
Change-Id: I83a94ab082c6ce7ee68ec1290751ecee18820683
Reviewed-on: https://chromium-review.googlesource.com/1101567
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3237f759
|
2018-06-20T14:45:43
|
|
Vulkan: Fix issue when a sampler2D was not used in FS or VS
Bug: angleproject:2675
Change-Id: Idbf2590a763fd7b81d2bcc5850180a1bb931360e
Reviewed-on: https://chromium-review.googlesource.com/1108490
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
fddac3a3
|
2018-06-20T15:21:31
|
|
Vulkan: Remove obsolete TODO.
Bug: angleproject:2397
Change-Id: I847772aa5ce1c27f7fd232d50d39c15f10135900
Reviewed-on: https://chromium-review.googlesource.com/1108515
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2ad498eb
|
2018-06-20T13:19:01
|
|
Vulkan: get vertex formats from format table.
Use the Vulkan format table to look up the Vulkan format for vertex data.
This will let us support more vertex formats by adding them to the table.
It also eliminates one usage of gl::VertexFormatType.
No functional change.
BUG=angleproject:2405
BUG=angleproject:2531
Change-Id: I73eb69ccac50d427de3e7d5479f92bb17c49aed3
Reviewed-on: https://chromium-review.googlesource.com/1051028
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
3fb64c6a
|
2018-06-20T11:46:39
|
|
Vulkan: Fix counting for shader texture bindings.
Vulkan prefers to use a single binding for each texture array.
Previously we were reserving binding space for array elements.
Doesn't immediately fix any tests but allows more tests to
pass in subsequent CLs.
Bug: angleproject:2494
Change-Id: I238d4e6f491bfa6daf04dde24f8111c8418cd59c
Reviewed-on: https://chromium-review.googlesource.com/1101570
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
66c2f4af
|
2018-06-19T10:27:57
|
|
Vulkan: Add test and fix clear on RGB8 with color masks
Fixes the behavior of clearWithDraw to keep the alpha channel if
we should not be clearing it.
Bug: angleproject:2667
Change-Id: Id49c1d2ca30ecb5b5bdd8abe00825a6210cfacf6
Reviewed-on: https://chromium-review.googlesource.com/1106052
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
a914f7ff
|
2018-06-08T10:07:41
|
|
Use ShaderMap in Statemanager11 - Part II
This patch is the last patch of storing shader resources into
ShaderMap in Statemanager11.
This patch also splits several large functions into smaller
one to make the code structure clearer.
BUG=angleproject:2169
Change-Id: Id6d89976de0376b2479bd11d7551fc6f5b521c13
Reviewed-on: https://chromium-review.googlesource.com/1092511
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
|
|
41b453a4
|
2018-06-11T14:46:00
|
|
WGL: Track current context per thread.
BUG=angleproject:2464
Change-Id: I5cce1f52dc3636478e3e2893f5323345b7f83501
Reviewed-on: https://chromium-review.googlesource.com/1097458
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
1c3a94aa
|
2018-05-07T15:23:42
|
|
WGL: Update the Renderer to own the native GL context.
Adds a RendererWGL which owns the native WGL GL context.
Adds a ContextWGL which owns the RendererWGL and communicates the native WGL
context back to DisplayWGL for making current.
BUG=angleproject:2464
Change-Id: Ideb11c164da2c304f860c544a56450d0ad8fafac
Reviewed-on: https://chromium-review.googlesource.com/1038131
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
d3ab3078
|
2018-06-19T09:55:04
|
|
Vulkan: Enable some more fbo.render dEQP tests
Sometime we have a clear call with clearDepth+clearStencil but no
attachment to clear. This was triggering the assert instead of
just skipping the clear.
Bug: angleproject:2597
Change-Id: I2d7750db919afe47cf02155f7c4afd0b02318bb1
Reviewed-on: https://chromium-review.googlesource.com/1106039
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c94ba1d5
|
2018-06-18T11:26:28
|
|
Vulkan: Enable a bunch of texture related tests
Also adds a small bugfix in
PixelBuffer::stageSubresourceUpdateFromFramebuffer where we weren't
using the right format for the pack pixels params. The format should
be unsized so that the fastcopyfunc / colorwritefunc / colorreadfunc
are found correctly if needed when packing pixels.
Bug: angleproject:2653
Bug: angleproject:2501
Change-Id: Ie4aacc623ddc9583360ab0c99be19d3db2bdbf44
Reviewed-on: https://chromium-review.googlesource.com/1104395
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
339b95ef
|
2018-06-12T10:21:52
|
|
Vulkan: Support RGB5A1 correctly
Bug: angleproject:2649
Bug: angleproject:2597
Change-Id: I2fd7185463d92737454e383fbfb7992e8d68fe68
Reviewed-on: https://chromium-review.googlesource.com/1097221
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
7df52383
|
2018-06-18T14:38:23
|
|
Angle: Fix angle::Format's pixelBytes
The X channel wasn't taken into account when calculing that pixel_bytes
field, leading to some inconsistencies.
Bug: angleproject:2597
Change-Id: I135e806518ec633d48c1535a48f305bd4d757887
Reviewed-on: https://chromium-review.googlesource.com/1104960
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
388f991c
|
2018-06-15T17:18:09
|
|
Vulkan: fix third_party path.
run_code_generation.py stopped working, likely as a result of the big Vulkan repo reorganization.
I fixed a path, regenerated everything (by temporarily hacking the script so it thought everything
was dirty), and nothing changed except one comment.
BUG=angleproject:2558
Change-Id: I5ac4c040ac1ec207098172303cc2f2507cccdecb
Reviewed-on: https://chromium-review.googlesource.com/1103281
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
6ed167a9
|
2018-06-13T13:45:55
|
|
Vulkan: Implement conversion to uint16 for drawElements with ubytes
Bug: angleproject:2646
Bug: angleproject:2659
Change-Id: If3c7a2b77d6acd18c8ca2522a427a43e10ed6db2
Reviewed-on: https://chromium-review.googlesource.com/1099420
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c252d757
|
2018-06-14T09:32:40
|
|
Vulkan: Fill in glslang resources with our caps
This allows us to enable these tests:
dEQP-GLES2.functional.shaders.fragdata.valid_static_index
Bug: angleproject:2594
Change-Id: I2c9a10063500d96d1c4bfb761f4b45590114b7ef
Reviewed-on: https://chromium-review.googlesource.com/1100957
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
f6fd48fd
|
2018-06-18T08:11:27
|
|
Vulkan: Get uniform for array of matrices fix
Bug: angleproject:2666
Change-Id: Ib50b0dd89abbd1d8d6c829a5ecf6438acc970da3
Reviewed-on: https://chromium-review.googlesource.com/1104305
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
50cf2be0
|
2018-06-15T09:46:57
|
|
Reformat some style in touched files.
This was triggered by running the code generation script.
Bug: angleproject:2665
Change-Id: Id639c78eb618182ee1859678590cf0f559b572c2
Reviewed-on: https://chromium-review.googlesource.com/1101564
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
57707e5f
|
2018-06-14T14:50:36
|
|
Vulkan: Fix a state notification change that was wrong
That state change should really be in the frontend and not in each
backend.
Bug: angleproject:2594
Change-Id: I9d9396563ce42a41587b954892d6b4c6002c5072
Reviewed-on: https://chromium-review.googlesource.com/1101252
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0661eb89
|
2018-06-13T10:51:54
|
|
Fix compile error in iterating ShaderBitSet
This patch fixes a compile error when we do iteration on ShaderBitSet.
Now we can directly get a ShaderType variable in a range-for iteration
on a ShaderBitSet.
BUG=angleproject:2169
Change-Id: I23e38f2ebd1c72145a2e54be374f7dcd9f5fb9e2
Reviewed-on: https://chromium-review.googlesource.com/1100312
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
9491e5eb
|
2018-06-14T12:48:06
|
|
Generate framebuffer IDs used in DXGISwapChainWindowSurfaceWGL.
The DXGI surface was attempting to bind renderbuffers to the default
framebuffer instead of a generated one.
BUG=852399
Change-Id: Ibca6699e73e84735c64f2e3ee6b7684bfcbe1bfc
Reviewed-on: https://chromium-review.googlesource.com/1101240
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
49aacad5
|
2018-06-12T08:33:59
|
|
Vulkan: Support the indices offset in drawElements calls
Also fixes an issue in buffer copy synchronization.
Bug: angleproject:2645
Change-Id: Ibca7052daaf1e6fe37913c8a8216ec33c66426b6
Reviewed-on: https://chromium-review.googlesource.com/1096911
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
f6e160fa
|
2018-06-12T10:13:57
|
|
Vulkan: Don't use swizzle state when its not needed
Enables a bunch of dEQP tests in the functional.fbo.render.* namespace.
Bug: angleproject:2597
Change-Id: I1a06b335d5daf2987df52c460903081860887ce9
Reviewed-on: https://chromium-review.googlesource.com/1097596
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d668be9c
|
2018-06-13T16:54:06
|
|
Vulkan: Use push constants in PipelineLayoutCache.
This removes the internal pipeline layout for the masked clear shaders.
Instead use the PipelineLayoutCache.
Bug: angleproject:2462
Change-Id: I8f8365b866098ece3e964fd12447dfdea55c20ba
Reviewed-on: https://chromium-review.googlesource.com/1090758
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
4cc753e0
|
2018-06-13T13:25:33
|
|
Vulkan: Implement sampler arrays.
Bug: angleproject:2462
Change-Id: If9c9cb69624d6f9f0895f6883e1eed19a27e6cb4
Reviewed-on: https://chromium-review.googlesource.com/1089809
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
8ed634c0
|
2018-06-13T13:25:33
|
|
Vulkan: Fix qualifier replacement for sampler arrays.
The uniform name by default has the array subscript [0] appended. In
the shader code it uses no subscript. Fix this by parsing out the
subscript in the glslang wrapper subsitution step.
This is a preliminary fix. More work on descriptor set layouts and
pipeline layouts will be necessary to support sampler arrays.
Bug: angleproject:2462
Change-Id: I57d6304f33822d588c7cb192607380c2f3ba20f5
Reviewed-on: https://chromium-review.googlesource.com/1089808
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
9b168d02
|
2018-06-13T13:25:32
|
|
Vulkan: Store Pipeline/DS Layouts in ProgramVk.
We can keep a shared reference to the Pipeline and Descriptor Set
layouts in the Program. This ensures they are not in use when they are
deleted. Note that they are allowed to be deleted as long as no command
buffers are currently recording with them. If the Program is deleted
then there should be no further commands using these layouts.
Bug: angleproject:2462
Change-Id: I75161b3ce1ee8eae33dd6becee79b4262b844cdd
Reviewed-on: https://chromium-review.googlesource.com/1089807
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
c7918ceb
|
2018-06-13T13:25:31
|
|
Vulkan: Add PipelineLayout and DescriptorSetLayout caches.
This will be necessary to support more than one PipelineLayout per
instance of ANGLE. Sampler array handling requires different layouts
for different sampler uses.
Bug: angleproject:2462
Change-Id: I1d8b4919eed1a589002ad1898b05186f420061c7
Reviewed-on: https://chromium-review.googlesource.com/1089806
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|
|
ad2ae93e
|
2018-06-11T15:31:17
|
|
Vulkan: Clamp the point size range to have a min value of 1.0
Bug: angleproject:2658
Change-Id: I32ff9aa27b064d9977eea0b83b18c52c4e42e38d
Reviewed-on: https://chromium-review.googlesource.com/1096054
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3e313805
|
2018-06-11T14:44:33
|
|
Vulkan: Line loop edge case with ubyte indices
Bug: angleproject:2637
Change-Id: I2cec129ed1aa0e55e0dbf1d353caa65a51c528a3
Reviewed-on: https://chromium-review.googlesource.com/1096017
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
aaca96ee
|
2018-06-12T10:19:48
|
|
Vulkan: Minor style fixes.
Makes some methods const or static. Fixes parameter names. explicit
single argument constructors. Other small style fixes.
Bug: angleproject:2462
Change-Id: Ie2bf96603e9eda81d6f2aa788867978de10e9992
Reviewed-on: https://chromium-review.googlesource.com/1089805
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
a8802477
|
2018-05-28T11:17:47
|
|
ES31: Implement FramebufferTextureEXT on OpenGL back-ends
This patch intends to implement FramebufferTextureEXT on OpenGL
back-ends.
1. Support layered framebuffer attachments.
2. Add new framebuffer completeness rules on layered framebuffer
attachments.
3. Support FRAMEBUFFER_ATTACHMENT_LAYERED_EXT as a valid <pname>
parameter of GetFramebufferAttachmentParameteriv.
Note that for an entire level of a cube map:
1. It has no TextureTarget because TEXTURE_CUBE is not a valid
target for TexImage*D.
2. It corresponds to 6 ImageDescs (that represents its faces) in
class Texture, so when the cube map is cube complete, we return
the ImageDesc of its first face, meanwhile we do not allow
querying ImageDesc if it is not cube complete.
BUG=angleproject:1941
TEST=angle_end2end_tests
dEQP-GLES31.functional.geometry_shading.query.framebuffer_attachment_layers
dEQP-GLES31.functional.geometry_shading.query.framebuffer_incomplete_layer_targets
dEQP-GLES31.functional.geometry_shading.layered.*
dEQP-GLES31.functional.geometry_shading.instanced.invocation_per_layer_*
dEQP-GLES31.functional.geometry_shading.instanced.multiple_layers_per_invocation_*
Change-Id: I44393b513ec8f1a682fd1c47d3eaa6f3b3fae877
Reviewed-on: https://chromium-review.googlesource.com/1075811
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
af883628
|
2018-06-08T15:57:31
|
|
Vulkan: enable as many end2end tests as possible
Bug: angleproject:2615
Change-Id: I918cc18984b2e5b22b5e13398355a2fd60e4eb00
Reviewed-on: https://chromium-review.googlesource.com/1093564
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f15f886c
|
2018-06-04T18:59:41
|
|
Differentiate texture and renderbuffer framebuffer attachment capabilities
ANGLE used to describe the abitily to attach textures and renderbuffers
of a specific format to a framebuffer using a single notion of "renderable".
However, for some formats, only one can be supported, but not the other.
Split TextureCaps::renderable into textureAttachment and renderbuffer.
Also, split InternalFormat::renderSupport into
textureAttachmentSupport and renderbufferSupport.
The only functional change is in a few places which now explicitly check
for texture or renderbuffer attachement support.
Information in format support tables was duplicated for the two capabilities,
so behavior should remain the same. It should be corrected in future CLs.
Note: additional information in those tables may need to be added
in order to properly support GenerateMipmap and TexStorage2DMultisample,
this is beyond the scope of this CL.
Bug: angleproject:2567
Change-Id: I18bce4100525be35709d8bbf4de08ec812aab502
Reviewed-on: https://chromium-review.googlesource.com/1086491
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
e17b5ba5
|
2018-06-04T14:28:58
|
|
Vulkan: Keep unused uniforms list to fix glslang issues
We we're unable to cleanup the unused uniforms if we did not keep
a list of them while parsing them in ProgramLinkResource. Now
that we keep a history of them, we're able to clean them up and
fix a few dEQP tests.
Bug: angleproject:2582
Bug: angleproject:2585
Bug: angleproject:2587
Bug: angleproject:2589
Bug: angleproject:2590
Bug: angleproject:2593
Change-Id: Ic1f9151e356a3d05e83f1031cc7b187b370284e5
Reviewed-on: https://chromium-review.googlesource.com/1085644
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
5da6690f
|
2018-06-05T12:24:06
|
|
Hold RendererGL objects with a shared_ptr.
To support both virtualized and unvirtualized contexts, the RendererGL object
represents the native context. Update ContexGL and the various DisplayGLs to
hold RendererGL with a shared_ptr so that deletion of the renderer happens at
the correct time.
Update RendererGL to take ownership of FunctionsGL.
BUG=angleproject:2464
Change-Id: Id040a8053973d73936c0a7ff0ab5edb1a3f16dc6
Reviewed-on: https://chromium-review.googlesource.com/1085851
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
81970bc3
|
2018-06-06T11:11:56
|
|
Use ShaderMap in DynamicHLSL and StateManager11 - Part I
This patch is the first one of using ShaderMap in both DynamicHLSL and
StateManager11 to make the code cleaner and more straightforward.
BUG=angleproject:2169
Change-Id: I2b206d0250f5ced071cc1c3632367b16e5e02dfb
Reviewed-on: https://chromium-review.googlesource.com/1089473
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
|
|
f7af13c4
|
2018-06-06T14:14:54
|
|
Fix the divide by zero exception in BindBufferRange
This bug is caught because we haven't implemented
caps.shaderStorageBufferOffsetAlignment on D3D backend. So the default
value is 0. This change will set its value for D3D11 backend.
BUG=angleproject:2625
TEST=angle_deqp_gles31_tests
Change-Id: I03c045c08903e4da41659133e7dbd9c4133186cc
Reviewed-on: https://chromium-review.googlesource.com/1088192
Reviewed-by: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
fba1f61d
|
2018-06-04T14:37:17
|
|
Vulkan: No-op on ProgramVk::Validate implementation
Also enable the dEQP test that was blocked on that UNIMPLEMENTED call.
Bug: angleproject:2600
Change-Id: Iae1280d6e4f52c5b8e66c9f7fbaa9b2730c4eb0e
Reviewed-on: https://chromium-review.googlesource.com/1085693
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
e9465a61
|
2018-06-04T10:41:52
|
|
Vulkan: Fix wrong read ptr location when updating uniform block
Fixes these dEQP tests:
dEQP-GLES2.functional.state_query.shader.uniform_value_array
dEQP-GLES2.functional.shaders.indexing.uniform_array.vec2_*
dEQP-GLES2.functional.shaders.indexing.uniform_array.vec3_*
dEQP-GLES2.functional.shaders.struct.uniform.nested_struct_array*
dEQP-GLES2.functional.shaders.struct.uniform.loop_nested_struct_array*
dEQP-GLES2.functional.shaders.struct.uniform.dynamic_loop_nested_struct_array*
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.multiple_nested_structs_arrays.*
dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_partial.multiple_basic_array.*
dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_full.multiple_basic_array.*
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.multiple_basic_array.vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.multiple_basic
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic_array_first_elem_without_brackets
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.multiple_basic.vertex
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.multiple_basic.fragment
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.multiple_basic.both
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.multiple_basic_array.*
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.multiple_nested_structs_arrays.*
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.struct_in_array.bool_*
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic_struct.bool_*
dEQP-GLES2.functional.uniform_api.info_query.unused_uniforms.*
dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.multiple_basic.vertex
dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.multiple_basic.fragment
dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.multiple_basic.both
dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.multiple_basic_array.*
dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.multiple_nested_structs_arrays.*
dEQP-GLES2.functional.uniform_api.value.initial.render.basic_struct.*
dEQP-GLES2.functional.uniform_api.value.initial.render.struct_in_array.*
dEQP-GLES2.functional.uniform_api.value.initial.render.array_in_struct.*
dEQP-GLES2.functional.uniform_api.value.initial.render.multiple_basic_array.*
dEQP-GLES2.functional.uniform_api.value.initial.render.multiple_nested_structs_arrays.*
dEQP-GLES2.functional.uniform_api.value.initial.render.nested_structs_arrays.*
dEQP-GLES2.functional.uniform_api.value.assigned.unused_uniforms*
Bug: angleproject:2586
Change-Id: I51f619832424131b7c1eeff9589259b14cf4f358
Reviewed-on: https://chromium-review.googlesource.com/1085369
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
16fdde13
|
2018-06-02T15:38:21
|
|
Move vertex data copy functions out of D3D.
Move the vertex buffer copying and conversion functions from the D3D back
end so the Vulkan back end can use them. No functional change.
BUG=angleproject:2405
Change-Id: If3c04a6c0dc37c78c1779d8b5d3cece263e8a031
Reviewed-on: https://chromium-review.googlesource.com/1083817
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
33f11fbc
|
2018-05-07T13:42:47
|
|
Initialize gl::Context state on the first call to MakeCurrent.
The constructor of gl::Context creates a bunch of zero and helper objects
but it is not current at this time. If the backend if not using virtualized
contexts this causes the created objects to be created on the wrong native
context.
BUG=angleproject:2464
Change-Id: I9718df87d0afeb08729920363d362d5f891061ed
Reviewed-on: https://chromium-review.googlesource.com/1048114
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
c8fbff3d
|
2018-06-04T10:30:48
|
|
Vulkan: Update uniforms bugfix and enable dEQP tests with it
If a uniform was already marked as dirty, and the call to
setMatrixUniform wasn't updating the data, the flag was flipped
to false, causing the descriptor set never to be initialized.
This enables these tests:
dEQP-GLES2.functional.shaders.conversions.scalar_to_matrix.*
Bug: angleproject:2583
Change-Id: I0bcb95cc66951e0ed347af5d874178c403a1c08a
Reviewed-on: https://chromium-review.googlesource.com/1085228
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
48cdc2e8
|
2018-05-31T09:58:34
|
|
Vulkan: Implement setUniform for matrices correctly
This fixes all these tests:
dEQP-GLES2.functional.shaders.functions.datatypes.float_mat*
dEQP-GLES2.functional.shaders.functions.datatypes.mat*
dEQP-GLES2.functional.shaders.linkage.varying_type_mat*
dEQP-GLES2.functional.shaders.matrix.*
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.mat2_*
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.mat3_*
dEQP-GLES2.functional.shaders.conversions.matrix_to_matrix.*
dEQP-GLES2.functional.shaders.conversions.matrix_combine.*
dEQP-GLES2.functional.shaders.random.scalar_conversion*
Bug:angleproject:2581
Bug:angleproject:2583
Bug:angleproject:2584
Bug:angleproject:2588
Change-Id: Ib8c03397f0229432292c51f4a6332f954fc8fa12
Reviewed-on: https://chromium-review.googlesource.com/1080392
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
2f3f4141
|
2018-05-30T08:27:19
|
|
Vulkan: Fix texture completeness issues
The fix is to skip updates that are queued that are not valid for the
current image description. We keep these around in case they are used
in a later usage of the same texture but we issue a warning telling the
user that memory will be used indefinitely until they use that data.
Bug: angleproject:2596
Change-Id: I8c20fffbd473ae8e2e9d2123a49b675b824a9bf6
Reviewed-on: https://chromium-review.googlesource.com/1078913
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
6b600645
|
2018-05-31T14:53:31
|
|
D3D11: Micro-optimize StateManager11::updateState.
This inlines several accessors.
Bug: angleproject:2574
Change-Id: I61d223dd2a8f08e5331ccefde02e6ce55f5a607d
Reviewed-on: https://chromium-review.googlesource.com/1067118
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4166f014
|
2018-05-31T14:53:30
|
|
D3D11: Optimize Renderer11::drawArrays.
Uses inlining and more efficient computation re-use to streamline this
function.
Bug: angleproject:2575
Change-Id: Ib13e32811f56ec9a010ed66f298d4235e5c6807d
Reviewed-on: https://chromium-review.googlesource.com/1067120
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
bf7b95db
|
2018-05-01T16:48:21
|
|
Create a default framebuffer per surface/context pair on MakeCurrent.
Sharing a gl::Framebuffer object between multiple contexts causes problems if
contexts are not virtualized because the native framebuffer objects are not
shared between these contexts. The FramebufferImpl created should be the glue
that binds a specific context to a specific surface.
Update the SurfaceImpl implementations to re-create the framebuffer
object before passing it to FramebufferGL. No backing resources will be
re-created.
BUG=angleproject:2464
Change-Id: Id0b13a221c22b71517b25cb5b1ef2392ad2ecdd6
Reviewed-on: https://chromium-review.googlesource.com/1039985
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0c4e08e9
|
2018-05-08T11:00:36
|
|
Use ShaderMap in Caps - Part II
This patch is the last one in the series of putting resource limits
on each shader stage into ShaderMap. With this patch, all such values
are organized in the corresponding ShaderMap.
This patch also cleans up all the related code by using this new
type of data structure.
BUG=angleproject:2169
Change-Id: I440643fe44ab63acf7da0a1611643beed1ba66d1
Reviewed-on: https://chromium-review.googlesource.com/1077748
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
6a455206
|
2018-05-31T14:20:36
|
|
Use IsCubeMapFaceTarget on texture targets
This patch introduces IsCubeMapFaceTarget() to determine if a
teture target belongs to cube map.
BUG=angleproject:2169
Change-Id: I3968ee267887665835f3eb3eda281c054e5d4375
Reviewed-on: https://chromium-review.googlesource.com/1080450
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
|
|
46bcea50
|
2018-05-31T09:48:36
|
|
D3D,Vulkan: Prep work to share useful functions from D3D
- Refactor and move some functions used by D3D that are not really
renderer specific to be used by the Vulkan implementation to support
setting matx uniforms.
Bug: angleproject:2581
Change-Id: Ib37ddf4fc62bb8ecb3629893a24969e1f515795b
Reviewed-on: https://chromium-review.googlesource.com/1079845
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
1da46774
|
2018-05-14T14:30:30
|
|
Add support for EGL_ANDROID_presentation_time.
BUG=angleproject:2506
Change-Id: I46b3c6ac7f259eabfdd8ea5799da6ef563ff81ee
Reviewed-on: https://chromium-review.googlesource.com/1057997
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
78ee3423
|
2018-05-30T11:34:19
|
|
Vulkan: varyings of type Matrix/Struct can't use components.
- This is not yet fixing all issues for these tests but it does
get us further in the execution of the test case.
Bug: angleproject:2581
Change-Id: I96510e013ccc87fd21bce6823e1278ed9ff60739
Reviewed-on: https://chromium-review.googlesource.com/1079267
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
2274b652
|
2018-05-31T10:56:08
|
|
StateManager11: Cache impl objects.
Also requires putting the Framebuffer ID in the shared state object.
Bug: angleproject:2575
Change-Id: I68e3af839a85798e01050560a67624a165d3ed2c
Reviewed-on: https://chromium-review.googlesource.com/1067119
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
05cd6dfc
|
2018-05-24T15:51:29
|
|
Vulkan: generateMipmaps with vkCmdBlitImage when possible
Bug: angleproject:2502
Change-Id: Ib32a128a453749c59d751e996017a8a6e2a9972e
Reviewed-on: https://chromium-review.googlesource.com/1072550
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
86ce210a
|
2018-05-22T11:54:42
|
|
Vulkan: Clean up onResourceChanged.
Merge this with the internal method to generate a new command graph
node. Call onResourceChanged internally in beginWriteResource.
Bug: angleproject:2539
Change-Id: Ie33f886c5df7e15ff0b5d690a63fa664b1e964d4
Reviewed-on: https://chromium-review.googlesource.com/1069292
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
c57ee259
|
2018-05-30T19:53:48
|
|
Vulkan: Clean up object releasing APIs.
This cleans up the confusing releaseResource/releaseObject pair in the
RendererVk class. It also makes getQueueSerial private in ResourceVk
but keeps a public isResourceInUse API for external use.
Bug: angleproject:2539
Change-Id: I6b4f24db16e36130a85ef03fc2c3b26d8d9e1fba
Reviewed-on: https://chromium-review.googlesource.com/1069291
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
d014c9e6
|
2018-05-18T15:15:59
|
|
Vulkan: Mark some Resource APIs are protected.
This clarifies what is supposed to be called from outside the class to
what should be called internally. The read/write dependency management
is accessible publically. The command buffer access however is private
and should be only used within the class.
Bug: angleproject:2539
Change-Id: Ic25b589d4009de62633d13546be596ecafd0b175
Reviewed-on: https://chromium-review.googlesource.com/1066555
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|