- 05 Jul, 2019 1 commit
-
-
Ben Clayton authored
GenericValue is only used by SpirvShader so move it as a private inner class of SpirvShader. Part of the foundations of much larger refactoring required for function inlining in SpirvShader. Bug: b/133213304 Change-Id: I75484c3d036b82f3bc6a735034a7c1b04f05f600 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33350Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Ben Clayton <bclayton@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
-
- 04 Jul, 2019 14 commits
-
-
Nicolas Capens authored
Bug chromium:980816 Change-Id: Ic4393668f82316e475baa5e753d891dfb1e30572 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33728 Presubmit-Ready: Nicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
-
Ben Clayton authored
May unlock features that are not exposed by march. Change-Id: I4f10dfc93f75eab502824ec155daa9fbbb3d3d55 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33773Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
-
Ben Clayton authored
Experiments show substantial performance gains. Bug: b/135609394 Change-Id: I62a6b9dd292cafe92aa5558a84c460594b51197c Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33772Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Tested-by:
Ben Clayton <bclayton@google.com>
-
Alexis Hetu authored
Fixed R8G8_SRGB and R8G8B8_SRGB in the Blitter. Enabled R8G8_SRGB tests to make sure the fix is correct. Change-Id: Ibe7addd3f635f353abb09e0391a9a30d20392fbf Tests: dEQP-VK.*r8g8_srgb* Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33530 Presubmit-Ready: Alexis Hétu <sugoi@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Ben Clayton <bclayton@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Alexis Hétu <sugoi@google.com>
-
Ben Clayton authored
Let's just initialize these to zero, and let the optimizer remove redundant assignments. Bug: b/136149446 Change-Id: Ia776bae4433f78f5a66b16f275e728a70dd4e18d Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33468Tested-by:
Ben Clayton <bclayton@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Chris Forbes <chrisforbes@google.com>
-
Ben Clayton authored
If robustness is disabled, don't bother zeroing disabled lanes. Gives the LLVM optimizer & backend some more wiggle room. Bug: b/135609394 Change-Id: I425eba2b48601a35dc40aa8ca071e6e61f35024f Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33708 Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Tested-by:
Ben Clayton <bclayton@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Ben Clayton authored
Bug: b/135609394 Change-Id: Ic566f2ef6d66e31b434d29b23aafd954a05958a4 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33709Tested-by:
Ben Clayton <bclayton@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Ben Clayton authored
Replace the old 'runOptimizations' flag on Nucleus::acquireRoutine() and Nucleus::acquireCoroutine() with a new OptimizationLevel enumerator. runOptimizations was always true, and there is already the rr::optimization extern to control the optimization passes performed. All Function and Coroutines are now passed the new vk::ReactorOptimizationLevel. This will be changed to a non-Default value in another CL. Bug: b/135609394 Change-Id: I1154da05d413b18a471a3818fbb03f356a3d0e6c Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33482Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Ben Clayton <bclayton@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
-
Ben Clayton authored
Split the scattered LLVM global variables into 3 new classes: • JITGlobals is a singleton that holds all the immutable machine specific information for the host device. • JITBuilder holds all the LLVM state for building routines. • JITRoutine is a rr::Routine that holds a LLVM JIT session, compiler and object layer as each routine may require different target machine settings and no Reactor routine directly links against another. This reduce all the global varibles to down to one - 'jit' a JITBuilder. In theory, this can be marked as TLS to remove the global reactor mutex lock. These change also make it possible to specify per-function JIT optimization settings (implemented in a follow-up change). Change-Id: If4c90de444830f398eb79081fd349f313a8d3bd7 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33481Tested-by:
Ben Clayton <bclayton@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Ben Clayton authored
dEQP-VK.synchronization.internally_synchronized_objects.pipeline_cache_compute When the wind is blowing in the right direction, this test can exceed the per-test 2GB sandbox memory limit, causing a flaky out-of-memory crash. Bug: b/133127573 Change-Id: Ie403d91738c05258639be077aa31ec36d92d109e Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33688Tested-by:
Ben Clayton <bclayton@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
-
Ben Clayton authored
Change-Id: I3833a203ae7635845ea3b8ceb5e323565a92be18 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33487 Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Ben Clayton <bclayton@google.com>
-
Ben Clayton authored
Bug: b/132353920 Change-Id: Ic7950ea29be6fd0dc7712813c10cdd2dfab73b90 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33548Reviewed-by:
Chris Forbes <chrisforbes@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Ben Clayton <bclayton@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
-
Ben Clayton authored
Change-Id: Ieaec8e9dd2017803d862ce8bcdc6b00582b7d45b Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33486 Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Ben Clayton <bclayton@google.com>
-
Ben Clayton authored
Change-Id: I6247e0b5eef4639527ea15e7c5af115e5954a342 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33485 Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Ben Clayton <bclayton@google.com>
-
- 03 Jul, 2019 2 commits
-
-
Alexis Hetu authored
- Removed twoSidedStencil, which was always true when stencil is enabled - Removed unused enums and functions - Removed custom new/delete operators - Used VkFrontFace type for frontFace Bug b/132280877 Change-Id: I440d5e910e50de0ac8049d3a56848fa8d2de3493 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33531 Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Alexis Hetu authored
Deleted Thread.hpp and replaced AtomicInt with std::atomic<int>. Should be noop. Note: AtomicInt's operator++(int) and operator--(int) were Post-increment operators implemented as Pre-increment operators, so expressions <AtomicInt object>++ have been replaced with ++<std::atomic object> (same for decrement operators). Bug b/129403963 Change-Id: I907b8c91581fed4b76647327f316b87369c6c82f Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33668Tested-by:Alexis Hétu <sugoi@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
- 02 Jul, 2019 4 commits
-
-
Nicolas Capens authored
The Vulkan device's robustBufferAccess feature determines whether accesses to buffers must be bounds-checked against the range of the buffer descriptor. The spec states that "Some features, such as robustBufferAccess, may incur a run-time performance cost. Application writers should carefully consider the implications of enabling all supported features." Hence in many cases applications will leave the feature disabled to ensure maximum performance. Bug: b/131224163 Change-Id: I69e150d5043f0118db8a4b2751b24b5d87bccd75 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33389 Presubmit-Ready: Nicolas Capens <nicolascapens@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Chris Forbes <chrisforbes@google.com> Reviewed-by:
Ben Clayton <bclayton@google.com>
-
Nicolas Capens authored
This was causing the dEQP-VK.memory_model.message_passing.core11.u32.coherent.fence_fence.atomicwrite.workgroup.* tests to read out of bounds when robust buffer access is disabled. Bug: b/136561217 Change-Id: I4891f5cd531e99b3dd87b4b84ae545ba47355875 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33528Reviewed-by:
Chris Forbes <chrisforbes@google.com> Reviewed-by:
Ben Clayton <bclayton@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
Ben Clayton authored
For sequential, fully-in-bound vectors: * Loads can safely be a regular vector load. We mask just to keep behavior consistent with rr::MaskedLoad and rr::Gather. * Stores of non-atomics can be implemented as a read-modify-write. These optimizations have drastic performance improvements on architectures where there are no masked-read and masked-write instructions. Bug: b/135609394 Change-Id: I552cc38f4aeae73f8db079a0a11da6a8db857710 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33628Tested-by:
Ben Clayton <bclayton@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
SwiftShader Regression Bot authored
Change-Id: I5e007143e62f5fea83d0294332a690ef0d58a52e Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33608 Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Ben Clayton <bclayton@google.com> Tested-by:
Ben Clayton <bclayton@google.com>
-
- 28 Jun, 2019 9 commits
-
-
Alexis Hetu authored
The PipelineCache class now contains members for caching programs and shaders, which allows significant speedups when using it to prevent recompiling the same shaders over and over again. For now, each PipelineCache object contains its own cache and the cache is not shared between PipelineCache objects. It remains to be seen if SwiftShader would benefit from always caching shaders and programs in a global cache. Notes: - Merging 2 PipelineCache objects was also implemented - Added a few "const" where appropriate IMPORTANT NOTE: This cl DOES NOT allow pipeline caches to be saved and loaded through the pipeline cache data. Bug b/123588002 Change-Id: I95b183033c03e114d69d4432e5831e26be477033 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33428Tested-by:Alexis Hétu <sugoi@google.com> Presubmit-Ready: Alexis Hétu <sugoi@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Ben Clayton authored
For compile time indices, we can do some basic sanity checking. Change-Id: I9ae4ea5bbf106c4653cbf9bbe6776a5a188b4289 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33470Tested-by:
Ben Clayton <bclayton@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
-
Ben Clayton authored
Dramatically speeds up builds when switching build flags. Change-Id: I661d18458db69f6663381c252b06b3ed96f3a5c6 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33472Tested-by:
Ben Clayton <bclayton@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
-
Sean Risser authored
Made the following changes: * Changed our multi-line strings to use C++11 raw string literals * Added argument-less macros for checking if GL or EGL had an error. * Made checkCompileFails return the error log, in case a test wants to ensure a specific failure is reported. * Made some more tests use the new MakeShader function. Bug chromium:977665 Change-Id: I5a410d88449d1349806215bd21bb8c2b6d7acc56 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33268 Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Ben Clayton <bclayton@google.com> Tested-by:
Sean Risser <srisser@google.com>
-
Ben Clayton authored
This function behaved differently on different architectures. Reimplement using mostly integer arithmatic. Bug: b/136095012 Change-Id: I5df87e9400f2952386ebdf7b7b0866b0197145a8 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33480Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Presubmit-Ready: Ben Clayton <bclayton@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Tested-by:
Ben Clayton <bclayton@google.com>
-
Chris Forbes authored
Bug: b/135691587 Change-Id: I796342057829f416bc6a2dfdb0c03c59f033127f Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33228Tested-by:
Chris Forbes <chrisforbes@google.com> Presubmit-Ready: Chris Forbes <chrisforbes@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Ben Clayton <bclayton@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
-
SwiftShader Regression Bot authored
Change-Id: Id3546c1c53dc3aa7313cbd9d6353310fa7b52bf2 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33477 Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Ben Clayton <bclayton@google.com> Tested-by:
Ben Clayton <bclayton@google.com>
-
Lingfeng Yang authored
Change-Id: I4a1b1a981096fbda616101b7d47bf8f82481c64b Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33509 Presubmit-Ready: Lingfeng Yang <lfy@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Lingfeng Yang <lfy@google.com>
-
Lingfeng Yang authored
b/135141616 Change-Id: Ia3c804c0bef7a000a54359d24dcd8bacc063a121 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33508Tested-by:
Lingfeng Yang <lfy@google.com> Kokoro-Presubmit: Lingfeng Yang <lfy@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
- 27 Jun, 2019 4 commits
-
-
Hernan Liatis authored
This texture format is needed to run the PowerVR Glass demo Bug: b/136178423 Tests: dEQP-VK.*r8_srgb* Change-Id: Ifff800e25db69daf099ce9c748a6c16de6d93db1 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33449Reviewed-by:
Alexis Hétu <sugoi@google.com> Tested-by:
Hernan Liatis <hliatis@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
-
Nicolas Capens authored
To still produce the class-memaccess diagnostic on unintended cases, suppress it only for our Memset<T> case and LLVM. Bug: b/135744933 Change-Id: Id3b421a3b831600097d198ac793f582467d0a520 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33429 Presubmit-Ready: Nicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Ben Clayton <bclayton@google.com>
-
Nicolas Capens authored
The STANDALONE preprocessor macro is only for controlling the loading of a delay loaded DLL, on Windows. Change-Id: Ife765f27c7e03c542d7e81d90c09c97e4e2cbe5d Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33248 Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Ben Clayton <bclayton@google.com>
-
Chris Forbes authored
This is heavily used in dEQP-VK.ssbo.*. Avoiding generating the scatter is profitable on all non-AVX512-capable targets; ScalarizeMaskedMemIntrin is incredibly slow. Reduces runtime on dEQP-VK.ssbo.layout.random.all_shared_buffer.5 from 24s to 14s on my threadripper (on top of stack of other optimizations). Bug: b/135609394 Change-Id: I2d6840522a5bd30b4fd532b9c7e2a4712879caa9 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33289Tested-by:
Chris Forbes <chrisforbes@google.com> Presubmit-Ready: Chris Forbes <chrisforbes@google.com> Reviewed-by:
Ben Clayton <bclayton@google.com>
-
- 26 Jun, 2019 5 commits
-
-
Chris Forbes authored
Change-Id: I79303a65a2f578164d36917b503a1aed188cd2a2 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33448Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Chris Forbes <chrisforbes@google.com>
-
Ben Clayton authored
LLVM claims to support atomic loads and stores of integers, pointers and floating point types, but certain backends cannot deal with floats. Mimic what Clang does - bitcast to/from an equal width integer. Bug: b/136037244 Change-Id: I40167279de96f586414f4fb406bf100432a39abf Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33408 Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Chris Forbes <chrisforbes@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Ben Clayton <bclayton@google.com>
-
Paul Thomson authored
Change-Id: I61aff0500bfeafd00a0a2b4ba8df2cb8c1f1e282 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33217 Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Ben Clayton <bclayton@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Paul Thomson <paulthomson@google.com>
-
Nicolas Capens authored
Cache keys must be guaranteed to have no uninitialized bits so that they can be compared with memcmpy() and hash values can be computed from their raw memory representation. We do this by calling memset(this, ...) in the Memset<T> class used as the first base class. This is safe since no other constructor has run yet (similar to doing placement new in zeroed out memory). GCC 8.2's class-memset warning should thus not be treated as an error. Bug: b/135744933 Bug: b/134932616 Change-Id: I378b663281b1737359330c29c8c73934e7dd20f7 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33368Tested-by:
Nicolas Capens <nicolascapens@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
-
Alexis Hetu authored
Change-Id: I7c595a97f61cfef54ca2b0778b7eb906a002fade Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33252 Presubmit-Ready: Alexis Hétu <sugoi@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Alexis Hétu <sugoi@google.com>
-
- 25 Jun, 2019 1 commit
-
-
Nicolas Capens authored
For LLVM, uses the debugtrap intrinsic which is more debugging specific than the trap intrinsic. The Subzero implementationuses a Trap intrinsic. Both translate to 'int 3' on x86. Bug: b/135997638 Change-Id: I6eca71e74752c4646baeade9a39b338e17053336 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33369Reviewed-by:
Ben Clayton <bclayton@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-