|
3e14e2b1
|
2015-10-29T14:38:53
|
|
D3D11: Fix basic provoking vertex flat shading cases.
The enables geometry shaders that correct for the flat shading on
provoking vertexes. It does not fix it for triangle strips, or in
conjunction with primitive restart (which is not yet implemented
in D3D11).
Also ensure we do not regress with flat shading enabled and transform
feedback. In cases where we use flat shading, do a double draw call,
first with an untransformed vertex stream, and no geometry shader,
then with the geometry shader enabled.
This also fixes the dEQP fragment output tests with ints.
BUG=angleproject:754
Change-Id: Ib37e8ec32d19db17ea5d4dc88158cdae0c956bfc
Reviewed-on: https://chromium-review.googlesource.com/309155
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
4e31ad55
|
2015-10-29T10:32:57
|
|
D3D11: Add dynamic geometry shaders.
The geometry shader we want will depend on our current draw mode, and
if we're using flat shading in the shader. Without flat shading, we'll
still be using them only for point sprites, but for other primitive
types with flat shading enabled, we'll be using them to correct the
provoking vertex order with D3D11.
Note: no new features in this CL, those are turned on in follow-ups.
BUG=angleproject:754
Change-Id: Iabf13ffd582f5a7200ee0df5aa9c3671aa7b6ed4
Reviewed-on: https://chromium-review.googlesource.com/309154
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
76f8fa66
|
2015-10-29T10:32:56
|
|
Refactor Geometry Shader support to enable pass-through.
This should be a refactoring change only. The new code is exercised in
follow-up CLs.
BUG=angleproject:754
Change-Id: I99285e1e7772cae467013102f25c911ebc9f54a9
Reviewed-on: https://chromium-review.googlesource.com/309153
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
334d615f
|
2015-10-22T14:00:28
|
|
Fix up the style in DynamicHLSL a bit.
Use std::stringstream when possible, and use Context's caps instead
of the Renderer's.
BUG=angleproject:754
Change-Id: I2dc773709bbd612ab7ea372a358337c0a81869a3
Reviewed-on: https://chromium-review.googlesource.com/307872
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
4a3c2341
|
2015-10-08T12:58:45
|
|
Program: Clean up UBO info gathering.
The data size & block member info was getting messy, so clean up
how we query this from the Impl layer.
Also remove the register information from gl::UniformBlock, moving
it into the D3D-only world.
BUG=angleproject:1172
Change-Id: I40af658ebbd6b7c1a4251906a387ebcbb621cf77
Reviewed-on: https://chromium-review.googlesource.com/304150
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
2b280922
|
2015-10-01T17:05:15
|
|
Remove the unused ProgramImpl::getShaderVersion method.
BUG=angleproject:882
BUG=angleproject:1123
Change-Id: Iace1d6c2c594f0b00c18d595f14cef9bce6f3595
Reviewed-on: https://chromium-review.googlesource.com/303826
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
5d124a69
|
2015-09-15T13:03:27
|
|
Support UBOs in RendererGL and ProgramGL.
Reland: fix compile warnings on Windows.
BUG=angleproject:882
BUG=angleproject:883
Change-Id: If4844d50d43ff9b765f64606e8f08d65a1afd9a4
Reviewed-on: https://chromium-review.googlesource.com/303431
Tryjob-Request: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
cf2dbd91
|
2015-10-01T15:48:22
|
|
Revert "Support UBOs in RendererGL and ProgramGL."
Compile error.
This reverts commit 97d82b724b71be464f2aff377f056cade44fca94.
Change-Id: I71ae10cb01b8ded0297eaf4742fb1098ce02a9bb
Reviewed-on: https://chromium-review.googlesource.com/303303
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
97d82b72
|
2015-09-15T13:03:27
|
|
Support UBOs in RendererGL and ProgramGL.
BUG=angleproject:882
BUG=angleproject:883
Change-Id: I36f8ef42d87e289658a6ba4899380bc72b9bcebf
Reviewed-on: https://chromium-review.googlesource.com/299871
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Geoff Lang <geofflang@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>
|
|
3d3d2f20
|
2015-09-23T16:47:51
|
|
Re-re-land "Move sampler validation to the GL layer."
This previously was D3D-only, but is required for every draw call.
This completes the work of removing the D3D-specific Impl methods
from ProgramImpl.
Also add several regression tests to cover texture and sampler
validation.
Re-land with a fix for duplicate sampler active uniforms.
Re-re-land with a fix for a test comparison warning on Linux.
BUG=angleproject:1123
Change-Id: Iaf7b33861c07b9ceed4bd53ac2f010d35f05df45
Reviewed-on: https://chromium-review.googlesource.com/301712
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
6d246510
|
2015-09-23T18:04:10
|
|
Revert "Re-land "Move sampler validation to the GL layer.""
Build failure on Linux:
In file included from ../../third_party/angle/src/tests/gl_tests/UniformTest.cpp:7:
In file included from ../../third_party/angle/src/tests/test_utils/ANGLETest.h:10:
../../testing/gtest/include/gtest/gtest.h:1392:16: error: comparison of integers of different signs: 'const int' and 'const unsigned int' [-Werror,-Wsign-compare]
if (expected == actual) {
~~~~~~~~ ^ ~~~~~~
../../testing/gtest/include/gtest/gtest.h:1422:12: note: in instantiation of function template specialization 'testing::internal::CmpHelperEQ<int, unsigned int>' requested here
return CmpHelperEQ(expected_expression, actual_expression, expected,
^
../../third_party/angle/src/tests/gl_tests/UniformTest.cpp:487:5: note: in instantiation of function template specialization 'testing::internal::EqHelper<false>::Compare<int, unsigned int>' requested here
EXPECT_EQ(GL_SAMPLER_2D, type);
^
BUG=angleproject:1123
This reverts commit 6cbf4385280c4c1dd97f0882ecb18dbc4c341fd4.
Change-Id: I95279b37d253e3ea78faa53f3773f2dc3d17df95
Reviewed-on: https://chromium-review.googlesource.com/302030
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
6cbf4385
|
2015-09-22T19:12:11
|
|
Re-land "Move sampler validation to the GL layer."
This previously was D3D-only, but is required for every draw call.
This completes the work of removing the D3D-specific Impl methods
from ProgramImpl.
Also add several regression tests to cover texture and sampler
validation.
Re-land with a fix for duplicate sampler active uniforms.
BUG=angleproject:1123
Change-Id: Iefef06e7901873c98bf2ba7864efd16a4c6435d3
Reviewed-on: https://chromium-review.googlesource.com/301581
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3aa23a7c
|
2015-09-22T19:03:33
|
|
Revert "Move sampler validation to the GL layer."
Probably causing failures in the dEQP-GLES2 GL back-end tests:
dEQP-GLES2.functional.uniform_api.info_query.basic.sampler2D_both
BUG=angleproject:1123
This reverts commit 6fa156b66da2090c98f1a044a948694c7ac83324.
Change-Id: I3cc993c34aae4a108037ce81709b71d16ece814e
Reviewed-on: https://chromium-review.googlesource.com/301580
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
6fa156b6
|
2015-09-22T10:17:01
|
|
Move sampler validation to the GL layer.
This previously was D3D-only, but is required for every draw call.
This completes the work of removing the D3D-specific Impl methods
from ProgramImpl.
Also add several regression tests to cover texture and sampler
validation.
BUG=angleproject:1123
Change-Id: I167cbc8f47b4a397d2ae6cc507bdac35168bcacd
Reviewed-on: https://chromium-review.googlesource.com/299400
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
a492883b
|
2015-09-15T10:11:17
|
|
Optimizing updatecachedInputLayout to not update inactive vertex attribs
BUG=angleproject:1158 part a
We only need to iterate and update the active attributes in a program.
This can further be optimized by updating the cache more intelligently,
possibly by marking attributes as "need update" when necessary
Change-Id: I41e9c033116582c82a56b8d20ea245f06e8fa3d1
Reviewed-on: https://chromium-review.googlesource.com/299758
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
98c56da4
|
2015-09-15T15:45:34
|
|
Fix warning about out-of-order field initialization.
Change-Id: I38a3f93ea07c9bbd779d18bf7d3e2a5a6ee4113a
Reviewed-on: https://chromium-review.googlesource.com/299772
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Nico Weber <thakis@chromium.org>
|
|
62d31cb6
|
2015-09-11T13:25:51
|
|
Re^6-land "Move Uniform and UBO info to the gl::Program layer."
This data was previously stored entirely in the Impl level. Move
as much as possible to the GL level, using a read-only view in the
Impl level. Some information in D3D-specific, and should be stored
separately in the Impl.
This patch has a lot of refactoring that splits the D3D and GL info,
and moves as much validation as possible to the GL layer, where it
is shared between the back-ends.
Re-land with fix for dEQP unused uniforms. The fix involves storing
a local copy of all uniform data in the GL layer. This will also
let us validate sampler indexes during draw calls at the GL layer.
Re-re-land with a fix for multiply defined symbols on Clang.
Re-re-re-land with a fix for boolean uniforms and Uniform{1234}f.
Re^4-land with a fix for boolean uniform arrays and UBO uniforms.
Re^5-land with a fix for a test warning on Linux.
Re^6-land with a fix for transposed matrix uniform arrays.
BUG=angleproject:1123
TEST=end2end_tests, bots, dEQP GLES3.ubo and GLES2.uniform_api
Change-Id: Ie6fcde1c16eb05d67191b629338b88302a2563f5
Reviewed-on: https://chromium-review.googlesource.com/298971
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
fb53603c
|
2015-09-11T13:19:49
|
|
Revert "Re^5-land "Move Uniform and UBO info to the gl::Program layer.""
Failing dEQP-GLES3.functional.uniform_api.random.22 and 23:
There's a bug with arrays of tranpsosed matrix uniforms.
BUG=angleproject:1123
This reverts commit 78d356929bd0441d81e2dd8a63130cd6788e2fde.
Change-Id: If39b5908af39671dfe98965e6a1ba77fd18ea8fc
Reviewed-on: https://chromium-review.googlesource.com/299320
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
78d35692
|
2015-09-11T08:32:51
|
|
Re^5-land "Move Uniform and UBO info to the gl::Program layer."
This data was previously stored entirely in the Impl level. Move
as much as possible to the GL level, using a read-only view in the
Impl level. Some information in D3D-specific, and should be stored
separately in the Impl.
This patch has a lot of refactoring that splits the D3D and GL info,
and moves as much validation as possible to the GL layer, where it
is shared between the back-ends.
Re-land with fix for dEQP unused uniforms. The fix involves storing
a local copy of all uniform data in the GL layer. This will also
let us validate sampler indexes during draw calls at the GL layer.
Re-re-land with a fix for multiply defined symbols on Clang.
Re-re-re-land with a fix for boolean uniforms and Uniform{1234}f.
Re^4-land with a fix for boolean uniform arrays and UBO uniforms.
Re^5-land with a fix for a test warning on Linux.
BUG=angleproject:1123
TEST=end2end_tests, bots, dEQP GLES3.ubo and GLES2.uniform_api
Change-Id: I03afcd446d9e74573c4d4c712ed7407b91d8001c
Reviewed-on: https://chromium-review.googlesource.com/299180
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
a2eb02c9
|
2015-09-11T12:31:41
|
|
Revert "Re^4-land "Move Uniform and UBO info to the gl::Program layer.""
Test has a warning on Linux:
In file included from ../../third_party/angle/src/tests/test_utils/ANGLETest.h:13:
../../testing/gtest/include/gtest/gtest.h:1392:16: error: comparison of integers of different signs: 'const int' and 'const unsigned int' [-Werror,-Wsign-compare]
if (expected == actual) {
~~~~~~~~ ^ ~~~~~~
../../testing/gtest/include/gtest/gtest.h:1422:12: note: in instantiation of function template specialization 'testing::internal::CmpHelperEQ<int, unsigned int>' requested here
return CmpHelperEQ(expected_expression, actual_expression, expected,
^
../../third_party/angle/src/tests/gl_tests/UniformBufferTest.cpp:357:5: note: in instantiation of function template specialization 'testing::internal::EqHelper<false>::Compare<int, unsigned int>' requested here
EXPECT_EQ(GL_FLOAT, type);
^
BUG=angleproject:1123
This reverts commit 2ae1ee6161c24aab065190b1528f6195e80e34d0.
Change-Id: Ic3dabea54068377d1f2c5f722ba52966cf1a0491
Reviewed-on: https://chromium-review.googlesource.com/299170
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
2ae1ee61
|
2015-09-10T10:04:24
|
|
Re^4-land "Move Uniform and UBO info to the gl::Program layer."
This data was previously stored entirely in the Impl level. Move
as much as possible to the GL level, using a read-only view in the
Impl level. Some information in D3D-specific, and should be stored
separately in the Impl.
This patch has a lot of refactoring that splits the D3D and GL info,
and moves as much validation as possible to the GL layer, where it
is shared between the back-ends.
Re-land with fix for dEQP unused uniforms. The fix involves storing
a local copy of all uniform data in the GL layer. This will also
let us validate sampler indexes during draw calls at the GL layer.
Re-re-land with a fix for multiply defined symbols on Clang.
Re-re-re-land with a fix for boolean uniforms and Uniform{1234}f.
Re^4-land with a fix for boolean uniform arrays and UBO uniforms.
BUG=angleproject:1123
TEST=end2end_tests, bots, dEQP GLES3.ubo and GLES2.uniform_api
Change-Id: I4c9f5ed31b81380507bef7981f97086d642801ae
Reviewed-on: https://chromium-review.googlesource.com/298451
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
61b8dd97
|
2015-09-09T19:04:04
|
|
Revert "Re-re-re-land "Move Uniform and UBO info to the gl::Program layer.""
Seems to be failing the dEQP-GLES2.functional.uniform_api tests relating to boolean arrays.
BUG=angleproject:1123
This reverts commit 892a6a4b17b35e89898be8b4605c1ee595d3ae13.
Change-Id: Ifc4ce3ca806ef88a02ac6f693334ac37ce098a88
Reviewed-on: https://chromium-review.googlesource.com/298520
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
892a6a4b
|
2015-09-09T10:17:15
|
|
Re-re-re-land "Move Uniform and UBO info to the gl::Program layer."
This data was previously stored entirely in the Impl level. Move
as much as possible to the GL level, using a read-only view in the
Impl level. Some information in D3D-specific, and should be stored
separately in the Impl.
This patch has a lot of refactoring that splits the D3D and GL info,
and moves as much validation as possible to the GL layer, where it
is shared between the back-ends.
Re-land with fix for dEQP unused uniforms. The fix involves storing
a local copy of all uniform data in the GL layer. This will also
let us validate sampler indexes during draw calls at the GL layer.
Re-re-land with a fix for multiply defined symbols on Clang.
Re-re-re-land with a fix for boolean uniforms and Uniform{1234}f.
BUG=angleproject:1123
TEST=end2end_tests,Canary WebGL (D3D11/GL), dEQP-GLES2+3.functional.uniform_api
Change-Id: Ia40820a5ce2f34ec2d27648b1dc940a8955e9999
Reviewed-on: https://chromium-review.googlesource.com/298440
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
b654f659
|
2015-09-08T20:40:00
|
|
Revert "Re-re-land "Move Uniform and UBO info to the gl::Program layer.""
Failes the gles2_conform_test:
GLES2ConformTest.GL2Tests_glGetUniform_input_run
Possibly also WebGL failures, will investigate.
BUG=angleproject:1123
This reverts commit 10750cb936288d8dd09d49fadd592904c06c56f9.
Change-Id: I1ae59325e1831589019bc5a27ffc2091d3994a65
Reviewed-on: https://chromium-review.googlesource.com/298200
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
10750cb9
|
2015-09-04T14:23:52
|
|
Re-re-land "Move Uniform and UBO info to the gl::Program layer."
This data was previously stored entirely in the Impl level. Move
as much as possible to the GL level, using a read-only view in the
Impl level. Some information in D3D-specific, and should be stored
separately in the Impl.
This patch has a lot of refactoring that splits the D3D and GL info,
and moves as much validation as possible to the GL layer, where it
is shared between the back-ends.
Re-land with fix for dEQP unused uniforms. The fix involves storing
a local copy of all uniform data in the GL layer. This will also
let us validate sampler indexes during draw calls at the GL layer.
Re-re-land with a fix for multiply defined symbols on Clang.
BUG=angleproject:1123
TEST=end2end_tests,Canary WebGL (D3D11/GL), dEQP-GLES2+3.functional.uniform_api
Change-Id: I7b55e4964fbe64e0106c37928c894146937a2476
Reviewed-on: https://chromium-review.googlesource.com/298110
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
2119dd05
|
2015-09-08T19:30:37
|
|
Revert "Re-land "Move Uniform and UBO info to the gl::Program layer.""
Problems with multiply defined symbols in the Linux builder.
BUG=angleproject:1123
This reverts commit ff1abe63c3d8af28e9755c8d0c95b2aeca27a0d9.
Change-Id: Ifcb2ad885d0841c128ffd69afb6594e37eba17fc
Reviewed-on: https://chromium-review.googlesource.com/298100
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
ff1abe63
|
2015-09-04T14:23:52
|
|
Re-land "Move Uniform and UBO info to the gl::Program layer."
This data was previously stored entirely in the Impl level. Move
as much as possible to the GL level, using a read-only view in the
Impl level. Some information in D3D-specific, and should be stored
separately in the Impl.
This patch has a lot of refactoring that splits the D3D and GL info,
and moves as much validation as possible to the GL layer, where it
is shared between the back-ends.
Re-land with fix for dEQP unused uniforms. The fix involves storing
a local copy of all uniform data in the GL layer. This will also
let us validate sampler indexes during draw calls at the GL layer.
BUG=angleproject:1123
TEST=end2end_tests,Canary WebGL (D3D11/GL), dEQP-GLES2+3.functional.uniform_api
Change-Id: I9074c057c2c67d4d3221ec11c5556a26e07c7ceb
Reviewed-on: https://chromium-review.googlesource.com/297070
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
6ba5d4dd
|
2015-09-04T14:23:50
|
|
Fix GetUniform rounding in D3D. Also add a test.
The test will help cover a bug that I found when doing the refactor
of gl::Program.
BUG=angleproject:1123
Change-Id: Id353ffaffef83ad1538580ad01668c915bf9853f
Reviewed-on: https://chromium-review.googlesource.com/297031
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
69f9b2c8
|
2015-08-20T13:25:41
|
|
Fixed GL_MAX_VERTEX_UNIFORM_VECTORS and GL_MAX_FRAGMENT_UNIFORM_VECTORS to report accurate maximum value.
Change-Id: Ic581e1ef0c6be2bf1ff0092b373b3c480b6fbd8a
Reviewed-on: https://chromium-review.googlesource.com/294755
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Cooper Partin <coopp@microsoft.com>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
|
|
48705cad
|
2015-09-02T20:40:51
|
|
Revert "Move Uniform and UBO info to the gl::Program layer."
Seems to be failing dEQP-GLES2.functional.uniform_api.value.unused_uniforms.* on Linux (possibly Win as well)
BUG=angleproject:1123
This reverts commit 54f882c9167b1aff5b3700187a2048bd886e8b17.
Change-Id: I7dbbf40aae8dd9ebd35895df0dd338a3b6b9cc96
Reviewed-on: https://chromium-review.googlesource.com/297051
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
54f882c9
|
2015-09-02T14:33:48
|
|
Move Uniform and UBO info to the gl::Program layer.
This data was previously stored entirely in the Impl level. Move
as much as possible to the GL level, using a read-only view in the
Impl level. Some information in D3D-specific, and should be stored
separately in the Impl.
This patch has a lot of refactoring that splits the D3D and GL info,
and moves as much validation as possible to the GL layer, where it
is shared between the back-ends.
BUG=angleproject:1123
TEST=end2end_tests,Canary WebGL (D3D11/GL), dEQP-GLES2+3.functional.uniform_api
Change-Id: I8b7e1380a61590a46ccee646a47ffe9bda287f6b
Reviewed-on: https://chromium-review.googlesource.com/295124
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
f5f4ad24
|
2015-09-02T18:32:38
|
|
Revert "Revert "Clean up interface to ProgramImpl::link.""
Should be fixed now with the fix the prior CL.
BUG=angleproject:1123
This reverts commit 63069dfc20bc34fe6962dee694953893ee6fc663.
Change-Id: Ie1826673820e3a24f9bb3e4ff5c723ac47570041
Reviewed-on: https://chromium-review.googlesource.com/297050
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
ca03b35c
|
2015-09-02T12:38:13
|
|
Re-land "Compute packed varyings in ProgramD3D only."
Instead of storing varying information in the shader, use a temporary
set when linking a D3D program. This also means we won't have to
modify information in the Shader object when linking a D3D program.
This completes the refactoring for PackedVaryings.
Re-land with fix for missing init of PackedVarying::vertexOnly.
BUG=angleproject:1123
Change-Id: If110809c3817d88b0370ac575d739d7385b067d9
Reviewed-on: https://chromium-review.googlesource.com/296731
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
c437046f
|
2015-09-01T17:27:40
|
|
Revert "Compute packed varyings in ProgramD3D only."
Likely the cause of Windows bot failures.
BUG=angleproject:1123
This reverts commit 532061bbfb160586a06f0e47b6bbb5350e735203.
Change-Id: Ia4f0161b97bfbf2adb4cafaa5fa5484f04fad245
Reviewed-on: https://chromium-review.googlesource.com/296710
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
63069dfc
|
2015-09-01T17:26:41
|
|
Revert "Clean up interface to ProgramImpl::link."
Probably causing bot failures in a prior dependent patch.
BUG=angleproject:1123
This reverts commit b83592750d00ca96413575016b0e27bc9d861f58.
Change-Id: I7642c4a66b190dda49cbb16611abc893f3eb6422
Reviewed-on: https://chromium-review.googlesource.com/296700
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
b8359275
|
2015-08-26T15:57:14
|
|
Clean up interface to ProgramImpl::link.
We no longer need to pass mutable shaders with the changed to packed
varyings.
BUG=angleproject:1123
Change-Id: I0a4bbf5d770ff48e10e3de2146840d8987b1e826
Reviewed-on: https://chromium-review.googlesource.com/295194
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
532061bb
|
2015-08-31T15:16:45
|
|
Compute packed varyings in ProgramD3D only.
Instead of storing varying information in the shader, use a temporary
set when linking a D3D program. This also means we won't have to
modify information in the Shader object when linking a D3D program.
This completes the refactoring for PackedVaryings.
BUG=angleproject:1123
Change-Id: I241610e87f7d14f3e18b0d8bd84f1a3509c05dfd
Reviewed-on: https://chromium-review.googlesource.com/295193
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@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>
|
|
63805b47
|
2015-08-25T13:17:39
|
|
Make the Program's semantic index D3D-only.
This concept isn't strictly necessary for GL-side validation. Instead
we can use a bitset to track active attribs, and determine is a
particular location is active.
BUG=angleproject:1123
Change-Id: If7a920a3071672116bafffb3368671f721723b65
Reviewed-on: https://chromium-review.googlesource.com/294570
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
1528e56b
|
2015-08-24T15:10:58
|
|
Bind native GL attributes to match the locations in gl::Program.
Simplifies a lot of logic when we don't have to maintain mappings between
the driver and gl-layer locations.
BUG=angleproject:882
BUG=angleproject:1123
Change-Id: Ia94257a322f768fdfa3167000a46a0715820ef4d
Reviewed-on: https://chromium-review.googlesource.com/295231
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
c349ec03
|
2015-08-21T16:53:12
|
|
Re-land "Move shader attributes into Program shared data."
Re-land with a fix for a warning in 32-bit Windows.
Making the Program own the attribs, and the Impl only see a read-only
copy cleans up the Impl object. It also allows us to more cleanly
isolate certain coded into D3D.
BUG=angleproject:1123
Change-Id: I73bda4b6d9e675d87d087d44757c598437d607f2
Reviewed-on: https://chromium-review.googlesource.com/295191
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
4e10722d
|
2015-08-24T14:12:17
|
|
Revert "Move shader attributes into Program shared data."
Once again a signed/unsigned mismatch warning in 32-bit.
src\libangle\renderer\gl\programgl.cpp(190) : warning C4018: '<' : signed/unsigned mismatch
BUG=angleproject:1123
This reverts commit 2d7731838722a53102e5086dba445e37f6e98d7e.
Change-Id: Icd26906ead1eaa06b4bd3ff7fc2b10bef4f46022
Reviewed-on: https://chromium-review.googlesource.com/295241
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
2d773183
|
2015-08-18T10:27:28
|
|
Move shader attributes into Program shared data.
Making the Program own the attribs, and the Impl only see a read-only
copy cleans up the Impl object. It also allows us to more cleanly
isolate certain coded into D3D.
BUG=angleproject:1123
Change-Id: I469051eb066fc56e55282affa2d5398b394ab8d2
Reviewed-on: https://chromium-review.googlesource.com/293826
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
36cfd6a3
|
2015-08-18T10:46:20
|
|
Clean up Program::validate.
This method should really be an Impl method, since it corresponds to
a specific OpenGL call. Making it an Impl method also allows us to
remove applyUniforms, which doesn't correspond to a GL call.
BUG=angleproject:1123
Change-Id: I2abee3cfaa7393cad44566782d51ed701e84846b
Reviewed-on: https://chromium-review.googlesource.com/293825
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
d1fe1646
|
2015-08-21T16:26:04
|
|
Move UBO bindings into Program shared state.
Sharing the bindings with the Impl (read-only) allows us to clean out
the applyUniformBuffers method from the Impl class, and make it D3D-
only.
BUG=angleproject:1123
Change-Id: Icb51a90cb227bbbdd83319ea308b68aa1c4c325e
Reviewed-on: https://chromium-review.googlesource.com/293824
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
31c8c56a
|
2015-08-19T14:08:03
|
|
Make ProgramImpl::compileProgramExecutables D3D-only.
Finally we can isolate this method into the D3D-only code, and
remove the interface from ProgramImpl.
BUG=angleproject:1123
Change-Id: I253b15d44d4cf8bbb5dbeaa78bbcc431a5267bf7
Reviewed-on: https://chromium-review.googlesource.com/293765
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
ccdf74b8
|
2015-08-18T10:46:12
|
|
Move TF Feedback linked varyings into D3D-only.
The LinkedVarying structure is a D3D-specific type, and the GL
back-end doesn't need the extra info. Isolate this into the D3D
back-end so we can clean up the Impl inteface.
BUG=angleproject:1123
Change-Id: I76d77ac505876d865e3e02f47acbfd6665a9507e
Reviewed-on: https://chromium-review.googlesource.com/293764
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
e473deee
|
2015-08-18T14:49:01
|
|
Clean up uniform block Program Impl APIs.
The D3D-specific code we can split into D3D-only methods, and the
GL-level shared code we can place in Program instead of making Impl
methods. This cleans up the Impl inteface significantly.
BUG=angleproject:1123
Change-Id: Ibcb7d07733eb939adf5bb4f5395a661875a60238
Reviewed-on: https://chromium-review.googlesource.com/293763
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
ea918db9
|
2015-08-18T14:48:59
|
|
Clean up Program::linkUniforms.
This method previously relied on output from the D3D back-end from
ProgramImpl::link. Split the D3D-specific code into its own method,
and do the linking validation before we call link.
BUG=angleproject:1123
Change-Id: I582671e21af605af9f4451b02fc96ad29c923048
Reviewed-on: https://chromium-review.googlesource.com/293762
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
ada9ecc3
|
2015-08-17T12:53:37
|
|
Make TF Feedback buffer mode a GL-level variable.
Don't query this as an Impl method, since it exists on the GL level.
Also some related refactorings and cleanups.
BUG=angleproject:1123
Change-Id: I3610bc0db2bcaa96408506e06a65a2f4dab93150
Reviewed-on: https://chromium-review.googlesource.com/293761
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
5c6b7bfe
|
2015-08-17T12:53:35
|
|
Add a Program::Data shared state structure.
Similar to the Framebuffer and other classes, this gives the Impl
class a read-only view of the object's state.
BUG=angleproject:1123
Change-Id: I580eaebe2de236adf8131d6e3f54633cecce8c25
Reviewed-on: https://chromium-review.googlesource.com/293760
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
4d61f7ed
|
2015-08-12T10:56:50
|
|
Reland Fixed compiler warning C4267 'conversion from 'size_t' to 'type', possible loss of data'
Additional warnings found with more testing and added C4267 warning disable only for angle_libpng
BUG=angleproject:1120
Change-Id: Ic403dcff5a8018056fa51a8c408e64207f3362eb
Reviewed-on: https://chromium-review.googlesource.com/293028
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
b195643c
|
2015-08-12T17:35:20
|
|
Revert "Fixed compiler warning C4267 'conversion from 'size_t' to 'type', possible loss of data'"
Seems to have quite a few warnings in 64-bit on my machine.
BUG=angleproject:1120
This reverts commit c5cf9bc47d0ee028adbbf9e9f94ca567eec601dc.
Change-Id: I86768b900aeba52e7a2242d9ae8949f93f1a5ba9
Reviewed-on: https://chromium-review.googlesource.com/293280
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
c5cf9bc4
|
2015-08-06T10:46:48
|
|
Fixed compiler warning C4267 'conversion from 'size_t' to 'type', possible loss of data'
BUG=angleproject:1120
Change-Id: I01ef10bea7f487c2b394d030c76628f38d2ea645
Reviewed-on: https://chromium-review.googlesource.com/292780
Tested-by: Cooper Partin <coopp@microsoft.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
bd136f9a
|
2015-08-10T14:51:37
|
|
Reland of "D3D11: Fix draw perf regression with input layouts."
f8dd7b10 fixed unnecessary shader compiles, but introduced a draw
call perf regression. Fix the regression robustly by storing a
minimal set of input layout elements/vertex attribute info,
but also handle the case where the vector sizes mismatch between
a cached and new vertex layout.
Reland with fix for comparison warning.
BUG=510151
Change-Id: I578ddbb5b5bb12e7c1a901f23c7b5fcbd64b5d23
Reviewed-on: https://chromium-review.googlesource.com/292460
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
00c782e8
|
2015-08-10T17:54:30
|
|
Revert "D3D11: Fix draw perf regression with input layouts."
size_t comparison warning in Win32.
src\libangle\renderer\d3d\programd3d.cpp(2084) : warning C4018: '<' : signed/unsigned mismatch
BUG=510151
This reverts commit bf3f780c0a281cfe6192aa5635b02a01314f7fd3.
Change-Id: I5565b697ca29270375049f3e855437fa19157de9
Reviewed-on: https://chromium-review.googlesource.com/292331
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
bf3f780c
|
2015-08-10T10:47:57
|
|
D3D11: Fix draw perf regression with input layouts.
f8dd7b10 fixed unnecessary shader compiles, but introduced a draw
call perf regression. Fix the regression robustly by storing a
minimal set of input layout elements/vertex attribute info,
but also handle the case where the vector sizes mismatch between
a cached and new vertex layout.
BUG=510151
Change-Id: If5e9ea4a4c9edaa7a78c8daa44bbe7d9927dc4e4
Reviewed-on: https://chromium-review.googlesource.com/292390
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
f8dd7b10
|
2015-08-05T13:50:08
|
|
Refactor input layout & vertex signatures.
Always size input layouts to gl::MAX_VERTEX_ATTRIBS, and use '1' bits
to signal where we have a GPU conversion. The simplification allows us
to more cleanly match the vertex executable signatures and makes our
default VertexExecutable hit much more often.
BUG=510151
TEST=angle_end2end_tests,Canary WebGL, manual testing with Chromium
Change-Id: I5009323c4e7e208e7a2595be46658c344517a4ff
Reviewed-on: https://chromium-review.googlesource.com/290740
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
6941a556
|
2015-07-27T11:06:45
|
|
Rename Workarounds to WorkaroundsD3D.
It is not referenced outside of the d3d classes.
BUG=angleproject:884
Change-Id: Ibeec034b1b78b569bea2f1c77d6a686b58b8e010
Reviewed-on: https://chromium-review.googlesource.com/288582
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
969194d4
|
2015-07-20T14:36:56
|
|
ES3-D3D11: Fix UBO vertex caching.
There was a typo in the vertex shader cache which could trigger an
overflow bug.
TEST=dEQP-GLES3.functional.ubo.random.scalar_types.*
BUG=angleproject:1077
Change-Id: I5652cf9675155b627f84531e09c01b42e29278fc
Reviewed-on: https://chromium-review.googlesource.com/286775
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
95137842
|
2015-06-02T15:38:43
|
|
Use a map to store uniform locations instead of a vector.
Some intel drivers use seemingly arbitrary integers as uniform locations.
This causes the location vector to be resized to arbitrarily large sizes.
BUG=angleproject:882
Change-Id: I8db89178907dd6206eb8e646a0b426aa9bac0832
Reviewed-on: https://chromium-review.googlesource.com/274816
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
02df796f
|
2015-07-01T10:03:42
|
|
Centralize renderer limitations for non-conformant renderers
Some renderer configurations (e.g. D3D11 Feature Level 9_3) have
some limitations and aren't quite conformant. This change
generates errors when applications hit these limitations, and
informs developers that they must work around them.
BUG=angleproject:1055
Change-Id: I6a4a9e5cc71288ca366a54c769ca0eb82e79a7f7
Reviewed-on: https://chromium-review.googlesource.com/282814
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
d3dfda2b
|
2015-07-06T08:28:49
|
|
Refactor how we store vertex formats.
Instead of storing a vertex format as a struct with the full info,
instead use an enum, and look up the info when we need it. This
saves a lot of constructor initialization time, operator comparison
time, and storage. It also will allow us to look up D3D format info
more quickly.
BUG=angleproject:959
Change-Id: I202fd1ea96981073bc1b5b232b1ec3efa91485cb
Reviewed-on: https://chromium-review.googlesource.com/277289
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
03260faa
|
2015-06-22T13:57:22
|
|
D3D11: Optimize checks for active UBOs.
We can reduce the amount of iterations we use by using std::vectors
for storing UBO indexes, and resizing them to the max active index.
This allows us to skip inactive ranges. Reduces draw call overhead.
BUG=angleproject:959
Change-Id: I2577e5dbdce0e5ab102ca916eb7f1f35cf03f9ad
Reviewed-on: https://chromium-review.googlesource.com/277287
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
f33ab835
|
2015-06-30T19:08:16
|
|
Fix some clang warnings with -Wmissing-braces in ANGLE.
Clang warns if there are missing braces around a subobject
initializer. The most common idiom that triggers this is:
STRUCT s = {0};
which can be more simply written as:
STRUCT s = {};
BUG=505297
Change-Id: Ib4513ee195d43e7c4a4a2f46c328866f0023a2a5
Reviewed-on: https://chromium-review.googlesource.com/282921
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Tested-by: Kenneth Russell <kbr@chromium.org>
|
|
137b1517
|
2015-06-17T16:14:53
|
|
Improve D3D GetProgramBinary chipset validation
- Check chipset identifying info before trying to compile shaders
- Check device feature level when loading a binary
- Use chipset VendorID/DeviceID etc instead of LUID so that program
binaries remain valid across system reboots
Change-Id: I88ba4543bb990956d1d8fb324abf9784d72950cd
Reviewed-on: https://chromium-review.googlesource.com/280428
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
476682e6
|
2015-06-30T10:04:29
|
|
Use std::vector for TranslatedAttribs.
This allows us to cache a std::vector between calls, and avoids us
calling allocation/constructors for locals, which saves us some
time. It also allows us to use the vector's size to limit the range
of attribs we look at.
BUG=angleproject:959
Change-Id: I799ed6c92fa8fca96e92e235b125a11d2d551aab
Reviewed-on: https://chromium-review.googlesource.com/277286
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
f9327d33
|
2015-06-22T13:57:16
|
|
D3D11: Optimize ProgramD3D::sortAttributesByLayout.
We can use pointer math here, instead of copying values.
BUG=angleproject:959
Change-Id: I3b87956224d0846c9011f5d8edb811bc5e4f2b85
Reviewed-on: https://chromium-review.googlesource.com/277119
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
0ca53786
|
2015-05-07T13:49:39
|
|
Fix issues with ProgramGL.
* Don't re-create the native GL program every link, some program state should
persist between re-linking such as bound attribute locations.
* Forward glBindAttribLocation calls to the ProgramImpl, fixes some chromium
rendering issues because chromium always binds attribute locations,
sometimes with gaps.
* Query the real attrib location before inserting it into the list of attribs.
It was unsafe to rely on the attrib having the same location as its index
into the active attributes.
BUG=angleproject:882
Change-Id: If14b4c4c2f5ebcdaa4f7c5a890b9519d6d4e6e43
Reviewed-on: https://chromium-review.googlesource.com/269991
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
f611316b
|
2015-05-07T11:49:21
|
|
Use stream operators for appending to InfoLog.
Also add a helper class to keep the previous behaviour of
automatically appending a newline after every new message.
BUG=angleproject:992
Change-Id: I0ff5d2846175cf19de7a6af295af24a92451456f
Reviewed-on: https://chromium-review.googlesource.com/268744
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
55def583
|
2015-05-04T11:24:57
|
|
translator: Fix variable collection for gl_DepthRange.
*re-land with Linux fixes, and fix for locations*
This built-in uniform wasn't being collected in VariableInfo.cpp.
Also remove the existing workaround for D3D gl_DepthRange
collection.
BUG=angleproject:991
BUG=478570
Change-Id: Iba84651bfc58f82fd4ce039421874f561f83c348
Reviewed-on: https://chromium-review.googlesource.com/268840
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
26e1a466
|
2015-05-01T19:19:19
|
|
Revert "translator: Fix variable collection for gl_DepthRange."
Build errors on Linux:
error: comparison of integers of different signs: 'const int' and 'const unsigned int'
BUG=angleproject:991
BUG=478570
This reverts commit f1ae954b660cb058c40665b623f4d689b65180d4.
Change-Id: I217aba1b32dc0e70d6153337a1f0ccef0483a0e1
Reviewed-on: https://chromium-review.googlesource.com/268792
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
f1ae954b
|
2015-05-01T13:33:57
|
|
translator: Fix variable collection for gl_DepthRange.
This built-in uniform wasn't being collected in VariableInfo.cpp.
Also remove the existing workaround for D3D gl_DepthRange
collection.
BUG=angleproject:991
BUG=478570
Change-Id: Ie254132e37c307323ba9e6e1705d138eea67b520
Reviewed-on: https://chromium-review.googlesource.com/268524
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
|
|
1377689c
|
2015-04-28T12:39:06
|
|
Cache validate samplers result.
This gives ~23% increase in the validation-only draw call perf test.
BUG=angleproject:959
Change-Id: I384a5c4fbb1c2cd47483bd7cf4bc1d39447a99bc
Reviewed-on: https://chromium-review.googlesource.com/267750
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
|
|
3da79b7b
|
2015-04-27T11:09:17
|
|
Reject shaders using attribute aliasing.
The current code rejects any shaders that use more than the caps
allow, but a bug would crash us before the check. We don't support
aliasing in shaders that use a lot of uniforms because this
causes problems with the D3D back-end, currently. This changes the
crash in the dEQP aliasing tests to a link error.
See dEQP-GLES2.functional.attribute_location.bind_aliasing.*
BUG=angleproject:901
Change-Id: I6906d3345abe9f89cfa0aa6cec4be26b5b2851d0
Reviewed-on: https://chromium-review.googlesource.com/266928
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
|
|
f4bf3811
|
2015-04-01T16:15:32
|
|
Use GetAs/GetImplAs whenever possible.
This patch cleans up the rest of our custom casting helper
functions.
Change-Id: I41975c736765fca855c4498acca31116df3e8317
Reviewed-on: https://chromium-review.googlesource.com/263477
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
|
|
68694e99
|
2015-03-24T14:03:37
|
|
Add UBO offset support for D3D11.1.
Also fixes the uniform count upper limit in glGetActiveUniformsiv,
as well as an assert hit with used but unbound uniform buffer.
BUG=angleproject:507
BUG=angleproject:962
Change-Id: I096fe1c9b4f0f398f3a638cd8311278987dfb7dc
Reviewed-on: https://chromium-review.googlesource.com/263404
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Gregoire Payen de La Garanderie <Gregory.Payen@imgtec.com>
|
|
90a09b56
|
2015-04-01T18:21:24
|
|
Revert "Add UBO offset support for D3D11.1."
Failed on 32-bit builds. See: https://build.chromium.org/p/chromium.gpu.fyi/builders/GPU%20Win%20Builder/builds/24828/steps/compile/logs/stdio
angle\src\libangle\validationes.cpp(1461) : error C2220: warning treated as error - no 'object' file generated
angle\src\libangle\validationes.cpp(1461) : warning C4018: '<' : signed/unsigned mismatch
This reverts commit 381f969315c0c70bacf183e58de7194f42486112.
Change-Id: I05f09f19e40046994d34809c5b79095458f56148
Reviewed-on: https://chromium-review.googlesource.com/263474
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
381f9693
|
2015-03-24T14:03:37
|
|
Add UBO offset support for D3D11.1.
Also fixes the uniform count upper limit in glGetActiveUniformsiv,
as well as an assert hit with used but unbound uniform buffer.
BUG=angleproject:507
BUG=angleproject:962
Change-Id: I263b14df41d4e45a67304c1d145646398721cf0a
Reviewed-on: https://chromium-review.googlesource.com/263412
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Gregoire Payen de La Garanderie <Gregory.Payen@imgtec.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3917f578
|
2015-04-01T15:17:21
|
|
Revert "Add UBO offset support for D3D11.1."
Was ignoring the uniform block bindings.
This reverts commit 7159ea6778eb73c233736cc2fa59ae9177b75e4b.
Change-Id: Ie7d2b40d3fb2adedd309f1162fb6fd33ab0b4c3c
Reviewed-on: https://chromium-review.googlesource.com/263420
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
7159ea67
|
2015-03-24T14:03:37
|
|
Add UBO offset support for D3D11.1.
Also fixes the uniform count upper limit in glGetActiveUniformsiv.
BUG=angleproject:507
Change-Id: Icfc90ed64cf94b1bab2d4cc93a8fb5e11b28d666
Reviewed-on: https://chromium-review.googlesource.com/261874
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
7a26a1ad
|
2015-03-25T12:29:06
|
|
Cache std::vectors in ProgramD3D to avoid allocations during draw calls.
BUG=angleproject:959
Change-Id: Ie08e68ae27372a97bd118e61478201b0d3dad955
Reviewed-on: https://chromium-review.googlesource.com/262337
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Nicolas Capens <capn@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
e4ea202a
|
2015-03-26T20:35:05
|
|
Revert "Compile the D3D11 VS and PS on separate threads at GL link time"
Causing a high-volume crashe in Chrome.
This reverts commit 434953e20002666f66d721aaacbcb8410f7dbd56.
BUG=470695
Change-Id: I2062c706ab6ca6b4c3117685df67c33572518da5
Reviewed-on: https://chromium-review.googlesource.com/262704
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
434953e2
|
2015-02-20T10:49:51
|
|
Compile the D3D11 VS and PS on separate threads at GL link time
Change-Id: Ib534483f2ec3922cfeaf71cf1d9e9c433fe04b08
Reviewed-on: https://chromium-review.googlesource.com/251612
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
44efa0b8
|
2015-03-04T17:11:05
|
|
Conditionally enable IEEE strictness for isnan()
ANGLE's ESSL3 built-in function isnan() implementation just uses HLSL
intrinsic function isnan(). For HLSL intrinsic function isnan() to work
properly, IEEE strictness needs to be enabled for D3D compiler.
This change detects use of isnan() in shaders and passes compiler flag
D3DCOMPILE_IEEE_STRICTNESS whenever isnan is used in shaders. This
change also moves existing workarounds in D3DWorkaroundType to
D3DCompilerWorkarounds.
BUG=angle:927
TEST= dEQP tests
dEQP-GLES3.functional.shaders.builtin_functions.common.isnan.*
Change-Id: I1ce5b1a7a825fdd720a37dc9aeb71320e55162d9
Reviewed-on: https://chromium-review.googlesource.com/255834
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
85a1804d
|
2015-03-05T15:41:41
|
|
Make getColorAttachmentsForRender D3D-only.
This encapsulates the workaround in the D3D renderer, and also
optimizes the workaround to only compute a new set of attachments
when there is a change to the state.
BUG=angleproject:930
Change-Id: Ibdc15078236e2d19b544fae8e65b7f2554f31844
Reviewed-on: https://chromium-review.googlesource.com/254102
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
7147f01a
|
2015-03-05T15:41:40
|
|
Cleanups to FramebufferD3D.
With the new shared state structure, we can eliminate a lot of the
state tracking within the FramebufferD3D implementation.
BUG=angleproject:930
Change-Id: I0953e321bae3afe7cde7b73c55af62546665c890
Reviewed-on: https://chromium-review.googlesource.com/254101
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
80d934bb
|
2015-02-19T10:16:12
|
|
Enable MSVS warning 4512.
Fix up the missing DISALLOW_COPY_AND_ASSIGN macros and various small
problems preventing us from turning on this warning. This should
ensure we more often use the DISALLOW macro going forward.
Change-Id: I2e1a9d23a31a51279a577fad8dffb8c1530e2ee8
Reviewed-on: https://chromium-review.googlesource.com/251100
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cooper Partin <coopp@microsoft.com>
Tested-by: Cooper Partin <coopp@microsoft.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
6df9b37d
|
2015-02-18T21:28:19
|
|
Revert "Re-resubmit "Compile the D3D11 VS and PS on separate threads at GL link time""
Fails clang-win again. Apparently Clang mimics MSVS.
This reverts commit af1bdff62ec4cc80b47fbac7e5d973f6f7225036.
Change-Id: I48a503889a9e905fcdc9f101dbf98f7cb7912279
Reviewed-on: https://chromium-review.googlesource.com/250882
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
af1bdff6
|
2015-02-17T11:07:46
|
|
Re-resubmit "Compile the D3D11 VS and PS on separate threads at GL link time"
The latest version of this change disables multithreaded D3D shader
compilation with any C++ compiler other than VC (e.g. Clang).
Change-Id: If3ef5fd650055ae66397ea2c9121bfcf1792892a
Reviewed-on: https://chromium-review.googlesource.com/250328
Tested-by: Austin Kinross <aukinros@microsoft.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Cooper Partin <coopp@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d2d21dca
|
2015-02-17T18:07:01
|
|
Revert "Resubmit "Compile the D3D11 VS and PS on separate threads at GL link time""
Causes errors in Clang-Win. We can fix the error and then resubmit, but need to do a roll now.
This reverts commit 310184861bab5e95139e0f34b1f8e88fe8c677b8.
Change-Id: I1c91b0a97031df33c2261089f6b54ccd3270306b
Reviewed-on: https://chromium-review.googlesource.com/250430
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
2857f489
|
2015-02-09T15:35:29
|
|
Fix struct uniform packing.
Our current code would not adapt properly for members that did
not fit in the previous register. Instead, use the correct adjusted
value as returned from the block layout encoder.
This fixes a dEQP WebGL test: gles2/shaders/linkage.
BUG=angle:910
Change-Id: Id77d0c76ce767665b3db97cb4d14e8008254fd9f
Reviewed-on: https://chromium-review.googlesource.com/247241
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
9236b418
|
2015-02-02T16:51:52
|
|
Add generic Impl casting helper methods.
GetAs and GetImplAs are template helpers that can replace all of our
custom "makeTextureD3D", etc methods. This will help save code across
different back-ends.
Change-Id: Ib3215c005bfac5a819c5d8f7d60a73a725241332
Reviewed-on: https://chromium-review.googlesource.com/245390
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
31018486
|
2015-01-30T13:06:52
|
|
Resubmit "Compile the D3D11 VS and PS on separate threads at GL link time"
The original change caused a Chromium build break due to
"__uncaught_exception" not being defined in concrt.h. This is because Chromium
defines "_HAS_EXCEPTIONS=0" in its GYP, but ANGLE doesn't do this.
This change defines "_HAS_EXCEPTIONS=0" in ANGLE's GYP to match Chromium,
and refines it in ProgramD3D.cpp before including <future>.
Change-Id: Ic324702569bac8f4ae1381f308c4f3f11f190f9e
Reviewed-on: https://chromium-review.googlesource.com/244860
Tested-by: Austin Kinross <aukinros@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9d294c33
|
2015-01-30T19:58:39
|
|
Revert "Compile the D3D11 VS and PS on separate threads at GL link time"
Failing compile on Chromium bots:
FAILED: ninja -t msvc -e environment.x86 -- C:\b\build\goma/gomacc "C:\b\depot_tools\win_toolchain\vs2013_files\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\third_party\angle\src\libANGLE\renderer\d3d\libANGLE.ProgramD3D.obj.rsp /c ..\..\third_party\angle\src\libANGLE\renderer\d3d\ProgramD3D.cpp /Foobj\third_party\angle\src\libANGLE\renderer\d3d\libANGLE.ProgramD3D.obj /Fdobj\third_party\angle\src\libANGLE.cc.pdb
c:\b\depot_tools\win_toolchain\vs2013_files\vc\include\concrt.h(4774) : error C3861: '__uncaught_exception': identifier not found
ninja: build stopped: subcommand failed.
This reverts commit 6d51f2629a8118f7afd450ea832c93143a84c330.
Change-Id: Iebb2843dfbc3795290fbb33e1a111ddad59c3126
Reviewed-on: https://chromium-review.googlesource.com/244792
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
6d51f262
|
2015-01-26T16:34:48
|
|
Compile the D3D11 VS and PS on separate threads at GL link time
BUG=angle:900
Change-Id: Iad5dbbcc676e2a2b6dfc3d7bc6ab5957154de33e
Reviewed-on: https://chromium-review.googlesource.com/240490
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Austin Kinross <aukinros@microsoft.com>
|
|
e6664f06
|
2015-01-09T16:22:24
|
|
Added PointSprites Support for renderers that do not support Geometry Shaders
Change-Id: Iae9ac5f8fbba68dba5e49ccda7bb7eebb05c8e9a
Reviewed-on: https://chromium-review.googlesource.com/240450
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
359ef269
|
2015-01-05T14:42:29
|
|
Rename ShaderExecutable to ShaderExecutableD3D and move it to the D3D folder.
BUG=angle:681
Change-Id: I097d6591be4e873c9a6f210cc91e3f4eb60f036b
Reviewed-on: https://chromium-review.googlesource.com/238473
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|