The Windows 8.1 SDK includes a new DLL compiler DLL, and is useful
to test against, so we should fix the few deprecated functions and
warnings.
BUG=angle:649
Change-Id: I28bcf49564f3f7d7403d939d61dd78d3972281ba
Reviewed-on: https://chromium-review.googlesource.com/199341
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Update the BufferStorage classes to use size_t for all sizes and offsets.
BufferStorage9 now uses a std::vector to manage its memory.
BUG=angle:631
Change-Id: Iea4e7b33ede59a5b9c6a1245690c4b7865096fc3
Reviewed-on: https://chromium-review.googlesource.com/197819
Reviewed-by: Nicolas Capens <nicolascapens@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
Passing parameters from the sample constructor allows us to test
ES3 functionality, as well as choose between D3D9 and 11.
BUG=angle:521
Change-Id: I7b9543b399450f62c5415654e8026a7c218b7e37
Reviewed-on: https://chromium-review.googlesource.com/193292
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Any projects that may be included by gyp files outside our project (chrome
or skia) may not have the same defines or ignored compiler warnings. To
make sure that we can always compile, each project now includes a common
file with all required definitions and gyp variables.
BUG=angleproject:583
Change-Id: I702bee975d0554c51bfa03981920dfb295ffbafa
Reviewed-on: https://chromium-review.googlesource.com/189458
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
Add a swap method on the SampleApplication class so that samples can
override the default eglSwapBuffers function call.
BUG=angle:521
Change-Id: I3f0ba6ed182b368e6f5fe502de67d1a14267a857
Reviewed-on: https://chromium-review.googlesource.com/188740
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
Refactor the generation of checkerboard textures since they're used by
this sample and MipMap2D.
BUG=angle:521
Change-Id: I1ba8bc4927a7944eb8efad0c8aa71eba4619e457
Reviewed-on: https://chromium-review.googlesource.com/188729
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
Rename Stencil_Test to stencil_operations, a more fitting name for a
sample.
BUG=angle:521
Change-Id: I5412ecef12d80c3dbf54539bc7509678a35c44d5
Reviewed-on: https://chromium-review.googlesource.com/188728
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
Add a Vector2 type for storing texcoords and improve the sample by having
it draw several thousand instances instead of two.
BUG=angle:521
Change-Id: I87996a90000a83bc66d091c7537ea411080d7e9f
Reviewed-on: https://chromium-review.googlesource.com/188723
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
We can use angle_path instead of angle_build_scripts_path to locate
enumerate_files.py. Also pass angle_path to the post-build script
hook, as this information is necessary to locate the root angle
folder.
BUG=angle:592
Change-Id: I06b3f0201751d90b7c1efdefe8db07d114bd87dd
Reviewed-on: https://chromium-review.googlesource.com/191082
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
We use hashing to map all variables/strcuture field names, etc,
so we no longer need this option.
Checked with Firefox and WebKit, they no longer use this option
either. Time to remove it.
Change-Id: Ie3e79b91a05258b04af419a9c42b2fd1b00e67c4
Reviewed-on: https://chromium-review.googlesource.com/189236
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/189568
Because libGLESv2 needs a static translator to link against
internal types like Attribute and Varying, as well as using
some other internal methods, we can for now disable the
component build for the translator. In the future we can
support a proper component build with exports across library
boundaries.
BUG=angle:568
Change-Id: Ie3efc0a29342d02491e91952c3c2398568f83576
Reviewed-on: https://chromium-review.googlesource.com/187699
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
We can include Makefiles in the ignore list, and need a few extra
flags to fix the GCC build on Linux.
BUG=angle:563
Change-Id: Iacd386359f0c0d9bb87ddc544dd8b4da2cb8fee0
Reviewed-on: https://chromium-review.googlesource.com/186902
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/186989
Changed ANGLE_DISABLE_* to ANGLE_ENABLE_* for perf and tracing defines so
they are disabled by default. Updated the gyp files to only turn on perf
by default for windows debug builds.
Change-Id: I71706674e6d12fbf4208acc8f100d963b82c7674
Reviewed-on: https://chromium-review.googlesource.com/183250
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
This sample will show a user how to use the ANGLE-specific extensions for geometry instancing.
TRAC #22452
Signed-off-by: Nicolas Capens
Signed-off-by: Shannon Woods
Author: Jamie Madill
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1819 736b8ea6-26fd-11df-bfd4-992fa37f6226
Chrome now builds ANGLE against the Windows 8 Platform SDK.
Move the include and lib search paths to common.gypi so that downstream projects can specify the location of the Platform SDK or alternatively use the DirectX SDK instead.
Review URL: https://codereview.appspot.com/7193052
Conflicts:
src/common/version.h
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1793 736b8ea6-26fd-11df-bfd4-992fa37f6226
Also tinker with the deps a bit to allow for more parallelism during the build process.
TRAC #22437
Signed-off-by: Nicolas Capens
Signed-off-by: Daniel Koch
Author: Jamie Madill
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1754 736b8ea6-26fd-11df-bfd4-992fa37f6226
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
Clang warns about missing case in enum glslang_lex.cpp so I disabled that one as well.
MSVC, as Chromium is built at least, warns about things in its own STL headers in SymbolTable.cpp so disabled the warning for that file.
esTransform.c had a struct that the compiler could not determine was initialized so I explicitly initialized it.
Review URL: https://codereview.appspot.com/5577048
git-svn-id: https://angleproject.googlecode.com/svn/trunk@965 736b8ea6-26fd-11df-bfd4-992fa37f6226
There are some exceptions, a subset of the exceptions used by Chromium. They didn't seem to be useful warnings.
In code which we don't change much, like the preprocessor, I just suppressed the warnings in the specific files rather than changing the code.
There should be no functional changes in this patch.
Review URL: https://codereview.appspot.com/5570066
git-svn-id: https://angleproject.googlecode.com/svn/trunk@964 736b8ea6-26fd-11df-bfd4-992fa37f6226
This is a workaround for an Intel bug.
The crash looks like this:
0x5f816c53 [d3d9.dll + 0x00036c53] CQuery::~CQuery()
0x5f816bec [d3d9.dll + 0x00036bec] CQuery::`vector deleting
destructor'(unsigned int)
0x5f7e8129 [d3d9.dll + 0x00008129] CBaseObject::~CBaseObject()
0x5f9e19c7 [libglesv2.dll + 0x000319c7] gl::Fence::`vector deleting
destructor'(unsigned int)
0x5f9de78e [libglesv2.dll - context.cpp:975] gl::Context::deleteFence(unsigned
int)
0x5f9e1491 [libglesv2.dll - context.cpp:198] gl::Context::~Context()
0x5f9e182f [libglesv2.dll - context.cpp:3936] glDestroyContext
0x717654ec [libegl.dll -
display.cpp:749] egl::Display::destroyContext(gl::Context *)
0x7176a3da [libegl.dll - libegl.cpp:907] eglDestroyContext
0x64fbaf33 [chrome.dll - gl_context_egl.cc:75] gfx::GLContextEGL::Destroy()
The vendor ID is always 8086 (Intel). Not an XP issue - it's happening on Win
7.
With this change, D3D queries are only released when the display is destroyed or reset or if a very high number of D3D queries have been allocated.
Tested by stepping exercising the NV_fence entry points in a debugger.
Review URL: http://codereview.appspot.com/5534065
git-svn-id: https://angleproject.googlecode.com/svn/trunk@941 736b8ea6-26fd-11df-bfd4-992fa37f6226
The change to the sample is just to demonstrate how I tested it. I won't check in the stuff under samples/.
It's not clear to me what eglPostSubBufferNV should do if EGL_POST_SUB_BUFFER_SUPPORTED_NV is false. At the moment it fails silently as though it was called on the wrong surface type:
"If <surface> is a back-buffered surface, then the requested portion
of the color buffer is copied to the native window associated with
that surface. If <surface> is a single-buffered window, pixmap, or
pbuffer surface, eglSwapBuffers and eglPostSubBufferNV have no
effect."
Review URL: http://codereview.appspot.com/5345050
git-svn-id: https://angleproject.googlecode.com/svn/trunk@902 736b8ea6-26fd-11df-bfd4-992fa37f6226
If an extension is not specified, it is disabled by default, thus a shader should fail compiling if features from that extension are used.
ANGLEBUG=204
TEST=webgl conformance/extensions/oes-standard-derivatives.html
Review URL: http://codereview.appspot.com/4974071
git-svn-id: https://angleproject.googlecode.com/svn/trunk@745 736b8ea6-26fd-11df-bfd4-992fa37f6226
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
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
- Memory leaks
- Made compiling using multiple strings default. This was not getting exercised.
- Removed redundant copies of file data
- Handled empty files properly which were getting ignored
BUG=66
Review URL: http://codereview.appspot.com/2579041
git-svn-id: https://angleproject.googlecode.com/svn/trunk@465 736b8ea6-26fd-11df-bfd4-992fa37f6226
Symbol table entries depend on three things - language, spec (not now but may eventually), and built-in resources.
We used to build two global symbol-tables - one for each language. During each compile, one of the symbol table was
copied and resource-specific stuff was added. I have moved the symbol table to TCompiler that gets initilized when
compiler is created and reused for each compile. This makes it much cleaner and extensible in case a spec requires
special entries to be added to the symbol table.
PS: Sorry for the long CL, but all of it needed to be done in one CL. I have verified that everything still compiles
and passes all conformance tests.
Review URL: http://codereview.appspot.com/1864044
git-svn-id: https://angleproject.googlecode.com/svn/trunk@351 736b8ea6-26fd-11df-bfd4-992fa37f6226