|
e294bb87
|
2014-07-17T14:16:26
|
|
Add new shader inspection APIs.
Each new entry point corresponds to one of the variable types:
varyings, attributes, uniforms, output variables, and interface
blocks. They return a pointer to the vector with all of the
parsed variables, which then the app can copy to its own memory.
Currently we do not support the staticUse field in the HLSL
translator.
BUG=angle:466
Change-Id: I7dc09e761ab070feef5360ad27740110c44853b3
Reviewed-on: https://chromium-review.googlesource.com/208750
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Nicolas Capens <capn@chromium.org>
|
|
13cfd276
|
2014-07-17T14:16:28
|
|
Move shader variables header to include folder.
This allows the API to query for clear type introspection into the
parsed GL types from the translator. The returned types are not
expanded and have properly nested fields.
This patch uses the types from ShaderVars.h to return GL type
information. The app must include this header to get access to
the types structs.
BUG=angle:466
Change-Id: I28ad0d6f11a964804dd234ef0d00651f665d1ae3
Reviewed-on: https://chromium-review.googlesource.com/208751
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
|
|
bf9cce2e
|
2014-07-18T10:33:09
|
|
Use the block encoder class to store uniform offsets.
This will allow us to use the same code path for assigning register
information in all places. Because of this it fixes some long-broken
dEQP struct uniform tests.
BUG=angle:466
BUG=angle:505
Change-Id: I4161a388503aa09bbe2d21ff47bfb3352ec93881
Reviewed-on: https://chromium-review.googlesource.com/207255
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Nicolas Capens <capn@chromium.org>
|
|
d4116ff3
|
2014-07-11T17:02:01
|
|
Remove sh::InterfaceBlock::registerIndex.
This value is HLSL-only and we can use the new query API to hide it
from GLSL programs.
BUG=angle:466
Change-Id: I75dc2fbbf1b29b1f6d561568174a15dea1f5b130
Reviewed-on: https://chromium-review.googlesource.com/207250
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
|
|
f51639a4
|
2014-06-25T16:04:57
|
|
Use a common include for GL headers.
A common place to define required GL includes gives us a nice
point to centralize GL customizations. In the header currently
are the basic GLES headers with extensions, and a define
carried over from desktop GL.
BUG=angle:466
Change-Id: I6fc61947b4514654ec21355a786904eac04656c0
Reviewed-on: https://chromium-review.googlesource.com/204936
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Nicolas Capens <nicolascapens@chromium.org>
|
|
f2575989
|
2014-06-25T16:04:54
|
|
Use the sh namespace for shader variables.
Since these types originate from the translator, use an appropriate
namespace. Also rename some of the gl helper functions to be more
specific to their functionality.
BUG=angle:466
Change-Id: Idc29987b2053b3c40748dd46b581f3dbd8a6fd61
Reviewed-on: https://chromium-review.googlesource.com/204680
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
|
|
d7e7d735
|
2014-05-27T16:10:46
|
|
Move the GL_APICALL and similar defines to the project level.
BUG=angle:658
Change-Id: Ib4fa10bb89a6658efbc20d5a763d8ec9c3a5506f
Reviewed-on: https://chromium-review.googlesource.com/201465
Tested-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
68fe74aa
|
2014-05-27T12:56:01
|
|
Add a compiler query for the translator output type.
This is useful for determining if we are compiling to a D3D9 or D3D11
shader outside of the internal translator classes.
BUG=angle:656
Change-Id: Ib1c1d3de569edaa2b65c24c09d05aa4dd229d3e4
Reviewed-on: https://chromium-review.googlesource.com/201564
Reviewed-by: Nicolas Capens <nicolascapens@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
ff0d2ba6
|
2014-05-14T13:49:10
|
|
Split register allocation of varyings from the translator.
The translator gl::Varying struct does not need to know about register
allocation. We can put that entirely in the API library. This makes
exposing Varying variables with the new translator types cleaner.
BUG=angle:466
Change-Id: Ib85ac27de003913a01f76d5f4dc52454530859e6
Reviewed-on: https://chromium-review.googlesource.com/199736
Reviewed-by: Nicolas Capens <nicolascapens@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
834e8b77
|
2014-04-11T13:33:58
|
|
Move ShaderVariables to common shared source.
Also move the block layout encoding utilities to the common folder.
The combined changes allow us to include the shader and block code
into both libGLESv2 and the translator separately. This in turn
fixes the Chromium component build, where we were calling internal
translator functions directly from libGLESv2.
BUG=angle:568
Change-Id: Ibcfa2c936a7c737ad515c10bd24061ff39ee5747
Reviewed-on: https://chromium-review.googlesource.com/192891
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
655fe36e
|
2014-04-11T13:12:34
|
|
Use shader optimization level 3 selectively.
Default to HLSL compiler optimization level 1 and work around a compiler bug with break in nested loops by using optimization level 3.
BUG=angle:603
Change-Id: I4f7985a5648f1b5f54d80554c21aced7fc1777c2
Reviewed-on: https://chromium-review.googlesource.com/194129
Tested-by: Nicolas Capens <nicolascapens@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
|
|
5f562735
|
2014-02-14T16:41:24
|
|
Moved all HLSL-related code from ProgramBinary to DynamicHLSL.
DynamicHLSL encapsulates all HLSL generation we need outside the
the shader translator, such as for linking between input and output
stages and point sprite geometry shaders.
BUG=angle:560
Change-Id: Ib5079aa102000a7c37b166bcbe26b09cc82f8932
Reviewed-on: https://chromium-review.googlesource.com/185191
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
3c9eeb97
|
2013-11-04T11:09:26
|
|
Disable optimizations for shaders with conditional discard in D3D9, and
only use expanded short-circuiting conditionals for expressions with
potential side-effects.
Conservatively assume aggreate and selection operators have side effects for now.
BUG=
ANGLEBUG=486
R=geofflang@chromium.org, kbr@chromium.org, nicolas@transgaming.com, shannonwoods@chromium.org
Review URL: https://codereview.appspot.com/14441075
Conflicts:
src/common/version.h
src/compiler/translator.vcxproj
src/compiler/translator.vcxproj.filters
src/compiler/translator/OutputHLSL.cpp
src/libGLESv2/ProgramBinary.cpp
src/libGLESv2/Shader.cpp
src/libGLESv2/Shader.h
Change-Id: Iaf9f10b5de7b33c927ef032f3c4fe9d5095f64dd
|
|
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.
|
|
a6da33a1
|
2013-08-30T13:21:07
|
|
Remove the gl::Varying class, and replace all usages with sh::Varying.
TRAC #23746
Signed-off-by: Nicolas Capens
Signed-off-by: Shannon Woods
|
|
139b9091
|
2013-08-30T13:21:06
|
|
Simplify the gl::Varying struct to be more like sh::Varying.
The subsequent patches will remove gl::Varying entirely.
TRAC #23746
Signed-off-by: Nicolas Capens
Signed-off-by: Shannon Woods
|
|
ce79dda1
|
2013-08-30T13:21:06
|
|
Change the varyings list type from a linked list to a vector type.
TRAC #23746
Signed-off-by: Nicolas Capens
Signed-off-by: Shannon Woods
|
|
1cb333eb
|
2013-08-30T13:21:05
|
|
Rename compiler/Uniform.cpp+h to ShaderVariable.cpp+h.
TRAC #23754
Signed-off-by: Nicolas Capens
Signed-off-by: Shannon Woods
|
|
47fdd13e
|
2013-08-30T13:21:04
|
|
Pass varyings to the GLES API from the translator using a direct pointer.
Instead of parsing them indirectly from HLSL, the pointer will allow us to more flexibly
support new types, especially compound types such as structures.
TRAC #23754
Signed-off-by: Nicolas Capens
Signed-off-by: Shannon Woods
|
|
9d2ffb1d
|
2013-08-30T13:21:04
|
|
Refactor sh::Uniform and sh::ShaderVariable into a shader variable base type with different child types.
This change gives us better memory usage (many fields are unnecessary in different types) with better static
typing and clear type abstraction for specific methods that might take Attributes or Varyings, etc.
TRAC #23754
Signed-off-by: Nicolas Capens
Signed-off-by: Shannon Woods
|
|
536d7265
|
2013-08-26T17:04:20
|
|
Replaced the char pointers with std::strings in the Shader classes.
TRAC #23775
Author: Geoff Lang
Signed-off-by: Jamie Madill
Signed-off-by: Shannon Woods
|
|
2aeb26a4
|
2013-07-08T14:02:55
|
|
Added support for EXT_frag_depth
This change also required that support be added for associating built-in
variables with an extension, similar to how functions could be associated with
extensions previously.
R=alokp@chromium.org
Review URL: https://codereview.appspot.com/9827044
git-svn-id: https://angleproject.googlecode.com/svn/trunk@2248 736b8ea6-26fd-11df-bfd4-992fa37f6226
TRAC #23333
Authored-by: bajones@chromium.org
Signed-off-by: Shannon Woods
Signed-off-by Nicolas Capens
Merged-by: Jamie Madill
|
|
defb674a
|
2013-06-20T11:55:51
|
|
Add a new path for querying active attributes from the shader translator, for use with layout qualifier support.
TRAC #23269
Signed-off-by: Geoff Lang
Signed-off-by: Nicolas Capens
Author: Jamie Madill
|
|
46131a38
|
2013-06-20T11:55:50
|
|
Proper support for fragment output variables for GLSL ES shader version 300.
TRAC #22704
Signed-off-by: Geoff Lang
Signed-off-by: Nicolas Capens
Authored-by: Jamie Madill
|
|
83ac5e82
|
2013-05-30T00:15:29
|
|
Add the shader version of the compiled shaders to the program binary.
Also increment the binary version.
TRAC #23182
Signed-off-by: Shannon Woods
Signed-off-by: Nicolas Capens
Author: Jamie Madill
git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2368 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
1500f093
|
2013-05-30T00:11:20
|
|
Add uniform block linking between the API, the program binary, and the compiler.
TRAC #22892
Signed-off-by: Nicolas Capens
Signed-off-by: Shannon Woods
Author: Jamie Madill
git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2338 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
0329988b
|
2013-05-30T00:05:26
|
|
Add support for querying gl_DepthRange as an active uniform via GetActiveUniform.
TRAC #22865
Signed-off-by: Geoff Lang
Signed-off-by: Shannon Woods
Author: Jamie Madill
git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2292 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
1886fd4f
|
2013-04-13T03:41:45
|
|
Implement flat and centroid interpolation in HLSL.
TRAC #22857
Signed-off-by: Jamie Madill
Signed-off-by: Shannon Woods
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2154 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
aa8b5cff
|
2013-04-13T03:31:55
|
|
Shader and Compiler track uses of gl_FragCoord and gl_FragData and MRT extension usage.
TRAC #22668
Signed-off-by: Jamie Madill
Signed-off-by: Shannon Woods
Author: Geoff Lang
git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2084 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
f26ddae9
|
2013-04-13T03:29:13
|
|
Added the GLES3 headers and updated all locations where the GLES2 headers were included to also include the GLES3 headers.
TRAC #22694
Signed-off-by: Jamie Madill
Signed-off-by: Shannon Woods
Author: Geoff Lang
git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2069 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
5f339332
|
2013-04-13T03:29:02
|
|
Updated gl2.h and gl2ext.h.
TRAC #22694
Signed-off-by: Jamie Madill
Signed-off-by: Shannon Woods
Author: Geoff Lang
git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2068 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
486d9e9b
|
2013-02-28T23:15:41
|
|
Remove a lot of unnecessary include files and break include chains.
This should speed up incremental compile times when modifying headers, by reducing the number of dependencies.
TRAC #22518
Signed-off-by: Geoff Lang
Signed-off-by: Shannon Woods
Author: Jamie Madill
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1937 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
5bcf7dfb
|
2013-01-25T21:55:33
|
|
Move the call to packVaryings outside of linkVaryings.
TRAC #22412
Signed-off-by: Nicolas Capens
Signed-off-by: Shannon Woods
Author: Jamie Madill
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1784 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
b73964e3
|
2013-01-25T21:49:14
|
|
Pass the desired HLSL version down to the HLSL generator.
TRAC #22330
Signed-off-by: Geoff Lang
Signed-off-by: Daniel Koch
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1738 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
c5c9e3c5
|
2012-12-20T21:12:32
|
|
Retrieve active uniforms.
TRAC #22239
Signed-off-by: Daniel Koch
Signed-off-by: Shannon Woods
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1626 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
60dafe8f
|
2012-09-05T22:26:10
|
|
Implement D3DConstantTable.
Remove ProgramBinary dependencies on D3DX.
Review URL: https://codereview.appspot.com/6485061
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1271 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
29ab9525
|
2012-08-27T16:25:37
|
|
Minor GCC fixes
- Added missing typename keyword
- Use proper filenames includes (this matters when cross compiling on case sensitive OSes)
- Added <string> include where GCC requires it
- Avoid collision between enum variables and template params
Issue=358
Signed-off-by: Daniel Koch
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1261 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
e2a59bba
|
2012-06-07T21:09:53
|
|
Refactor Program into Program and ProgramBinary.
Program manages the state and lifetime of the program object.
ProgramBinary holds the linked program and the code to do the linking.
There should be no functional change. WebGL conformance tests did not regress.
Review URL: https://codereview.appspot.com/6267047
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1143 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
0725e7df
|
2012-02-17T18:02:20
|
|
Support reloading the shader compiler
Trac #19900
Issue=291
- Move compiler initialization to a separate function
- all this function to ensure the compiler is loaded when a compile is attempted
(previously if the compiler was released, you'd have to create a new shader object
to get it reloaded).
Signed-off-by: Shannon Woods
Signed-off-by: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@992 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
938009cf
|
2012-02-17T18:02:15
|
|
Add ability to recompile shader source
Trac# 19900
Issue=291
- add an 'uncompile' function to clear all results from any previous compile attempts
- allow compiling to be done multiple times on the same shader
- allow a shader to be compiled with no source specified (to produce an appropriate error).
Signed-off-by: Shannon Woods
Signed-off-by: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@991 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
cde6a610
|
2012-02-17T18:01:10
|
|
Rename the Shader 'varyings' member to 'mVaryings' to follow coding standard
Trac #19900
Issue=291
Signed-off-by: Shannon Woods
Signed-off-by: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@990 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
2cdf833c
|
2012-02-17T18:00:50
|
|
Provide better encapsulation for Shader member variables
Trac 19900
Issue=291
Moved a bunch of member variables from 'protected' to 'private'
Signed-off-by: Shannon Woods
Signed-off-by: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@989 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
a574f78f
|
2011-10-03T21:45:23
|
|
Add an extension for querying translated HLSL shader source.
Review URL: http://codereview.appspot.com/5149046
git-svn-id: https://angleproject.googlecode.com/svn/trunk@780 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
d976b584
|
2011-03-29T00:56:20
|
|
Consistently use the virtual keyword on virtual overloaded methods.
TRAC #16118
Signed-off-by: Daniel Koch
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@596 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
da13f3e9
|
2010-07-28T19:20:56
|
|
Adds resource manager class.
TRAC #12493
The resource manager class is now in charge of allocation &
management of objects which may be shared by multiple contexts.
Signed-off-by: Andrew Lewycky
Signed-off-by: Nicolas Capens
Signed-off-by: Daniel Koch
Author: Shannon Woods
git-svn-id: https://angleproject.googlecode.com/svn/trunk@360 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
be5a0867
|
2010-07-28T19:20:37
|
|
Implement gl_PointCoord on SM3 hardware
TRAC #11594
Signed-off-by: Andrew Lewycky
Signed-off-by: Daniel Koch
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@355 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
4af7acca
|
2010-05-14T17:30:53
|
|
Implemented varying packing
TRAC #11736
The OpenGL ES Shading Language 1.00 rev. 17 appendix A section 7 page 111, details how varyings should be packed into generic varying registers. To implement this the HLSL main() function is now generated and appended to the code during link time, where the packing and mapping can happen.
Signed-off-by: Shannon Woods
Signed-off-by: Daniel Koch
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@282 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
95124346
|
2010-04-29T03:38:58
|
|
Deleting program does not delete shaders that are marked
TRAC #12012
Resolve the crash on context deletion.
Signed-off-by: Nicolas Capens
Signed-off-by: Daniel Koch
Author: Andrew Lewycky
git-svn-id: https://angleproject.googlecode.com/svn/trunk@213 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
71cd868d
|
2010-04-29T03:35:25
|
|
Deleting program does not delete shaders that are marked
TRAC #12012
Also fixes failure to delete flagged program upon glUseProgram(0).
Signed-off-by: Nicolas Capens
Signed-off-by: Daniel Koch
Author: Andrew Lewycky
git-svn-id: https://angleproject.googlecode.com/svn/trunk@201 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
09fbfefa
|
2010-04-22T13:35:31
|
|
Implemented glGetActiveUniform
TRAC #11929
Signed-off-by: Shannon Woods
Signed-off-by: Daniel Koch
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@181 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
85423183
|
2010-04-22T13:35:27
|
|
Implemented glGetActiveAttrib
TRAC #11929
Signed-off-by: Shannon Woods
Signed-off-by: Daniel Koch
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@180 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
b4ff1f8f
|
2010-04-22T13:35:18
|
|
Implemented aliased attributes support
TRAC #11092
Signed-off-by: Shannon Woods
Signed-off-by: Daniel Koch
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@177 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
e6842296
|
2010-04-20T18:52:50
|
|
Fix more relative #include paths (mostly header files)
Trac #11408
Signed-off-by: Andrew Lewycky
Signed-off-by: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@171 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
0e3358a6
|
2010-04-05T20:32:42
|
|
Compiler - implement proper varying linking
TRAC #11716
Signed-off-by: Shannon Woods
Signed-off-by: Daniel Koch
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@97 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
6c78521e
|
2010-03-30T03:36:17
|
|
Implement glGetAttachedShaders and glGetShaderPrecisionFormat.
TRAC #11599
Signed-off-by: Andrew Lewycky
Signed-off-by: Daniel Koch
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@85 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
cba5057c
|
2010-03-28T19:36:09
|
|
Compiler - implement shader and program queries
TRAC #11599
Signed-off-by: Shannon Woods
Signed-off-by: Daniel Koch
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@76 736b8ea6-26fd-11df-bfd4-992fa37f6226
|
|
7c46b9e6
|
2010-03-17T13:12:58
|
|
mv libGLESv2 -> src/libGLESv2
Trac #11406
Signed-off-by: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@40 736b8ea6-26fd-11df-bfd4-992fa37f6226
|