The change configures shaders to be of a compatible spec upon creation.
BUG=angleproject:1523
Change-Id: Id345d0b8f0abad8ed3c4fb3117d0fdfeab9fea53
Reviewed-on: https://chromium-review.googlesource.com/405778
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
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>
After experiencing a device loss, Renderer11::resetDevice can fail to
recreate mDevice, leaving it null. In a following call to
testDeviceLost, mDevice will be dereferenced, causing a segfault.
BUG=angleproject:1457
Change-Id: Ib5be64542929441ceb7088a328c3245ae7e52f17
Reviewed-on: https://chromium-review.googlesource.com/364120
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
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>
When ANGLE is using D3D11 and not using DirectComposition, DXGI will hook
the window's message loop and override Alt+Enter to trigger a transition
to exclusive fullscreen mode. This disables that behaviour, since it's
inconsistent between backends and, at least during my testing, the
application did not even work correctly after the transition to fullscreen
mode.
This commit should be similar to the workarounds implemented in Qt and mpv
to prevent this behaviour and will hopefully make those workarounds
unnecessary. Only the DXGI_MWA_NO_ALT_ENTER flag is used, since the other
flags didn't seem to have an effect and probably only matter in fullscreen
mode.
BUG=angleproject:1414
Change-Id: Icb70c2c1405225619dcb27c5ffc9472fddd1157b
Reviewed-on: https://chromium-review.googlesource.com/352950
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
In the CopyNativeVertexData template function, in the else clause
use memcpy/memset rather than for loops. This is a performance
improvment for floating point versions of CopyNativeVertexData,
particularly on 32-bit Firefox, where the -arch:IA32 compiler
option used cause the compiler to generate fld/fstp operations
inside the for loops.
Update AUTHORS & CONTRIBUTORS to include AMD.
BUG=angleproject:1317
Change-Id: I7133fc476028284f56783f4e2f9e2395f6227514
Reviewed-on: https://chromium-review.googlesource.com/327590
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
The solution is the same as in GYP version:
1. Check if .git/index is available in angle directory.
2. Use generated commit.h file if git is available or copy the default
file instead.
Change-Id: Ic3cedf6793c368070228a63c0eb270ca6fb47f81
Reviewed-on: https://chromium-review.googlesource.com/289391
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Tomasz Moniuszko <tmoniuszko@opera.com>
Make all fragment shader out variables require location layout
qualifier. Previously, the last variable did not need a location layout
qualifier if the previous variables had those.
TEST=angle_unittests
BUG=angleproject:1070
Change-Id: Ifb66ee52b811409f5278eaad330d6cd9b8ea059f
Reviewed-on: https://chromium-review.googlesource.com/287100
Tested-by: Kimmo Kinnunen <kkinnunen@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
That way RenderbufferStorageMultisample accepts STENCIL_INDEX8 as
an internal format for a multisampled buffer (samples > 0) as it
isn't concerned by the restriction on integer component types anymore.
This is consistent with the component type returned by the NVIDIA driver.
BUG=angle:812
Change-Id: Ic03f502ffa082b1011e8127213a5c1df0617ef43
Reviewed-on: https://chromium-review.googlesource.com/227470
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Shannon Woods <shannonwoods@chromium.org>
Removed Borbitsoft from the AUTHORS file, added Tibor den Ouden.
Removed Borbitsoft from CONTRIBUTORS file, company section.
Moved Tibor den Ouden in CONTRIBUTORS file from company section to individual section
Change-Id: I3ab47d637d0879fde8f9dc0f714e2cb44562c897
Reviewed-on: https://chromium-review.googlesource.com/221054
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Shannon Woods <shannonwoods@chromium.org>
vsnprintf is defined in stdio.h according to the standard. It was not in
the include chain of angleutils.cpp, which broke the build on Linux on
some configurations. Seems like other toolchains include the function in
some non-standard way.
BUG=angle:761
Change-Id: Idcd75776e8a9b83dad182d1b4bac0beac006c6ac
Reviewed-on: https://chromium-review.googlesource.com/221053
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
BUG=angle:758
Removed explicit destruction of char[] by using std::vector<char> object.
Added Borbitsoft to AUTHORS and Tibor den Ouden to CONTRIBUTORS
Change-Id: I9c4017eb81ce3fab8b7fb4a5b4ad52a758d14a2d
Reviewed-on: https://chromium-review.googlesource.com/219940
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
BUG=None
TEST=Build Chromium and ChromiumOS from source, and run "repo status",
with and without this change.
Contributed by Josh Triplett <josh.triplett@intel.com>
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1316 736b8ea6-26fd-11df-bfd4-992fa37f6226
Description of the algorithm:
http://code.google.com/p/mvujovic/wiki/ShaderControlFlowAnalysis
This flag is one potential solution to timing attacks on textures containing cross-domain content
or user agent data.
This kind of analysis could be useful for both WebGL and CSS Shaders.
The SH_TIMING_RESTRICTIONS flag will reject a shader if it uses texture dependent data to affect
control flow.
Other ways of affecting shader timing such as using NaNs in basic arithmetic operations or using
built-in functions (e.g. atan) with different inputs are still under investigation.
Issue=329
Review URL: http://codereview.appspot.com/6195062/
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1101 736b8ea6-26fd-11df-bfd4-992fa37f6226
http://codereview.appspot.com/6050054/
Signed-off-by: Nicolas Capens
Signed-off-by: Daniel Koch
Authored-by: Jin Yang
With this patch, my HTML5 2D canvas benchmark with Chromium on Windows7 with GPU
acceleration can boost about 4% though the most execution time is in GPU.
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1067 736b8ea6-26fd-11df-bfd4-992fa37f6226