|
3cd50f7e
|
2014-01-10T13:04:48
|
|
Fix remaining discrepencies between master and es3proto project files.
Change-Id: I335c9346ac268beab25184e2b18ccfdd0b15c7b1
Reviewed-on: https://chromium-review.googlesource.com/182150
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
39d5166d
|
2013-08-29T16:08:23
|
|
Moved the gyp libGLESv2 and libEGL projects into their own gyp files. Renamed build_angle.gpy* to angle.gyp* but kept build_angle.gyp for chrome compatability.
|
|
3e8fc7f6
|
2012-08-30T21:15:39
|
|
Move targets from src\build_angle.gyp to src\build_angle.gypi
This enables Skia to compile ANGLE
Review URL: https://codereview.appspot.com/6492063
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1268 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
ca8c1693
|
2012-08-27T16:25:43
|
|
Moved SSE2 code to separated file to allow using different compiler flags on GCC
To use SSE2 in GCC, a compiler -msse2 flag is needed. It adds both possibility to write SSE2 code in the file, but also allows compiles to optimize the whole file with SSE2. To make sure that the code works on non-SSE2 machines, moving SSE2 functions to separated file and compiling only that file with -msse2 is the common practice.
Issue=358
Signed-off-by: Daniel Koch
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1262 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
28a6b5f8
|
2012-07-25T21:01:45
|
|
Add angle_code var to common.gypi and build_angle.gyp. Add GCC and clang warning flags from WebKit to ANGLE Mac and Linux builds.
The angle_code var differentiates between core ANGLE code vs. test code, sample code, and third party code.
Review URL: https://codereview.appspot.com/6427049/
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1244 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
728f2798
|
2012-07-24T19:46:53
|
|
Revert r1230.
See https://codereview.appspot.com/6427049/.
Review URL: https://codereview.appspot.com/6422063
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1243 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
d6fddbf1
|
2012-07-24T18:13:49
|
|
Add GCC and clang warning flags from WebKit to ANGLE Mac and Linux builds
Review URL: https://codereview.appspot.com/6427049/
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1230 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
fc0543f4
|
2012-07-11T20:31:02
|
|
This patch reverts r1203, but in slightly different way. It seems there is a problem with the config of memory bots. The usage of std::locale in ANGLE is fine.
Review URL: https://codereview.appspot.com/6392052
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1205 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
8963ec2a
|
2012-07-09T22:34:06
|
|
Implement binary streams.
Review URL: https://codereview.appspot.com/6357050
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1200 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
f099dfdb
|
2012-07-09T17:48:10
|
|
Enable the new preprocessor. Passes all unit-tests and WebGL conformance tests!
Review URL: https://codereview.appspot.com/6357055
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1194 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
73bc298e
|
2012-06-19T18:48:05
|
|
Hooked up the new preprocessor behind a compile-time flag ANGLE_USE_NEW_PREPROCESSOR.
Review URL: https://codereview.appspot.com/6304095
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1158 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
8b851c6d
|
2012-06-15T16:25:11
|
|
Preparation of hooking up the new preprocessor.
- Added custom Diagnostics class. Routed all info-log messages via this new class.
- Added custom DirectiveHandler class. Moved directive-handling code to this class and routed the old path.
- Deleted lexer_glue because it is not needed anymore. The new preprocessor is almost ready!
- Killed a bunch of dead code related to PragmaTable.
Review URL: https://codereview.appspot.com/6308074
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1150 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
430f5e0c
|
2012-06-08T17:47:59
|
|
Add the SH_CSS_SHADERS_SPEC flag.
Review URL: https://codereview.appspot.com/6270050/
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1145 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
ea09f9b4
|
2012-06-08T00:45:32
|
|
Move ProgramBinary into new file.
Review URL: https://codereview.appspot.com/6299058
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1144 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
679280b2
|
2012-05-31T22:41:21
|
|
Fix gyp build and disable warning that is an error in Chrome.
Review URL: https://codereview.appspot.com/6260063
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1127 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
e2095642
|
2012-05-31T01:20:20
|
|
Add analysis utility to detect discontinuities.
TRAC #20737
Signed-off-by: Daniel Koch
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1120 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
66ebd014
|
2012-05-30T22:18:11
|
|
Add the SH_TIMING_RESTRICTIONS compile flag and dependency graph implementation.
Description of the algorithm:
http://code.google.com/p/mvujovic/wiki/ShaderControlFlowAnalysis
This flag is one potential solution to timing attacks on textures containing cross-domain content
or user agent data.
This kind of analysis could be useful for both WebGL and CSS Shaders.
The SH_TIMING_RESTRICTIONS flag will reject a shader if it uses texture dependent data to affect
control flow.
Other ways of affecting shader timing such as using NaNs in basic arithmetic operations or using
built-in functions (e.g. atan) with different inputs are still under investigation.
Issue=329
Review URL: http://codereview.appspot.com/6195062/
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1101 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
36124de8
|
2012-05-24T02:17:43
|
|
Implemented #error and #pragma directives. Added new tests and updated old ones for the new preprocessor API.
Review URL: https://codereview.appspot.com/6213066
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1094 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
98d04ec8
|
2012-05-21T22:47:20
|
|
Implemented #define and #undef directives.
Review URL: https://codereview.appspot.com/6215072
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1092 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
964b7194
|
2012-05-17T21:12:27
|
|
Fixed compile error in lexer_glue.cpp.
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1089 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
2c958eef
|
2012-05-17T20:35:42
|
|
Moved error-handling to a separate class - Diagnostics. We were earlier returning errors as tokens which did not work very well when error occured while parsing a preprocessor directive. Now all returned tokens are valid. Errors are reported via an abstract Diagnostics interface. Updated unit-tests with the new scheme.
Review URL: https://codereview.appspot.com/6203089
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1087 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
04d7d22b
|
2012-05-16T19:24:07
|
|
Reafactored Lexer class to allow chaining. The full chain when parsing #if directive looks like this: Preprocessor -> MacroExpander -> DirectiveHandler -> MacroExpander -> DefinedFilter -> Tokenizer. This chain dynamically changes depending on the current context.
Also added an incomplete implementation of #if handling and ExpressionParser to illustrate how this design is supposed to work.
Review URL: https://codereview.appspot.com/6203060
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1084 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
f8f8f362
|
2012-04-28T00:35:00
|
|
Renamed UnfoldSelect to UnfoldShortCircuit.
TRAC #11866
Signed-off-by: Daniel Koch
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1062 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
14e966b2
|
2012-04-12T20:57:53
|
|
Modified the interface of Preprocessor. Added it to the build file. Lexer changes to record leading space.
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1033 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
40da4c53
|
2012-04-12T05:23:19
|
|
Added HAS_LEADING_SPACE flag to pp::Token. Split the new preprocessor into a separate target.
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1032 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
408c45e7
|
2012-04-05T15:54:43
|
|
Added an alternate lexer for the existing preprocessor. It is still behind a compile-time flag.
Review URL: https://codereview.appspot.com/5976072
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1019 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
b474de34
|
2012-02-08T18:55:41
|
|
Move translator_hlsl target into Windows specific section of build_angle.gyp.
Review URL: https://codereview.appspot.com/5639055
git-svn-id: https://angleproject.googlecode.com/svn/trunk@985 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
90f1eb81
|
2012-02-08T02:00:33
|
|
Remove 'chromium_code' from build_angle.gyp.
This is because the ninja build system, unlike make, builds translator_hlsl and fails on the clang warnings.
Review URL: https://codereview.appspot.com/5647048
git-svn-id: https://angleproject.googlecode.com/svn/trunk@984 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
f3c92311
|
2012-01-25T00:51:19
|
|
Fix remaining compiler warnings in translator_common.
One MSVC warning and one GCC warning.
I also added a variable to build_angle.gyp that will enforce various rules not normally applied to third party software when built as part of chromium.
Review URL: https://codereview.appspot.com/5570061
git-svn-id: https://angleproject.googlecode.com/svn/trunk@962 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
9dc0a247
|
2012-01-24T21:45:37
|
|
Enable warnings as errors.
I didn't do it for translator_common though because it contains automatically generated code.
This is improve the signal to noise ratio in the chromium build logs.
Review URL: https://codereview.appspot.com/5572055
git-svn-id: https://angleproject.googlecode.com/svn/trunk@960 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
b66a7015
|
2012-01-23T20:04:48
|
|
Moved RefCountObject to common so it can be used by libEGL.
Review URL: https://codereview.appspot.com/5557064
git-svn-id: https://angleproject.googlecode.com/svn/trunk@956 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
86bdb824
|
2012-01-20T18:24:39
|
|
Adds support for EXT_occlusion_query_boolean
TRAC #19360
Signed-off-by: Daniel Koch
Authored-by: Shannon Woods
git-svn-id: https://angleproject.googlecode.com/svn/trunk@951 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
22152117
|
2011-10-26T01:18:28
|
|
Limit copied uniform and vertex attribute names to the implicit size of the
buffers passed in. Increase the size of the buffer the client will allocate
for mapped names to be equal to the maximum token length.
BUG=http://code.google.com/p/angleproject/issues/detail?id=234
TEST=WebGL conformance test to be checked in soon
Review URL: http://codereview.appspot.com/5306063
git-svn-id: https://angleproject.googlecode.com/svn/trunk@804 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
fdea6946
|
2011-10-24T22:28:18
|
|
Checked in change that should have been in r801.
Review URL: http://codereview.appspot.com/5318051
git-svn-id: https://angleproject.googlecode.com/svn/trunk@803 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
32e97315
|
2011-08-24T01:03:11
|
|
Emulate certain buil-in functions to work around driver bugs.
This is implemented by adding a new compile option SH_EMULATE_BUILT_IN_FUNCTIONS. The emulated functions are names as webgl_originalName_emu so there will never be naming conflicts.
At the moment only three functions are emulated: normalize, abs, sign. Also, the compile option will emulate all three. However, the mechanism to emulate only a selected subset is also imeplemented. It can be turned on easily.
ANGLEBUG=196
TEST=with this option, the failed test with abs.frag passes.
Review URL: http://codereview.appspot.com/4916043
git-svn-id: https://angleproject.googlecode.com/svn/trunk@738 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
0c6bb7a6
|
2011-08-17T19:39:58
|
|
Add an compile option to unroll for-loops with integer indices.
ANGLEBUG=193
TEST=with this option, for-loops with integer indices will be unrolled.
Review URL: http://codereview.appspot.com/4899047
git-svn-id: https://angleproject.googlecode.com/svn/trunk@734 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
6ae8f6ce
|
2011-08-10T22:21:35
|
|
Removed compiler/unistd.h reference from build_angle.gyp.
Review URL: http://codereview.appspot.com/4844062
git-svn-id: https://angleproject.googlecode.com/svn/trunk@725 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
b1762df4
|
2011-07-30T02:04:23
|
|
Detect function recursion and reject a shader if detected.
ANGLEBUG=191
TEST=shaders with function recursion are rejected.
Review URL: http://codereview.appspot.com/4808061
git-svn-id: https://angleproject.googlecode.com/svn/trunk@711 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
1179ecf4
|
2011-06-14T19:03:39
|
|
Added .rc files to gyp file so the version number appears in the resource section for gyp builds.
Review URL: http://codereview.appspot.com/4568080
git-svn-id: https://angleproject.googlecode.com/svn/trunk@692 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
5601ea0d
|
2011-06-10T18:23:25
|
|
Implement ES2 backend for Angle translator.
With this CL, we have the option to select a code output backend: GLSL, GLSL ES, or HLSL.
Note that we always emit the highest supported float precision for fragment shader due to anglebug 168. Although this is a temporary solution, it's not against GLSL ES spec, because it's ok for implementation to upgrade precision.
Tested with WebGL conformance test suite, GLES2 conformance test suite (only failed 2/1198), and a few webgl demos, including worlds of webgl, aquarium, etc.
anglebug=81
test=translator emitting correct GLSL ES code when ES2 backend is selected.
Review URL: http://codereview.appspot.com/4550129
git-svn-id: https://angleproject.googlecode.com/svn/trunk@687 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
79169b5a
|
2011-06-06T19:01:08
|
|
Use DwmAPI, if available, to minimize queueing of presents.
Review URL: http://codereview.appspot.com/4559065
git-svn-id: https://angleproject.googlecode.com/svn/trunk@673 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
fe2aff10
|
2011-06-02T00:23:44
|
|
Redid gyp changes in last commit to support debugging of samples on
Linux. Fixed bug in translator sample where it was confusing arguments
and filenames on POSIX platforms.
Review URL: http://codereview.appspot.com/4532108
git-svn-id: https://angleproject.googlecode.com/svn/trunk@665 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
c6be2264
|
2011-06-01T23:04:13
|
|
Added missing depth argument to GYP which causes the top-level
Makefile to be generated into the correct directory on Linux. Added
missing library for clients of translator (the samples, in
particular).
Built all ANGLE targets on Linux and Windows to test these changes.
BUG=none
TEST=none
Review URL: http://codereview.appspot.com/4556072
git-svn-id: https://angleproject.googlecode.com/svn/trunk@664 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
1a23334f
|
2011-04-28T19:44:39
|
|
Unifying resource handle allocation code with an allocator optimized for O(1) allocs/releases.
Issue=143
Signed-off-by: Daniel Koch
git-svn-id: https://angleproject.googlecode.com/svn/trunk@623 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
fd747b86
|
2011-04-23T01:30:07
|
|
Implement shader identifier name mapping.
The name mapping happens when an identifier is longer than 32 characters. The name mapping is behind a flag, so it won't happen by default. Also, functions to query the mapped names are added.
The purpose of this CL is for the drivers that can't handle long names. For example, linux NVIDIA driver can't handle 256 character name, whereas WebGL spec requires that.
This CL also fixes the issue that some of the TIntermSymbols' ids are 0s.
ANGLEBUG=144
TEST=test manually with shaders with long identifier names.
Review URL: http://codereview.appspot.com/4428058
git-svn-id: https://angleproject.googlecode.com/svn/trunk@619 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
0b8d4eb2
|
2011-04-04T19:17:11
|
|
Unroll for-loop if sampler array uses loop index as its index.
If inside a for-loop, sampler array index is the loop index, Mac cg compiler will crash. This CL unroll the loop in such situation. The behavior is:
1) If the for-loop index is a float, we reject the shader.
2) If it is an integer, we unroll the for-loop.
Things that should be done in the future are:
1) Add line number macros.
2) Add a limit to unroll iteration count.
anglebug=94
Review URL: http://codereview.appspot.com/4331048
git-svn-id: https://angleproject.googlecode.com/svn/trunk@606 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
8ea5afef
|
2011-03-23T20:44:36
|
|
Switched to D3D10 shader compiler.
I figured out how to call in to D3DCompiler_xx.dll and still get the ID3DXConstantTable metadata used by ANGLE. There are more optimization levels available with this compiler and the lowest level (0) allows MetaTunnel and MandelBox to compile their shaders quickly. MetaTunnel still does not render correctly unfortunately.
I benchmarked eight of the ShaderToy demos and did not notice any performance regression on an nVidia Quadro FX 380. Intel might be adversely affected. I built ANGLE against D3DCompiler_43.dll, while Chrome still ships with 42. I'm not sure if that will make a difference but I'll rev Chrome soon.
I also checked WebGL Aquarium and ran the WebGL conformance tests.
This will also let me roll r590 into Chromium. It turns out the ForceSymbolReferences setting I added to the libGLESv2 target caused the linker to sometimes crash when making changes and the changes between r577 and r590 consistently lead to a crash. libGLESv2 now has a hard dependency on D3DCompiler_xx.dll via the call in Program.cpp and this seems to not make the linker crash.
Review URL: http://codereview.appspot.com/4275063
git-svn-id: https://angleproject.googlecode.com/svn/trunk@591 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
35ce8e1c
|
2011-03-14T23:57:03
|
|
ANGLE depends statically on D3DCompiler_x.dll.
This prevents D3DX9 from loading and unloading the DLL whenever D3DXCompileShader is called. Apart from being slow, especially when a debugger is attached, it is not possible for ANGLE to load DLLs after the Chrome sandbox has been enabled.
Review URL: http://codereview.appspot.com/4282046
git-svn-id: https://angleproject.googlecode.com/svn/trunk@571 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
8fd34bd6
|
2011-02-18T02:52:14
|
|
Move geometry files.
TRAC #15649
Signed-off-by: Daniel Koch
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@564 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
0f4cefe9
|
2011-01-26T19:30:57
|
|
Map D3D calls and HLSL shaders back to GLES2 calls and GLSL ES shaders in PIX.
This makes debugging and profiling using PIX a lot more convenient. The top level of events are the GLES calls with their arguments. Those can be expanded to see the D3D calls that were issued for a particular GLES call.
When PIX is attached, the shaders are saved out to temporary files and referenced from the translated HLSL shaders via #line directives. This enabled source level debugging of the original GLSL from PIX for pixel and vertex shaders. The HLSL is also saved to a temporary file so that intrinsic functions like texture2D can be stepped into.
It also avoids creating a text file in the current working directory, which has continued to be an issue.
I made the dependency on d3d9.dll static again so it can be accessed by GetModuleHandle witihin DllMain.
I added an EVENT macro that issues D3DPERF_BeginEvent and D3DPERF_EndEvent around a C++ block. I replaced TRACE with EVENT for all the entry points.
I removed the tracing of shader source since the source is visible in PIX.
The means by which the filename of the temporary shader file is passed into the shader compiler is a little clunky. I did it that way to avoid changing the function signatures and breaking folks using the translator.
I plan to make the compiler respect #pragma optimize so that optimization can be disabled for debugging purposes. For now it just disables shader optimization in debug builds of ANGLE.
Review URL: http://codereview.appspot.com/3945043
git-svn-id: https://angleproject.googlecode.com/svn/trunk@541 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
a0ce7e61
|
2011-01-25T14:47:16
|
|
Added version info resources.
TRAC #15181
Signed-off-by: Daniel Koch
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@539 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
83921386
|
2011-01-08T05:46:00
|
|
rewrite buffers implementation to support static buffers more efficiently
Bug=89
Trac #13565
Signed-off-by: Daniel Koch
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@526 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
b59a778c
|
2010-11-24T18:38:33
|
|
Implemented validation for loop and indexing limitations specified by GLSL ES spec 1.0 Appendix A Section 4 and 5.
A couple of things to note:
- This CL only validates the "form" of loop and indexing. It does not detect number-of-iterations or out-of-bound access. This will require more involved analysis/heuristics.
- I haved combined SH_VALIDATE_CONTROL_FLOW and SH_VALIDATE_INDEXING into one flag - SH_VALIDATE_LOOP_INDEXING. Validating both together is much easier.
BUG=48
Review URL: http://codereview.appspot.com/3225041
git-svn-id: https://angleproject.googlecode.com/svn/trunk@491 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
3a053f26
|
2010-11-17T21:39:54
|
|
Removed actions for generating parser-lexer now that they have been checked in. Also removed hooks to pull cygwin - it was only required for flex and bison that are not required anymore. If a developer needs to modify grammar files, he is expected to install cygwin.
Review URL: http://codereview.appspot.com/3177042
git-svn-id: https://angleproject.googlecode.com/svn/trunk@485 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
bdfb2e50
|
2010-11-15T16:41:20
|
|
Only initialize through a temporary variable if the same symbol name is used in the initialization expression.
TRAC #13627
The previous patch can generate a lot of unnecessary temporary variables. By first checking whether the same symbol name is reused the clutter is reduced to an absolute minimum (typical shaders won't rely on this odd GLSL semantic behavior so the workaround is hardly ever needed).
Signed-off-by: Daniel Koch
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@479 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
044a5cf8
|
2010-11-12T15:42:16
|
|
Refactored glslang grammar files to make:
- lexer and parser reentrant
- line number handling automatic
Caveats:
- The preprocessor is still not thread-safe and full of bugs. I have another not-yet-ready patch to replace the preprocessor.
- The grammar files use options that are not supported by the old versions of flex and bison checked into compiler/tools. So I need to check-in the generated lexer-parser along with a shell script to generate them.
Review URL: http://codereview.appspot.com/2992041
git-svn-id: https://angleproject.googlecode.com/svn/trunk@475 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
91ed1494
|
2010-10-29T03:11:43
|
|
Use C locale for atof to ensure using a dot as decimal mark.
TRAC #14055
Signed-off-by: Daniel Koch
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@470 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
9ecf3950
|
2010-10-13T19:28:25
|
|
GLSL backend now emits "#version 120" to legally access invariant keyword and gl_PointCoord built-in variable.
BUG=35
Review URL: http://codereview.appspot.com/2341043
git-svn-id: https://angleproject.googlecode.com/svn/trunk@448 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
c1693978
|
2010-10-06T02:34:39
|
|
Made debug log filename compile time configurable.
Define TRACE_OUTPUT_FILE macro to change filename. Default remains "debug.txt" for Visual Studio solution based build. Gyp based build uses "angle-debug.txt".
Review URL: http://codereview.appspot.com/2327043
git-svn-id: https://angleproject.googlecode.com/svn/trunk@445 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
07620a58
|
2010-09-23T17:53:56
|
|
- Moved the implementation for ShCompile to the compiler class so that internal details about compiler can be encapsulated. Now we do not need to expose built-in symbol table.
- Fixed a few const violations.
- Added CollectAttribsUniforms class.
BUG=26
Review URL: http://codereview.appspot.com/2263041
git-svn-id: https://angleproject.googlecode.com/svn/trunk@437 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
d3bd0ad3
|
2010-08-30T18:55:36
|
|
Implemented GL_NV_fence extension.
I believe I have implemented all features according to the spec.
The application is to allow the Chrome command buffer scheduler to be smarter about deciding which command buffer to process. For example, if a WebGL app issued a call to ReadPixels, the scheduler will issue a fence and defer executing the ReadPixels until the status goes true. It can continue to work on other command buffers in the meantime.
I tested by modifying the vertex shader demo. After issuing the SwapBuffers i made issue a fence and loop until the status went true and verified it looped several times. I also tested that by calling FinishFence before going into the loop that is did not loop at all.
Review URL: http://codereview.appspot.com/1965043
git-svn-id: https://angleproject.googlecode.com/svn/trunk@405 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
94e1934d
|
2010-08-17T22:19:58
|
|
Fixed crash on context lost.
This fixes the crash on lost context for vista and windows 7 if suitable drivers are available. It now uses D3D9Ex when available and this only reports lost contexts for hardware failures and suchlike.
Testing procedure was:
- run simple_vertex_shader without this change.
- ctrl+alt+del to lock machine.
- return to desktop.
- observe that simple_vertex_shader crashes.
- repeat with this change and check that simple_vertex_shader is still animating.
- simulate the code path that an XP machine would take using the debugger and check that old behavior is preserved.
I decided to load D3D9.DLL at runtime for a couple of reasons. First, I didn't want to assume that older implementations of D3D9 would have the Direct3DCreate9Ex entry point. Second, it might be advantageous for some applications to not have a load time dependency on D3D9. I didn't address this for D3DX9 because it's a little harder - there's no clear way to determine which D3DX9_x.DLL library to open. At least D3DX9_x.DLL does not seem to import D3D9.DLL and D3DX is separately redistributable so there is still some advantage to be had.
Review URL: http://codereview.appspot.com/1951044
git-svn-id: https://angleproject.googlecode.com/svn/trunk@384 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
257e8d0f
|
2010-07-28T23:07:39
|
|
Added missing sources to build_angle.gyp.
Review URL: http://codereview.appspot.com/1907043
git-svn-id: https://angleproject.googlecode.com/svn/trunk@367 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
9ecb9f9d
|
2010-07-28T19:21:12
|
|
Sharing for buffer, texture and renderbuffer objects.
TRAC #12496
Derive Renderbuffer, Texture and Buffer from RefCountObject.
This class keeps a reference count for all objects that need cross-context
reference counting, and also the object id.
Restructure Renderbuffers to create a wrapper object and a storage object.
Use BindingPointer for all binding points instead of binding by object id.
Signed-off-by: Shannon Woods
Signed-off-by: Daniel Koch
git-svn-id: https://angleproject.googlecode.com/svn/trunk@364 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
774d7063
|
2010-07-21T18:55:45
|
|
Cleaned up translator API. Deleted unsupported dead code.
BUG=9
Review URL: http://codereview.appspot.com/1665050
git-svn-id: https://angleproject.googlecode.com/svn/trunk@348 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
84a96288
|
2010-06-02T22:26:52
|
|
Moved windows-only targets into OS==win conditional.
Review URL: http://codereview.appspot.com/1473043
git-svn-id: https://angleproject.googlecode.com/svn/trunk@325 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
91b72320
|
2010-06-02T15:50:56
|
|
Removed the dependency of compiler on common. This is done to make compiler self-sufficient so that it is easier to consume by external developers. I tried to replace all instances of assert by simply redefining assert(x) to ASSERT(x), but was getting a lot of compile errors. I still need to investigate that.
Review URL: http://codereview.appspot.com/1461041
git-svn-id: https://angleproject.googlecode.com/svn/trunk@323 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
92680f9c
|
2010-05-10T15:14:11
|
|
The script for flex and bison was not being generated properly on linux. Extra quotes were being generated in the command-line around output-file path. This change gets around the problem by expanding string variables instead of list. This has another nice side effect that output file path need not be repeated twice.
Review URL: http://codereview.appspot.com/1163041
git-svn-id: https://angleproject.googlecode.com/svn/trunk@253 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
eab1ef12
|
2010-04-23T17:33:49
|
|
Removed unnecessary include paths. Removed the dependency on unistd.h. Moved the generated files to intermediate directory so that the source is not polluted.
These changes only affect the gyp build system because they required flex-bison options that are not supported by old binaries in compiler/tools. Another reason to switch to gyp build system.
Review URL: http://codereview.appspot.com/994041
git-svn-id: https://angleproject.googlecode.com/svn/trunk@186 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
277ec183
|
2010-04-23T16:07:34
|
|
Added support for building glsl translator on posix platforms.
Review URL: http://codereview.appspot.com/958043
git-svn-id: https://angleproject.googlecode.com/svn/trunk@184 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
6e49740d
|
2010-04-20T20:34:15
|
|
Added DX SDK search paths to libGLESv2.
Now it builds if these aren't in the default search path.
Should it support x64 targets as well?
Review URL: http://codereview.appspot.com/949041
git-svn-id: https://angleproject.googlecode.com/svn/trunk@175 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
b587598c
|
2010-04-15T20:44:53
|
|
Implemented short-circuiting behavior for the ternary operator
TRAC #11444
This is achieved by turning the ternary operator into conditional code.
The UnfoldSelect intermediate code traverser places this conditional
code before the statement containing the ternary operator (aka. select).
The computed value is assigned to a temporary variable.
On outputting the actual statement the ternary operator is
replaced by the temporary variable.
Signed-off-by: Andrew Lewycky
Signed-off-by: Daniel Koch
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@148 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
b8c28edd
|
2010-04-13T03:26:32
|
|
Implement CopyTex(Sub)Image2D
TRAC #11474
Signed-off-by: Shannon Woods
Signed-off-by: Daniel Koch
Author: Andrew Lewycky
git-svn-id: https://angleproject.googlecode.com/svn/trunk@132 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
cf2560dd
|
2010-04-07T20:39:57
|
|
Always build libEGL and libGLESv2 as shared libraries. They do not work as static libraries so there is no point in parametrizing the library type.
Review URL: http://codereview.appspot.com/810045
git-svn-id: https://angleproject.googlecode.com/svn/trunk@104 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
403c9e59
|
2010-04-06T17:53:31
|
|
Added libGLESv2, libEGL, and all samples to GYP.
Review URL: http://codereview.appspot.com/878042
git-svn-id: https://angleproject.googlecode.com/svn/trunk@100 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
29d56fbb
|
2010-04-06T15:42:22
|
|
Added GYP build files. GYP files are needed for integration with chromium and cross-platform build for glsl translator. It would really be nice if we did not have to maintain two build systems. For now I have only moved the GLSL translator to gyp build system. Please note that the gyp files awkwardly have build_ prefix so they do not conflict with the manually-maintained sln files.
Review URL: http://codereview.appspot.com/885043
git-svn-id: https://angleproject.googlecode.com/svn/trunk@98 736b8ea6-26fd-11df-bfd4-992fa37f6226
|