- 16 Mar, 2017 3 commits
-
-
Nicolas Capens authored
When building with VC++ 2017 RC and its default header files the intrin.h header file is less aggressively included by Windows headers. This causes build breaks on Chrome x64 builds with VC++ 2017 RC when X86MCTargetDesc.cpp uses __cpuid without first including its header. https://github.com/google/swiftshader/pull/2 Change-Id: I664d7b509e0517b7621d41312ccdd0d3de60de84 Reviewed-on: https://swiftshader-review.googlesource.com/8951Reviewed-by:
Alexis Hétu <sugoi@google.com> Tested-by:
Nicolas Capens <capn@google.com>
-
Alexis Hetu authored
WaitForDebugger function was undefined. Change-Id: I578e99638bddc40c56817cfc66ed5787f1cdc6e7 Reviewed-on: https://swiftshader-review.googlesource.com/8953Reviewed-by:
Alexis Hétu <sugoi@google.com> Tested-by:
Alexis Hétu <sugoi@google.com>
-
Alexis Hetu authored
The debugger wait dialog hinders tests on debug builds on chromium bots, so this change sets the debugger wait dialog to only be allowed only on Visual Studio builds within the SwiftShader solution. Change-Id: I0b126f9b0d0451d0fa8941fcb3f9097100488f45 Reviewed-on: https://swiftshader-review.googlesource.com/8952Reviewed-by:
Nicolas Capens <capn@google.com> Tested-by:
Alexis Hétu <sugoi@google.com>
-
- 15 Mar, 2017 1 commit
-
-
Greg Hartman authored
Bug b/36232368 Change-Id: I0a62629db6737134771861710ee0b18826807008 Reviewed-on: https://swiftshader-review.googlesource.com/8949Reviewed-by:
Nicolas Capens <capn@google.com> Tested-by:
Greg Hartman <ghartman@google.com>
-
- 14 Mar, 2017 1 commit
-
-
Alexis Hetu authored
Rather than specifying defines using explicit commands in "cflags" sections, all defines were moved to generic "defines" sections. Change-Id: Ica6ee2a2447aae4f8fc6decc3a4f6b40af7ce9fd Reviewed-on: https://swiftshader-review.googlesource.com/8948Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
-
- 13 Mar, 2017 2 commits
-
-
Nicolas Capens authored
Rendering on the main thread can cause segmentation faults on Windows due to uncommitted stack memory, since Subzero does not currently call __chkstk. In practice this would have mainly been an issue on VMs with a single virtual CPU. Bug swiftshader:25 Change-Id: Ic3be7e5a41ef09b7e056d3c3df2983c225101fe4 Reviewed-on: https://swiftshader-review.googlesource.com/8934Tested-by:
Nicolas Capens <capn@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <capn@google.com>
-
Nicolas Capens authored
The __chkstk function can be at a greater than 4 GiB offset from our generated function. Fix derived from https://reviews.llvm.org/D7267 Change-Id: Ife87dcd42541676828c4a0ca77dcded6649ce278 Reviewed-on: https://swiftshader-review.googlesource.com/8932Reviewed-by:
Nicolas Capens <capn@google.com> Tested-by:
Nicolas Capens <capn@google.com>
-
- 10 Mar, 2017 3 commits
-
-
Nicolas Capens authored
https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html#Clobbers specifies that the clobber list should not overlap with the input or output. Change-Id: I77fc2bfc6209ed325355193758f00fc171c8aebf Reviewed-on: https://swiftshader-review.googlesource.com/8930Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <capn@google.com> Tested-by:
Nicolas Capens <capn@google.com>
-
Nicolas Capens authored
Subzero doesn't actually use any ABI breaking LLVM functionality, so we compile a minimized version of LLVMSupport which does not include the symbol used to detect a mismatch in the ABI-breaking check at link- time. Hence we need to disable this check. Change-Id: I04c37deb359b81c21954ad92a6665d44fe2312a5 Reviewed-on: https://swiftshader-review.googlesource.com/8929Tested-by:
Nicolas Capens <capn@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <capn@google.com>
-
Nicolas Capens authored
GCC warns against bitfields not fitting the entire range of an enum with a fixed underlying type of unsigned int, which gets promoted to an error with -Werror and cannot be suppressed. However, GCC already defaults to using unsigned int as the underlying type of an unscoped enum without a fixed underlying type. So we can just omit it. Bug chromium:697528 Change-Id: I8db8fef09e3397d4ec5ebe9f7c3c5e4ae9c0edff Reviewed-on: https://swiftshader-review.googlesource.com/8928Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <capn@google.com> Tested-by:
Nicolas Capens <capn@google.com>
-
- 28 Feb, 2017 1 commit
-
-
Csaba Osztrogonác authored
to be able to override chromium_git. Change-Id: I11419a81fb492affcfa92ba69661cc90ad88ae98 Reviewed-on: https://swiftshader-review.googlesource.com/8868Reviewed-by:
Alexis Hétu <sugoi@google.com> Tested-by:
Alexis Hétu <sugoi@google.com>
-
- 19 Feb, 2017 1 commit
-
-
Alexis Hetu authored
Added the missing part of the FenceSync object implementation based on the assumption that all fence operations are always signaled before calling any sync related wait functions. Passes all related dEQP tests. Change-Id: I2fd2ac160dfd1250f55240fc3f696f00579d12d4 Reviewed-on: https://swiftshader-review.googlesource.com/8855Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <capn@google.com>
-
- 18 Feb, 2017 3 commits
-
-
Nicolas Capens authored
Dequeuing and queuing the graphics buffer takes care of ownership, and a previous patch ensured the buffer is unlocked before we queue it so we don't need to hold a reference for longer. Bug b/34981145 Bug b/35443034 Change-Id: I6cbaeff08f5d930dde8bdd1522052ac33a6ae9ac Reviewed-on: https://swiftshader-review.googlesource.com/8849Reviewed-by:
Greg Hartman <ghartman@google.com> Reviewed-by:
Nicolas Capens <capn@google.com> Tested-by:
Greg Hartman <ghartman@google.com>
-
Nicolas Capens authored
The buffer changes ownership after queuing it, so unlock it first. The decRef() gets removed in a subsequent patch. Bug b/34981145 Change-Id: I4710699af46a7cbde12e97bc444ad35747509b07 Reviewed-on: https://swiftshader-review.googlesource.com/8848Reviewed-by:
Greg Hartman <ghartman@google.com> Reviewed-by:
Nicolas Capens <capn@google.com> Tested-by:
Greg Hartman <ghartman@google.com>
-
Nicolas Capens authored
cancelBuffer() returns a graphics buffer to the buffer queue but doesn't pass it on to the consumer side. There's currently no reason for us to call it when the EGL surface gets destroyed or resized, since we only briefly dequeue the buffer to blit the already rendered result and immediately queue it again. Even if the queuing fails, we shouldn't try to cancel the buffer because that's essentially the same as a queueing but without valid content. It would fail with the same error, or worse, transfer ownership twice and mess up the reference counting. Bug b/34981145 Change-Id: Ia37a711db5ebd61bcde14cf4bc45097d4e2d33e8 Reviewed-on: https://swiftshader-review.googlesource.com/8814Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Greg Hartman <ghartman@google.com> Reviewed-by:
Nicolas Capens <capn@google.com> Tested-by:
Greg Hartman <ghartman@google.com>
-
- 17 Feb, 2017 1 commit
-
-
Alexis Hetu authored
Many new OpenGL ES 3 specific entries in Context::getIntegerv were not hidden when an OpenGL ES 2 context is created. The switch statement was separated in 2 statements in order to fix this. Change-Id: Ib218b72e854f5857958cfa14ecdfef5ae03ee92b Reviewed-on: https://swiftshader-review.googlesource.com/8851Tested-by:
Alexis Hétu <sugoi@google.com> Tested-by:
Nicolas Capens <capn@google.com> Reviewed-by:
Nicolas Capens <capn@google.com>
-
- 15 Feb, 2017 3 commits
-
-
Nicolas Capens authored
Change-Id: I20b385c316f24b703da1d3071e393b4cde450173 Reviewed-on: https://swiftshader-review.googlesource.com/8811Tested-by:
Nicolas Capens <capn@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <capn@google.com>
-
Alexis Hetu authored
Silence a few warnings within the LLVM code used by Subzero which ended up being treated as errors when compiling Chromium for x86. Change-Id: If4d3c13ce0b01185d59a2cd064b2bad537639b94 Reviewed-on: https://swiftshader-review.googlesource.com/8813Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <capn@google.com>
-
Nicolas Capens authored
Change-Id: I21ec9c20a594fd322d17f2bcd1c58b298d4c0ce9 Reviewed-on: https://swiftshader-review.googlesource.com/8812Tested-by:
Nicolas Capens <capn@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <capn@google.com>
-
- 14 Feb, 2017 3 commits
-
-
Alexis Hetu authored
Once Subzero is pulled by Chromium (see https://codereview.chromium.org/2695813002/), we'll enable Subzero compilation on Windows. Change-Id: I3464dbd98224b3ac602aef3c4a27596366d275b3 Reviewed-on: https://swiftshader-review.googlesource.com/8772Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <capn@google.com>
-
Alexis Hetu authored
A few remaining cases in Context.cpp are actually implemented, so we can remove the UNIMPLEMENTED() calls in these cases: Primitive restart, uniform blocks, fragment inputs and vertex outputs are all implemented. Also, the implementation can legally support 0 program binary formats. Change-Id: I74b51b511c66170e284ac5d82f573453332872cc Reviewed-on: https://swiftshader-review.googlesource.com/8788Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <capn@google.com>
-
Nicolas Capens authored
Change-Id: I6077e9f439dc20217e9e7fb6c6f98f969e7d0b51 Reviewed-on: https://swiftshader-review.googlesource.com/8790Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <capn@google.com> Tested-by:
Nicolas Capens <capn@google.com>
-
- 13 Feb, 2017 2 commits
-
-
Nicolas Capens authored
Make min(x, y) equal to (x < y ? x : y) and max(x, y) equal to (x > y ? x : y), including the behavior for signed zeros and NaNs. This also enables optimizing them into min and max SSE2 instructions on x86. Bug swiftshader:19 Change-Id: I047b90e9da9f3c72657ab7c619bc91b92a700a45 Reviewed-on: https://swiftshader-review.googlesource.com/8771Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <capn@google.com> Tested-by:
Nicolas Capens <capn@google.com>
-
Alexis Hetu authored
Bug chromium:691427 The official build uses the LLVM gold linker, which seems to have an issue with some visibility settings. Restoring these settings for now to solve the issue. Change-Id: I4f448c38bb7c964b2a53d19e064ecb23c119ab61 Reviewed-on: https://swiftshader-review.googlesource.com/8770Reviewed-by:
Alexis Hétu <sugoi@google.com> Tested-by:
Alexis Hétu <sugoi@google.com>
-
- 10 Feb, 2017 2 commits
-
-
Alexis Hetu authored
This change adds 2 platform specific files for Linux, which are used to define the typeinfo() functions used in some classes in order to satisfy the ubsan compiler on Linux. Unfortunately, adding those definitions on all platforms breaks the build on Mac. Those aren't necessary on Windows, so the Linux specific files are enough to make the build work properly on all platforms. Change-Id: If731ab2e5df47731695412da04f9b2db576ea140 Reviewed-on: https://swiftshader-review.googlesource.com/8768Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <capn@google.com>
-
Alexis Hetu authored
The Linux build fix had broken the Mac build, so the new "typeinfo" virtual function were moved from the header files to the source files to fix both builds simultaneously. Change-Id: I37f5ef4bd5ec4da34a19531dcb85df6a98728aa1 Reviewed-on: https://swiftshader-review.googlesource.com/8748Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
-
- 09 Feb, 2017 1 commit
-
-
Alexis Hetu authored
To prevent Chromium from building the "swiftshader_subzero" source set when building all, the source set is now located within an "if (use_swiftshader_with_subzero)" statement. Change-Id: I4363487103ec8cd6856b1afb0dd861146a3e56bd Reviewed-on: https://swiftshader-review.googlesource.com/8728Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <capn@google.com>
-
- 08 Feb, 2017 2 commits
-
-
Alexis Hetu authored
The current way "use_subzero" was used seems to fail when compiling with goma (I don't see why, honestly). Anyway, most build configuration related booleans are declared in a declare_args() section, so I moved the setting there, which will hopefully solve the issue. Change-Id: I063d9938d04bfdf8140878a740f3710309f8bf1e Reviewed-on: https://swiftshader-review.googlesource.com/8714Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <capn@google.com>
-
Greg Hartman authored
Bug b/34268167 Change-Id: Id2200a9c7d6fea522e3405829447e031e2da15b3 Reviewed-on: https://swiftshader-review.googlesource.com/8711Reviewed-by:
Nicolas Capens <capn@google.com> Tested-by:
Greg Hartman <ghartman@google.com>
-
- 07 Feb, 2017 3 commits
-
-
Nicolas Capens authored
Only the instructions following a return statement were being marked as affected by it so predication would be applied. But in a loop the instructions above the return statement are also affected by it. Bug b/25220690 Change-Id: If2490a6e0b4e9cf8b6e28b33cbbbcec8b4ebfdaa Reviewed-on: https://swiftshader-review.googlesource.com/5183Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <capn@google.com> Tested-by:
Nicolas Capens <capn@google.com>
-
Alexis Hetu authored
Cleaned up a few things before updating SwiftShader's version in Chromium's DEPS file: - Added Windows Subzero fix - Removed commented out sysroot related lines - Fixed formatting using git - Temporarily disabled Subzero compilation for now Change-Id: Ib6ae75c20869522675d28086ab170f01fd730f93 Reviewed-on: https://swiftshader-review.googlesource.com/8709Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <capn@google.com>
-
Nicolas Capens authored
Chromium UBSan builds require RTTI, for which GCC/Clang requires each class' first non-inline virtual method (the "key method") to have a known definition so that its address can be used as a unique type identifier: https://gcc.gnu.org/onlinedocs/gcc/Vague-Linkage.html libEGL and libGLESv2 each use objects who's full definition only exists within one or the other. Methods for which the definition is unknown can still be called if they are virtual, because the compiler/linker only needs to know the vtable entry offset. But because of the GCC/Clang requirement of having the first non-inline virtual method be fully defined, we need to add dummy virtual methods and their definitions. Bug swiftshader:31 Change-Id: Ib146cac811388086b29dbb099266c43795d6ed31 Reviewed-on: https://swiftshader-review.googlesource.com/8708Reviewed-by:
Alexis Hétu <sugoi@google.com> Tested-by:
Nicolas Capens <capn@google.com>
-
- 03 Feb, 2017 5 commits
-
-
Jorge E. Moreira authored
The BackoffLock spins idle for a while when waiting for a locked mutex before yielding the core, thus wasting many CPU cycles. Modern pthread implementations have low overhead mutexes which make the thread sleep if the lock is already held, and efficiently resume them it becomes available. Change-Id: I26b64c86db620739671373fd0d82085744d34fa8 Reviewed-on: https://swiftshader-review.googlesource.com/8648Reviewed-by:
Nicolas Capens <capn@google.com> Tested-by:
Nicolas Capens <capn@google.com>
-
Nicolas Capens authored
Since floating-point scalars are stored in vector registers, Subzero allows us to just bitcast between them, eliminating a load and insert before shuffling. Change-Id: Ibccf242fd4cfc28604f35f420a04fd4ee6eabe52 Reviewed-on: https://swiftshader-review.googlesource.com/8575Tested-by:
Nicolas Capens <capn@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <capn@google.com>
-
Nicolas Capens authored
Array accesses with unsigned indices can be faster on x86-64 because we can take advantage of implicit zero-extension of 32-bit integers to 64-bit during pointer arithmetic. Change-Id: I17d531d9ad05c2d2994f007d5444b2a514a591b8 Reviewed-on: https://swiftshader-review.googlesource.com/8571Reviewed-by:
Nicolas Capens <capn@google.com> Tested-by:
Nicolas Capens <capn@google.com>
-
Greg Hartman authored
BUG: 30979264 Change-Id: I315bc6e6b64a012896542667d7db58f3516b29de Reviewed-on: https://swiftshader-review.googlesource.com/8649Reviewed-by:
Nicolas Capens <capn@google.com> Tested-by:
Greg Hartman <ghartman@google.com>
-
Greg Hartman authored
Test: foo Change-Id: I27a139266d34d26f5d3468e3993a502f0596ae7d Reviewed-on: https://swiftshader-review.googlesource.com/8650Reviewed-by:
Nicolas Capens <capn@google.com> Tested-by:
Greg Hartman <ghartman@google.com>
-
- 02 Feb, 2017 2 commits
-
-
Nicolas Capens authored
After a pthread_join() call the handle becomes invalid or could be recycled by another thread, leading to undefined behavior when attempting to join it again. Also, on Windows the handle has to be closed to free it. Bug b/34883464 Change-Id: Ib20d0539b6b46e331c6378b3a9f0c2a334d34892 Reviewed-on: https://swiftshader-review.googlesource.com/8612Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <capn@google.com> Tested-by:
Nicolas Capens <capn@google.com>
-
Alexis Hetu authored
Modified the BUILD.gn files in order to be able to easily switch between Subzero and LLVM back ends. Note that Subzero compilation should already work on Linux, as soon as the Wheezy to Jessie update lands. For now, only Windows will build Subzero. Also removed linux hack from libEGL build file. Change-Id: Ic584b604496c4b4f745b05d72a752f056495055b Reviewed-on: https://swiftshader-review.googlesource.com/8630Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <capn@google.com>
-
- 01 Feb, 2017 1 commit
-
-
Alexis Hetu authored
Linux handled the extra / properly, but Windows did not, so it had to be removed. Change-Id: Ie42d8777aef83c0024bc9b3e5c631ece7e87e236 Reviewed-on: https://swiftshader-review.googlesource.com/8629Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <capn@google.com>
-