- 21 Jan, 2021 3 commits
-
-
Nicolas Capens authored
When enabling C++17, LLVM uses std::shared_mutex instead of its own implementation. On macOS it requires version 10.12 (Sierra), while Chrome must still support 10.11. However, we don't need LLVM as Reactor backend, except for ARM64, but Mac devices with such CPU have a more recent OS version. llvm-10.0/llvm/include/llvm/Support/RWMutex.h:100:8: error: 'shared_mutex' is unavailable: introduced in macOS 10.12 Bug: b/174843857 Change-Id: Ie24095aa17d22072cfb9d655b87252cbea5209d0 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/52030Reviewed-by:
Antonio Maiorano <amaiorano@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
The legacy PixelProcessor and VertexProcessor classes for OpenGL ES contain member fields with types like float4, which require 16-byte alignment. This isn't guaranteed by the compiler until C++17. On macOS, this also requires OS support, which was added in version 10.14 (Mojave), while Chrome still has to support macOS 10.11. src/Renderer/PixelProcessor.cpp:75:18: error: aligned deallocation function of type 'void (void *, std::align_val_t) noexcept' is only available on macOS 10.14 or newer Overriding new and delete for these classes allows us to use our custom allocator which guarantees alignment. Note that the Renderer class already used the same approach. Also note that this hasn't caused issues before because these fields aren't actually accessed by instructions which demand alignment. However, it's still good for performance and to align with the intent (pun intended). Bug: b/174843857 Change-Id: Ia5de5f6fe67a4f54805cdde3fed565c30b9318a8 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/52029Reviewed-by:
Antonio Maiorano <amaiorano@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
Updates build files to specify using the C++17 standard. Add a usage of the C++17 exclusive [[maybe_unused]] attribute as a test. Also unconditionally use <filesystem> in Reactor unit tests. C++17 deprecates things like std::unary_function<>, which were present in Subzero's LLVM headers, but the functionality was unused so it has been deleted. Bug: b/174843857 Bug: b/155971541 Change-Id: Ib167726535399b0b12751a3d93feaa9db762cd5d Signed-off-by:
Nicolas Capens <capn@google.com> Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51948Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Antonio Maiorano <amaiorano@google.com> Kokoro-Result: kokoro <noreply+kokoro@google.com>
-
- 20 Jan, 2021 4 commits
-
-
Sean Risser authored
This extension allows users to pass depthstencil attachments that vkCmdResolveImage will resolve to in addition to its other resolve operations. Only the mandatory resolve modes "VK_RESOLVE_MODE_SAMPLE_ZERO_BIT" and "VK_RESOLVE_MODE_NONE" are supported. It's trivial to support both independent resolve modes since we must resolve depth and stencil attachments separately due to how depth and stencil attachments are stored internally. Change-Id: I0f8ff7cddca5f5acbac1d991b11f0a4447956784 Bug: b/167558951 Test: dEQP-VK.renderpass2.depth_stencil_resolve.* Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/48808Tested-by:
Sean Risser <srisser@google.com> Commit-Queue: Sean Risser <srisser@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Kokoro-Result: kokoro <noreply+kokoro@google.com>
-
Antonio Maiorano authored
This will allow us to reuse this code across unit tests and benchmarks. Bug: b/176981107 Change-Id: Ie5ea3708cb959dbd0189658b42f01bad998ae94a Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51869Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Antonio Maiorano <amaiorano@google.com> Commit-Queue: Antonio Maiorano <amaiorano@google.com> Kokoro-Result: kokoro <noreply+kokoro@google.com>
-
Antonio Maiorano authored
* Move utility classes into separate hpp/cpp files * Move utility functions into Util.hpp/cpp Bug: b/176981107 Change-Id: If9046f12080f1eb09378586673d871867a836a1b Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51868 Kokoro-Result: kokoro <noreply+kokoro@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Antonio Maiorano <amaiorano@google.com> Commit-Queue: Antonio Maiorano <amaiorano@google.com>
-
Nicolas Capens authored
The SPIR-V 'EarlyFragmentTests' execution mode requires performing additional per-fragment tests prior to fragment shader execution, even if depth values computed by the shader would otherwise affect them: https://www.khronos.org/registry/vulkan/specs/1.1/html/vkspec.html#shaders-fragment-earlytest Bug: b/140302392 Change-Id: If5d836a35ee9cfc758243b34fad1222d1b0f1085 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51888 Presubmit-Ready: Nicolas Capens <nicolascapens@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com> Kokoro-Result: kokoro <noreply+kokoro@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
-
- 19 Jan, 2021 1 commit
-
-
David 'Digit' Turner authored
This CL adds a Posix-based implementation for the VK_KHR_external_memory_fd Vulkan extension, using the SysV shm_open() / shm_unlink() API to create the shared memory region. The Linux backend still uses memfd-based regions which are easier to create, and because Android does not provide shm_open() intentionally [1]. [1] https://android.googlesource.com/platform/ndk/+/4e159d95ebf23b5f72bb707b0cb1518ef96b3d03/docs/system/libc/SYSV-IPC.TXT Bug: b/140419396 Tests: dEQP-VK.* Change-Id: Ibbb23c3af59e81f76e41a0e71281f6d1a8b07c01 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/41408Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Yilong Li <liyl@google.com> Commit-Queue: Nicolas Capens <nicolascapens@google.com> Kokoro-Result: kokoro <noreply+kokoro@google.com>
-
- 18 Jan, 2021 2 commits
-
-
Antonio Maiorano authored
* Identify members that are owning handles with a comment * Reorder these members in creation order * Reorder explicit destruction of these members in reverse order in destructors * Replace raw pointers with unique_ptrs, but call reset explicitly in destructors to maintain reverse destruction order * Define VULKAN_HPP_NO_NODISCARD_WARNINGS to future-proof for C++17 and up * Remove vestigial vk::UniqueShaderModule and vk::UniquePipeline usage Bug: b/176981107 Change-Id: Ia090be98c2f8ed47701dfc92388547985e5c57b4 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51829Tested-by:
Antonio Maiorano <amaiorano@google.com> Kokoro-Result: kokoro <noreply+kokoro@google.com> Commit-Queue: Antonio Maiorano <amaiorano@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
SwiftShader Regression Bot authored
Reactor backend: Subzero Change-Id: I0e14ea808524eea31d4c12aa501cd2e98e445521 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51768Reviewed-by:
Alexis Hétu <sugoi@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com> Kokoro-Result: kokoro <noreply+kokoro@google.com>
-
- 15 Jan, 2021 2 commits
-
-
Alexis Hetu authored
It is legal for a shader to not declare BuiltInPosition. This cl adds logic to use 0 for all position components when the position builtin is not present and then keeps executing the rest of the shader normally. Bug: b/176161380 Change-Id: I1b4637b813d3d30958e2db655d299603d625c20a Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51808 Commit-Queue: Alexis Hétu <sugoi@google.com> Tested-by:
Alexis Hétu <sugoi@google.com> Presubmit-Ready: Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Antonio Maiorano authored
This filename is output in the emitted asm files when ENABLE_RR_EMIT_ASM_FILE is enabled, but on Windows, it was always "<unknown>". Fixed this by splitting out the name by backslash as well. Bug: b/174358505 Change-Id: Ie5386fa50fd8a6aa43a48bc6fa5fcf987936aacf Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51750 Kokoro-Result: kokoro <noreply+kokoro@google.com> Tested-by:
Antonio Maiorano <amaiorano@google.com> Commit-Queue: Antonio Maiorano <amaiorano@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
- 14 Jan, 2021 2 commits
-
-
Antonio Maiorano authored
Found these leaks using AppVerifier on Windows. Bug: b/176981107 Change-Id: I89cbfc02e6adf0ea2a54cf80501fbbb3d0867964 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51748Reviewed-by:
Alexis Hétu <sugoi@google.com> Tested-by:
Antonio Maiorano <amaiorano@google.com> Commit-Queue: Antonio Maiorano <amaiorano@google.com>
-
SwiftShader Regression Bot authored
Reactor backend: LLVM Change-Id: I4590357d7c1eac21c570cbcbdeffa0f4de6d70cd Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51208Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
-
- 13 Jan, 2021 5 commits
-
-
Antonio Maiorano authored
This change was originally started by capn@, which added texture sampling to the Triangle benchmarks. I finished up this change with the following changes and fixes: * Implement a correct fill texture to white using copyBufferToImage. * Add Buffer class to wrap vk::Buffer and vk::DeviceMemory. * Add support for using a VK_EXT_headless_surface Window, which is the default on non-Windows platforms for now. On Windows, can be forced to use this by defining USE_HEADLESS_SURFACE = 1. * Fix out of bounds access because renderPassBeginInfo.clearValueCount was set to 2 instead of 1. * Fix illegal access to destructed ArrayRef in call to commandBuffers[i].bindVertexBuffers. * Make it build and run on Linux (fix compilation errors and use aforementioned headless surface mode) Bug: b/176981107 Change-Id: If82496315e77a062c024766863a1ca01e6b424f9 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51668 Kokoro-Result: Antonio Maiorano <amaiorano@google.com> Tested-by:
Antonio Maiorano <amaiorano@google.com> Commit-Queue: Antonio Maiorano <amaiorano@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Antonio Maiorano authored
This implements the extension defined here: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_EXT_headless_surface.html This extension is useful for tests/benchmarks as it provides a way to create a platform-agnostic Surface with Swapchain, etc., instead of having to create an non-visible framebuffer. Bug: b/176981107 Change-Id: Iad1e55ed7a4e32cebf7577d9d88a9aed4b6f7a20 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51589Tested-by:
Antonio Maiorano <amaiorano@google.com> Kokoro-Result: kokoro <noreply+kokoro@google.com> Commit-Queue: Antonio Maiorano <amaiorano@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Jason Macnak authored
Eventually, this should probably be fetched from the gralloc buffer metadata using Gralloc4::Get(android::gralloc4::MetadataType_Dataspace) Bug: b/147316305 Bug: b/175132241 Test: launch Cuttlefish w/ SwANGLE Test: cts -m CtsGraphicsTestCases -t MediaVulkanGpuTest#testMediaImportAndRendering Change-Id: Ie991380d2d27e7a540ffe37cfc81109618f2d507 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51688 Presubmit-Ready: Jason Macnak <natsu@google.com> Reviewed-by:Nicolas Capens <nicolascapens@google.com> Tested-by:
Jason Macnak <natsu@google.com> Commit-Queue: Jason Macnak <natsu@google.com>
-
Nicolas Capens authored
Bug: b/176981107 Change-Id: Ifab91e61ceb74c5b6caf62b8f9f1abbd8fef9e01 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/45848Reviewed-by:
Antonio Maiorano <amaiorano@google.com> Kokoro-Result: kokoro <noreply+kokoro@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com> Commit-Queue: Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
When the homogeneous w coordinate is near 0, the projected x or y coordinates (after viewport and subpixel scaling) may be larger than what's representable by 32-bit signed integers. On x86 this produces the "indefinite" integer value 0x80000000. This negative value is returned even for positive inputs. This causes the back-face culling calculations to reject triangles which are in fact visible. This change addresses that by introducing the rr::RoundIntClamped() function, which guarantees that very large positive floating-point values are converted to a positive integer value near INT_MAX. Note that the Vulkan spec states that "[the determination whether the triangle is back-facing or front-facing] is made based on the sign of the (clipped or unclipped) polygon’s area computed in framebuffer coordinates." Thus the alternative of performing culling using the unprojected coordinates would have to take negative viewport dimensions into account, and may not produce the same results as sub-pixel snapped coordinates. Adjust back-face culling of wireframe triangles to use the same calculations as solid triangles. Bug: b/177382194 Change-Id: Ice8493d4cfd164638f091bf5a39b5396d65458e2 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51648Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
-
- 11 Jan, 2021 3 commits
-
-
Sean Risser authored
Members of classes that are declared as static constexpr are not defined as part of their declaration. Thus they must be defined elsewhere. And they can't be defined in the header file, or there will be multiple definitions for each file that includes the header. So define these contexprs in Constants.cpp Bug: b/177220369 Change-Id: I9ffc63867948bc72061ddb8b0b586a46d840196c Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51628 Kokoro-Result: kokoro <noreply+kokoro@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Tested-by:
Sean Risser <srisser@google.com> Commit-Queue: Sean Risser <srisser@google.com>
-
Sean Risser authored
This extension allows the host to reset query pools without the use of vkCmdResetQueryPool. Bug: b/169602655 Tests: dEQP-VK.query_pool.occlusion_query.* Change-Id: I20a121d30ff5c39dc9df0a803c3f054ff217e5dc Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51309 Kokoro-Result: kokoro <noreply+kokoro@google.com> Tested-by:
Sean Risser <srisser@google.com> Commit-Queue: Sean Risser <srisser@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
-
Sean Risser authored
This extension allows users to query and specify different usages for the main image and the stencil. SwiftShader does not use an image's usage for non-debug purposes outside of vkGetPhysicalDeviceImageFormatProperties2. This applies to separate stencil usage as well. Bug: b/176098507 Tests: dEQP-VK.pipeline.sampler.separate_stencil_usage.* Tests: dEQP-VK.renderpass.suballocation.multisample.separate_stencil_usage.* Tests: dEQP-VK.renderpass2.suballocation.multisample.separate_stencil_usage.* Change-Id: Iea74a9fa0de8cdcc51bdc613cdc0754e0f327fd5 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51368Tested-by:
Sean Risser <srisser@google.com> Commit-Queue: Sean Risser <srisser@google.com> Kokoro-Result: kokoro <noreply+kokoro@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
- 10 Jan, 2021 1 commit
-
-
Nicolas Capens authored
It only contained the now trivial OpcodeName() implementation. Since the SpirvShaderInstructions.cpp file already contains other SPIR-V opcode utility functions, move it there. Also make this function return a pointer to a constant char string, to avoid needless std::string construction. Bug: b/145351270 Change-Id: Iacfc887566b0a9057f37391ad52d43cdca912308 Signed-off-by:
Nicolas Capens <capn@google.com> Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51448 Kokoro-Result: kokoro <noreply+kokoro@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
-
- 08 Jan, 2021 5 commits
-
-
Nicolas Capens authored
It's only used for compilation, so don't hang on to it for the entire lifetime of the routine. Likewise the dylib reference can be local. Bug: b/177024837 Change-Id: I261e877f983aa3ec52ef61dc6976da75a4fd5efb Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51588Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Antonio Maiorano <amaiorano@google.com> Kokoro-Result: kokoro <noreply+kokoro@google.com>
-
Nicolas Capens authored
It's only used for mangling the names of our generated functions during Routine construction, so don't hang on to it for the entire lifetime of the routine. Also, don't set Function attributes during routine compilation, set them at creation. Bug: b/177024837 Change-Id: I974b10430bced5d59f51e54426f7ee0aa8c96ca2 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51569 Kokoro-Result: kokoro <noreply+kokoro@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Antonio Maiorano <amaiorano@google.com>
-
Nicolas Capens authored
The LLVMContext object is used for caching LLVM types, eliminating duplicate constants, and things like handling diagnostics information. Previously we created one for the JITBuilder as well as the JITRoutine. While having multiple ones is mostly benign from a correctness point of view, it adds unnecessary overhead. This change reuses the context created for the JITBuilder object (which is used during IR construction), for the JITRoutine (which uses it for actual compilation). Bug: b/177024837 Change-Id: Iefbbd7fbeb53e67ab41914fad471dd94d9755311 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51568 Kokoro-Result: kokoro <noreply+kokoro@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Antonio Maiorano <amaiorano@google.com>
-
Sean Risser authored
Clang 9 escalates a warning about an unsigned integer being compared against a signed integer into an error. Fixed by making an integer literal be unsigned. Bug: b/152777669 Change-Id: I38c61ac0837f756c73b8664f7774719a94353fac Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51530Tested-by:
Sean Risser <srisser@google.com> Commit-Queue: Sean Risser <srisser@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
Produced by Clang 10's -Wmissing-field-initializers. Bug: b/152777669 Change-Id: Ib6cda930945b1b46e5530f2aef7bbc9ee07ab9df Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51549 Kokoro-Result: kokoro <noreply+kokoro@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Commit-Queue: Nicolas Capens <nicolascapens@google.com>
-
- 07 Jan, 2021 3 commits
-
-
Nicolas Caramelli authored
Bug: b/176909700 Change-Id: I5cecfbdfc4b5fc28180b1421c36ce94813605bd5 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51508 Kokoro-Result: kokoro <noreply+kokoro@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Nicolas Caramelli <caramelli.devel@gmail.com> Commit-Queue: Nicolas Caramelli <caramelli.devel@gmail.com>
-
Sean Risser authored
While SwiftShader does not support this extension, it is core in Vulkan 1.2. So we must properly process the structures it adds. Bug: b/176819536 Change-Id: Ib4e0334d9224581b2541f89b356e7bef5f138d30 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51490 Kokoro-Result: kokoro <noreply+kokoro@google.com> Tested-by:
Sean Risser <srisser@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Commit-Queue: Sean Risser <srisser@google.com>
-
Nicolas Capens authored
Clang 10's -Wimplicit-int-float-conversion complains that MAX = 2147483647 cannot be exactly represented as a float. Use an explicit conversion to suppress the warning locally. Note that this value's usage to produce a random boolean doesn't critically depend on exact conversion. Bug: b/152777669 Change-Id: I1136ca16dcb842b97f4a76a6ed3e1c3333e814f8 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51488Tested-by:
Nicolas Capens <nicolascapens@google.com> Commit-Queue: Nicolas Capens <nicolascapens@google.com> Kokoro-Result: kokoro <noreply+kokoro@google.com> Reviewed-by:
Antonio Maiorano <amaiorano@google.com>
-
- 05 Jan, 2021 1 commit
-
-
Nicolas Capens authored
Bug: documentation Change-Id: I708546425c3fee85844884ed5dfc8f52af1f1830 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51428 Kokoro-Result: kokoro <noreply+kokoro@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
-
- 30 Dec, 2020 1 commit
-
-
Sean Risser authored
VkPhysicalDeviceVulkan12Properties was added to the core spec by Vulkan 1.2. It allows users to query the following properties simultaneously: * VkPhysicalDeviceDriverProperties * VkPhysicalDeviceFloatControlsProperties * VkPhysicalDeviceDescriptorIndexingProperties * VkPhysicalDeviceDepthStencilResolveProperties * VkPhysicalDeviceSamplerFilterMinmaxProperties * VkPhysicalDeviceTimelineSemaphoreProperties * and framebufferIntegerColorSampleCounts All these structs are a part of the core spec and must be supported. Bug: b/176498010 Change-Id: I82b06f219d2ee091139964ee8b19f05e1c64e3a8 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51408 Kokoro-Result: kokoro <noreply+kokoro@google.com> Reviewed-by:Nicolas Capens <nicolascapens@google.com> Tested-by:
Sean Risser <srisser@google.com> Commit-Queue: Sean Risser <srisser@google.com>
-
- 17 Dec, 2020 2 commits
-
-
Antonio Maiorano authored
This change deprecates rr::RcpSqrt_pp with rr::RcpSqrt. As with Rcp, RcpSqrt computes the result using Newton-Rhapson if it's faster and the initial approximation intrinsic is available on the current target. Currently, only LLVM on Intel will use NR for RelaxedPrecision. Note that passing in Precision::Relaxed will produce a faster, but less precise reciprocal sqrt. Also made it so that SprivShader instruction GLSLstd450InverseSqrt now invokes RcpSqrt(x, Precision::Full) instead of performing 1/sqrt(x). Note that the Vulkan spec states that inversesqrt()'s precision is 2 ULP, and sqrt()'s precision is inherited from 1.0 / inversesqrt(); however, our rr::Sqrt is implemented in terms of x86's sqrt intrinsic on x86, or as calls to sqrt from Math.h. Bug: b/169760262 Change-Id: I65ba9a64d1db934c523dda11c1a2c186059d220b Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51268 Commit-Queue: Antonio Maiorano <amaiorano@google.com> Kokoro-Result: kokoro <noreply+kokoro@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Antonio Maiorano <amaiorano@google.com>
-
Antonio Maiorano authored
This change deprecates rr::Rcp_pp with rr::Rcp, which makes sure to correctly compute the reciprocal using the Newton-Rhapson refinement only if the current target supports the required instrinsic, otherwise using 1 / x. Currently, only LLVM on Intel will use NR. Note that passing in Precision::Relaxed will produce a faster, but less precise reciprocal. Also removed PixelProgram::linearToSRGB as it's unused. Bug: b/169760262 Bug: b/149574741 Change-Id: I4a2f943aa60116c4397d7a8ae18583a260824788 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/50648Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Antonio Maiorano <amaiorano@google.com> Commit-Queue: Antonio Maiorano <amaiorano@google.com>
-
- 15 Dec, 2020 1 commit
-
-
Antonio Maiorano authored
ReactorBenchmarks.cpp was accidentally moved to the wrong location as part of swiftshader-cl/50388. Bug: b/173404759 Change-Id: I4c0f836ddb7729d6d4409fe757d384cadb5b48b3 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51289Tested-by:
Antonio Maiorano <amaiorano@google.com> Commit-Queue: Antonio Maiorano <amaiorano@google.com> Kokoro-Result: kokoro <noreply+kokoro@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
- 14 Dec, 2020 4 commits
-
-
Nicolas Capens authored
These were used by older versions of the Android CTS and are no longer present in dEQP. Change-Id: I0c66aed16470697b6c925dfe222f26aeb439848f Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51008Tested-by:
Nicolas Capens <nicolascapens@google.com> Kokoro-Result: kokoro <noreply+kokoro@google.com> Reviewed-by:
Antonio Maiorano <amaiorano@google.com>
-
Jason Macnak authored
VkBuffers backed by AHBs do not require dedicated allocations. As such, update SupportsAllocateInfo() to report supported as long as a VkImportAndroidHardwareBufferInfoANDROID or a VkExportMemoryAllocateInfo with AHB bit was found. Updates allocateAndroidHardwareBuffer() to treat the lack of a dedicated buffer or image as a request to allocate a blob AHB. Bug: b/147316305 Bug: b/169796031 Test: cts -m CtsNativeHardwareTestCases Test: cts -m CtsDeqpTestCases -t dEQP-VK.api.external.memory.android_hardware_buffer.* Change-Id: Ica2782b4570bd4d4c1e5585b696b40314a267b2f Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51248 Presubmit-Ready: Jason Macnak <natsu@google.com> Kokoro-Result: kokoro <noreply+kokoro@google.com> Tested-by:
Jason Macnak <natsu@google.com> Commit-Queue: Jason Macnak <natsu@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Sean Risser authored
UniformBufferStandardLayout changes the alignment rules for uniform buffers. This doesn't change SwiftShader's behavior, and is treated as always enabled for the purposes of validating inputs to SPIRV-Tools. Bug: b/169604082 Tests: dEQP-VK.ubo.* Change-Id: I0ec59ceb0bf6cc487f37e292a04e875268c37185 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/49868Tested-by:
Sean Risser <srisser@google.com> Commit-Queue: Sean Risser <srisser@google.com> Kokoro-Result: kokoro <noreply+kokoro@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
Remove the requirement that Subzero must not diverge from the upstream repo. Recommend using the MAKE_BUILD_PARALLEL_LEVEL environment variable to change the default parallelism. Fixes: b/166244497 Fixes: b/170565506 Change-Id: I00029e392282edd650712f031079073482365af3 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51188 Kokoro-Result: kokoro <noreply+kokoro@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Antonio Maiorano <amaiorano@google.com>
-