OSDN Git Service

android-x86/external-swiftshader.git
8 years agoSet the EGL_NATIVE_VISUAL_ID attribute for Android HAL formats.
Nicolas Capens [Fri, 30 Oct 2015 18:05:23 +0000 (14:05 -0400)]
Set the EGL_NATIVE_VISUAL_ID attribute for Android HAL formats.

Bug 25390254

Change-Id: I6ac37912435e2c73f5e905db7c78af7884f0c93c
Reviewed-on: https://swiftshader-review.googlesource.com/4187
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoEnumerate RGB config formats.
Nicolas Capens [Fri, 30 Oct 2015 17:54:24 +0000 (13:54 -0400)]
Enumerate RGB config formats.

Bug 25390254

Change-Id: Ibd8fc3a957f9ecf5480490e9504fa7041c7c9fa2
Reviewed-on: https://swiftshader-review.googlesource.com/4186
Reviewed-by: Alexis Hétu <sugoi@google.com>
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoSet EGL_FRAMEBUFFER_TARGET_ANDROID on configs matching the framebuffer.
Nicolas Capens [Fri, 30 Oct 2015 17:50:31 +0000 (13:50 -0400)]
Set EGL_FRAMEBUFFER_TARGET_ANDROID on configs matching the framebuffer.

Only configs with formats that match the system's framebuffer format should
advertised the EGL_FRAMEBUFFER_TARGET_ANDROID attribute.

Bug 25390254

Change-Id: I81e1a0365e151ed7082e3315399748e93c531ccc
Reviewed-on: https://swiftshader-review.googlesource.com/4185
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoDetermine the framebuffer format from the fb0 device.
Nicolas Capens [Fri, 30 Oct 2015 17:39:52 +0000 (13:39 -0400)]
Determine the framebuffer format from the fb0 device.

Bug 25390254

Change-Id: I21ed5b6d4a918bb6c3ac9ccc31ee5d47e193bd7f
Reviewed-on: https://swiftshader-review.googlesource.com/4184
Reviewed-by: Alexis Hétu <sugoi@google.com>
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoUse the AOSP build configuration.
Nicolas Capens [Thu, 29 Oct 2015 14:25:32 +0000 (10:25 -0400)]
Use the AOSP build configuration.

Change-Id: I8fb7499ac9d7d858a785c81d1e8e0a8511cab73c
Reviewed-on: https://swiftshader-review.googlesource.com/4182
Reviewed-by: Greg Hartman <ghartman@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoLocal variables hide function arguments
Veranika Liaukevich [Wed, 28 Oct 2015 18:25:27 +0000 (14:25 -0400)]
Local variables hide function arguments

Definitions of variables inside functions should be located in a scope
different from function's arguments scope.

Change-Id: I89fe1f527681c68963f4a69c71b78975787a410c
Reviewed-on: https://swiftshader-review.googlesource.com/4180
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Veranika Liaukevich <veranika@google.com>
8 years agoModify glslang.y to support Bison 3.0.2.
Veranika Liaukevich [Thu, 22 Oct 2015 15:29:04 +0000 (11:29 -0400)]
Modify glslang.y to support Bison 3.0.2.

For this patch lexer and parser files were regenerated with newer versions
of Flex(2.5.39) and Bison(3.0.2). Because YYLEX_PARAM was deprecated and removed
from Bison, it was replaced with %param. The change was inspired by Angle source
code.

Change-Id: I7ac60041aabb78567860653a0663ec9adb205e8a
Reviewed-on: https://swiftshader-review.googlesource.com/4115
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Veranika Liaukevich <veranika@google.com>
8 years agoFix missing luminance and alpha floating-point format selection.
Nicolas Capens [Wed, 28 Oct 2015 22:53:23 +0000 (18:53 -0400)]
Fix missing luminance and alpha floating-point format selection.

Bug 25351037

Change-Id: I0c758a218d15116fa5593eb9ddb783141ff93146
Reviewed-on: https://swiftshader-review.googlesource.com/4181
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 missing bitcasts.
Nicolas Capens [Wed, 28 Oct 2015 05:58:18 +0000 (01:58 -0400)]
Add missing bitcasts.

Bug 25322177

Change-Id: I4bf200e534cc1100db1ae777502f794047df81e5
Reviewed-on: https://swiftshader-review.googlesource.com/4170
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 load functionality for integer types
Alexis Hetu [Fri, 23 Oct 2015 18:43:54 +0000 (14:43 -0400)]
Texture load functionality for integer types

- Added cases required to load integer type textures into
  swiftshader's internal formats.
- Cleaned up copy functions that simply perform a memcpy
  for a given number of bytes per row.
- Removed unused functionality for mini floats. Right now,
  all we need is the ability to import these formats, so
  there's currently no need to keep the export code.

Change-Id: I61500c41e668f885d3ec1e687b6f888c117221f2
Reviewed-on: https://swiftshader-review.googlesource.com/4140
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoNew read/write cases for integer types
Alexis Hetu [Thu, 22 Oct 2015 14:57:58 +0000 (10:57 -0400)]
New read/write cases for integer types

Added new read/write functionality for integer types. Also added cases for integer types in some utility functions.

Change-Id: I5efc7c4957d3a1591b47a5df888a9534776033be
Reviewed-on: https://swiftshader-review.googlesource.com/4114
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoRevert "Implementation of EGL_KHR_swap_buffers_with_damage."
Nicolas Capens [Thu, 22 Oct 2015 00:09:10 +0000 (20:09 -0400)]
Revert "Implementation of EGL_KHR_swap_buffers_with_damage."

Bug 25161109

This reverts commit 810f99be7600e677c8723fe4f3267a6232b4e8a1.
It was only a workaround, which we no longer need after removing
the libandroid dependency which caused circular symbol resolves.

Change-Id: I0b486b5acfd328c0f64379e2c2dc2db00626738f
Reviewed-on: https://swiftshader-review.googlesource.com/4130
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoInteger types support in Blitter
Alexis Hetu [Wed, 21 Oct 2015 19:32:16 +0000 (15:32 -0400)]
Integer types support in Blitter

The blitter now supports integer types. This means:
- It supports conversions to/from integer types from/to
  other already supported types.
- It supports integer to integer conversions without going
  to an intermediate float format.

Also added a Blitter::GetScale() function to avoid having
2 instances of the same switch statement in the code and
added the read/write utility functions. The final Blitter
code is not longer peppered with switch statements and is,
hopefully, easier to read that way.

Change-Id: I80de519aaaa768f8cedd98f97dc4414dda75bf54
Reviewed-on: https://swiftshader-review.googlesource.com/4113
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoBreak the dependency on the wrapper libEGL.
Greg Hartman [Wed, 21 Oct 2015 23:14:21 +0000 (16:14 -0700)]
Break the dependency on the wrapper libEGL.

This was causing dlsym to return the pointer to the wrapper's function when
SwiftShader didn't support an entry point.

Bug 25152138

Change-Id: I92d1c9258c823acf0dc60dca9dc3d7dd552512b3
Reviewed-on: https://swiftshader-review.googlesource.com/4120
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
Tested-by: Greg Hartman <ghartman@google.com>
8 years agoFix function signature for Windows.
Nicolas Capens [Wed, 21 Oct 2015 19:49:43 +0000 (15:49 -0400)]
Fix function signature for Windows.

Change-Id: I604b2f755ece6a0a411562e9229a39040b3b0153
Reviewed-on: https://swiftshader-review.googlesource.com/4112
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoSwizzle fix
Alexis Hetu [Wed, 21 Oct 2015 19:36:50 +0000 (15:36 -0400)]
Swizzle fix

Added initialization for swizzle related members of Sampler

Change-Id: I81f7aad5274696390e73c32ff1b424687e9f5943
Reviewed-on: https://swiftshader-review.googlesource.com/4111
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Alexis Hétu <sugoi@google.com>
8 years agoNew enums for new texture formats
Alexis Hetu [Wed, 21 Oct 2015 17:36:35 +0000 (13:36 -0400)]
New enums for new texture formats

Added new enums for:
- 8/16/32 bit integers
- R, RG, RGB, RGBA
- Normalized and unnormalized

Also fixed FORMAT_LAST.

Change-Id: Ie3eb5286820c44490630e302907350358a1d85dc
Reviewed-on: https://swiftshader-review.googlesource.com/4110
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoTextureSize implementation
Alexis Hetu [Wed, 22 Jul 2015 21:03:26 +0000 (17:03 -0400)]
TextureSize implementation

Initial TextureSize parsing and implementation

Change-Id: I8b9b1808366b1013a5001e2dfa15a26d8471ab6a
Reviewed-on: https://swiftshader-review.googlesource.com/3753
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoImplementation of EGL_KHR_swap_buffers_with_damage.
Nicolas Capens [Thu, 24 Sep 2015 20:25:06 +0000 (16:25 -0400)]
Implementation of EGL_KHR_swap_buffers_with_damage.

Bug 24111119

This is a trivial implementation which does not actually optimize
compositing using the damage rects. That can be implemented later.

Change-Id: Ibf511ef166a33b1d2f1826bfc5618765062fe2a2
Reviewed-on: https://swiftshader-review.googlesource.com/4014
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoImplementation of EGL_KHR_fence_sync.
Nicolas Capens [Thu, 15 Oct 2015 08:49:54 +0000 (04:49 -0400)]
Implementation of EGL_KHR_fence_sync.

Bug 21662268

Change-Id: Iefdc18303c42967ccc25fd6580851e05520dc2b9
Reviewed-on: https://swiftshader-review.googlesource.com/4071
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoAdded new swizzle parameters to Sampler's state
Alexis Hetu [Tue, 29 Sep 2015 15:50:05 +0000 (11:50 -0400)]
Added new swizzle parameters to Sampler's state

The new parameters are: swizzleR, swizzleG, swizzleB, swizzleA.

Also, parameters sent from the context that can be either
originating from the Texture object or the Sampler object
are now sent from the correct origin.

An implementation for the swizzleR, swizzleG, swizzleB, swizzleA
parameters was done in SamplerCore. All related dEQP tests pass.

Change-Id: I45405a0d241d0e70a91a3c56357c7bc04c7dc75a
Reviewed-on: https://swiftshader-review.googlesource.com/4017
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoAdjusting texture completeness checks
Alexis Hetu [Mon, 5 Oct 2015 17:17:35 +0000 (13:17 -0400)]
Adjusting texture completeness checks

Mipmap levels used in texture sampling must be limited by the
texture's base level (default: 0) and max level (default: 1000).
This has an effect on texture completeness, since only the
required levels are required to be present in the texture to be
considered complete.

Change-Id: I31dd87d5a4306622e469c2546107b59f6e51c7dd
Reviewed-on: https://swiftshader-review.googlesource.com/4039
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoUnpack row length fix
Alexis Hetu [Thu, 15 Oct 2015 21:05:30 +0000 (17:05 -0400)]
Unpack row length fix

The unpack row length was supposed to replace the width, not the
pitch, of the input image, which explains why related tests were
failing.

Change-Id: I7bd46e057bae4113b31d072fd6748d9dd6043feb
Reviewed-on: https://swiftshader-review.googlesource.com/4080
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoNew Short->Int and UShort->Int constructors
Alexis Hetu [Wed, 14 Oct 2015 20:32:39 +0000 (16:32 -0400)]
New Short->Int and UShort->Int constructors

Added 2 new constructors for the Int4 class in Nucleus,
which are for conversion to Int4 from Short4 or UShort4.
Some of the required code was extracted from Float4
constructors, which were cleaned up to remove the
duplicate code.

All 4 constructors (2 new Int4 and 2 modified Float4)
behaved properly in dEQP tests.

Change-Id: Ib400ea27a867d31901f4a9ca08bf6093f186b277
Reviewed-on: https://swiftshader-review.googlesource.com/4060
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoFix mixed type call to max
Greg Hartman [Thu, 8 Oct 2015 05:56:08 +0000 (22:56 -0700)]
Fix mixed type call to max

Change-Id: I12c262fbdc2b2b489c02871fb9477bf25a0cfb6b
Reviewed-on: https://swiftshader-review.googlesource.com/4050
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Greg Hartman <ghartman@google.com>
8 years agoSet default thread count to 1 for debug builds.
Greg Hartman [Fri, 2 Oct 2015 23:29:40 +0000 (16:29 -0700)]
Set default thread count to 1 for debug builds.

Change-Id: I14673f17ef0f299a7ead5bc55bd6729f37759b19
Reviewed-on: https://swiftshader-review.googlesource.com/3870
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Greg Hartman <ghartman@google.com>
8 years agoNew format conversion classes and routines
Alexis Hetu [Fri, 18 Sep 2015 15:38:31 +0000 (11:38 -0400)]
New format conversion classes and routines

- A new routine has been added to convert from any component of
  8bit sRGB data to 8bit linear RGB, using a precomputed array.
- Two new classes have been added to easily convert to and from
  the RGB9E5 format and the R11G11B10F format.

Change-Id: I85ca58bed30bcd5a9130bca5040d351badabb19e
Reviewed-on: https://swiftshader-review.googlesource.com/3990
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoRemove the dependency on GCE for display size.
Nicolas Capens [Thu, 1 Oct 2015 05:09:27 +0000 (01:09 -0400)]
Remove the dependency on GCE for display size.

Change-Id: I201ffae8193cfcac48a7ad3446f4b79da6c3d217
Reviewed-on: https://swiftshader-review.googlesource.com/4032
Tested-by: Greg Hartman <ghartman@google.com>
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoETC2 decoder
Alexis Hetu [Wed, 9 Sep 2015 17:56:41 +0000 (13:56 -0400)]
ETC2 decoder

A new ETC2 decoder was added to SwiftShader, based on the
OpenGL ETC2 specification. The decoder is fully standalone
and does not rely on any outside code (there are no files
included in the header and the source file only include the
header file, so it can easily be ported to any other project).

Things to note:
- In Surface.cpp, signed ETC2 images are decoded to full 32FP
  images, because of the lack of support for signed 8 bit R
  and RG internal formats. This should be fixed as soon as
  these formats are made available.
- sRGB conversion is not performed within the decoder, so it has
  been added as a loop inside Surface::decodeETC2 after the ETC2
  decoding is performed. This is to make sure that there is no
  loss of precision, should we choose to do the conversion to a
  higher bit precision format. The loop is fairly straightforward
  and does the conversion in place, so the impact on performance
  compared to doing the sRGB conversion in the decoder should be
  minimal.

Change-Id: I3a1af623353344bf35818ba9c9f4cf349b587e2f
Reviewed-on: https://swiftshader-review.googlesource.com/3960
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoMatrix determinant and inverse implementation
Alexis Hetu [Wed, 23 Sep 2015 16:27:32 +0000 (12:27 -0400)]
Matrix determinant and inverse implementation

Implementation for determinant has been done directly in
ShaderCore in order to avoid having to allocate temporaries
manually in OutputASM.

For now, the implementation for the inverse matrix is very
simple, i.e., it doesn't attempt to re-use results from the
cofactor matrix computation to compute the determinant or
do any other kind of optimization, but it works.

Change-Id: I0fc70133809ae2752dc567bf58b60d7af7a88009
Reviewed-on: https://swiftshader-review.googlesource.com/4000
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
8 years agoFixed non square matrix multiplication
Alexis Hetu [Fri, 11 Sep 2015 19:06:48 +0000 (15:06 -0400)]
Fixed non square matrix multiplication

A few cases of matrix multiplication weren't working properly
due to using the wrong matrix dimension. For example, if we
have the following matrix operation (using matColRow):
mat32 = mat22 * mat32
This results in 3 multiplication of 2 element vectors for each
row of the result and the current code (before this cl) would
only perform 2 multiplications and produce the wrong result.

This cl should fix all uses of the * operator and of the
matrixCompMult function when using non square matrices.

Change-Id: Id0dbfd9d65c20102220049c34435c37e3db7f9da
Reviewed-on: https://swiftshader-review.googlesource.com/3966
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoCopy-paste error fixed
Alexis Hetu [Mon, 28 Sep 2015 14:59:11 +0000 (10:59 -0400)]
Copy-paste error fixed

Fixed 2 occurrences of setCompareMode being used instead
of setImmutableFormat and added a missing break statement.

Change-Id: I1013d0983220ba155dcd4f6255c6e089f03e7fc8
Reviewed-on: https://swiftshader-review.googlesource.com/4016
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoFixed Temporary issues
Alexis Hetu [Fri, 25 Sep 2015 17:09:56 +0000 (13:09 -0400)]
Fixed Temporary issues

Some issues, like failures using the do-while command, were caused
by the assembler being unable to assign registers consistently for
a single temporary variable. For example, in the do-while case, the
"iterate" Temporary object was not being assigned to the same
register between it's initial declaration and it's usage inside the
loop condition later on, causing the do-while to behave weirdly.
Other instances where multiple Temporary objects ended up being used
simultaneously of where a single object was references in multiple
parts of the code could have failed because of this.

The fix is simply to assign Temporary objects a unique ID.

Change-Id: Ie48c596b4c6570853702cab71497b3e00a40c2a0
Reviewed-on: https://swiftshader-review.googlesource.com/4015
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoDisable R5G6B5 conversion in gralloc.
Nicolas Capens [Fri, 4 Sep 2015 17:31:30 +0000 (13:31 -0400)]
Disable R5G6B5 conversion in gralloc.

Bug 20891368

Change-Id: Ie293159d2092985c496202eb25733e69f9a3ff6f
Reviewed-on: https://swiftshader-review.googlesource.com/3252
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Greg Hartman <ghartman@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoEnable R5G6B5 as an internal format.
Nicolas Capens [Fri, 4 Sep 2015 14:45:43 +0000 (10:45 -0400)]
Enable R5G6B5 as an internal format.

Bug 20891368

Change-Id: Iea526eebe65616079578563126a6958d87647eb1
Reviewed-on: https://swiftshader-review.googlesource.com/3255
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoFix makefile typo.
Nicolas Capens [Thu, 24 Sep 2015 07:44:03 +0000 (03:44 -0400)]
Fix makefile typo.

Change-Id: I4f610396af2d31792d9b9e452abd8ac597eb1aee
Reviewed-on: https://swiftshader-review.googlesource.com/4011
Reviewed-by: Greg Hartman <ghartman@google.com>
Tested-by: Greg Hartman <ghartman@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoMinor PixelRoutine cleanup
Alexis Hetu [Tue, 11 Aug 2015 14:15:34 +0000 (10:15 -0400)]
Minor PixelRoutine cleanup

- Removed redundant parameters from fogBlend()
- Moved computation registers and color output
  registers from PixelRoutine to PixelProgram.
- Made many PixelRoutine member functions
  private rather than protected when possible.

Change-Id: I748333626d993c0d46b369991d74bc3a22c972c2
Reviewed-on: https://swiftshader-review.googlesource.com/3850
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Alexis Hétu <sugoi@google.com>
8 years agoFloating point parameters should be rounded, not truncated
Alexis Hetu [Thu, 10 Sep 2015 20:57:44 +0000 (16:57 -0400)]
Floating point parameters should be rounded, not truncated

Bug 20724899

Change-Id: I03f858ee3d159cfa2541afa1d8d063ca99701a4c
Reviewed-on: https://swiftshader-review.googlesource.com/3964
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoFixed uint uniforms
Alexis Hetu [Thu, 10 Sep 2015 20:55:03 +0000 (16:55 -0400)]
Fixed uint uniforms

uint uniforms were failing because of a missing condition.
This only affected uint scalars, uint vectors were unaffected.

Change-Id: Ia2338a683f1e6f5f9b6944aae72e2dbec70a8ef2
Reviewed-on: https://swiftshader-review.googlesource.com/3963
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoImplement RGB565 multisample resolve.
Nicolas Capens [Fri, 4 Sep 2015 13:18:15 +0000 (09:18 -0400)]
Implement RGB565 multisample resolve.

Bug 20891368

Change-Id: I29054ccc0a91fdc41d26d26dd4f55dfd4dfca7e4
Reviewed-on: https://swiftshader-review.googlesource.com/3952
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoImprove color clear precision.
Nicolas Capens [Tue, 22 Sep 2015 16:26:30 +0000 (12:26 -0400)]
Improve color clear precision.

Change-Id: Ib9dadf3d8fee0f63deb10e6754856c0530c928ab
Reviewed-on: https://swiftshader-review.googlesource.com/3995
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoRemove unused readPixel() parameter.
Nicolas Capens [Tue, 22 Sep 2015 14:11:00 +0000 (10:11 -0400)]
Remove unused readPixel() parameter.

Bug 22375329

Change-Id: Ifeb8017d50224b784dedd6197779c6ebfa5cf484
Reviewed-on: https://swiftshader-review.googlesource.com/3994
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 RGB565 rounding.
Nicolas Capens [Tue, 22 Sep 2015 13:53:45 +0000 (09:53 -0400)]
Fix RGB565 rounding.

Bug 20891368

Change-Id: Icc0957db55cf82e42c0ccb2c8881332f71f52f5f
Reviewed-on: https://swiftshader-review.googlesource.com/3993
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoCreate debug builds of more SwiftShader projects
Greg Hartman [Wed, 16 Sep 2015 22:27:27 +0000 (15:27 -0700)]
Create debug builds of more SwiftShader projects

Change-Id: If2fb1ba3ab1428086ec35bc5824e4307156c67a0
Reviewed-on: https://swiftshader-review.googlesource.com/3980
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Greg Hartman <ghartman@google.com>
8 years agoFixed condition too strict in glBindSampler
Alexis Hetu [Thu, 10 Sep 2015 21:02:54 +0000 (17:02 -0400)]
Fixed condition too strict in glBindSampler

glBindSampler's sampler check was too strict, as the
sampler needed to exist, but not necessarily to have
been allocated yet, so the condition was fixed.

Change-Id: Ia8301028dbf35efa16bfc6cb74a69e105d8a505d
Reviewed-on: https://swiftshader-review.googlesource.com/3965
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoFixed a few issues related to transform feedback buffers
Alexis Hetu [Thu, 10 Sep 2015 20:52:39 +0000 (16:52 -0400)]
Fixed a few issues related to transform feedback buffers

- Transform feedback buffers are now properly cleared when
  the object is deleted
- Transform feedback buffers are now properly detached when
  a buffer is deleted
- Ending a transform feedback now properly sets its PAUSED
  state to false
- Added missing enums to Context::getQueryParameterInfo.
  GL_READ_FRAMEBUFFER_BINDING_ANGLE was also missing, so
  it was also added in this cl.

Change-Id: I286caec119d5ae3adde95c4cce7f0298b8f836c3
Reviewed-on: https://swiftshader-review.googlesource.com/3962
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoFixed texture format checks
Alexis Hetu [Fri, 18 Sep 2015 15:44:23 +0000 (11:44 -0400)]
Fixed texture format checks

- Fixed a few typos in the format map
- Added missing OpenGL ES 3.0 types to CheckTextureFormatType

Change-Id: I4a0d8ad67fd85f8c32ef528ce1b3c029fe5f84aa
Reviewed-on: https://swiftshader-review.googlesource.com/3991
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Alexis Hétu <sugoi@google.com>
8 years agoAdded gl_FragDepth
Alexis Hetu [Mon, 21 Sep 2015 12:03:54 +0000 (08:03 -0400)]
Added gl_FragDepth

Change-Id: I9e70cd5e230a86ef3e4bed1884ede14a128c2d67
Reviewed-on: https://swiftshader-review.googlesource.com/3992
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Alexis Hétu <sugoi@google.com>
8 years agoAdd missing stdlib.h, needed for atoi
Greg Hartman [Fri, 11 Sep 2015 04:29:16 +0000 (21:29 -0700)]
Add missing stdlib.h, needed for atoi

Change-Id: I859db3be12c24fc4544dc3780e5fdf5c598412d8
Reviewed-on: https://swiftshader-review.googlesource.com/3970
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Greg Hartman <ghartman@google.com>
8 years agoAllow 0x0 dimension default framebuffers.
Nicolas Capens [Fri, 28 Aug 2015 21:04:48 +0000 (17:04 -0400)]
Allow 0x0 dimension default framebuffers.

Bug 23041739

Change-Id: I1bec1fa05e8cf81864f8c0c2f49cf9c8093de5e0
Reviewed-on: https://swiftshader-review.googlesource.com/3934
Reviewed-by: Greg Hartman <ghartman@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 agoEnumerate multisampled EGL configs.
Nicolas Capens [Tue, 1 Sep 2015 05:38:00 +0000 (01:38 -0400)]
Enumerate multisampled EGL configs.

Bug 23535380

Change-Id: I4bc3d9821812253df46262f59d9a55a5802f00b0
Reviewed-on: https://swiftshader-review.googlesource.com/3936
Reviewed-by: Greg Hartman <ghartman@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoSimplify and centralize multisample counts.
Nicolas Capens [Thu, 3 Sep 2015 20:41:09 +0000 (16:41 -0400)]
Simplify and centralize multisample counts.

Change-Id: I012bb669444e28f844c5571ff639b31dd1a35e1d
Reviewed-on: https://swiftshader-review.googlesource.com/3950
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 glGetInternalformativ()
Nicolas Capens [Wed, 2 Sep 2015 20:52:38 +0000 (16:52 -0400)]
Fix glGetInternalformativ()

Change-Id: Id2c07064a68158d3a4d57974244feae1c15e2fa1
Reviewed-on: https://swiftshader-review.googlesource.com/3940
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoHandling ETC2, EAC and ASTC related enums
Alexis Hetu [Tue, 1 Sep 2015 14:58:37 +0000 (10:58 -0400)]
Handling ETC2, EAC and ASTC related enums

Note that no decoding functionality is added here.
This cl merely acknowledges textures of the ETC2, EAC
and ASTC format by handling their related enums in
SwiftShader, and the byte data is then allowed to be
passed down all the way to the Surface object, where
the decoding code will be added. Also note that this
cl does not add the extensions strings required for
ASTC support, so ASTC is still unsupported after this cl.

Change-Id: I1d8aed0fb64b0d4c72846e87410750d1e485c46b
Reviewed-on: https://swiftshader-review.googlesource.com/3938
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoMultisampling value of 1
Alexis Hetu [Thu, 2 Jul 2015 17:46:59 +0000 (13:46 -0400)]
Multisampling value of 1

Setting a multisampling values of 0 or 1 are apparently
2 different cases, so I tried removing the even number
check to fix this. It didn't break any tests, but I'm
not sure how well this is covered by the tests.

Change-Id: I0e7de9b153288f0c07bde9a2f104ea1d2bf230ac
Reviewed-on: https://swiftshader-review.googlesource.com/3622
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoImplement support for YV12 texture sampling.
Nicolas Capens [Tue, 1 Sep 2015 18:39:57 +0000 (14:39 -0400)]
Implement support for YV12 texture sampling.

Bug 21572252

Change-Id: Iaf54b4d960dbc243c40f981e1c73c199481e2d28
Reviewed-on: https://swiftshader-review.googlesource.com/3930
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoTest for 8-bit components instead of not 16-bit components.
Nicolas Capens [Tue, 1 Sep 2015 14:23:33 +0000 (10:23 -0400)]
Test for 8-bit components instead of not 16-bit components.

Bug 21572252

Change-Id: I0c5aedf4fec7238544c1d716f65f0fd91cd59b57
Reviewed-on: https://swiftshader-review.googlesource.com/3937
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoEnable glsl integer code
Alexis Hetu [Thu, 20 Aug 2015 18:10:33 +0000 (14:10 -0400)]
Enable glsl integer code

This cl enables true integer support in glsl shaders.
It still uses floating point registers to store all
registers, regardless of the type, so integer and
unsigned integer variables are simply reinterpreted
as integers or unsigned integers and used as such by
the appropriate instructions.

Change-Id: If62213c917b4b0c907e58db9cd36944dd198beaa
Reviewed-on: https://swiftshader-review.googlesource.com/3910
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoHandling new opcodes in PixelProgram and VertexProgram
Alexis Hetu [Fri, 28 Aug 2015 18:24:45 +0000 (14:24 -0400)]
Handling new opcodes in PixelProgram and VertexProgram

The new opcodes related to true int and uint support in
glsl shader are now handled properly in PixelProgram and
VertexProgram.

Change-Id: I62565844f24708b4bd89dd99bbf971b55495c5da
Reviewed-on: https://swiftshader-review.googlesource.com/3932
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoImplement EGL_LARGEST_PBUFFER.
Nicolas Capens [Fri, 28 Aug 2015 18:23:52 +0000 (14:23 -0400)]
Implement EGL_LARGEST_PBUFFER.

Bug 23041720

Change-Id: I9f6bed0a3d239a0adde9cc4e90cc368f078f3662
Reviewed-on: https://swiftshader-review.googlesource.com/3902
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoLog parameters of invalid surface creation.
Nicolas Capens [Tue, 25 Aug 2015 19:14:36 +0000 (15:14 -0400)]
Log parameters of invalid surface creation.

Change-Id: I8be27042263ae80da3e01dce6c84dcf43645a232
Reviewed-on: https://swiftshader-review.googlesource.com/3911
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
8 years agoBuild fix for Linux
Alexis Hetu [Fri, 28 Aug 2015 18:39:13 +0000 (14:39 -0400)]
Build fix for Linux

Adding the proper #include <limits.h> for Linux when using
INT_MAX and/or UINT_MAX.

Fixed ShaderCore.cpp and preemptively fixed libGLESv3.cpp.

Change-Id: Iedd445157f3de8c08394e6d2c9f99539eb123845
Reviewed-on: https://swiftshader-review.googlesource.com/3933
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoNew integer related core functions
Alexis Hetu [Tue, 18 Aug 2015 19:43:09 +0000 (15:43 -0400)]
New integer related core functions

- Removed float <-> int bit conversion functions, as these
  will not be needed if everything is stored as float.
- Added ineg for the minus (-) sign in from of a value.
- Added f2i/i2f/f2u/u2f for float <-> int conversions
- Added b2i/i2b/b2u/u2b for bool <-> int conversions
- Added iadd, isub, imul, imad, [iu]div, [iu]mod, [iu]min,
  [iu]max for these basic operations as integer operations.
- Added left and right shifts
- Added ucmp to compare unsigned values
- Modified or/xor/and to support vectors instead of only
  scalars.
- Added vector equality comparison functions

Change-Id: I0f138e3707242ec0fffc1c12b95064ddc98f0087
Reviewed-on: https://swiftshader-review.googlesource.com/3888
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoNew opcodes for integer operations
Alexis Hetu [Tue, 18 Aug 2015 19:54:07 +0000 (15:54 -0400)]
New opcodes for integer operations

Opcodes for soon to be added integer operations such as:
- Conversions to/from float
- Negate
- Comparison
- Add, Sub, Mul, Div, Mod
- Left Shift, Right Shift
- Min, Max

Change-Id: I16af0423fdb210a558ad293e0e043176bde1c9ee
Reviewed-on: https://swiftshader-review.googlesource.com/3889
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoETC1 fix for npot textures
Alexis Hetu [Fri, 28 Aug 2015 15:16:13 +0000 (11:16 -0400)]
ETC1 fix for npot textures

Simple fix that replaces width by pitch where needed to avoid misalignment
due to the difference between pitch and width in npot textures.

Change-Id: I7acddc28fae21dddf870a6ef80ac7984cfaf8e0f
Reviewed-on: https://swiftshader-review.googlesource.com/3931
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
8 years agoFix bit shift compilation
Alexis Hetu [Tue, 18 Aug 2015 19:28:27 +0000 (15:28 -0400)]
Fix bit shift compilation

Bit shifts compilation was failing when the types were a mismatch,
but shifting a uint by an int (or vice versa) is allowed, so types
may not match, and it's fine, as long as both are integer types.

Change-Id: I86c52a572625b1d09803b0a8b887a63756544101
Reviewed-on: https://swiftshader-review.googlesource.com/3887
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
9 years agoAdded missing Nucleus level operations
Alexis Hetu [Tue, 18 Aug 2015 19:22:15 +0000 (15:22 -0400)]
Added missing Nucleus level operations

Very few operations were missing in Nucleus for integer types
support, but there were a few nonetheless, so Int4 and UInt4
now have new operators: divide, modulo, right shift (from non
constant) and left shift (from non constant).

These were simply un-commented out as they were already there,
just commented out.

Change-Id: I4c124c9297cd4d3d755c37f11168a43dcfeee290
Reviewed-on: https://swiftshader-review.googlesource.com/3886
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
9 years agoFix Android EGL config attribute retrieval.
Nicolas Capens [Wed, 12 Aug 2015 20:36:52 +0000 (16:36 -0400)]
Fix Android EGL config attribute retrieval.

Bug 23017372

Change-Id: I9764e558cdf602ecaf2a8c644fd5e444216b1568
Reviewed-on: https://swiftshader-review.googlesource.com/3860
Reviewed-by: Ping-Hao Wu <pinghao@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
9 years agoFix returning EGL_BAD_ATTRIBUTE on unknown EGL config attributes.
Nicolas Capens [Wed, 12 Aug 2015 21:21:06 +0000 (17:21 -0400)]
Fix returning EGL_BAD_ATTRIBUTE on unknown EGL config attributes.

Bug 23017372

Change-Id: Ie29ca3f67c79b0cb707dda216c256723d3721f28
Reviewed-on: https://swiftshader-review.googlesource.com/3861
Reviewed-by: Ping-Hao Wu <pinghao@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
9 years agoFix avoiding VBO use in glDrawTex().
Nicolas Capens [Fri, 14 Aug 2015 21:49:01 +0000 (17:49 -0400)]
Fix avoiding VBO use in glDrawTex().

The glDrawTex() implementation intends to use vertex array pointers,
so set the array buffer to null to prevent it from taking precedence.
Also save/restore projection and modelview matrices.

Bug 23021204

Change-Id: I6b3e59d737a9b75180e6f03e9a686871640f7edd
Reviewed-on: https://swiftshader-review.googlesource.com/3880
Tested-by: Greg Hartman <ghartman@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
9 years agoUse a symbolic constant for the default thread count.
Nicolas Capens [Mon, 10 Aug 2015 18:35:51 +0000 (14:35 -0400)]
Use a symbolic constant for the default thread count.

Bug 23073037

Change-Id: I7da215ceff23f9a5c8188d3566a7c478b9489117
Reviewed-on: https://swiftshader-review.googlesource.com/3841
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
9 years agoUse the main thread for draw execution when single-threaded.
Nicolas Capens [Mon, 10 Aug 2015 18:07:45 +0000 (14:07 -0400)]
Use the main thread for draw execution when single-threaded.

Bug 23073037

Change-Id: I47d5a7d80dc48dffae0014fbf619810290c30628
Reviewed-on: https://swiftshader-review.googlesource.com/3840
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Greg Hartman <ghartman@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
9 years agoUniform blocks stores as pointers
Alexis Hetu [Mon, 10 Aug 2015 16:42:50 +0000 (12:42 -0400)]
Uniform blocks stores as pointers

Changed UniformBlockArray so that it stores pointers to
UniformBlock objects and adapted the code. Also reverted
a change that had removed constness from some members of
the UniformBlock class.

Bug 22986647

Change-Id: I677a4b2e92da5849e4387e3802dfdfa36dc6b0a4
Reviewed-on: https://swiftshader-review.googlesource.com/3830
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Alexis Hétu <sugoi@google.com>
9 years agoFollow up on Framebuffer Layer query
Alexis Hetu [Wed, 22 Jul 2015 20:49:31 +0000 (16:49 -0400)]
Follow up on Framebuffer Layer query

According to a comment that was added after the cl was landed, depth
and stencil layer queries are valid, so support for it was added.

Here's a link to the original cl:
https://swiftshader-review.googlesource.com/#/c/3541

Change-Id: Ib2eb50fb8cea6537da53bf45b5c7afa1f1a7b61b
Reviewed-on: https://swiftshader-review.googlesource.com/3751
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
9 years agoAdd missing validation for negative GLsizei values.
Nicolas Capens [Mon, 3 Aug 2015 14:49:12 +0000 (10:49 -0400)]
Add missing validation for negative GLsizei values.

Change-Id: Id3022059b3d5c21e5c78c668e21fddf569d920ef
Reviewed-on: https://swiftshader-review.googlesource.com/3760
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
9 years agoImplement glLoadMatrixx() and glMultMatrixx().
Nicolas Capens [Fri, 7 Aug 2015 21:40:13 +0000 (17:40 -0400)]
Implement glLoadMatrixx() and glMultMatrixx().

Bug 21499847

Change-Id: I245a624cad7c47af9d93844d4ae272c873b42008
Reviewed-on: https://swiftshader-review.googlesource.com/3820
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
9 years agoImplement OpenGL single-color specular lighting.
Nicolas Capens [Tue, 4 Aug 2015 20:11:24 +0000 (16:11 -0400)]
Implement OpenGL single-color specular lighting.

Change-Id: I40f9ad720bdbd93c44be8fb991dfbf055a3eceba
Reviewed-on: https://swiftshader-review.googlesource.com/3803
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
9 years agoRefactor ambient lighting.
Nicolas Capens [Wed, 5 Aug 2015 04:05:20 +0000 (00:05 -0400)]
Refactor ambient lighting.

Change-Id: Ibfdf4366920c9b0de1b334b91c4acfcae5d94adf
Reviewed-on: https://swiftshader-review.googlesource.com/3791
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
9 years agoImplement exponential vertex fog.
Nicolas Capens [Tue, 4 Aug 2015 19:34:26 +0000 (15:34 -0400)]
Implement exponential vertex fog.

Change-Id: I731bb641e00ba9ac880fdb9f721af24906b4850f
Reviewed-on: https://swiftshader-review.googlesource.com/3802
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
9 years agoImplement several fixed-point entry functions.
Nicolas Capens [Tue, 4 Aug 2015 14:51:10 +0000 (10:51 -0400)]
Implement several fixed-point entry functions.

Change-Id: I7a156a33a6021bc871a902a2b9d050eeaf166fe9
Reviewed-on: https://swiftshader-review.googlesource.com/3801
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
9 years agoImplement missing vertex element functions.
Nicolas Capens [Tue, 4 Aug 2015 14:49:49 +0000 (10:49 -0400)]
Implement missing vertex element functions.

Change-Id: I54c54838b7140023d902d5cb615eb8509eb6e23a
Reviewed-on: https://swiftshader-review.googlesource.com/3800
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
9 years agoImplement missing state and queries.
Nicolas Capens [Tue, 4 Aug 2015 14:34:43 +0000 (10:34 -0400)]
Implement missing state and queries.

Change-Id: I4858980fc32df435ffc0fc0917905116bea54aa8
Reviewed-on: https://swiftshader-review.googlesource.com/3790
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
9 years agoValidate vertex element sizes.
Nicolas Capens [Tue, 4 Aug 2015 14:23:56 +0000 (10:23 -0400)]
Validate vertex element sizes.

Change-Id: I03fabec6a92ef058aa2968418755aca079598cfe
Reviewed-on: https://swiftshader-review.googlesource.com/3781
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
9 years agoValidate glOrtho() and glFrustum() parameters.
Nicolas Capens [Tue, 4 Aug 2015 14:21:40 +0000 (10:21 -0400)]
Validate glOrtho() and glFrustum() parameters.

Change-Id: Ib041b2c412ea9db7a951e4eea24b7f27d8621cd0
Reviewed-on: https://swiftshader-review.googlesource.com/3780
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
9 years agoRenamed boolean state variables and setters.
Nicolas Capens [Mon, 3 Aug 2015 20:36:58 +0000 (16:36 -0400)]
Renamed boolean state variables and setters.

Change-Id: Ied1be6434a356ec7315df9d728dc424961f44fd0
Reviewed-on: https://swiftshader-review.googlesource.com/3770
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
9 years agoSupport homogeneous coordinates with w != 1.
Nicolas Capens [Mon, 3 Aug 2015 19:33:44 +0000 (15:33 -0400)]
Support homogeneous coordinates with w != 1.

Change-Id: Ie5552f7b743ac488a10ef86042088181aa5b797a
Reviewed-on: https://swiftshader-review.googlesource.com/3763
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
9 years agoImplement texture environment src, operand, and color.
Nicolas Capens [Mon, 3 Aug 2015 17:19:21 +0000 (13:19 -0400)]
Implement texture environment src, operand, and color.

Change-Id: I8c683a783f0a7f8a82206de77ae9d139f4b1bb10
Reviewed-on: https://swiftshader-review.googlesource.com/3762
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
9 years agoSupport matrix stack overflow/underflow errors.
Nicolas Capens [Mon, 3 Aug 2015 15:03:31 +0000 (11:03 -0400)]
Support matrix stack overflow/underflow errors.

Change-Id: Ie3caee1128c8227397a74378fcefdf9e128fc6bf
Reviewed-on: https://swiftshader-review.googlesource.com/3761
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
9 years agoUse the gce_x86_tablet config
Greg Hartman [Wed, 5 Aug 2015 19:24:58 +0000 (12:24 -0700)]
Use the gce_x86_tablet config

Change-Id: Ifd5f0bcc466f0ca7815f92285fa8bbd2d3ae2d8d
Reviewed-on: https://swiftshader-review.googlesource.com/3810
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
9 years agoRemove const modifiers that break implicit operator= generation.
Greg Hartman [Wed, 5 Aug 2015 19:59:40 +0000 (12:59 -0700)]
Remove const modifiers that break implicit operator= generation.

This is needed because the object is included by value in STL containers.

Change-Id: I4008aa3b733bdfc6c045a7622a0e40d7eb61b0bf
Reviewed-on: https://swiftshader-review.googlesource.com/3811
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
9 years agoUniform buffer related fixes
Alexis Hetu [Wed, 22 Jul 2015 20:37:02 +0000 (16:37 -0400)]
Uniform buffer related fixes

- Added an actual offset, in registers, to the Uniform structure to
  take into account that types can have different register sizes.
- Fixed the array check in OutputASM::declareUniform() so that it
  doesn't make an array of blocks when declaring a member as an
  array in the default uniform block.
- Fixed arrayStride and matrixStride in the BlockInfo constructor.
- Fixed memberUniformIndexes to use uniform index instead of
  register index.

Change-Id: Id8ba23b5fef71c772bb45a45bb897ca5e2fae385
Reviewed-on: https://swiftshader-review.googlesource.com/3750
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
9 years agoSupport for new texture function names
Alexis Hetu [Wed, 22 Jul 2015 20:59:10 +0000 (16:59 -0400)]
Support for new texture function names

There are explicit checks for texture function names in OutputASM,
which fail in ES3 because new function names are available, so some
of the new function names have been added to the checks.

Change-Id: I7ec8302a31c02500514ede4e36610dca1dafd235
Reviewed-on: https://swiftshader-review.googlesource.com/3752
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
9 years agoSkip half-pixel shift on pre-transformed coordinates.
Nicolas Capens [Tue, 21 Jul 2015 05:29:49 +0000 (01:29 -0400)]
Skip half-pixel shift on pre-transformed coordinates.

Bug 22624951

Change-Id: Ibda5f528212c9a8d503d8d6366cd7a42cd832c89
Reviewed-on: https://swiftshader-review.googlesource.com/3742
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
9 years agoMove back-tranform of pre-transformed vertices to postTransform.
Nicolas Capens [Tue, 21 Jul 2015 05:28:04 +0000 (01:28 -0400)]
Move back-tranform of pre-transformed vertices to postTransform.

Bug 22624951

Change-Id: Ib8dfda6ed983f385a236b014d9b635a0c343071f
Reviewed-on: https://swiftshader-review.googlesource.com/3741
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
9 years agoFix ETC1 decoding writing outside of internal buffer.
Nicolas Capens [Tue, 21 Jul 2015 19:15:30 +0000 (15:15 -0400)]
Fix ETC1 decoding writing outside of internal buffer.

Bug 22632766

Change-Id: Ib2fccdd498a6da43af7bb945179b278026cdba18
Reviewed-on: https://swiftshader-review.googlesource.com/3744
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
9 years agoUniform blocks implementation
Alexis Hetu [Mon, 6 Jul 2015 19:03:42 +0000 (15:03 -0400)]
Uniform blocks implementation

- Added support for uniform blocks in OutputASM::declareUniform
- Added basic implementation of Program::applyUniformBuffers()
  to be completed later on when uniform buffers are implemented

Change-Id: I919b59d4557bb10bb302e6b6bd0ada79553ca8bb
Reviewed-on: https://swiftshader-review.googlesource.com/3651
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
9 years agoSplitting PixelRoutine into PixelProgram and PixelPipeline
Alexis Hetu [Mon, 13 Jul 2015 15:08:41 +0000 (11:08 -0400)]
Splitting PixelRoutine into PixelProgram and PixelPipeline

This cl splits PixelRoutine into 2 specialized classes:
PixelProgram and PixelPipeline.
In this cl:
- Moved all specialized behavior of PixelRoutine into the
  PixelProgram and PixelPipeline classes.
- Inverted hierarchical dependency between PixelRoutine and
  QuadRasterizer. QuadRasterizer is now the base class.
- Added a check to PixelProcessor::routine() to either create
  a PixelPipeline object or a PixelProgram object.
- Moved a few interpolation related utility functions from
  PixelRoutine down to QuadRasterizer.
- Added Registers hierarchy. PixelProgram specific Registers
  and PixelPipeline specific Registers are now mutually
  exclusive.
- Made the quad functions virtual
- Added a few virtual functions (setBuiltins, ps, alphaTest,
  rasterOperation) for Program/Pipeline specific implementations

Bug 20257503

Change-Id: I6abe536a5521d9842f757a8bbb52e3947e3c9250
Reviewed-on: https://swiftshader-review.googlesource.com/3634
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
9 years agoAdd an attach debugger dialog.
Nicolas Capens [Fri, 17 Jul 2015 17:28:14 +0000 (13:28 -0400)]
Add an attach debugger dialog.

Bug 15759123

Change-Id: I363524a191d319e03ce2b874cfc853c7330b684f
Reviewed-on: https://swiftshader-review.googlesource.com/3735
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
9 years agoReimplement Direct3D GetFunction().
Nicolas Capens [Fri, 17 Jul 2015 17:17:33 +0000 (13:17 -0400)]
Reimplement Direct3D GetFunction().

Copied from old Shader::GetFunction().

Bug 22533227

Change-Id: I587a4112bc97f75c010b6f572f8f4388d5af9225
Reviewed-on: https://swiftshader-review.googlesource.com/3734
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
9 years agoFix D3D9 shader opcode mapping.
Nicolas Capens [Fri, 17 Jul 2015 15:47:57 +0000 (11:47 -0400)]
Fix D3D9 shader opcode mapping.

Bug 22533227

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