|
0c0dc345
|
2017-03-24T14:18:51
|
|
Vulkan: Defer command buffer submission.
This packs more rendering commands into fewer command buffers.
Instead of using a single command buffer per-command, create a
buffer and record commands into it until we need to present the
frame. More sophisticated management will be necessary in the future
when we can do other types of copied and read-back from image data.
This also reduces the number of Fences we use for checking if the
device is finished with resources. Instead of creating a Fence
per-command-buffer, it creates one per-swap.
BUG=angleproject:1898
Change-Id: I9c6033bc04289fd8f936c0df914afc51fc434b29
Reviewed-on: https://chromium-review.googlesource.com/445800
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f651c773
|
2017-02-21T15:03:51
|
|
Vulkan: Enable command queueing.
This adds the ability for rendering to happen asynchronously. If
objects in-use are deleted as they are being accessed, ownership
is transferred to the Renderer and they are deleted when not in
use. We determine they're ready for delete using a Fence object.
BUG=angleproject:1898
Change-Id: I4fcfd90ad0665d127bf01a10214a604f3407d9e4
Reviewed-on: https://chromium-review.googlesource.com/428353
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4c26fc2f
|
2017-02-24T11:04:10
|
|
Vulkan: Initial command queueing implementation.
This removes the sychronous operation of the command buffers. It also
introduces a serial type for assigning ids to queue operations. This
gives us the ability to manage lifetimes of resources and track when
they're no longer in use on the device.
BUG=angleproject:1898
Change-Id: I91a4836d3098f1d7bd06cd389d88601a3a4826ab
Reviewed-on: https://chromium-review.googlesource.com/428352
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
5deea723
|
2017-02-16T10:44:46
|
|
Vulkan: Don't store device handles in wrapped objects.
BUG=angleproject:1684
Change-Id: I0ec11ec79f2e9893600a8ffd8cdbfc6040fb6f70
Reviewed-on: https://chromium-review.googlesource.com/426402
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
294a5608
|
2017-02-15T10:41:32
|
|
Vulkan: Make CommandPool a wrapped type.
This faciliatates an upcoming change to treat all handle types
uniformly with respect to releasing.
BUG=angleproject:1684
Change-Id: I632262a57b3a447cf4999c28ab359fe931549576
Reviewed-on: https://chromium-review.googlesource.com/442674
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
70ee0f61
|
2017-02-06T16:04:20
|
|
Add destroy handler to SurfaceImpl.
This allows the Vulkan back-end to avoid storing a reference to
the VkDevice. This will extend to all the Vulkan object handle wrapper
types.
BUG=angleproject:1684
Change-Id: I3a98e94bc171ca27f225ce57996c3fdf9581e6e1
Reviewed-on: https://chromium-review.googlesource.com/424229
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
df68a6f0
|
2017-01-13T17:29:53
|
|
Vulkan: Implement a simple graphics pipeline.
BUG=angleproject:1580
Change-Id: Iceaed896db22dc9eefa3f1bee7d6142fcfb20368
Reviewed-on: https://chromium-review.googlesource.com/412267
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
8ecf7f9b
|
2017-01-13T17:29:52
|
|
Vulkan: Implement shader compilation.
This hooks up the Vulkan GLSL, decorated with locations, to glslang,
and then pipes the SPIRV back to the Program implementation for later
use when making pipelines to run draw calls.
The program compilation tests work now, but don't really test
anything other than not generating Vulkan validation layer errors
during compilation and shader object generation.
BUG=angleproject:1576
Change-Id: I625e42219f4b4d1433dd3109b94e1a2f666ba4bd
Reviewed-on: https://chromium-review.googlesource.com/408519
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b8353b01
|
2017-01-25T12:57:21
|
|
Vulkan: Simple buffer creation.
This is necessary to initialize vertex arrays.
BUG=angleproject:1579
Change-Id: Ic5a232d5cdfaa75b41241901de842e62ff3b173f
Reviewed-on: https://chromium-review.googlesource.com/406645
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
ab9f9c31
|
2017-01-17T17:47:34
|
|
Vulkan: Configure a simple RenderPass for drawing.
BUG=angleproject:1319
Change-Id: I0668527a338a2f10ca74b43f2a8bd82534e732c0
Reviewed-on: https://chromium-review.googlesource.com/370805
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
7b57b9d7
|
2017-01-13T09:33:38
|
|
Vulkan: Implement basic Clear and ReadPixels.
This enables the simple operations clear test on Vulkan. The current
implementation is very synchronous - it will block and finish the
current command buffer if there is any possibility of a race.
BUG=angleproject:1319
Change-Id: If01fe9a19ed6f539639a38786193d3626164cada
Reviewed-on: https://chromium-review.googlesource.com/367754
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
4d0bf557
|
2016-12-28T15:45:24
|
|
Vulkan: Initialize the draw surface.
This also involves initializing the swap chain and queue.
BUG=angleproject:1319
Change-Id: Ia3a2141905f17b2cdddddab07336f33a737d4fc1
Reviewed-on: https://chromium-review.googlesource.com/367752
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0448ec84
|
2016-12-23T13:41:47
|
|
Vulkan: Enable validation layers on request.
Also adds the build files for the Vulkan layers.
The layers are enabled by default for the tests.
BUG=angleproject:1319
Change-Id: I0b442b36312a1299a932922e1c4e39f00801de49
Reviewed-on: https://chromium-review.googlesource.com/367751
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
327ba857
|
2016-11-30T12:38:28
|
|
Vulkan: Hook up loader code.
This integrates the build files for the loader SDK, and tests the
compilation by calling InitInstance. There's no current way to
test the runtime behaviour since there's no way for the tests to
initialize the Vulkan back-end, that will come in the next CL.
BUG=angleproject:1319
Change-Id: Ia8bf96ca068eaf40744c9753b59ffaaa5ada8a73
Reviewed-on: https://chromium-review.googlesource.com/367519
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|