|
438dbcf1
|
2016-06-17T14:20:05
|
|
translator: Fix builtin function emulator use-after-free.
We were calling the global pool allocator in the builtin function
emulator, which would lead to us freeing TTypes that were still
referenced. Fix this by using the TCache which was designed for
such a purpose, and locking the allocator around the builtin
function emulator to try and prevent similar bugs from creeping
in.
Eventually we would like to get rid of the global allocator and
replace it with different pools in different contexts, which are
managed more safely.
BUG=620937
Change-Id: If501ff6ea4d9bf8a2b8f89f2c94a01386f79ee3a
Reviewed-on: https://chromium-review.googlesource.com/353671
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e5a1f271
|
2015-08-21T02:58:25
|
|
Use override in all the places where it is possible
This will avoid -Winconsistent-overrides in the future. Done using the
-Wsuggest-override warning of GCC 5.1
BUG=
Change-Id: I707a649dc368f5dd1e139fd144370abcac0b6263
Reviewed-on: https://chromium-review.googlesource.com/294920
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
3d0d9a48
|
2015-06-01T12:16:36
|
|
Clean up TIntermTraverser usage
Remove default parameters from TIntermTraverser.
Also clean up a few dead function declarations in traversers.
TEST=angle_unittests, angle_end2end_tests
BUG=angleproject:1037
Change-Id: I8d126c6c2d5b53e8b14e23e3d102f204a59323b3
Reviewed-on: https://chromium-review.googlesource.com/275184
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
950457b3
|
2015-05-26T14:36:59
|
|
Fix destructing TStrings through BuiltInFunctionEmulator after free
BuiltInFunctionEmulator gets destructed after the PoolAllocator has already
freed memory. That's why BuiltInFunctionEmulator can't hold any objects that
contain parts stored in the memory pool that would be accessed in its
destructor. Use only pointers to TType objects inside
BuiltInFunctionEmulator, so that the BuiltInFunctionEmulator destructor doesn't
access TStrings which have data in the memory pool.
Also fix style issues in BuiltInFunctionEmulator.
BUG=angleproject:1010
TEST=dEQP-GLES3.functional.shaders.builtin_functions.*
Change-Id: Ic35caf80bf125d0427c2ed2024e98657756103b6
Reviewed-on: https://chromium-review.googlesource.com/272738
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
|
|
8efc5ad5
|
2015-03-03T17:21:10
|
|
Initialize BuiltInFunctionEmulator outside Compiler
This moves GLSL output specific code from the Compiler class to the
GLSL/ESSL translators.
BUG=angleproject:865
Change-Id: I2d552e9cdb41f7d8ddfee7b0249a99d629a6d7d7
Reviewed-on: https://chromium-review.googlesource.com/255471
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
80a5a6c6
|
2015-01-12T15:35:27
|
|
Clean up BuiltInFunctionEmulator public interface
This removes all language-specific bits from BuiltInFunctionEmulator
parent class, and makes the public interface of BuiltInFunctionEmulator
minimal.
Writing comments around emulated function definitions is removed from
OutputHLSL, they are not necessary as the emulated function definitions
are just another part of the shader header.
Change-Id: I9abf57d86f4e37b0674d7dfafe653298f205dd27
Reviewed-on: https://chromium-review.googlesource.com/240230
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Nicolas Capens <capn@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
e39706d0
|
2014-12-30T16:40:36
|
|
Implement simple ESSL3 matrix functions
Add support for built-in functions outerProduct, determinant, transpose
and the variations of matrixCompMult that were previously unsupported.
BUG=angle:859
Change-Id: Ie2b9cf83cd80c5a886c6d4eb190c7ce25a32d0a4
Reviewed-on: https://chromium-review.googlesource.com/239873
Reviewed-by: Nicolas Capens <capn@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
f6bdb312
|
2015-01-09T15:21:38
|
|
Refactor defining emulated functions in BuiltInFunctionEmulator
This removes the fixed enumeration of emulated functions in favor of a
dynamic map. This makes the code more compact and flexible. The main
benefit is that maintaining the list emulated functions is a lot simpler
now.
Change-Id: Ic9951a496b9f021c76ad5b4c3daccd89af5ac093
Reviewed-on: https://chromium-review.googlesource.com/239871
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Nicolas Capens <capn@chromium.org>
|
|
5c9cd3d1
|
2014-12-18T13:04:25
|
|
Implement hyperbolic function support for ESSL 3.00
Emulating arc hyperbolic functions is required on HLSL, where they do
not exist natively. For this, BuiltInFunctionEmulator is split into GLSL
and HLSL subclasses. The GLSL subclass handles the pre-existing built-in
emulation implemented for working around OSX bugs, and the HLSL subclass
handles emulating asinh, acosh and atanh on HLSL.
BUG=angle:855
Change-Id: I0dfeffb862ac27ba7f9ecf5492ec31d9d952b273
Reviewed-on: https://chromium-review.googlesource.com/236861
Reviewed-by: Nicolas Capens <capn@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
e40d1e9c
|
2014-07-16T17:40:36
|
|
Fix style violations.
BUG=angle:650
TEST=no behavior change
Change-Id: I3096615a181b1ec2c18ce60566c3d6249975b84e
Reviewed-on: https://chromium-review.googlesource.com/208569
Tested-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
183bde55
|
2014-07-02T15:31:19
|
|
Return shader variable information using GLenum values.
Instead of duplicating GL header define values, explictly return
GLenum for variable queries in the shader inspection API. This
reduces the duplicate defines in the shader compiler header.
BUG=angle:466
Change-Id: Iddaaff597b188251fa2e546f352bf77ab3ac43bc
Reviewed-on: https://chromium-review.googlesource.com/205860
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Nicolas Capens <capn@chromium.org>
|
|
ce505553
|
2014-06-26T14:56:33
|
|
Revert "Return variable type queries using GLenum values."
Breaks the FYI bots until we get Chromium patched.
BUG=angle:466
This reverts commit 53221f5a0382887155d90f7f286e41190d4f5bfb.
Change-Id: Ib28548df5c10a6f76f46e4cf8f2013dca5cf0ee2
Reviewed-on: https://chromium-review.googlesource.com/205850
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
53221f5a
|
2014-06-25T16:04:59
|
|
Return variable type queries using GLenum values.
Instead of duplicating GL header define values, explictly return
GLenum for variable queries in the shader inspection API. This
reduces the duplicate defines in the shader compiler header.
BUG=angle:466
Change-Id: If631b20ce68747297a946e1371def7709027a613
Reviewed-on: https://chromium-review.googlesource.com/204937
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Nicolas Capens <nicolascapens@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
|
|
17732823
|
2013-08-29T13:46:49
|
|
Moved the compiler source files into directories based on their project and added a compiler.gypi to generate the compiler projects.
|