- 12 Dec, 2018 6 commits
-
-
Chris Forbes authored
Change-Id: I5feee7fb928a49762faa8154804fc4b0e86f60b8 Reviewed-on: https://swiftshader-review.googlesource.com/c/23169Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
-
Alexis Hetu authored
Piped all the information from the vertex buffers and the pipeline to the renderer to perform a draw. In order for the renderer and the context to have proper lifetimes, they both reside in the Queue object for now. Bug b/118619338 Change-Id: Ifa03acd13ceb065a856b50f2cffadd4ee6b9a163 Reviewed-on: https://swiftshader-review.googlesource.com/c/23111Reviewed-by:
Corentin Wallez <cwallez@google.com> Reviewed-by:
Chris Forbes <chrisforbes@google.com> Tested-by:
Alexis Hétu <sugoi@google.com>
-
Alexis Hetu authored
Implemented vkCmdBeginRenderPass and vkCmdEndRenderPass. The RenderPass object begin and end are noop for now, but the framebuffer gets cleared within vkCmdBeginRenderPass. Bug b/119620965 b/118619338 Change-Id: I8e1f2932d9d52b3dcb5c10d4e60cba83b28bb95d Reviewed-on: https://swiftshader-review.googlesource.com/c/23108Reviewed-by:
Corentin Wallez <cwallez@google.com> Tested-by:
Alexis Hétu <sugoi@google.com>
-
Alexis Hetu authored
Adjusted a few checks in the GraphicsPipeline constructor, specifically stages' specialization info and sample mask, which can either be null or default. Also fixed destroying Pipeline objects, making sure there's no confusion between GraphicsPipeline and ComputePipeline's destroy() methods inherited from their 2 base classes (Pipeline::destroy() and ObjectBase::destroy()). Bug b/118386749 Change-Id: I78be9f0bbb735518e07d52f7372dbf08b9834abf Reviewed-on: https://swiftshader-review.googlesource.com/c/23110Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Chris Forbes <chrisforbes@google.com>
-
Alexis Hetu authored
Use the blitter to implement Image::clear. The image can be easily packed into a sw::Surface. For now, the surface is a temporary, but it may become a member in the future if it makes sense. Bug b/119620767 Change-Id: I122a321509dc8cc5b624ddd776bd9059eee0cbc4 Reviewed-on: https://swiftshader-review.googlesource.com/c/23109Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Chris Forbes <chrisforbes@google.com>
-
Alexis Hetu authored
Added VkImageView object. Added "clear" function to illustrate the link between VkFramebuffer attachments, VkImageView and VkImage, along with the minimal set of class members to allows the function arguments to be used properly. Bug b/119620767 b/119621736 Change-Id: I0e7e6017979960bacbdf888d632c83edda3483cf Reviewed-on: https://swiftshader-review.googlesource.com/c/22668Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Chris Forbes <chrisforbes@google.com>
-
- 11 Dec, 2018 5 commits
-
-
Alexis Hetu authored
Implemented Image to Image copy, Image to Buffer copy and Buffer to Image copy commands which are required in order to run the dEQP-VK.api.copy_and_blit.core.image_to_image.* tests. Passes over 99.7% of the 10907 tests in: dEQP-VK.api.copy_and_blit.core.image_to_image.* Bug b/118619338 b/119620767 Change-Id: Id4d3aa5186bed84d0925e4424399716efbd241ee Reviewed-on: https://swiftshader-review.googlesource.com/c/23071Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Chris Forbes <chrisforbes@google.com> Reviewed-by:
Corentin Wallez <cwallez@google.com>
-
Alexis Hetu authored
A call to vkBeginCommandBuffer implicitly resets the command buffer. Bug b/118619338 Change-Id: I020a2d15915cbb309dbcd012b2dbbf34ca2f63c6 Reviewed-on: https://swiftshader-review.googlesource.com/c/23148Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Chris Forbes <chrisforbes@google.com> Reviewed-by:
Corentin Wallez <cwallez@google.com>
-
Alexis Hetu authored
Image objects now have the ability to copy their content to another image object. They can also copy their content to or from Buffer objects. Bug b\119620767 Change-Id: I047e9ecdcc11e264589de1d9461ef448f22a4d9e Reviewed-on: https://swiftshader-review.googlesource.com/c/23070Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Chris Forbes <chrisforbes@google.com>
-
Chris Forbes authored
Includes only the include/spirv/unified1 subtree. Based on git://github.com/KhronosGroup/spirv-tools revision 17da9f8231f78cf519b4958c2229463a63ead9e2 Bug: b/120799499 Change-Id: Ifb790bf95035d7feb2d54d07e1475013dfd298b1 Reviewed-on: https://swiftshader-review.googlesource.com/c/23048Tested-by:
Chris Forbes <chrisforbes@google.com> Reviewed-by:
Corentin Wallez <cwallez@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
Ideally we'd use the [[fallthrough]] attribute to silence this, but that isn't supported until C++17 and we're sticking with C++11 for now. Bug b/120382288 Change-Id: I98f28e42505ed496b0b35c29a7dc03fca18cf4ff Reviewed-on: https://swiftshader-review.googlesource.com/c/23128Reviewed-by:
Greg Hartman <ghartman@google.com> Reviewed-by:
Chris Forbes <chrisforbes@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
- 07 Dec, 2018 3 commits
-
-
Alexis Hetu authored
Buffer now has the ability to copy its content to or from memory. Bug b/118383648 Change-Id: Ic01bf049fe054559299830ca750263c2277e4d86 Reviewed-on: https://swiftshader-review.googlesource.com/c/23069Reviewed-by:
Chris Forbes <chrisforbes@google.com> Tested-by:
Alexis Hétu <sugoi@google.com>
-
Alexis Hetu authored
For the purpose of running dEQP tests, for now, fences can be implemented as noop. Once more complex rendering tests exercise this, we'll be able to implement and test fences. Bug b/117835459 Change-Id: I2b54be816c83f7a626108f61bd14eb9c969a2b0f Reviewed-on: https://swiftshader-review.googlesource.com/c/23068Reviewed-by:
Chris Forbes <chrisforbes@google.com> Tested-by:
Alexis Hétu <sugoi@google.com>
-
Alexis Hetu authored
Because of existing synchronization mechanisms in SwiftShader, pipeline barriers can be noop for now. If we do remove those synchronization mechanisms, there's also a simple way of implementing pipeline barriers, which is commented on here. Bug b/118619338 Change-Id: If82d275c46f234e5549018115c9f19f21e2c09b2 Reviewed-on: https://swiftshader-review.googlesource.com/c/22708Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Chris Forbes <chrisforbes@google.com>
-
- 06 Dec, 2018 5 commits
-
-
Chris Forbes authored
One part of this might change -- master contains some uses of std::make_unique which Alexis might get rid of. Change-Id: I40ae17f4e88920c4d60b79e1d4b117a7800fcd82 Reviewed-on: https://swiftshader-review.googlesource.com/c/23028Reviewed-by:
Alexis Hétu <sugoi@google.com> Tested-by:
Chris Forbes <chrisforbes@google.com>
-
Alexis Hetu authored
MacOS' linker dislikes local static variables that are used in two separate libraries. Removing them from the header files fixes all the warnings. Bug b/chromium:907088 Change-Id: I7b8ed44bf9a3180489a7407980740fd3f3863046 Reviewed-on: https://swiftshader-review.googlesource.com/c/22889Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Alexis Hetu authored
This cl adds the code needed to record and submit the minimal subset of commands required to run a simple triangle example. The commands themselves are still unimplemented. Bug b/116336664 Change-Id: Id0109980225a64a2bb3599a89a5495091926c635 Reviewed-on: https://swiftshader-review.googlesource.com/c/22168Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Corentin Wallez <cwallez@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Alexis Hetu authored
Added a few class members and adjusted the VkPipeline constructor to extract basic parameters which will be used for rendering, like: - Basic sw::Context parameters - Scissor - Viewport - BlendConstants Note: sw::Context should eventually be replaced by VkPipeline and be used directly by sw::Renderer once all existing OpenGL ES 3.0 has been converted from VkPipeline. (Chris: rebase + build system fixes for CMake path) Change-Id: I7e7a9ff3c768da8e8c1e9461e140af4986429602 Reviewed-on: https://swiftshader-review.googlesource.com/c/22613Tested-by:Alexis Hétu <sugoi@google.com> Reviewed-by:
Corentin Wallez <cwallez@google.com>
-
Chris Forbes authored
Change-Id: I45349cd6530814efa0c466beb0df7d53b4e17948 Reviewed-on: https://swiftshader-review.googlesource.com/c/23008Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Chris Forbes <chrisforbes@google.com>
-
- 30 Nov, 2018 3 commits
-
-
Kevin Schoedel authored
Bug b/114402930 Change-Id: I228222003e5f015e4966eacc32094a48a7054d0f Reviewed-on: https://swiftshader-review.googlesource.com/c/22988Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Kevin Schoedel <kpschoedel@google.com>
-
Alexis Hetu authored
Added functionality so that the CommandPool can allocate and free command buffer objects. Bug b/119827933 Change-Id: I190ba3cd7738f2b5e37b196a0abba6d07cfae173 Reviewed-on: https://swiftshader-review.googlesource.com/c/22748Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Erwin Jansen authored
We basically replace all references to CMAKE_SOURCE_DIR and CMAKE_BINARY_DIR with CMAKE_CURRENT_SOURCE_DIR and CMAKE_CURRENT_BINARY_DIR. This enables other cmake projects to take a direct dependency on this project. Test: cmake . still shows error for in source builds. Test: mkdir build && cd build && cmake .. -G Ninja && ninja succeeds Change-Id: Ibb8366f8e7fd3b3152634c71324a5182d269e647 Reviewed-on: https://swiftshader-review.googlesource.com/c/22692Reviewed-by:
Lingfeng Yang <lfy@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Erwin Jansen <jansene@google.com> Tested-by:
Erwin Jansen <jansene@google.com>
-
- 29 Nov, 2018 1 commit
-
-
Nicolas Capens authored
The Subzero JIT only supports constants in the second operand of arithmetic operations, not the first. It assumes constant folding already took place (true for NaCl which takes LLVM IR as input). Reactor has constant folding as part of the static C++ compilation, but the Optimizer may substitute the first operand for a constant (i.e. constant propagation). Addressing it in the Optimizer by not performing the substitution is not trivial because we'd have to check each use. And it would cost run-time performance. Ideally we'd have a pass for legalization/optimization which performs constant folding. For now, avoid hitting 'unreachable' code in Subzero by multiplying constants at the Reactor level. Fixes regression caused by https://swiftshader-review.googlesource.com/22910 Bug chromium:904265 Bug swiftshader:14 Change-Id: Ifdc72ac997ad5d71c1f7006259f54f3d715cb613 Reviewed-on: https://swiftshader-review.googlesource.com/c/22930Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
- 28 Nov, 2018 2 commits
-
-
Nicolas Capens authored
GLSL textureSize() calls that use a sampler that is not a uniform, should not use the index of the register as the texture unit index. Instead the index is the value stored in the register itself. Bug chromium:904265 Change-Id: Iee1058e789daae15248ae5ffa940a0155dca61b5 Reviewed-on: https://swiftshader-review.googlesource.com/c/22910Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
-
Alexis Hetu authored
- Replaced sw::Viewport with VkViewport Bug b/118386749 Change-Id: I2446883ba9e5623753322fc417386394a3fe370c Reviewed-on: https://swiftshader-review.googlesource.com/c/22909Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
- 27 Nov, 2018 1 commit
-
-
Alexis Hetu authored
This cl exposes the bare minimum in terms of format requirements in order to support Vulkan 1.1. Fixes all failures in: dEQP-VK.api.info.format_properties.* Bug b/117974925 Change-Id: Ia84b1b13430faffeb840e118b09b9f3e352c8cc9 Reviewed-on: https://swiftshader-review.googlesource.com/c/22888Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
- 26 Nov, 2018 6 commits
-
-
Alexis Hetu authored
- Replaced BlendFactor with VkBlendFactor - Replaced BlendOperation with VkBlendOp Bug b/118386749 Change-Id: I25031c044af05b1922d031db9e82c52bb785def5 Reviewed-on: https://swiftshader-review.googlesource.com/c/22850Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
Implements support for VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 and other structure types used during Vulkan 1.1 device creation. Bug b/117974925 Change-Id: Ic23067f145322a814ccda7dd44a087d7a4020e3d Reviewed-on: https://swiftshader-review.googlesource.com/c/22689Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
-
Nicolas Capens authored
vkGetInstanceProcAddr must return NULL when the instance parameter is NULL, except for a few global functions. vkGetDeviceProcAddr must return NULL for any non-device-level functions. Fixes dEQP-VK.api.version_check.entry_points Bug b/116336664 Change-Id: I446edb0b8c4b94938e0ab77913c8ad391d490f4f Reviewed-on: https://swiftshader-review.googlesource.com/c/22688Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
-
Nicolas Capens authored
<memory.h> isn't actually an official standard C header. memcpy() is defined in <string.h> / <cstring>. Change-Id: I578e3a8ea741934e594049e359b906665de80134 Reviewed-on: https://swiftshader-review.googlesource.com/c/22649Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
-
Nicolas Capens authored
This adds the Pastel driver ID. https://github.com/KhronosGroup/Vulkan-Docs revision 256a1ef66182b2d458148f2fdea183557ea3f507 Bug b/116336664 Change-Id: I3d227eaff99b6bd8402b0808cfad7501438e9e65 Reviewed-on: https://swiftshader-review.googlesource.com/c/22648Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
-
Nicolas Capens authored
SwiftShader can now be tested directly with dEQP, without using the system's Vulkan loader or layers. Bug b/116336664 Change-Id: I08816b5fb893d048c3dfe325ff54f44c646b250f Reviewed-on: https://swiftshader-review.googlesource.com/c/22868Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
-
- 23 Nov, 2018 2 commits
-
-
Nicolas Capens authored
Unaligned accesses are undefined behavior, but they're common in our ELF binary patching code for variable length instruction sets (namely x86). We can use memcpy() and rely on target-specific compiler optimizations to make it efficient. Utility functions and classes were added to aid readability. Bug b/119823623 Change-Id: I8a82672a0d18d1e1783f580eb629f8cc09a009cd Reviewed-on: https://swiftshader-review.googlesource.com/c/22828Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
-
Nicolas Capens authored
Accessing members of a null pointer is undefined behavior, even when only used to obtain the address again. So use a non-zero value as the base pointer address instead. 32 was chosen to provide sufficient alignment guarantees. Bug b/119823623 Change-Id: Ia6d24dd6c2740261948860c45eb35cc489a3a827 Reviewed-on: https://swiftshader-review.googlesource.com/c/22788Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
-
- 22 Nov, 2018 1 commit
-
-
Alexis Hetu authored
Replaced LogicalOperation with VkLogicOp. Bug b/118386749 Change-Id: I9776dd112e2a742cd73fba241e0659813cc974e7 Reviewed-on: https://swiftshader-review.googlesource.com/c/22849Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
- 21 Nov, 2018 5 commits
-
-
Alexis Hetu authored
While implementing Pipeline Cache is optional, we still need a placeholder object in order to return have a valid handle for this object. b/118386749 Change-Id: I18abb4196fbc99d3f639c1ba14ceb570ac11b365 Reviewed-on: https://swiftshader-review.googlesource.com/c/22729Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Alexis Hétu <sugoi@google.com>
-
Alexis Hetu authored
Basic shell class for CommandPool Bug b/119827933 Change-Id: Ibbc8ac641b168a15974fd4ff1803b5aff51f48a3 Reviewed-on: https://swiftshader-review.googlesource.com/c/22730Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Alexis Hetu authored
The Vulkan sampler is simply a state, similar to the existing sw::Sampler::State(), which will eventually be used by the texture sampling code. Bug b/119823006 Change-Id: Ib2f09683f82dbf5b5aacde1555ee850c76cda9e2 Reviewed-on: https://swiftshader-review.googlesource.com/c/22728Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Alexis Hetu authored
- Replaced DepthCompareMode, StencilCompareMode and AlphaCompareMode by VkCompareOp. - Replaced StencilOperation by VkStencilOp. Bug b/118386749 Change-Id: I7dec0cff119012345865eb164599f086edf2c88a Reviewed-on: https://swiftshader-review.googlesource.com/c/22768Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Alexis Hetu authored
Surface::bytes() now supports all non-extension vulkan image formats. Compressed formats are partially supported, the same way they were for the OpenGL ES 3.0 implementation. Bug b/118429780 Change-Id: Ica7f7d7184e9e00eeedfc76bc6b5c19e07aa3caf Reviewed-on: https://swiftshader-review.googlesource.com/c/22568Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Alexis Hétu <sugoi@google.com>
-