Граф коммитов

144 Коммитов

Автор SHA1 Сообщение Дата
maxvujovic@gmail.com 8b8f02dcd3 [SH_TIMING_RESTRICTIONS] Restrict sampler dependent values from the tex coord and bias parameters of all sampling operations, not just texture2D.
Issue: 335
Review URL: https://codereview.appspot.com/6305049/


git-svn-id: https://angleproject.googlecode.com/svn/trunk@1167 736b8ea6-26fd-11df-bfd4-992fa37f6226
2012-06-25 20:39:58 +00:00
daniel@transgaming.com 635d6b5df9 Fix sample project dependency on preprocessor.vcproj
Issue=342

git-svn-id: https://angleproject.googlecode.com/svn/trunk@1166 736b8ea6-26fd-11df-bfd4-992fa37f6226
2012-06-25 14:57:21 +00:00
apatrick@chromium.org 2979ed2cce Add preprocessor.vcproj to samples.sln.
Review URL: https://codereview.appspot.com/6326046

git-svn-id: https://angleproject.googlecode.com/svn/trunk@1163 736b8ea6-26fd-11df-bfd4-992fa37f6226
2012-06-22 18:33:57 +00:00
maxvujovic@gmail.com 430f5e0c75 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
2012-06-08 17:47:59 +00:00
maxvujovic@gmail.com 66ebd0143e 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
2012-05-30 22:18:11 +00:00
alokp@chromium.org 4a02078ac0 Fixed compile warnings on linux.
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1090 736b8ea6-26fd-11df-bfd4-992fa37f6226
2012-05-17 21:19:16 +00:00
zmo@google.com 4e13a77ecf Make essl_to_glsl target windows only.
This is a quick fix for gclient runhooks error on Mac/Linux.

BUG=
TEST=gclient runhooks --force on Mac/Linux
Review URL: https://codereview.appspot.com/5732047

git-svn-id: https://angleproject.googlecode.com/svn/trunk@997 736b8ea6-26fd-11df-bfd4-992fa37f6226
2012-03-02 23:44:57 +00:00
apatrick@chromium.org e057c5dd6e Fixed more warnings.
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
2012-01-26 19:18:24 +00:00
apatrick@chromium.org a1d8059d67 Increase MSVC warning level to 4.
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
2012-01-25 21:52:10 +00:00
apatrick@chromium.org 3efb99cf78 Added EGL_KHR_image_base and GL_OES_EGL_image_external entry points to esUtil.
Review URL: https://codereview.appspot.com/5574051

git-svn-id: https://angleproject.googlecode.com/svn/trunk@958 736b8ea6-26fd-11df-bfd4-992fa37f6226
2012-01-24 19:04:19 +00:00
apatrick@chromium.org 6575602ea6 Finished off the GLSL compiler's support for parsing shaders using OES_EGL_image_external.
The GLSL to HLSL translator work is not done yet so the extension is disabled in Shader.cpp.
Review URL: https://codereview.appspot.com/5530081

git-svn-id: https://angleproject.googlecode.com/svn/trunk@946 736b8ea6-26fd-11df-bfd4-992fa37f6226
2012-01-17 21:45:38 +00:00
apatrick@chromium.org f289ee8d52 Allocate D3D queries from a pool for the Display.
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
2012-01-11 20:03:29 +00:00
apatrick@chromium.org f4490e2207 Implemented EGL_NV_post_sub_buffer.
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
2011-12-06 02:05:22 +00:00
daniel@transgaming.com 805a49ab7d Fix post-build steps when spaces appear in directory names
TRAC #18901
Issue=245
Signed-off-by: Nicolas Capens
Signed-off-by: Daniel Koch

git-svn-id: https://angleproject.googlecode.com/svn/trunk@897 736b8ea6-26fd-11df-bfd4-992fa37f6226
2011-11-29 17:21:42 +00:00
daniel@transgaming.com 7f02008ad8 Fix compiler warnings in translator.cpp
Bug=227
Author: Mark Callow

git-svn-id: https://angleproject.googlecode.com/svn/trunk@790 736b8ea6-26fd-11df-bfd4-992fa37f6226
2011-10-12 16:19:54 +00:00
daniel@transgaming.com 876f47ad0d Fix essl_to_hlsl project configurations
Bug=226
Author: Mark Callow

git-svn-id: https://angleproject.googlecode.com/svn/trunk@789 736b8ea6-26fd-11df-bfd4-992fa37f6226
2011-10-12 16:19:48 +00:00
zmo@google.com f54509100e Fix extension behavior in shader validation.
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
2011-09-09 01:37:19 +00:00
zmo@google.com 32e97315e2 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
2011-08-24 01:03:11 +00:00
zmo@google.com 0c6bb7a653 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
2011-08-17 19:39:58 +00:00
zmo@google.com 09c323a40a Add an option to support for GL_OES_EGL_image_external.
Comes with this extension is the new sampler type samplerExternalOES.

ANGLEBUG=175
TEST=compile the attached shader file
Review URL: http://codereview.appspot.com/4809076

git-svn-id: https://angleproject.googlecode.com/svn/trunk@728 736b8ea6-26fd-11df-bfd4-992fa37f6226
2011-08-12 18:22:25 +00:00
zmo@google.com 5601ea0d66 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
2011-06-10 18:23:25 +00:00
kbr@chromium.org fe2aff1094 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
2011-06-02 00:23:44 +00:00
zmo@google.com d7468be16f Add long name mapping option to the translator test.
Review URL: http://codereview.appspot.com/4529091

git-svn-id: https://angleproject.googlecode.com/svn/trunk@658 736b8ea6-26fd-11df-bfd4-992fa37f6226
2011-05-26 21:26:14 +00:00
apatrick@chromium.org e0a384d781 Fix compilation errors in translator.cpp.
Review URL: http://codereview.appspot.com/4445073

git-svn-id: https://angleproject.googlecode.com/svn/trunk@626 736b8ea6-26fd-11df-bfd4-992fa37f6226
2011-04-29 00:24:23 +00:00
nduca@chromium.org a6e31e58bb Resize surface on receipt of WM_SIZE to avoid corruption during resize. We hook WM_SIZE using window subclassing.
This is a continuation of http://codereview.appspot.com/3038042/


Review URL: http://codereview.appspot.com/3122041

git-svn-id: https://angleproject.googlecode.com/svn/trunk@486 736b8ea6-26fd-11df-bfd4-992fa37f6226
2010-11-18 00:24:27 +00:00
alokp@chromium.org d1e10e602e Refactored ReadFileData() function in the translator sample to fix many issues:
- 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
2010-10-20 20:58:55 +00:00
alokp@chromium.org 4888ceb668 Made the API of shader translator library consistent.
- We recently started using OpenGL-type enums. This CL makes all old enums consistent with the new scheme.
- Renamed TBuiltInResource to ShBuiltInResources to have a consistent prefix

BUG=46
Review URL: http://codereview.appspot.com/2328041

git-svn-id: https://angleproject.googlecode.com/svn/trunk@443 736b8ea6-26fd-11df-bfd4-992fa37f6226
2010-10-01 21:13:12 +00:00
alokp@chromium.org ee76f6af45 Implemented functionality to collect and return info for attributes and uniforms.
BUG=26
Review URL: http://codereview.appspot.com/2206046

git-svn-id: https://angleproject.googlecode.com/svn/trunk@440 736b8ea6-26fd-11df-bfd4-992fa37f6226
2010-09-27 19:28:55 +00:00
alokp@chromium.org 7beea4084f Added API to query for active attribs and uniforms. These functions are modeled after glGetShaderiv, glGetProgramiv, glGetActiveAttrib, and glGetActiveUniform. The main difference between this and OpenGL API is that we do not have programs - just shaders.
BUG=26
Review URL: http://codereview.appspot.com/2183041

git-svn-id: https://angleproject.googlecode.com/svn/trunk@425 736b8ea6-26fd-11df-bfd4-992fa37f6226
2010-09-15 21:18:34 +00:00
alokp@chromium.org 94a86ad8f1 Adding support for OES_standard_derivatives extension. This is not the complete implementation. Sending it to get feedback on the API. Is it OK to add extension support into TBuiltInResource? I could create a new struct for extensions but that would lead to API change.
BUG=25
Review URL: http://codereview.appspot.com/1953047

git-svn-id: https://angleproject.googlecode.com/svn/trunk@402 736b8ea6-26fd-11df-bfd4-992fa37f6226
2010-08-25 20:02:11 +00:00
alokp@chromium.org e4249f0217 Refactored the way symbol tables are initialized and stored. This was done in response to the addition of EShSpec.
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
2010-07-26 18:13:52 +00:00
alokp@chromium.org c54bf507cd Further cleanup of ShaderLang.h. Removed redundant/unused macros and enum fields.
Review URL: http://codereview.appspot.com/1842046

git-svn-id: https://angleproject.googlecode.com/svn/trunk@349 736b8ea6-26fd-11df-bfd4-992fa37f6226
2010-07-22 16:49:09 +00:00
alokp@chromium.org 774d70630a 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
2010-07-21 18:55:45 +00:00
alokp@chromium.org 29cd91af30 Added an option for specifying language specification in preparation for supporting WebGL in addition to GLES2. This CL just replaces unused debugOptions variable with EShSpec variable.
BUG=11
Review URL: http://codereview.appspot.com/1692051

git-svn-id: https://angleproject.googlecode.com/svn/trunk@344 736b8ea6-26fd-11df-bfd4-992fa37f6226
2010-07-16 19:30:45 +00:00
alokp@chromium.org 84a9628864 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
2010-06-02 22:26:52 +00:00
daniel@transgaming.com e07980c45f removed execute permissions on smoke.tga
(was causing problems on windows)

git-svn-id: https://angleproject.googlecode.com/svn/trunk@164 736b8ea6-26fd-11df-bfd4-992fa37f6226
2010-04-20 18:52:09 +00:00
daniel@transgaming.com 7441c9cc25 Associate the sample.sln file with visual C++ express.
Trac #11802
Signed-off-by: Nicolas Capens

git-svn-id: https://angleproject.googlecode.com/svn/trunk@114 736b8ea6-26fd-11df-bfd4-992fa37f6226
2010-04-08 15:01:05 +00:00
alokp@chromium.org 0270ef140e Changed the default character set to be UNICODE, the same as chromium. Changes to fix compile errors and warnings.
Review URL: http://codereview.appspot.com/816046

git-svn-id: https://angleproject.googlecode.com/svn/trunk@103 736b8ea6-26fd-11df-bfd4-992fa37f6226
2010-04-07 19:57:20 +00:00
alokp@chromium.org 403c9e5961 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
2010-04-06 17:53:31 +00:00
alokp@chromium.org 29d56fbb60 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
2010-04-06 15:42:22 +00:00
alokp@chromium.org 1180ea73f5 Fixed the title of texture-wrap sample.
Review URL: http://codereview.appspot.com/834041

git-svn-id: https://angleproject.googlecode.com/svn/trunk@81 736b8ea6-26fd-11df-bfd4-992fa37f6226
2010-03-29 19:43:46 +00:00
alokp@chromium.org 76b820852b Added GLSL backend for ESSL translator.
Review URL: http://codereview.appspot.com/698041

git-svn-id: https://angleproject.googlecode.com/svn/trunk@69 736b8ea6-26fd-11df-bfd4-992fa37f6226
2010-03-24 17:59:39 +00:00
daniel@transgaming.com 24a0486194 Add smoke.tga for gles2\ParticleSystem sample
Trac #11596
Signed-off-by: Nicolas Capens

git-svn-id: https://angleproject.googlecode.com/svn/trunk@65 736b8ea6-26fd-11df-bfd4-992fa37f6226
2010-03-24 09:44:03 +00:00
alokp@chromium.org 5539a34f24 Added a few samples from GLES 2.0 book.
git-svn-id: https://angleproject.googlecode.com/svn/trunk@63 736b8ea6-26fd-11df-bfd4-992fa37f6226
2010-03-22 19:34:05 +00:00