- 01 Aug, 2017 3 commits
-
-
Nicolas Capens authored
This is just a refactoring, where the 'emulated' types still map to the same types as before. They are represented using small integer values reinterpret-casted as sw::Type*, while non-emulated types correspond directly to llvm::Type pointers. Bug swiftshader:78 Change-Id: I88c0b932a45119ce500821068d8fb5faa2ccbb92 Reviewed-on: https://swiftshader-review.googlesource.com/11048Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
Using alignment = 0 to signify natural alignment will allow to discern between loads/stores for stack variables, and dereferencing generic pointers. Bug swiftshader:78 Change-Id: I6d9c1728fb9858ca57380bc6bfafc7fb2fa5feae Reviewed-on: https://swiftshader-review.googlesource.com/10968Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
The Optimizer used to assume that loads and stores using the same address are of the same tpe. This is false for emulated sub-vector load/store, and thus we tricked it into thinking the addresses are different by performing some redundant arithmetic. This is no longer necessary now that the Optimizer checks the types being loaded/stored. Bug swiftshader:48 Change-Id: Ic212d67fefd9e8dd902ff576b69458208c3c379d Reviewed-on: https://swiftshader-review.googlesource.com/11088Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
-
- 28 Jul, 2017 1 commit
-
-
Alexis Hetu authored
The bitwise NOT operation is supported for integer types in GLSL. All the plumbing was already there, only the actual call was missing. In dEQP, all shaders.operator.unary_operator.bitwise_not tests pass. Change-Id: I938104b860441f6b2df6c807d578f651e5cd2516 Reviewed-on: https://swiftshader-review.googlesource.com/11108Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
- 27 Jul, 2017 1 commit
-
-
Alexis Hetu authored
This cl implements support for gl_VertexID. Passes the functional.shaders.builtin_variable.vertex_id test. Change-Id: I5550e3ecba30e29f1e38ace608d730833a1e9598 Reviewed-on: https://swiftshader-review.googlesource.com/10958Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
- 26 Jul, 2017 16 commits
-
-
Nicolas Capens authored
The SignMask intrinsic returns the most significant bit of each byte in a 128-bit vector. For 'emulated' 8-byte vectors we expect the upper half to be ignored. Change-Id: I994e35fb9c21710c35a89add42297c3c9bad07a4 Reviewed-on: https://swiftshader-review.googlesource.com/10988Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
Bug b/64034197 Change-Id: I2d77dcb2f93b21abeb0eac1dcb8ca02ef6e5796b Reviewed-on: https://swiftshader-review.googlesource.com/10957Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
Bug b/37496078 Change-Id: I2940cee7a7b174c98f28282831c414c1f524702d Reviewed-on: https://swiftshader-review.googlesource.com/10933Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
Bug b/37496856 Change-Id: Ifea992edcb97d178e079a39d2a1b6b604cfa657e Reviewed-on: https://swiftshader-review.googlesource.com/10956Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
Bug b/37496082 Change-Id: I993f34baf6169b0bc3c37742f6238dba38a67d0a Reviewed-on: https://swiftshader-review.googlesource.com/10955Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
Bug b/37495545 Change-Id: I767f7b5555706cd42b80863fe1ae04b36f4f1189 Reviewed-on: https://swiftshader-review.googlesource.com/10932Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
Bug b/37496809 Change-Id: I34d0d511bd50890c36d292ab431115f5d2e65a58 Reviewed-on: https://swiftshader-review.googlesource.com/9492Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
Bug b/37496338 Change-Id: I01e4aaf49e86d9c2f11647a0e84bf1ee388a90cf Reviewed-on: https://swiftshader-review.googlesource.com/10931Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
Bug b/37496321 Change-Id: I173b458a0d1d477ad75deaa33508ae1766c182c0 Reviewed-on: https://swiftshader-review.googlesource.com/9491Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
Change-Id: I4eaee73caca1e2552cd63901a6c9107efbeaa2f8 Reviewed-on: https://swiftshader-review.googlesource.com/10930Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
Subzero only supports 128-bit vectors currently, but we need to support bitcasting between scalars and (emulated) short vectors of the same size. Subzero implicitly supports it on x86 by using movd instructions, but on ARM we have to emulate it in Reactor until support for it is added in Subzero. Bug swiftshader:48 Change-Id: I95accbc3665815a46dac8e52ce30939ac64aaf44 Reviewed-on: https://swiftshader-review.googlesource.com/10929Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
If a load uses the same address as a previous store, we can only replace it with the store's data when their types match. Also, stores can only be eliminated when all the loads following them have been replaced. Bug swiftshader:48 Change-Id: I5968b256cb295243c30df3598e49015bccb5bff1 Reviewed-on: https://swiftshader-review.googlesource.com/10950Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
If the previous store operation is wider than the next one, we can't eliminate it because there could be a subsequent wide load reading its non-overwritten data. Bug swiftshader:48 Change-Id: Iccb9cabad8ab8503140061ec4ce711a2959de33d Reviewed-on: https://swiftshader-review.googlesource.com/10948Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
Bug swiftshader:48 Change-Id: I05352fd64cb2e5a929295ff6a8f6196da7fdbb4b Reviewed-on: https://swiftshader-review.googlesource.com/10949Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
When constructing an RValue<T> from a Value, the types should match. Else a bitcast is required. Bug swiftshader:48 Change-Id: I5073091524d2f56681dab052c9f84a06b3be7b4f Reviewed-on: https://swiftshader-review.googlesource.com/10908Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
Change-Id: I0d25174bc92b6228f433f5d6840d3d94223c683e Reviewed-on: https://swiftshader-review.googlesource.com/11008Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
- 25 Jul, 2017 2 commits
-
-
Alexis Hetu authored
glGetString wasn't returning es3 specific extensions. Change-Id: Ief89eb448b3e821bfb7919ece97c03976569060c Reviewed-on: https://swiftshader-review.googlesource.com/10954Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
Function pointers from exported functions are wrongly flagged as being of incorrect type. This happens both on libEGL and libGLESv2 entry functions, as well as functions called between them. Bug chromium:746914 Change-Id: I2bf5a8f06546c233ede7a4820c0cda3e997f096e Reviewed-on: https://swiftshader-review.googlesource.com/10868Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
- 24 Jul, 2017 1 commit
-
-
Alexis Hetu authored
UInt4 -> Float4 already existed, but not UInt -> Float. Added the scalar conversion code and used it in the Blitter where appropriate. Change-Id: I9ebf63fdf8b139b960237b269f2da088f6ecac86 Reviewed-on: https://swiftshader-review.googlesource.com/10888Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
- 21 Jul, 2017 2 commits
-
-
Nicolas Capens authored
Only libGLESv2 was clearing all the samples of a multisample buffer. Since all known APIs always clear all the samples, this could be handled in the Renderer. Bug swiftshader:77 Change-Id: Ib9adc3c61d263420ed0a0ae4828a693bd360b076 Reviewed-on: https://swiftshader-review.googlesource.com/10788Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
Alexis Hetu authored
By default, in D3D, R, G or B channels default to 1 when no value is assigned to them. In OpenGL, these channels default to 0. Added an entry to Conventions to fix this issue. In dEQP, this fixes all R and RG types tests from: functional.texture.format.* Change-Id: Ib5552aa36eaf4e3e1132f016f002250b40436227 Reviewed-on: https://swiftshader-review.googlesource.com/10828Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
- 20 Jul, 2017 5 commits
-
-
Alexis Hetu authored
All texture formats, except YUV or sRGB formats, now have access to the floating point path for texture filtering. High precision filtering can be enabled using: glHint(GL_TEXTURE_FILTERING_HINT_CHROMIUM, GL_NICEST) Bug swiftshader:76 Change-Id: Iabbe86d1bbf43070bfc5f61254c101a75c744401 Reviewed-on: https://swiftshader-review.googlesource.com/10808Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Alexis Hetu authored
Integer formats are: UInt32/Int32/UInt16/Int16/UInt8/Int8 The 32 bit formats required using the floating point path for precision, while the 16 bit and 8 bit formats were going through the short integer path. Since all formats need to be treated as Int within a 32 bit Float in the end, this cl unifies all integer formats under the same path. Related dEQP tests are: functional.texture.format.sized.2d.* Bug swiftshader:76 Change-Id: Ia2e0972243290e8b1139081222a3f19ab9e65c9f Reviewed-on: https://swiftshader-review.googlesource.com/10748Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
Change-Id: Ie02591ba84ba8a4b204a2cb05179718e397e5c21 Reviewed-on: https://swiftshader-review.googlesource.com/10768Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
-
Alexis Hetu authored
Modified the texture coordinate computation to use floating point operations when sampling floating point textures to increase accuracy and remove useless type conversions. Bug swiftshader:76 Change-Id: I76e5fd9a68aa6ba5eb21524edb8c6c6183e5430e Reviewed-on: https://swiftshader-review.googlesource.com/10628Tested-by:
Alexis Hétu <sugoi@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
Our approximation for log2() linearly interpolates between powers of two. This is not accurate enough for some use cases. Squaring the input effectively doubles the number of piecewise linear segments. Bug swiftshader:71 Change-Id: Ie7a1da6b93cb5fbed018b61cf8510393964b5aa4 Reviewed-on: https://swiftshader-review.googlesource.com/10450Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
- 19 Jul, 2017 3 commits
-
-
Alexis Hetu authored
A new extension will be added to SwiftShader in order to allow Chromium to trigger high precision filtering when necessary. This extension is documented in: extensions/CHROMIUM_texture_filtering_hint.txt Bug swiftshader:76 Change-Id: I7c5b5c5fd01afbd7079e7949ecbd9c18fc539f2b Reviewed-on: https://swiftshader-review.googlesource.com/10708Tested-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
-
Nicolas Capens authored
Sanitizer tools require type information to catch undefined behavior and other issues. This wasn't available accross libraries due to the version script giving them hidden visibility, leading to false positives. Bug chromium:737384 Change-Id: Iab3e25f4da3672f694e32c1c89278a3fe677d51a Reviewed-on: https://swiftshader-review.googlesource.com/10728Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Corentin Wallez <cwallez@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Alexis Hetu authored
This change is effectively noop by itself, but allows the floating point path to read all texture formats (except YUV). This is required by the floating point path to be able to perform higher precision filtering on all formats (except YUV). Bug swiftshader:76 Change-Id: I5d0d24c00357b4b77cca2ca8a65d082db7635b40 Reviewed-on: https://swiftshader-review.googlesource.com/10668Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Alexis Hétu <sugoi@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
- 17 Jul, 2017 2 commits
-
-
Nicolas Capens authored
Visual C++ 2015 provides an actual snprintf implementation, so we shouldn't use _snprintf, which does not guarantee null-termination. Bug swiftshader:75 Change-Id: Ia45e49e77a6076e8f9f12ad74c6ad50dbdbf2dbd Reviewed-on: https://swiftshader-review.googlesource.com/10688Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
Frac() should always produce results in the range [0.0, 1.0), and thus never produce a 1.0. However, the current implementation uses x - floor(x) and this returns 1.0 for very small negative values due to catastrophic cancellation. Bug swiftshader:74 Change-Id: I942dd7cfb1f7ee3a260070e748704f005eed0b13 Reviewed-on: https://swiftshader-review.googlesource.com/10648Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
-
- 14 Jul, 2017 1 commit
-
-
Alexis Hetu authored
The code to compute the final RGB565 conversion is now generated once instead of being generated 4 times. Change-Id: Id90ddd28d6ec4fb957d8093e6b9689462751002b Reviewed-on: https://swiftshader-review.googlesource.com/10609Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Alexis Hétu <sugoi@google.com>
-
- 12 Jul, 2017 3 commits
-
-
Ben Vanik authored
Currently in debug builds swiftshader is not thread safe because of this tracking code. This change makes it safe to create/delete objects from multiple threads. Change-Id: I9c8d3efc370687891b1acc786499bda02c86ad01 Reviewed-on: https://swiftshader-review.googlesource.com/10528Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Ben Vanik <benvanik@google.com>
-
Ben Vanik authored
Fixes bug swiftshader:73. Change-Id: I6d36348996d22cf507a4badc3af90ce8d654eb71 Reviewed-on: https://swiftshader-review.googlesource.com/10510Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
Ben Vanik authored
Fixes bug swiftshader:72. Change-Id: I4fcc6c47ec8561150c88fea200aeb6baf9534c00 Reviewed-on: https://swiftshader-review.googlesource.com/10511Reviewed-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Tested-by:
Ben Vanik <benvanik@google.com>
-