OSDN Git Service

android-x86/external-swiftshader.git
7 years agoShort4 warnings fixed
Alexis Hetu [Mon, 27 Jun 2016 15:50:40 +0000 (11:50 -0400)]
Short4 warnings fixed

Switched the Short4 constructor from 'short' to 'unsigned short'
in order to accept hexadecimal values, which is generally how
Short4 values are initialized.

Change-Id: I89eb41bfd65f9071ba42dbb6a06d4349cbb89d67
Reviewed-on: https://swiftshader-review.googlesource.com/5701
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
7 years agoRe fixed minor warning
Alexis Hetu [Mon, 27 Jun 2016 20:04:31 +0000 (16:04 -0400)]
Re fixed minor warning

Turns out switching from 'size_t' to 'int' created different warnings.
Using 'unsigned int' solves all warnings.

Change-Id: I2c6c96fe6ed881bb6ce63717d53c8c5864273157
Reviewed-on: https://swiftshader-review.googlesource.com/5702
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
7 years agoImplement Reactor pointer subscript operator.
Nicolas Capens [Sat, 25 Jun 2016 06:39:23 +0000 (02:39 -0400)]
Implement Reactor pointer subscript operator.

Change-Id: I8f4604a0cd81f004d46172d286286722b6198dd5
Reviewed-on: https://swiftshader-review.googlesource.com/5700
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoFixed more windows warnings
Alexis Hetu [Thu, 23 Jun 2016 15:32:07 +0000 (11:32 -0400)]
Fixed more windows warnings

- Fixed uninitialized variables in default cases
- Fixed truncation of values to float with static_cast

Change-Id: I81f3a243e66eaeb24cd92646c6ef1ca6cb0de9ce
Reviewed-on: https://swiftshader-review.googlesource.com/5682
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoFix retaining the processing routines when no update.
Nicolas Capens [Thu, 23 Jun 2016 20:23:13 +0000 (16:23 -0400)]
Fix retaining the processing routines when no update.

Change-Id: I891c320662b046a1a4a94cf24b86b386f2fdf66e
Reviewed-on: https://swiftshader-review.googlesource.com/5690
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoFixed Windows warnings
Alexis Hetu [Thu, 23 Jun 2016 15:24:00 +0000 (11:24 -0400)]
Fixed Windows warnings

- Removed unused variables
- Removed unreachable code
- Fixed size_t <-> int conversions
- Fixed uninitialized variables

Change-Id: Ifc3912e92b8f0710094e939bd0da4757148b559a
Reviewed-on: https://swiftshader-review.googlesource.com/5681
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoUpdate to gn files for Windows
Alexis Hetu [Thu, 23 Jun 2016 15:06:46 +0000 (11:06 -0400)]
Update to gn files for Windows

This cl allows SwiftShader to be built on Windows within Chromium

Change-Id: I0fc9ec1dfc5012cc310695e13edc64c639b23fda
Reviewed-on: https://swiftshader-review.googlesource.com/5680
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoClarify Reactor arguments syntax.
Nicolas Capens [Mon, 20 Jun 2016 16:43:14 +0000 (12:43 -0400)]
Clarify Reactor arguments syntax.

Change-Id: I081fd1bf7334d8a2209b467f053b123a27627c27
Reviewed-on: https://swiftshader-review.googlesource.com/5650
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoAdditional Reactor documentation.
Nicolas Capens [Fri, 17 Jun 2016 17:47:28 +0000 (13:47 -0400)]
Additional Reactor documentation.

Change-Id: I6a55ee025662958921d51e28fdc37ececed827da
Reviewed-on: https://swiftshader-review.googlesource.com/5632
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoAdd bug tracker link.
Nicolas Capens [Fri, 17 Jun 2016 17:39:18 +0000 (13:39 -0400)]
Add bug tracker link.

Change-Id: Ib9165c2f5af911d78b55e68195af68059791e135
Reviewed-on: https://swiftshader-review.googlesource.com/5631
Reviewed-by: Shannon Woods <shannonwoods@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoEnabled pixel unpack buffers
Alexis Hetu [Fri, 17 Jun 2016 18:08:06 +0000 (14:08 -0400)]
Enabled pixel unpack buffers

Setting pixel unpack buffers was already supported, but they were still
unused. This cl enables them to be used as data when loading a texture.

This fixes ~200 pbo related dEQP tests.

Change-Id: Ibada594185dab4f14bebf892e4df817a7dfe8401
Reviewed-on: https://swiftshader-review.googlesource.com/5640
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoFix GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT query for OpenGL ES 2.0.
Nicolas Capens [Tue, 14 Jun 2016 05:08:12 +0000 (01:08 -0400)]
Fix GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT query for OpenGL ES 2.0.

It is part of GL_EXT_color_buffer_half_float.

Change-Id: Icaba1efed8b4e5ad97e583ebdad7b777cf4c7ad8
Reviewed-on: https://swiftshader-review.googlesource.com/5596
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoCombine sampler method and option into a structure.
Nicolas Capens [Wed, 15 Jun 2016 20:45:53 +0000 (16:45 -0400)]
Combine sampler method and option into a structure.

Change-Id: Ie3caecf275ffb51fbd512560cb66fcf2a32b3bbe
Reviewed-on: https://swiftshader-review.googlesource.com/5595
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Meng-Lin Wu <marleymoo@google.com>
Tested-by: Meng-Lin Wu <marleymoo@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoPerform texture coordinate projection early.
Nicolas Capens [Tue, 14 Jun 2016 02:02:36 +0000 (22:02 -0400)]
Perform texture coordinate projection early.

Change-Id: Ia907ff073bf00114b2a3e72c495bf96c5a57154e
Reviewed-on: https://swiftshader-review.googlesource.com/5592
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Meng-Lin Wu <marleymoo@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoPack texelFetch LOD as sampling coordinate's w component.
Meng-Lin Wu [Tue, 14 Jun 2016 15:11:25 +0000 (11:11 -0400)]
Pack texelFetch LOD as sampling coordinate's w component.

One less argument is emitted.

Vertex/PixelProgram sampleTexture function signature simplified.

Change-Id: I7aef3eb100ccb51a8bd9d5fd600c73b4843d30d9
Reviewed-on: https://swiftshader-review.googlesource.com/5600
Tested-by: Meng-Lin Wu <marleymoo@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoFixed writing to FORMAT_A8 and FORMAT_R8
Alexis Hetu [Wed, 15 Jun 2016 17:06:50 +0000 (13:06 -0400)]
Fixed writing to FORMAT_A8 and FORMAT_R8

Change-Id: Ia704d2c15f46effc534ae0c51fc82bf78be9428b
Reviewed-on: https://swiftshader-review.googlesource.com/5620
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Meng-Lin Wu <marleymoo@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoAdd Reactor documentation.
Nicolas Capens [Tue, 14 Jun 2016 19:36:01 +0000 (15:36 -0400)]
Add Reactor documentation.

Change-Id: Ib1b73a21dc2c3a23071e4817f24d32ad3a80c9ad
Reviewed-on: https://swiftshader-review.googlesource.com/5610
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoFix Clang compilation.
Nicolas Capens [Tue, 14 Jun 2016 03:31:26 +0000 (23:31 -0400)]
Fix Clang compilation.

non-const lvalue reference cannot bind to a temporary.

Change-Id: I561cc8cfcedace6aab949e6e496203f39af77e2e
Reviewed-on: https://swiftshader-review.googlesource.com/5594
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoMinor constant cleanup
Alexis Hetu [Mon, 13 Jun 2016 21:22:08 +0000 (17:22 -0400)]
Minor constant cleanup

In order to make the code a bit more readable and a little
less error prone, constants that are the bitwise inverted
version of other constants are computed from those constants
rather than being recomputed from scratch.

Change-Id: I27759d23e9c72b683eeafe4583b76a62e8132f19
Reviewed-on: https://swiftshader-review.googlesource.com/5590
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoR8 fragment output format
Alexis Hetu [Wed, 4 May 2016 20:23:50 +0000 (16:23 -0400)]
R8 fragment output format

Related tests pass, modulo the current masking issue.

Change-Id: Iac1103e74a9cf18c480289210dd2bd957cc41069
Reviewed-on: https://swiftshader-review.googlesource.com/5300
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agotexelFetch implementation
Meng-Lin Wu [Tue, 7 Jun 2016 20:15:12 +0000 (16:15 -0400)]
texelFetch implementation

Passes all texelFetch and texelFetchOffset tests in dEQP.

Change-Id: Ic212d326d1c062f1947696e6963fef300b7737f1
Reviewed-on: https://swiftshader-review.googlesource.com/5512
Tested-by: Meng-Lin Wu <marleymoo@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoDelete thread data at eglReleaseThread.
Nicolas Capens [Mon, 13 Jun 2016 18:35:11 +0000 (14:35 -0400)]
Delete thread data at eglReleaseThread.

Bug 29279831

Change-Id: If5dbcb3e32e88d1e574d45d3368ed114fd4f85b7
Reviewed-on: https://swiftshader-review.googlesource.com/5581
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoRefactor process/thread attach/detach.
Nicolas Capens [Sun, 12 Jun 2016 20:11:25 +0000 (16:11 -0400)]
Refactor process/thread attach/detach.

These functions looked too much like EGL entry functions.

Change-Id: I29dda78a34d3eb53aad002bec83ea7a77cfac1c8
Reviewed-on: https://swiftshader-review.googlesource.com/5580
Reviewed-by: Alexis Hétu <sugoi@google.com>
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoFix lvalue output parameter assignment.
Nicolas Capens [Sat, 11 Jun 2016 04:41:49 +0000 (00:41 -0400)]
Fix lvalue output parameter assignment.

Output parameters can be any kind of lvalue, such as struct members or
array elements.

Change-Id: I4dce9dddfa95f58275fe3f6a4acf55532330a8f7
Reviewed-on: https://swiftshader-review.googlesource.com/5570
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoFixed warnings casting int to void*
Alexis Hetu [Thu, 9 Jun 2016 20:34:46 +0000 (16:34 -0400)]
Fixed warnings casting int to void*

Change-Id: I4be5d80931689d1ac66b58b316c24b16ab6fd761
Reviewed-on: https://swiftshader-review.googlesource.com/5550
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Alexis Hétu <sugoi@google.com>
8 years agoGN files, initial check in
Alexis Hetu [Tue, 7 Jun 2016 23:53:42 +0000 (19:53 -0400)]
GN files, initial check in

First version of Chromium build files for SwiftShader.
Works for Linux only at this point.
Other platforms are there, but untested at the moment.

Change-Id: I8f389db9937feda74c7009cf7a22938dab9e69d5
Reviewed-on: https://swiftshader-review.googlesource.com/5520
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoFixed some virtual function related warnings
Alexis Hetu [Thu, 2 Jun 2016 14:53:13 +0000 (10:53 -0400)]
Fixed some virtual function related warnings

Some virtual functions with common names had different signature,
which generates warnings. These functions didn't need to be virtual,
so they are no longer virtual in order to fix the warnings.

Change-Id: I4d8f5a9fdb3f4f520efe1aea0ce5d179b519bf8b
Reviewed-on: https://swiftshader-review.googlesource.com/5461
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoFix error code on invalid shader/program operation
Nicolas Capens [Thu, 9 Jun 2016 14:01:58 +0000 (10:01 -0400)]
Fix error code on invalid shader/program operation

The spec states that GL_INVALID_OPERATION is generated when a shader or
program function is called on the wrong object type. GL_INVALID_VALUE is
generated when there's no shader nor program object by that name.

Change-Id: Ia819857b533f226a90d9a9805b254b127da8c667
Reviewed-on: https://swiftshader-review.googlesource.com/5540
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoSilence unused private member warning
Alexis Hetu [Wed, 8 Jun 2016 19:04:56 +0000 (15:04 -0400)]
Silence unused private member warning

Removed mConfig from Context and related functions.

Change-Id: I91eba6a4dbbd8ff48f212a246b1894009d513436
Reviewed-on: https://swiftshader-review.googlesource.com/5531
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoValidate level index before validating level itself.
Nicolas Capens [Wed, 8 Jun 2016 18:18:06 +0000 (14:18 -0400)]
Validate level index before validating level itself.

Change-Id: I4587cb845bf61c390942071546f2439ada618b9b
Reviewed-on: https://swiftshader-review.googlesource.com/5530
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoMoved or removed unused variables
Alexis Hetu [Thu, 2 Jun 2016 15:19:24 +0000 (11:19 -0400)]
Moved or removed unused variables

Some variables were either unused or only used in certain contexts,
like debug or tracing, so these were either removed (when unused)
or moved to the right scope (when used conditionally).
Also fixed a string format warning and a missing case warning.

Change-Id: I2d130faa992b5dc06fb332d7404a8aebc7c121ef
Reviewed-on: https://swiftshader-review.googlesource.com/5462
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoStore EGL images in a namespace.
Nicolas Capens [Tue, 7 Jun 2016 18:48:56 +0000 (14:48 -0400)]
Store EGL images in a namespace.

This allows validating the EGL image handles. It also ensures that on 64-bit
platforms the handles fit in 32-bit so they can be exchanged through 32-bit
applications (e.g. on a 32-bit virtual machine).

Change-Id: Ie02b00edd2cf7fa02b38316ee7d21c22eae720b5
Reviewed-on: https://swiftshader-review.googlesource.com/5500
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoAdd the EGL display as a context member.
Nicolas Capens [Tue, 7 Jun 2016 18:40:12 +0000 (14:40 -0400)]
Add the EGL display as a context member.

This prevents having to access the current display though TLS.

Change-Id: Ic93d0f88096a7e7e50318dbafb9b32da5fbc50a2
Reviewed-on: https://swiftshader-review.googlesource.com/5511
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Meng-Lin Wu <marleymoo@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoMinor cleanups
Alexis Hetu [Fri, 3 Jun 2016 14:57:54 +0000 (10:57 -0400)]
Minor cleanups

A few minor things fell through the cracks of previously landed cls:
- Added missing ops from TOutputTraverser::visitAggregate
- Made sure some members were initialized in TIntermAggregate
- Removed UNIMPLEMENTED() for implemented feature

Change-Id: Iec139533714ad6288f2f3962873616b5578a0ceb
Reviewed-on: https://swiftshader-review.googlesource.com/5480
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoMin LOD and Max LOD sampler parameters
Alexis Hetu [Tue, 7 Jun 2016 16:36:35 +0000 (12:36 -0400)]
Min LOD and Max LOD sampler parameters

Plumbing to send Min LOD and Max LOD from the Sampler
object in the Context to the Renderer's texture's state.

Change-Id: I6831a8e17d67e745d12a78176d566750d971ec76
Reviewed-on: https://swiftshader-review.googlesource.com/5510
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Meng-Lin Wu <marleymoo@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoLOD Base level and Max level to sampler state
Alexis Hetu [Mon, 6 Jun 2016 17:26:52 +0000 (13:26 -0400)]
LOD Base level and Max level to sampler state

Plumbing to send the LOD base level and max level from the Sampler
object in the Context to the Renderer's texture's state.

Change-Id: I5a9571f58a0cbaea8cedfb98da159672673eed94
Reviewed-on: https://swiftshader-review.googlesource.com/5501
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoTexture size fix
Alexis Hetu [Thu, 2 Jun 2016 21:47:38 +0000 (17:47 -0400)]
Texture size fix

I looked into the texture size issue and I removed the " + Int(1)"
used on the LOD and replaced it with "baseLevel", which I think makes
more sense. Without the "+1", some tests using baseLevel==1 fail, but
all tests pass when I use "+baseLevel". I'm not 100% sure why the
"+1" wasn't making tests that were using baseLevel==0 fail.

Note that, for now, the new Sampler::State "baseLevel" member will
always be 0, as the code to set it hasn't landed yet and will be in
another cl.

Change-Id: I8532bb7009abcc15e03416489f1d25027e336457
Reviewed-on: https://swiftshader-review.googlesource.com/5471
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoRemoved unused classes Vector4i and Vector4u
Alexis Hetu [Thu, 2 Jun 2016 19:44:42 +0000 (15:44 -0400)]
Removed unused classes Vector4i and Vector4u

Change-Id: Ic170d391c2fb487af8c405df15b3bab585f64273
Reviewed-on: https://swiftshader-review.googlesource.com/5470
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoFix the OpenGL ES 1.1 version string.
Nicolas Capens [Fri, 3 Jun 2016 19:16:33 +0000 (15:16 -0400)]
Fix the OpenGL ES 1.1 version string.

The 1.1.12 spec states that the string must have the format "OpenGL ES-XX N.M"
where XX is a two-character profile identifier, either CM for the Common profile
or CL for the Common-List profile, and N.M are the major and minor version numbers
of the OpenGL ES implementation, separated by a period (currently 1.1).

Bug 29072494

Change-Id: Ia7e55266c1cb1d24279f2e93f31d269f948dc647
Reviewed-on: https://swiftshader-review.googlesource.com/5490
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agotexoffset implementation
Meng-Lin Wu [Wed, 1 Jun 2016 17:54:07 +0000 (13:54 -0400)]
texoffset implementation

Related deqp tests:
textureoffset
textureprojoffset
texturelodoffset
textureprojlodoffset
texturegradoffset
textureprojgradoffset

Change-Id: Id83abe3f24ec789345a9ce7dcf6e146e2410da3b
Reviewed-on: https://swiftshader-review.googlesource.com/5451
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoAdded missing include
Alexis Hetu [Thu, 2 Jun 2016 16:52:44 +0000 (12:52 -0400)]
Added missing include

The use of std::numeric_limits requires "#include <limits>" on Linux

Change-Id: I56b09e0e551a4f898406073d2d0f11b4dcc1fed5
Reviewed-on: https://swiftshader-review.googlesource.com/5464
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoNew fragment output types
Alexis Hetu [Thu, 2 Jun 2016 14:35:59 +0000 (10:35 -0400)]
New fragment output types

This code requires flat interpolation to work properly, but otherwise
R16I and R16U types should work properly with this code. Other enums
added here (remaining combinations of R/GR/ABGR, 8/16, I/U) aren't
implemented yet.

Change-Id: Ica4e29d0421611e3178a20aadc01f3645dc793bf
Reviewed-on: https://swiftshader-review.googlesource.com/5460
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoImplement flat interpolation qualifier support.
Alexis Hetu [Fri, 20 May 2016 17:01:11 +0000 (13:01 -0400)]
Implement flat interpolation qualifier support.

By default vertex shader outputs/fragment shader inputs are
smoothly interpolated. The 'flat' keyword can be used to change
the interpolation to "flat", which basically means that no
interpolation is performed. "flat" is the only interpolation
qualifier accepted for integer types.

This change fixes all shaders/precision dEQP tests as well as a
few fragment output integer format types related tests.

Change-Id: Ic64b0ec40c705d885c255b3b671cf7460965dfee
Reviewed-on: https://swiftshader-review.googlesource.com/5390
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoUpdate the architecture layers image.
Nicolas Capens [Tue, 31 May 2016 17:47:33 +0000 (13:47 -0400)]
Update the architecture layers image.

Change-Id: Iccb3fcb70c99513ce7ffc75b14ec1887e5c21d40
Reviewed-on: https://swiftshader-review.googlesource.com/5441
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoFix image link.
Nicolas Capens [Tue, 31 May 2016 17:16:04 +0000 (13:16 -0400)]
Fix image link.

Change-Id: Iae8548c3aa7379f043be3318e59ed39b531e2f07
Reviewed-on: https://swiftshader-review.googlesource.com/5440
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoAdd design documentation.
Nicolas Capens [Mon, 30 May 2016 19:29:09 +0000 (15:29 -0400)]
Add design documentation.

Change-Id: I22abf525f9389cf942c0b66b8c34c5446dd8d306
Reviewed-on: https://swiftshader-review.googlesource.com/5431
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoAdd architecture documentation.
Nicolas Capens [Mon, 30 May 2016 15:03:26 +0000 (11:03 -0400)]
Add architecture documentation.

Change-Id: Ie28d3e61fda6fa01f5dc669a4ef3f4c0b09743d0
Reviewed-on: https://swiftshader-review.googlesource.com/5430
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoUse static_assert instead of meta macros.
Nicolas Capens [Fri, 27 May 2016 17:19:49 +0000 (13:19 -0400)]
Use static_assert instead of meta macros.

Change-Id: Id1e3a50d56475c495a3cfb82553c5bd4c48a0fc3
Reviewed-on: https://swiftshader-review.googlesource.com/5425
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoImplement floating-point conversion to the nearest representable integer.
Nicolas Capens [Mon, 11 Apr 2016 21:41:39 +0000 (17:41 -0400)]
Implement floating-point conversion to the nearest representable integer.

Bug 20724899

Change-Id: I35f63709b5773c2cefe8bf2376e6d9236dfd81f9
Reviewed-on: https://swiftshader-review.googlesource.com/5090
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoRemove snapping clipped points to the frustum plane.
Nicolas Capens [Thu, 26 May 2016 19:59:33 +0000 (15:59 -0400)]
Remove snapping clipped points to the frustum plane.

Change-Id: Iad768d095695dd8b6130a745e6741b7029fa9649
Reviewed-on: https://swiftshader-review.googlesource.com/5424
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoSupport frustum clipping against z = -1.
Nicolas Capens [Sat, 21 May 2016 04:30:54 +0000 (21:30 -0700)]
Support frustum clipping against z = -1.

This allows performing the depth range adjustment only once as part of the
viewport transform and not have it be affected by transform feedback.

Change-Id: I89fba3b131c234bea064b1b65f50b62261f4c307
Reviewed-on: https://swiftshader-review.googlesource.com/5421
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoRefactor point and line clip flag calculation.
Nicolas Capens [Thu, 26 May 2016 15:19:02 +0000 (11:19 -0400)]
Refactor point and line clip flag calculation.

Move clip flag calculation for the new polygon vertices of points and lines
from the renderer to the clipper.

Change-Id: I41ac3647d8e9376586a1011d1cf28d83e9c963a2
Reviewed-on: https://swiftshader-review.googlesource.com/5423
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoRefactor primitive setup functions.
Nicolas Capens [Thu, 26 May 2016 15:07:40 +0000 (11:07 -0400)]
Refactor primitive setup functions.

Use a pointer to member function to not explicitly pass the renderer pointer.

Change-Id: Iaccc1d7a1833fbdb433c56063c89b6178e9e2333
Reviewed-on: https://swiftshader-review.googlesource.com/5422
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agotexgrad implementation
Meng-Lin Wu [Wed, 25 May 2016 19:37:43 +0000 (15:37 -0400)]
texgrad implementation

Related deqp tests: texturegrad, textureprojgrad

Change-Id: I17529ed426c29bc1dec48fb7ac939c29caeeaf07
Reviewed-on: https://swiftshader-review.googlesource.com/5420
Tested-by: Meng-Lin Wu <marleymoo@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoTreat unsized RGBA/RGB textures as renderable.
Nicolas Capens [Tue, 24 May 2016 18:45:55 +0000 (14:45 -0400)]
Treat unsized RGBA/RGB textures as renderable.

Bug 28929520

Change-Id: I94fcac3149fafd422e1879360109b668a2ca6029
Reviewed-on: https://swiftshader-review.googlesource.com/5410
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoEnabling Transform Feedback
Alexis Hetu [Wed, 4 May 2016 20:43:21 +0000 (16:43 -0400)]
Enabling Transform Feedback

This cl enables transform feedback in Context by calling
Program::applyTransformFeedback(). It also adds the code
required to compute vertex offsets between different draw
calls, when multiple successive draw calls write into the
same transform feedback buffer(s).

Change-Id: Ib3bc4bdd1308486642f233f425d0088a55cb1333
Reviewed-on: https://swiftshader-review.googlesource.com/5301
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoVertexRoutine code for Transform Feedback
Alexis Hetu [Wed, 20 Apr 2016 19:29:51 +0000 (15:29 -0400)]
VertexRoutine code for Transform Feedback

This cl adds the code that actually performs the copy of the
vertex shader outputs into transform feedback buffers. It
also contains a fix for symmetricNormalizedDepth, which must
be computed after the information was copied into the
transform feedback buffers, when transform feedback is active.

Change-Id: I418f94a15b9425bba0905c840f8cf4828233d0fb
Reviewed-on: https://swiftshader-review.googlesource.com/5172
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoLoop count crash fixed
Alexis Hetu [Wed, 11 May 2016 14:56:43 +0000 (10:56 -0400)]
Loop count crash fixed

The loopCount function was expecting the left side of a binary op
to always be a symbol, which isn't necessarily the case, so a null
pointer check was added to prevent the crash.

Change-Id: I1fe6626bf52ecbb05664d1d2fa18f7ed830a7ee6
Reviewed-on: https://swiftshader-review.googlesource.com/5344
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoMake the number of vertex inputs configurable.
Nicolas Capens [Wed, 18 May 2016 18:44:21 +0000 (14:44 -0400)]
Make the number of vertex inputs configurable.

Change-Id: Ic078acae24dd2b2361a32498b49238b98e0ac0d1
Reviewed-on: https://swiftshader-review.googlesource.com/5386
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoMake the number of fragment inputs configurable.
Nicolas Capens [Wed, 18 May 2016 16:51:37 +0000 (12:51 -0400)]
Make the number of fragment inputs configurable.

Change-Id: I2c618c03d00718951907e81fcd600155751aac89
Reviewed-on: https://swiftshader-review.googlesource.com/5385
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoMake the number of vertex outputs configurable.
Nicolas Capens [Wed, 18 May 2016 16:32:02 +0000 (12:32 -0400)]
Make the number of vertex outputs configurable.

Change-Id: I17ae53e5274232e9e3b482daac56d507788e822c
Reviewed-on: https://swiftshader-review.googlesource.com/5383
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoFix overwriting clip flags with varyings.
Nicolas Capens [Tue, 17 May 2016 17:04:01 +0000 (13:04 -0400)]
Fix overwriting clip flags with varyings.

Previously the 12'th generic varying's w component would overwrite the
clipFlags member field.

Change-Id: I499979a2bbc653c0d95b35512a7a9e36667c2e4d
Reviewed-on: https://swiftshader-review.googlesource.com/5382
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoRename color output semantic.
Nicolas Capens [Tue, 17 May 2016 15:48:56 +0000 (11:48 -0400)]
Rename color output semantic.

Change-Id: Iaa6cf9367f291a4bc3bde899484ca323ff54a0d4
Reviewed-on: https://swiftshader-review.googlesource.com/5381
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoImplemented the EGL_KHR_create_context extension
Alexis Hetu [Wed, 18 May 2016 15:43:43 +0000 (11:43 -0400)]
Implemented the EGL_KHR_create_context extension

Implemented EGL_KHR_create_context as described here:
www.khronos.org/registry/egl/extensions/KHR/EGL_KHR_create_context.txt

A small part of it was already implemented, which was to add
support for the EGL_OPENGL_ES3_BIT bit in the EGL_RENDERABLE_TYPE
bitfield. Note that the EGL_OPENGL_ES3_BIT is explicitly disabled
on Android right now.

Change-Id: I10e6222511b29f2d91bd55bfeb0f39bc5b884f89
Reviewed-on: https://swiftshader-review.googlesource.com/5380
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoFix the CMake build for Linux.
Nicolas Capens [Tue, 17 May 2016 20:02:32 +0000 (16:02 -0400)]
Fix the CMake build for Linux.

Bug 27225594

Change-Id: Ice38ce8ca8ef157e24d309fe6ac9ce2f69e9e816
Reviewed-on: https://swiftshader-review.googlesource.com/5363
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoUpdate version.
Nicolas Capens [Mon, 16 May 2016 19:44:15 +0000 (15:44 -0400)]
Update version.

Change-Id: I47447de635055f9fadf43a71f5423e8fcba884aa
Reviewed-on: https://swiftshader-review.googlesource.com/5358
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoMove Khronos OpenGL headers to top-level include directory.
Nicolas Capens [Mon, 16 May 2016 17:16:32 +0000 (13:16 -0400)]
Move Khronos OpenGL headers to top-level include directory.

Change-Id: If473b7d83e54ccdca710dffe353b539213ae2046
Reviewed-on: https://swiftshader-review.googlesource.com/5357
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoSwitch implementation
Alexis Hetu [Mon, 2 May 2016 21:34:46 +0000 (17:34 -0400)]
Switch implementation

Implemented switch/case for glsl in OpenGL ES 3.0.
For simplicity, it is implemented as a loop without a condition,
so break statements work properly like so:

begin switch
  if(...) // 1st case
  ...
  else if(...) // other cases
  ...
  else // default case
  ...
end switch // Anchor point for break statements

All related dEQP tests pass, except 7 tests where vertex shaders
contain a switch or a loop within another switch. These 7 failures
have only about 5% of bad pixel and seem to be related to an issue
with int(floor(...)), since the equivalent tests inside the fragment
shader pass.

KNOWN ISSUE: If a switch is within a loop and one of the cases
             contains a "continue" statement, this will not be
             handled correctly at the moment. There are no dEQP
             tests for this at the moment, AFAIK.

Change-Id: I3ba34ab06a759d07e8520f6a87d75036a5cdaef5
Reviewed-on: https://swiftshader-review.googlesource.com/5272
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoAdded vertex attribute types
Alexis Hetu [Sat, 14 May 2016 02:40:02 +0000 (22:40 -0400)]
Added vertex attribute types

Added a few types:
- Half float
- 2_10_10_10_INT
- 2_10_10_10_UINT

Related dEQP tests pass.

Change-Id: I2fb04fee89c3d69367dc2e401ac53d9758add9bf
Reviewed-on: https://swiftshader-review.googlesource.com/5356
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoAdd missing license headers.
Nicolas Capens [Fri, 13 May 2016 23:30:12 +0000 (19:30 -0400)]
Add missing license headers.

Change-Id: I093be383c0c5b111592acad4cc9301711c75ab88
Reviewed-on: https://swiftshader-review.googlesource.com/5362
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoAdd readme file.
Nicolas Capens [Thu, 12 May 2016 21:27:05 +0000 (17:27 -0400)]
Add readme file.

Change-Id: I3aaf4819fa629282ebeb9f7e70fbae53c261c25d
Reviewed-on: https://swiftshader-review.googlesource.com/5355
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoOutput builds to top-level obj and bin folder.
Nicolas Capens [Thu, 12 May 2016 19:51:10 +0000 (15:51 -0400)]
Output builds to top-level obj and bin folder.

Change-Id: I1444a3d15977c2617866f293e0ac0ccbd253d878
Reviewed-on: https://swiftshader-review.googlesource.com/5353
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoMove Visual Studio solution to root directory.
Nicolas Capens [Thu, 12 May 2016 03:23:15 +0000 (23:23 -0400)]
Move Visual Studio solution to root directory.

Change-Id: Ifb474e6ab12b254599b6d1713f9f2a01b869e09d
Reviewed-on: https://swiftshader-review.googlesource.com/5361
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoFix CMake symbolic path and lower version requirement.
Nicolas Capens [Thu, 12 May 2016 20:43:33 +0000 (16:43 -0400)]
Fix CMake symbolic path and lower version requirement.

Change-Id: I7c854c0c357f480b0686b0ed12e371adca8a738f
Reviewed-on: https://swiftshader-review.googlesource.com/5354
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoCopy d3d9.dll builds to lib directory.
Nicolas Capens [Thu, 12 May 2016 02:17:26 +0000 (22:17 -0400)]
Copy d3d9.dll builds to lib directory.

Change-Id: Iea408eb9beb6aa3eec4d4e64a3bd34510411dfaa
Reviewed-on: https://swiftshader-review.googlesource.com/5360
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoDisable all LLVM signal handlers.
Nicolas Capens [Wed, 11 May 2016 18:12:49 +0000 (14:12 -0400)]
Disable all LLVM signal handlers.

This fixes issues on Android where applications use these signals in their
normal course of execution. The Mono C# framework uses SIGXCPU for garbage
collection, and ART uses SIGSEGV, SIGQUIT, and SIGUSR1.

Bug 27555932

Change-Id: I4977b8f0419da660a57a8eeef20a7fe747921a63
Reviewed-on: https://swiftshader-review.googlesource.com/5345
Reviewed-by: Greg Hartman <ghartman@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoRemove MemoryManager.
Nicolas Capens [Thu, 12 May 2016 01:42:16 +0000 (21:42 -0400)]
Remove MemoryManager.

Change-Id: I8158c0bb2c19d6cdee12a970f24785fae609d5fc
Reviewed-on: https://swiftshader-review.googlesource.com/5352
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoUpdate D3DCAPS2 descriptions to match MSDN documentation.
Nicolas Capens [Thu, 12 May 2016 01:30:03 +0000 (21:30 -0400)]
Update D3DCAPS2 descriptions to match MSDN documentation.

https://msdn.microsoft.com/en-us/library/windows/desktop/bb172511(v=vs.85).aspx

Change-Id: I2bc8251bce77aacb55fbad1c677f865395f5a986
Reviewed-on: https://swiftshader-review.googlesource.com/5351
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoAdd authors and contributors files.
Nicolas Capens [Tue, 10 May 2016 21:26:19 +0000 (17:26 -0400)]
Add authors and contributors files.

Change-Id: I192d8fe104c3734c9c37108312f1dc93470d8d9e
Reviewed-on: https://swiftshader-review.googlesource.com/5342
Reviewed-by: Shannon Woods <shannonwoods@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoAdd contributing instructions.
Nicolas Capens [Tue, 10 May 2016 20:32:58 +0000 (16:32 -0400)]
Add contributing instructions.

Change-Id: I9fe9bd339f2aacb04394259ee8753dbc8e041430
Reviewed-on: https://swiftshader-review.googlesource.com/5340
Reviewed-by: Shannon Woods <shannonwoods@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoFixed expected state when using different images for depth and stencil
Alexis Hetu [Mon, 2 May 2016 14:49:04 +0000 (10:49 -0400)]
Fixed expected state when using different images for depth and stencil

When depth and stencil are both present, they must be the same image,
or return GL_FRAMEBUFFER_UNSUPPORTED, according to the GLES 3.0 spec,
section 4.4.4, Framebuffer Completeness.

Change-Id: I607c05617fb55743635eda987da6de523385d92b
Reviewed-on: https://swiftshader-review.googlesource.com/5262
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoApply the Apache 2.0 license.
Nicolas Capens [Sat, 7 May 2016 10:09:58 +0000 (06:09 -0400)]
Apply the Apache 2.0 license.

Change-Id: I4a7aeefedcd2d891093520d5a10ebefadcddb5be
Reviewed-on: https://swiftshader-review.googlesource.com/5320
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoRemove the watermark logo.
Nicolas Capens [Thu, 28 Apr 2016 03:18:01 +0000 (23:18 -0400)]
Remove the watermark logo.

Change-Id: I72439a60850add0600face13c94cc481a7083792
Reviewed-on: https://swiftshader-review.googlesource.com/5221
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoMove LLVM to /third_party.
Nicolas Capens [Thu, 5 May 2016 23:02:54 +0000 (19:02 -0400)]
Move LLVM to /third_party.

Bug 28616401

Change-Id: Ia54134e6e1dc6b101c7f81d9047e9bcc9fab3061
Reviewed-on: https://swiftshader-review.googlesource.com/5311
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoMove PowerVR samples to /third_party/PowerVR_SDK.
Nicolas Capens [Thu, 5 May 2016 19:09:49 +0000 (15:09 -0400)]
Move PowerVR samples to /third_party/PowerVR_SDK.

Bug 28616401

Change-Id: I888ac3dd3186206c7745c23a542b91510a461f45
Reviewed-on: https://swiftshader-review.googlesource.com/5310
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoFix log2() accuracy.
Nicolas Capens [Mon, 9 May 2016 15:37:02 +0000 (11:37 -0400)]
Fix log2() accuracy.

Bug 28474248

Change-Id: I61bf28687623437c6b9b383dc189ffa28ad24c22
Reviewed-on: https://swiftshader-review.googlesource.com/5330
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoFix validating the current context on eglSwapInterval.
Nicolas Capens [Wed, 4 May 2016 05:59:24 +0000 (01:59 -0400)]
Fix validating the current context on eglSwapInterval.

Change-Id: I7f62eae32d2122ec14f400841eaefa3712cf582d
Reviewed-on: https://swiftshader-review.googlesource.com/5291
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoFix validating sync object pointers.
Nicolas Capens [Wed, 4 May 2016 01:12:29 +0000 (21:12 -0400)]
Fix validating sync object pointers.

The spec states that "If <sync> is not a valid sync object for <dpy>,
EGL_FALSE is returned and an EGL_BAD_PARAMETER error is generated."

Change-Id: I4bbd2ddfefd7baba9c301decb644bfb545e66f01
Reviewed-on: https://swiftshader-review.googlesource.com/5290
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agomodf implementation
Alexis Hetu [Tue, 3 May 2016 15:30:57 +0000 (11:30 -0400)]
modf implementation

Implemented modf as trunc + sub
Passes all related dEQP tests

Change-Id: I43656c51a670d235153e5fac390a8db311b14f8d
Reviewed-on: https://swiftshader-review.googlesource.com/5280
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoImporting log2f fix for JB-MR1
Alexis Hetu [Mon, 2 May 2016 15:20:52 +0000 (11:20 -0400)]
Importing log2f fix for JB-MR1

Bug 28474248

Change-Id: Id5b93f3494c918cb344e5da7010dfa48a25cdde1
Reviewed-on: https://swiftshader-review.googlesource.com/5263
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoFix scoping of function parameters for GLSL ES 1.0
Nicolas Capens [Tue, 26 Apr 2016 14:18:31 +0000 (14:18 +0000)]
Fix scoping of function parameters for GLSL ES 1.0

This reverts commit 0637eac3b8fd276596b303aaa7e5d59a3accccf8.
It's considered a spec bug:
https://cvs.khronos.org/bugzilla/show_bug.cgi?id=8656

Change-Id: Id49121d5adf91ecab3d261c3c12e2f879f47e856
Reviewed-on: https://swiftshader-review.googlesource.com/5192
Reviewed-by: Shannon Woods <shannonwoods@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoFix sampler-array-using-loop-index.html regression.
Nicolas Capens [Fri, 29 Apr 2016 17:35:00 +0000 (13:35 -0400)]
Fix sampler-array-using-loop-index.html regression.

Change-Id: I1d1a716bd9bd5b636c5b263a7094ff13ac9aa549
Reviewed-on: https://swiftshader-review.googlesource.com/5260
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoUse a wildcard for detecting GCE builds.
Nicolas Capens [Fri, 29 Apr 2016 18:17:00 +0000 (14:17 -0400)]
Use a wildcard for detecting GCE builds.

Change-Id: Iddd9acf8496abe4dfa147f8a59b4cfb2f23df3a7
Reviewed-on: https://swiftshader-review.googlesource.com/5261
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoTransform feedback buffer assignment
Alexis Hetu [Thu, 21 Apr 2016 17:17:07 +0000 (13:17 -0400)]
Transform feedback buffer assignment

This cl adds a utility function that assigns the correct buffer
for each linked transform feedback variable. All the information
about location and size is sent to the VertexProcessor for use
during rendering.

Change-Id: I942805250804f56805de1fc117024c20976e83a0
Reviewed-on: https://swiftshader-review.googlesource.com/5174
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoDon't continue looping when having returned from shader function.
Nicolas Capens [Thu, 28 Apr 2016 19:28:02 +0000 (15:28 -0400)]
Don't continue looping when having returned from shader function.

Previously we would mask instruction execution after hitting a LEAVE,
but still jump back on every loop iteration (even if infinite). This
change applies the enableLeave mask to the loop test condition so we
break out of the loop when all strands have hit LEAVE.

Change-Id: Ia331a91fb363d20743d5b87a468c3cfcaa7b481e
Reviewed-on: https://swiftshader-review.googlesource.com/5250
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoFixed not equal folding
Alexis Hetu [Thu, 28 Apr 2016 16:45:48 +0000 (12:45 -0400)]
Fixed not equal folding

The not equal folding logic was wrong. It would end the loop
as soon as it found equal components, which was checking if
ALL components are not equal, but that's not how not equal
works, it should return true if ANY component is not equal.

I also refactored it because it was hard to follow, with the
boolNodeFlag variable being used upside down of the result.

Change-Id: I704f26f2fd31a1cc637f5d7601409de8161c5b80
Reviewed-on: https://swiftshader-review.googlesource.com/5211
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoSRGB implementation
Alexis Hetu [Mon, 25 Apr 2016 20:59:58 +0000 (16:59 -0400)]
SRGB implementation

The SRGB conversion code was already available, but wasn't used
specifically for the SRGB type framebuffers. Also, the SRGB
conversion should always be applied after blending.

According to the GLES 3.0 spec, section 4.1.8 - sRGB Conversion:
"the R, G, and B values after blending are converted
 into the non-linear sRGB color space by computing."

All related dEQP tests pass.

Change-Id: I9342d2f74aa650f28835a951bdfa8bd371bc6924
Reviewed-on: https://swiftshader-review.googlesource.com/5189
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoFix indexing of samplers in structures.
Nicolas Capens [Tue, 26 Apr 2016 05:10:24 +0000 (01:10 -0400)]
Fix indexing of samplers in structures.

Change-Id: I0bde678865902d549d4260bf8f6c1a368a46f4d4
Reviewed-on: https://swiftshader-review.googlesource.com/5191
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoWork around LLVM integer vector compare bug.
Nicolas Capens [Thu, 28 Apr 2016 03:08:50 +0000 (23:08 -0400)]
Work around LLVM integer vector compare bug.

Change-Id: If90d45b5f0c83620486dd7b6decc2f0f5fc7e558
Reviewed-on: https://swiftshader-review.googlesource.com/5220
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoTexture projection constant folding
Alexis Hetu [Wed, 27 Apr 2016 18:43:08 +0000 (14:43 -0400)]
Texture projection constant folding

Whenever texture projection is used with a constant texture
coordinate, folding allows to use the full precision reciprocal
and not generate the lower precision reciprocal operation.

Change-Id: I6cab6567d63ecd9abe1cedbd7e46e1fd9099a3d3
Reviewed-on: https://swiftshader-review.googlesource.com/5210
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>