|
0690e1aa
|
2017-12-21T20:51:38
|
|
Add a workaround to clamp gl_FragDepth
NVIDIA OpenGL drivers at least up to version 388.59 don't clamp
gl_FragDepth when it is written to a floating point depth buffer.
This bug is now worked around by clamping gl_FragDepth in the shader
if it is statically used.
BUG=angleproject:2299
TEST=angle_end2end_tests on NVIDIA
Change-Id: I61589b2b0dd2813c4901a157c8d37e470063773c
Reviewed-on: https://chromium-review.googlesource.com/840842
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
bb0775da
|
2017-11-10T16:20:43
|
|
Add flag for turning off initializing variables with loops
This flag is needed to toggle upcoming variable initialization mode
which uses for loops to optimize the compilation process. Initializing
variables using for loops will be turned on by default, but it needs
to be turned off in Chromium in certain cases. Chromium will use the
flag added in this patch and that code will need to go into Chromium
before finishing the implementation in ANGLE.
BUG=chromium:735497
Change-Id: I3a0e7b7c6cebe60afa72964fbd0caf3b1eafccbc
Reviewed-on: https://chromium-review.googlesource.com/763451
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
661fc487
|
2017-10-16T12:17:05
|
|
Work around NVIDIA GLSL vector-scalar op bug
This adds a new AST transform VectorizeVectorScalarArithmetic. The AST
transform works around incorrect handling of certain types of GLSL
arithmetic operations by NVIDIA's GL driver. It works around only the
most common cases where the bug reproduces, since detecting all the
cases would take more sophisticated analysis of the code than what
is currently easily implementable in ANGLE.
When a float add operator has both vector and scalar operands, the AST
transform turns the scalar operand into a vector operand. Example:
vec4 f;
f += 1.0;
gets turned into:
vec4 f;
f += vec4(1.0);
When a vector constructor contains a binary scalar float
multiplication or division operation as its only argument, the AST
transform turns both operands of the binary operation into vector
operands. Example:
float f, g;
vec4(f * g);
gets turned into:
float f, g;
vec4(vec4(f) * vec4(g));
Another example with compound assignment:
float f, g;
vec4(f *= g);
gets turned into:
float f, g;
vec4 s0 = vec4(f);
(s0 *= g, f = s0.x), s0;
This latter transformation only works in case the compound assignment
left hand expression doesn't have side effects.
BUG=chromium:772651
TEST=angle_end2end_tests
Change-Id: I84ec04287793c56a94845a725785439565debdaf
Reviewed-on: https://chromium-review.googlesource.com/721321
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
ab918821
|
2017-07-14T17:03:42
|
|
Clamp point size to maximum point size from the API on NVIDIA
NVIDIA OpenGL drivers have a bug where the point size range is being
reported incorrectly - it appears the core GL driver incorrectly gives
the range for smooth points, when it should be giving the range for
aliased points. Clamp the actual point size to the maximum point size
reported from the API so that the GLES spec is followed.
The same workaround seems to be necessary also on Android. The issue
was revealed by the trybots, and has not been fully diagnosed though.
The newly added test fails on AMD OpenGL.
As a part of this change, the existing tests in PointSpritesTest are
refactored to use gl_raii.
BUG=chromium:740560
TEST=angle_end2end_tests
Change-Id: Ic4a66c9ea16f5ae76beb3bb6577716d10c3b226e
Reviewed-on: https://chromium-review.googlesource.com/574598
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
318f9aa5
|
2017-05-17T17:47:28
|
|
Initialize ANGLE_multiview caps and workaround state
The patch checks whether ANGLE_multiview can be supported in the OpenGL
renderer, updates the caps and adds a workaround field to enable
multiview support through the NV_viewport_array2 extension.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: I99dae10564db7bcca41d7624f8de272c1d996e09
Reviewed-on: https://chromium-review.googlesource.com/567934
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
e7557744
|
2017-06-01T13:09:57
|
|
WebGL compatibility: remove UB for draw buffers in the GL backend.
WebGL adds two rules:
- Fragment outputs declared but not written to should default to black.
- FBO attachments for outputs not declared in the shader should not be
written to (it is UB in OpenGL ES).
Fix the first one by using the SH_INIT_OUTPUT_VARIABLES compiler
options, and the second one by messing with glDrawBuffers so that the
enabled draw buffers are always a subset of the ones declared by the
shader.
BUG=angleproject:2048
Change-Id: I1d851c190959c1acfc3e41d837e6990aec1d4086
Reviewed-on: https://chromium-review.googlesource.com/521682
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
9733ceef
|
2017-05-11T19:14:35
|
|
Initialize uninitialized locals in GLSL output
Guarantee that local variables are initialized before they are used
in GLSL output. In HLSL output all variables were already being
initialized.
Locals are initialized using an AST transform. The local variable init
can only be run after some simplification of the AST, so that it is
able to handle complex cases like:
for (int i[2], j = i[0]; i[0] < 3; ++i[0]) {
}
If we're dealing with ESSL 1.00 which lacks array constructors, in
this kind of case the uninitialized array initialization code needs to
be hoisted out of the loop init statement, and the code also needs to
make sure that j's initializer is run after i is initialized.
Another complex case involves nameless structs. This can be an issue
also in ESSL 3.00 and above:
for (struct { float f; } s; s.f < 1.0; ++s.f) {
}
Since the struct doesn't have a name, its constructor can not be used.
We solve this by initializing the struct members individually,
similarly to how arrays are initialized in ESSL 1.00.
Initializing local variables is disabled on Mac and Android for now.
On Mac, invalid behavior was exposed in the WebGL 2.0 tests when
enabling it. On Android, the dEQP test runs failed for an unknown
reason. Bugs have been opened to resolve these issues later.
BUG=angleproject:1966
TEST=angle_end2end_tests, WebGL conformance tests
Change-Id: Ic06927f5b6cc9619bc82c647ee966605cd80bab2
Reviewed-on: https://chromium-review.googlesource.com/504728
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d73f852f
|
2017-01-13T17:48:57
|
|
Reland "Replace gl::trace logging with Chromium style logging"
Removing one usage of FormatString() and its static buffer.
And preparation for Platform logging.
Fix incorrect enabling of ERR() calls in UNIMPLEMENTED() and
UNREACHABLE(), resulting in increased code size and
<iostream> adding 5 static initializers to chrome because of
cerr referenced in statically linked translator.
BUG=angleproject:1660
Change-Id: I7caa18036118d532e0544f75278602559172ae04
Reviewed-on: https://chromium-review.googlesource.com/431457
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6a6b09c9
|
2017-01-12T21:52:29
|
|
Revert "Replace gl::trace logging with Chromium style logging"
Failing Chromium static initializers check:
FAILED linux-release-64/sizes/chrome-si/initializers: actual 8, expected 7, better lower
Possibly due to the static initializer for std::array for
the log severity types. We should change it to POD.
BUG=angleproject:1660
This reverts commit afcc41cee4ff63e7f6c9e60e55fc061adbba7dd4.
Change-Id: Ifb362a4af78542608397c7a0b19e6afe076f2cf3
Reviewed-on: https://chromium-review.googlesource.com/427235
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
afcc41ce
|
2016-12-13T12:59:39
|
|
Replace gl::trace logging with Chromium style logging
Removing one usage of FormatString() and its static buffer.
And preparation for Platform logging.
BUG=angleproject:1660
Change-Id: I58192988ad16196706fe48d0c0ab0fd1a10c0210
Reviewed-on: https://chromium-review.googlesource.com/424173
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
7b91d0c1
|
2016-12-16T14:46:26
|
|
OpenGL: implement GL_ANGLE_translated_shader_source
BUG=chromium:668223
Change-Id: I2068370f3e6963f297d0cb6545c40abf84d543ce
Reviewed-on: https://chromium-review.googlesource.com/421092
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
da9fb093
|
2016-12-09T17:32:29
|
|
Work around atan(y, x) bug on NVIDIA
atan(y, x) is not always returning expected results on NVIDIA OpenGL
drivers between versions 367 and 375. Work around this by emulating
atan(y, x) using the regular atan(x) function. A fix to the driver is
expected in a future release.
It is most convenient to implement the vector atan(y, x) functions by
using the scalar atan(y, x) function. Support for simple dependencies
between emulated functions is added to BuiltInFunctionEmulator. In the
current implementation one function is allowed to have at most one
other function as its dependency.
BUG=chromium:672380
TEST=angle_end2end_tests
Change-Id: I9eba8b0b7979c7c7eaed353b264932e41830beb1
Reviewed-on: https://chromium-review.googlesource.com/419016
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f52fe93d
|
2016-12-07T13:39:15
|
|
Work around unary minus operator float issue on Intel Mac 10.11
Result of -float is wrong on Intel Mac 10.11 drivers. Replace -float
with 0.0 - float to work around this issue.
BUG=308366
BUG=672380
Change-Id: I53bc2eda7259fff5805bec39896fc7b7a6eaf665
Reviewed-on: https://chromium-review.googlesource.com/417169
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
89dd8f37
|
2016-11-09T12:59:30
|
|
Remove invariant declaration in vertex shader for translation from ESSL 3.00 to GLSL <= 4.1
This is a follow-up patch of
https://chromium-review.googlesource.com/408569. This CL removes
invariant declaration in ESSL 3.00 vertex shader, such like:
"
out vec4 foo;
invariant foo;
"
This CL also adds the workarounds in libANGLE.
BUG=chromium:639760
TEST=webgl2_conformance
Change-Id: I568ab51a9a2f5da10d1aff0b63aae8805097e081
Reviewed-on: https://chromium-review.googlesource.com/409157
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
705a9194
|
2016-08-29T10:05:27
|
|
Reland "Remove invariant qualifier for input in fragment shader"
This relands https://chromium-review.googlesource.com/#/c/400005/.
ESSL and GLSL are not consistent on invariant matching in vertex shader
and fragment shader. See the following rules:
ESSL 1.00 - input and output must match
ESSL 3.00 - only output, inputs cannot be declared as invariant.
GLSL 1.10.59 - does not exist
GLSL 1.20.8 - input and output must match
GLSL 1.30.10 - input and output must match
GLSL 1.40.8 - input and output must match
GLSL 1.50.11 - input and output must match
GLSL 3.30.6 - input and output must match
GLSL 4.00.9 - input and output must match
GLSL 4.10.6 - input and output must match
GLSL 4.20.11 - input can omit invariant
GLSL 4.30.8 - input can omit invariant
GLSL 4.40.9 - input can omit invariant
GLSL 4.50.5 - input can omit invariant
Since GLSL 4.20, invariant qualifier description were changed to:
"
Only variables output from a shader (including those that are then input
to a subsequent shader) can be candidates for invariance. This includes
user-defined output variables and the built-in output variables. As only
outputs need be declared with invariant, an output from one shader stage
will still match an input of a subsequent stage without the input being
declared as invariant.
"
It's not very clear if input in fragment can be declared as invariant.
Mesa driver disallows use of input declared as invariant in fragment
shader, while other drivers may allow it. This CL removes invariant
declaration for input in fragment shader except AMD driver in Linux.
AMD's driver obviously contradicts the spec by forcing invariance to
match between vertex and fragment shaders.
BUG=chromium:639760, chromium:659326
TEST=conformance/glsl/misc/shaders-with-invariance.html and
conformance/glsl/bugs/invariant-does-not-leak-across-shaders.html
Change-Id: I0aa9be14f0cee7a11a249c91fba27c570c52ca1b
Reviewed-on: https://chromium-review.googlesource.com/404228
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
7835b525
|
2016-10-08T11:20:17
|
|
Reland "Add workaround for unused std140 and shared uniform blocks on MacOS"
On some Mac drivers with shader version 4.1, they will
treat unused std140 and shared uniform blocks' members as inactive. However,
WebGL2.0 based on OpenGL ES3.0.4 requires all members of a named uniform block
declared with a shared or std140 layout qualifier to be considered active.
The uniform block itself is also considered active.
This workaround is to reference all members of unused std140 and shared uniform blocks
at the beginning of the vertex/fragment shader's main().
BUG=chromium:618464
TEST=UniformBufferTest.ActiveUniformBlockNumber
Change-Id: I18da4e2b61b0170068bf5ea38ce54667b0737780
Reviewed-on: https://chromium-review.googlesource.com/395648
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
c9e6026c
|
2016-09-30T17:15:07
|
|
Revert "Add workaround for unused std140 and shared uniform blocks on MacOS"
This reverts commit 9aa83fe302578d226f195fff5fb3f0e2fb723a4c.
The new test UniformBufferTest.ActiveUniformNumberAndName/ES3_OPENGL is failing on multiple platforms. Examples:
https://build.chromium.org/p/chromium.gpu.fyi/builders/Mac%2010.10%20Release%20%28ATI%29/builds/12285
https://build.chromium.org/p/chromium.gpu.fyi/builders/Linux%20Release%20(ATI)
Change-Id: I78b1a4d58e9a291e40ad304eb32f990e0518f7ee
Reviewed-on: https://chromium-review.googlesource.com/391049
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
9aa83fe3
|
2016-09-29T08:42:42
|
|
Add workaround for unused std140 and shared uniform blocks on MacOS
On some Mac drivers with shader version 4.1, they will
treat unused std140 and shared uniform blocks' members as inactive. However,
WebGL2.0 based on OpenGL ES3.0.4 requires all members of a named uniform block
declared with a shared or std140 layout qualifier to be considered active.
The uniform block itself is also considered active.
This workaround is to reference all members of unused std140 and shared uniform blocks
at the beginning of the vertex/fragment shader's main().
BUG=chromium:618464
TEST=UniformBufferTest.ActiveUniformBlockNumber
Change-Id: I1d2c5e3e8da04786ac6a37fd26f7bb9c14cd76ed
Reviewed-on: https://chromium-review.googlesource.com/387169
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6f0a0dca
|
2016-09-27T13:51:29
|
|
Workaround isnan() on Intel drivers
On some Intel drivers, calling function isnan() on highp float will get wrong
answer. This patch work arounds this bug by using an expression to emulate
this function.
BUG=chromium:650547
Change-Id: I5bc5e0352c434f42cd2c55103a74f9f7ba51a72c
Reviewed-on: https://chromium-review.googlesource.com/389834
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
09cfac60
|
2016-09-06T17:25:16
|
|
Work around For and While loop bugs on Intel Mac OSX
Condition calculation in for and while loops has bug on Intel Mac. Work
around it by converting "CONDITION" to "CONDITION && true".
This CL also adds previous SH_EMULATE_ABS_INT_FUNCTION workaround to
the ANGLE GL back-end on OSX
BUG=chromium:644669
TEST=deqp/functional/gles3/shaderloop_for/while.html
Change-Id: I910f662b054f259fcb601b9938841b3a2d066840
Reviewed-on: https://chromium-review.googlesource.com/381678
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Qiankun Miao <qiankun.miao@intel.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
7ebb97fc
|
2016-09-08T18:01:50
|
|
Use 64-bits compile options
BUG=chromium:645071
Change-Id: I31825123bf4cb45fb37a93f538e8936487beb5ff
Reviewed-on: https://chromium-review.googlesource.com/382712
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
15243d9b
|
2016-04-26T13:41:35
|
|
Rename gl::Shader::Data to gl::ShaderState.
BUG=angleproject:1363
Change-Id: I49cb5d7319742487c8c00c58ec58f9a29561b9c1
Reviewed-on: https://chromium-review.googlesource.com/340743
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
67946766
|
2016-03-08T15:43:55
|
|
Improve info log length checks
Extend the info log length checks to shader_utils used by tests, and
treat info log with length 1 as empty, since it can only include the
null terminator. At least the Intel GL driver may generate "\0" as
info log in some situations, for example when compiling a user-defined
function with 50000 parameters.
BUG=angleproject:1323
Change-Id: I00f2965539ec235cb949c80c2a9e1d063d32fa15
Reviewed-on: https://chromium-review.googlesource.com/331461
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
01ad6445
|
2016-03-03T13:53:45
|
|
Program/ShaderGL: handle empty info logs
The GL driver can sometimes have an empty info log and return an info
log length of 0. This would cause a vector to be initialized with a
length of 0 just before it's .data() pointer was used, causing a
segfault.
BUG=angleproject:1323
Change-Id: Iaf9b569ec64a90c714a213562e427fb7cc8daa6b
Reviewed-on: https://chromium-review.googlesource.com/330197
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
d470f472
|
2015-10-20T13:34:25
|
|
Don't ASSERT shader compilation success in ShaderGL.
This assertion was useful for debugging the initial implementation but it
is becoming an issue in tryjobs where tests will hang instead of fail due
to driver bugs.
BUG=angleproject:882
Change-Id: Ib23a0d16dfe250ea175a166b5e277bf07d80a2fa
Reviewed-on: https://chromium-review.googlesource.com/307460
Tryjob-Request: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
d2c52e3b
|
2015-10-14T17:07:05
|
|
Fix debug annotations and shaders.
The Program refactor inadvertantly broken Debug annotations. Fix this
by correctly passing the path to the temporary shader source in the
first "C" string argument to ShCompile, instead of as the first part
of the source string.
BUG=angleproject:1177
TEST=manual testing with MSVS
Change-Id: Ie77bb11b51645a474b542ddd2ae0f391e019e341
Reviewed-on: https://chromium-review.googlesource.com/306210
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
d4b5054d
|
2015-09-28T12:19:26
|
|
compiler: Rewrite do-while loops as while loops
This works around a Mac driver shader compiler bug that makes many
do-while loops cause GPU-hangs when ran.
BUG=angleproject:891
Change-Id: I29828d6ea9e887ad0ed0c577f1deb41fb632a900
Reviewed-on: https://chromium-review.googlesource.com/302465
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
006cbc5b
|
2015-09-23T16:47:54
|
|
Remove rx::ShaderSh and move the shared code to the GL.
The GL layer can interact with the translator directly, to query all
the active shader variables and call ShCompile.
BUG=angleproject:1159
Change-Id: I334a9bef28f93cf85dd8cac0fb8542ac567cc3ec
Reviewed-on: https://chromium-review.googlesource.com/299877
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
91445bce
|
2015-09-23T16:47:53
|
|
Make a shader Shader::Data state structure.
This design follows the similar designs for Program, Framebuffer, etc.
Because of the current design, share a mutable pointer with the Impl
so the patch becomes a bit smaller and easier to review. In a follow-
up patch we can move the shared code into the GL layer.
BUG=angleproject:1159
Change-Id: Ib243e74779f23be51cdca80f1b5c6e5f3e36059d
Reviewed-on: https://chromium-review.googlesource.com/299876
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
046e53e3
|
2015-09-23T16:47:52
|
|
Add an interm ShaderSh class.
This class logic will eventually move to the GL layer. Keep it
in the Renderer layer for now for refactoring purposes.
BUG=angleproject:1159
Change-Id: I91843099367f9a0293cc43ab98626bf79eb75ebf
Reviewed-on: https://chromium-review.googlesource.com/299875
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
83f349ea
|
2015-09-23T09:50:36
|
|
Remove CompilerImpl and merge code to gl::Compiler.
This class uses no Impl-specific code. We can also do a similar
code relocation for the gl::Shader class, but in several steps
because it is a bit more complex.
BUG=angleproject:1159
Change-Id: I4d3ce3253df0a2bdee1d98e46cfd4b999d86be6e
Reviewed-on: https://chromium-review.googlesource.com/299874
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
4cff2477
|
2015-08-21T16:53:18
|
|
Make PackedVarying a D3D-only type.
The register assignment stuff only applies to the D3D back-end.
Cleans up the GL back-ends use of PackedVarying, and will lead
to future cleanups relating to packing varyings.
BUG=angleproject:1123
Change-Id: Iaaa5fc03577e5b61ea6ae76ee1e15ad608037f34
Reviewed-on: https://chromium-review.googlesource.com/295190
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
80a6fc03
|
2015-08-21T16:53:16
|
|
Make output variables part of Program's shared data.
Also initialize this structure within Program instead of DynamicHLSL.
This should have benefits for other back-ends. Also these variables
weren't being serialized and de-serialized with the program binary,
which could mess up WebGL apps that use MRT.
BUG=angleproject:1123
Change-Id: Ic0dd4840f26441a1bee8527dfa178b24daf82f8a
Reviewed-on: https://chromium-review.googlesource.com/294571
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
6db25f15
|
2015-05-27T15:15:41
|
|
Always init gl_Position in vertex shaders in ShaderGL.
Fixes:
* conformance/glsl/misc/empty_main.vert.html
* conformance/glsl/misc/gl_position_unset.vert.html
BUG=angleproject:882
Change-Id: I92a465b58f319b14e4f697d9bb5b45427a6247c0
Reviewed-on: https://chromium-review.googlesource.com/273548
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
295ed4c4
|
2015-02-20T09:58:25
|
|
Implement ShaderGL.
BUG=angle:882
Change-Id: I1a8c7b551b308c9362e56ce564ebde7d579c05a3
Reviewed-on: https://chromium-review.googlesource.com/251541
Reviewed-by: Brandon Jones <bajones@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
f9a6f084
|
2015-01-22T13:32:49
|
|
Add GL and WGL renderer stubs.
BUG=angle:890
Change-Id: I64f2a72b4a350f95acc2ca7080fea1a308422ca4
Reviewed-on: https://chromium-review.googlesource.com/242573
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|