|
cc2ed612
|
2017-03-14T15:59:00
|
|
Fix non-square matrix uniform packing.
This was broken in two places: the register count was using the non-
transposed matrix row count. The block layout encoder was also not
set to transpose matrices, which was causing incorrect packing info
to be calculated in link.
BUG=angleproject:1923
Change-Id: I89094aa116fad4bda15f018498f8637520f12bd4
Reviewed-on: https://chromium-review.googlesource.com/454876
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
36e120ef
|
2017-03-14T14:53:58
|
|
Refactor the staticUse checks for attribute and output
Remove these needless checks as GetActiveShaderVariables in Shader.cpp has
filtered them already.
BUG=angleproject:1920
Change-Id: Ife85614a8f636768dd585a827bca81e2f15009c8
Reviewed-on: https://chromium-review.googlesource.com/454129
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ddb5eb56
|
2017-03-14T13:36:18
|
|
Fix build failure in UniformLinker.cpp on Linux
This patch adds the declaration of libANGLE/features.h in UniformLinker.cpp
to fix the build failure on Linux when you use gn to build ANGLE alone.
BUG=angleproject:1938
Change-Id: I19636df8f81b307e6d2e08fdac286cfb3f705eab
Reviewed-on: https://chromium-review.googlesource.com/454083
Reviewed-by: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
fbe49a8f
|
2016-12-19T14:19:10
|
|
ES31: Implement DrawArraysIndirect D3D part
There are four buffer types for vertex attribute storage in D3D11:
DIRECT
STATIC
DYNAMIC
CURRENT_VALUE
When drawing, it will call applyVertexBuffer to bind the right type
buffers in D3D11.
DIRECT uses the gl buffer directly without any translation.
CURRENT_VALUE uses a single value for the attribute.
STATIC translates the whole vertex buffer once. So it doesn't need the
first, count and instance informations since it always translates the
whole buffer.
DYNAMIC translates the data every frame. To improve the performance,
in implementation, it only translates 'count' vertexes from 'first'
location in vertex buffer with one drawing for non-instanced vertices.
'first' and 'count' are got from draw parameter list. And for the
translated vertex buffer, when drawing, the first vertex location is 0.
From above analysis, we can see that if all attribute storages are
non-dynamic, we can directly use the indirect buffer to draw. But for
dynamic storages, we have to calculate the first, count, and instances
from indirect buffer and apply them to translate the dynamic type
buffers. Meanwhile, we have to set the first to 0 (see above
description)when drawing.
DrawArrysIndirect implementation is like below:
1. Check whether all vertex attributes are non-dynamic
2. If yes, applyVertexBuffer and DrawInstancedIndirect
3. If no, 1) calculate first, count, and instances from indirect buffer.
2) applyVertexBuffer with these parameters.
4) Use DrawInstanced instead of DrawInstancedIndirect.
BUG=angleproject:1595
TEST=dEQP-GLES31.functional.draw_indirect.draw_arrays_indirect*
Change-Id: I36431f416443279d51de523b07ce60727914cbbf
Reviewed-on: https://chromium-review.googlesource.com/446690
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
fe34780f
|
2017-03-13T17:07:08
|
|
RenderStateCache BlendState Hash Fix
Fix hash function for blendState cache
BUG=angleproject:1937
Change-Id: I0acd7dfcfb933b2b7ff0c1dc6854c7623ec57b3b
Reviewed-on: https://chromium-review.googlesource.com/453887
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e5cdca7e
|
2017-03-13T16:45:56
|
|
RenderStateCache memory usage
Reduce RenderStateCache cache sizes from 4k to 2k. Saves 64kb of memory.
Change-Id: I9e92bbdf095f1e66cf9b84ba81899a8af59d6d86
Reviewed-on: https://chromium-review.googlesource.com/453886
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
7a0b3044
|
2017-03-10T10:03:33
|
|
Reland "ES31: Add test on large strides"
In OpenGL 4.3 there is no limit on the maximum value of stride. This patch
choose an emulated value for OpenGL 4.3 to fix the fyi failure on Linux AMD.
BUG=angleproject:1593
Change-Id: I83cecc2ed1a3734dc8b8df3edb48ecc16039ba6e
Reviewed-on: https://chromium-review.googlesource.com/452746
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
b78707c8
|
2017-03-09T15:03:11
|
|
Move default-block uniform linking to a separate file
The code is easier to understand when it's encapsulated better.
This change is pure refactoring with no functional changes.
BUG=angleproject:1442
TEST=angle_end2end_tests
Change-Id: I6128fd72c65ca7a87af596cda4866c74c2a66c48
Reviewed-on: https://chromium-review.googlesource.com/452502
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
e14951e6
|
2017-03-09T18:55:16
|
|
Implement robust buffer initialization.
This uses the most simple implementation: on BufferData calls without
explicit data arguments, it will initialize the buffer data store to
zero. This could be improved by deferring the init until needed, and
skipping it if the buffer store is cleared through other API calls,
but it is not a regression from current Chromium implementation.
BUG=angleproject:1635
Change-Id: I2fb1594851c5050dc2578736c3f74761555da267
Reviewed-on: https://chromium-review.googlesource.com/450921
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0bb791ed
|
2017-03-09T23:44:40
|
|
Revert "ES31: Add test on large strides"
This is failing on Linux AMD: https://luci-logdog.appspot.com/v/?s=chromium%2Fbb%2Fchromium.gpu.fyi%2FLinux_Release__AMD_R7_240_%2F1729%2F%2B%2Frecipes%2Fsteps%2Fangle_end2end_tests%2F0%2Fstdout
../../third_party/angle/src/tests/gl_tests/VertexAttributeTest.cpp:684: Failure
Expected: (maxStride) >= (2048), actual: 0 vs 2048
This reverts commit 0ba963ef27d1d656986f2f4382391dd5da8c8104.
Reason for revert: <INSERT REASONING HERE>
Original change's description:
> ES31: Add test on large strides
>
> ES3.1 requires the implementation should define MAX_VERTEX_ATTRIB_STRIDE,
> which should be emulated when we use D3D11 backends.
>
> This patch adds tests to verify this value required in ES3.1 are
> supported to be used directly in glVertexAttribPointer for rendering.
>
> BUG=angleproject:1593
>
> TEST=angle_end2end_tests
>
> Change-Id: I1ac206e4f6c972b5748552177c787c0adcb66786
> Reviewed-on: https://chromium-review.googlesource.com/441308
> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
>
TBR=ynovikov@chromium.org,geofflang@chromium.org,jmadill@chromium.org,cwallez@chromium.org,yunchao.he@intel.com,qiankun.miao@intel.com,jiawei.shao@intel.com,yang.gu@intel.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=angleproject:1593
Change-Id: I036da9d6d5633bcc055cc8cfbfde9a15ae67f59c
Reviewed-on: https://chromium-review.googlesource.com/452743
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
6ca2b65c
|
2017-02-19T18:05:10
|
|
Implement location layout qualifier for uniforms
This is a complete implementation of the uniform location layout
qualifier. Uniform location set in the shader is plumbed to shader
linking, which does several link-time checks for conflicts and
recursively applies the location to struct members.
Validate that location is consistent as specified in the table in
section 9.2.1 of the ESSL 3.10.4 spec. The location set in the shader
overrides the one set via the CHROMIUM_bind_uniform_location API.
Location conflicts must be checked even if the uniforms are not
statically used. Because of this unused uniforms are now recorded
during uniform linking. After linking checks are done, unused uniforms
are pruned from the program state.
Location is validated against the maximum number of uniform locations
at compile time as specified in section 4.4.3 of the ESSL 3.10.4 spec.
All dEQP uniform location tests don't yet pass due to unrelated bugs.
BUG=angleproject:1442
TEST=angle_end2end_tests, dEQP-GLES31.functional.uniform_location.*
Change-Id: I1f968e971f521fbc804b01e1a7c2b4d14f24d20f
Reviewed-on: https://chromium-review.googlesource.com/447942
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
0ba963ef
|
2017-02-14T22:03:09
|
|
ES31: Add test on large strides
ES3.1 requires the implementation should define MAX_VERTEX_ATTRIB_STRIDE,
which should be emulated when we use D3D11 backends.
This patch adds tests to verify this value required in ES3.1 are
supported to be used directly in glVertexAttribPointer for rendering.
BUG=angleproject:1593
TEST=angle_end2end_tests
Change-Id: I1ac206e4f6c972b5748552177c787c0adcb66786
Reviewed-on: https://chromium-review.googlesource.com/441308
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
fe9306a8
|
2017-02-01T17:41:05
|
|
WebGLCompatibility: Add test for "negative" offset in DrawElements
BUG=angleproject:1523
BUG=chromium:668223
Change-Id: I2d21c15b53fa204b3cb2b0be849cfe91ca63046b
Reviewed-on: https://chromium-review.googlesource.com/435884
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
e16a4519
|
2017-03-07T20:46:40
|
|
D3D11 FL9_3: Fix bug in R32F vertex format emulation.
We would allow direct storage when this format is emulated. Noticed
this when making a test which used a single float vertex format.
BUG=angleproject:1635
Change-Id: Ia2164b0f311b27f24b6aa7760eb9f9a3834c6044
Reviewed-on: https://chromium-review.googlesource.com/451578
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e08a1d36
|
2017-03-07T17:24:06
|
|
Plumb robust resource init extensions.
This also cleans up a few minor glitches in the extension texts,
and renames the EGL extension for consistency.
It incidentally fixes a bug in our EGL init where we were checking
the wrong client versions for KHR_create_context.
It also implements a new feature for tests which allow them to defer
Context creation until the test body. This allows tests to check for
EGL extension available before trying to create a context with certain
extensions.
BUG=angleproject:1635
Change-Id: I9311991332c357e36214082b16f2a4a57bfa8865
Reviewed-on: https://chromium-review.googlesource.com/450920
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
146e8a1c
|
2017-03-02T23:22:37
|
|
WebGL validation of constant color & alpha blend.
In WebGL, generate INVALID_OPERATION if constant color and constant
alpha are used together as source and destination blend functions.
BUG=angleproject:1817
Change-Id: I9b2d05ab5017c013bb89c13256efbd80198de91b
Reviewed-on: https://chromium-review.googlesource.com/448940
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
9f9b1d2d
|
2017-03-06T18:25:22
|
|
Make ScratchBuffer its own type.
This helper tool in Renderer11 can be useful in other back-ends,
or even in the front end.
BUG=angleproject:1635
Change-Id: I18ec19a891a9bdfa7b80dea1b8e308abf206906b
Reviewed-on: https://chromium-review.googlesource.com/450919
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ef964d48
|
2017-03-06T18:25:22
|
|
Buffer: Minor error macro cleanups.
Refactoring patch only.
BUG=angleproject:1635
Change-Id: I9b86fc77f8f62a0f67f9fc73debdc8fb5e379bcc
Reviewed-on: https://chromium-review.googlesource.com/450918
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
817232ef
|
2017-02-22T18:36:10
|
|
Validate invariance of built-in variables when linking
According to ESSL 1.00.17 paragraph 4.6.4
BUG=angleproject:1876
Change-Id: I61e142c31dce11eec28fe240a9bc9ce2c632daf6
Reviewed-on: https://chromium-review.googlesource.com/446870
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
010e4dbd
|
2017-03-03T14:22:06
|
|
Code refactoring for getters and setters.
The entry point should call into Context at first for getters and setters.
BUG=angleproject:1922
Change-Id: Ibc8f726298cf334a6dafd6402e39c4dcd7e6d333
Reviewed-on: https://chromium-review.googlesource.com/450028
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
390208b5
|
2017-02-28T18:03:06
|
|
Implements ETC lossy decode for ETC2 formats.
This is the 2nd payload of GL_ANGLE_lossy_etc_decode feature. In this change,
RGB8, SRGB8, RGB8A1, and SRGB8A1 formats in ETC2 family can be converted
to BC1.
BUG=angleproject:1285
Change-Id: I96fe2f07c62716a31d37f20a202b6cabbb4ebbd2
Reviewed-on: https://chromium-review.googlesource.com/447846
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
461d9a30
|
2017-01-04T16:37:26
|
|
ES31:Check framebuffer status for multisample and default params
This patch implements FRAMEBUFFER_INCOMPLETE_MULTISAMPLE checking for
checkFramebufferStatus, and also modify conditions of
FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENTS when setting default
parameters to fbo.
BUG=angleproject:1594
TEST=angle_end2end_tests --gtest_filter=FramebufferTest_ES31*
TEST=dEQP-GLES31.functional.texture.multisample.negative.fbo_attach_different_fixed_state_tex*
Change-Id: I86954056d3a5d89dca517b267bd16e17b70e5652
Reviewed-on: https://chromium-review.googlesource.com/437991
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
547cbd46
|
2017-02-27T11:54:00
|
|
Validate uniform binding at link time
GLSL ES Spec 3.10.4, section 4.4.5 has the rules for linking uniforms
with binding layout qualifiers. If a binding layout qualifier for a
uniform variable is specified in both vertex and fragment shaders, the
qualifiers must match.
BUG=angleproject:1893
TEST=dEQP-GLES31.functional.layout_binding.*binding_contradictory*
Change-Id: I0ae6a1a8967df818be8136510c22daee848b9da7
Reviewed-on: https://chromium-review.googlesource.com/447557
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
7d670a33
|
2017-02-21T21:35:57
|
|
Make ozone backend work if it can't display.
The ozone backend will no longer fail if it is unable to display on
screen for any reason. It no longer assumes it can control the first
screen it finds.
BUG=angleproject:1423
Change-Id: I5d5274c54b1bc6de50e704903391bf6161efa487
Reviewed-on: https://chromium-review.googlesource.com/445805
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
200db9dc
|
2017-02-24T12:59:26
|
|
DisplayGLX: Create a highest version core profile context.
Previously the code was hitting a weirdness of glXCreateConfigAttrib
where a compatilibility context was created even if the core profile
bit was set.
BUG=chromium:694877
Change-Id: I17164d620b39a26d73e34e1fc8de0ef66aef80f4
Reviewed-on: https://chromium-review.googlesource.com/446673
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
4c26fc2f
|
2017-02-24T11:04:10
|
|
Vulkan: Initial command queueing implementation.
This removes the sychronous operation of the command buffers. It also
introduces a serial type for assigning ids to queue operations. This
gives us the ability to manage lifetimes of resources and track when
they're no longer in use on the device.
BUG=angleproject:1898
Change-Id: I91a4836d3098f1d7bd06cd389d88601a3a4826ab
Reviewed-on: https://chromium-review.googlesource.com/428352
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
6eafb04c
|
2016-12-27T17:04:07
|
|
ES31: Add GL_ATOMIC_COUNTER_BUFFER_BINDING binding point
BUG=angleproject:1729
TEST=dEQP-GLES31.functional.state_query.integer.atomic_counter*
dEQP-GLES31.functional.state_query.indexed.atomic_counter*
angle_end2end_tests:AtomicCounterBufferTest
Change-Id: I059c4e22e04cedec9134ec9f631de33f77b1fbe2
Reviewed-on: https://chromium-review.googlesource.com/430959
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a02315b0
|
2017-02-23T14:14:47
|
|
WebGL Compat: Add DEPTH_STENCIL attachments.
This is a special WebGL 1 binding point, that does not correspond to
any native functionality. Due to particularities in validation we
need to represent this with additional state in the Framebuffer.
WebGL 2 fixes this oddity by resolving to the GLES 3 native spec.
In order to pass the WebGL framebuffer objects test, we will also
need a chromium-side CL to work with the additional state tracking
it does in the blink layer, and an additional patch to ANGLE to
clear the depth buffer before the first use (robust resource init).
BUG=angleproject:1708
Change-Id: I111f8f5a451cce7de6cf281a6bc335b92dd2daf2
Reviewed-on: https://chromium-review.googlesource.com/444095
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
89fcb8e8
|
2017-02-22T15:38:55
|
|
Check for getColorAttachment returning null before using it.
BUG=angleproject:1916
Change-Id: I98413198089081cc354e9e14dff95f233c3f34ff
Reviewed-on: https://chromium-review.googlesource.com/446044
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6f60d05f
|
2017-02-22T15:20:11
|
|
Make Framebuffer backbuffer constructor take Surface.
This allows the Framebuffer to initialize all the attachment info
internally. This in turn will allow us to clean up the way we
validate WebGL1 depth/stencil attachments.
BUG=angleproject:1708
Change-Id: I8871a9791dfce0ac806f4e1367a521610e5283ae
Reviewed-on: https://chromium-review.googlesource.com/446130
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f0eafe10
|
2017-02-21T15:03:50
|
|
Vulkan: Use Mailbox present mode when possible.
This is a hack to force an equivalent of eglSwapInterval(0) for perf
testing on the bots. This isn't quite the same as Immediate but
Immediate doesn't seem to be as widely available.
BUG=angleproject:1898
Change-Id: I3c5053e58969ba48f4f8595138e8fd38ea059bf6
Reviewed-on: https://chromium-review.googlesource.com/445798
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e18e6394
|
2017-02-20T10:32:23
|
|
ES3.1: Move FramebufferParameteri and GetFramebufferParameteriv to context.
Follow-up of the cl, implementing fmamebuffer parameters api
(https://chromium-review.googlesource.com/c/412126/). Moving entry point
function FramebufferParameteri and GetFramebufferParameteriv to context
according to Jamie's commemts.
BUG=angleproject:1594
TEST=dEQP-GLES31.functional.state_query.framebuffer_default.framebuffer_default*
Change-Id: Ib8a286afe97716576cf5d0a5338eee6588a4e25c
Reviewed-on: https://chromium-review.googlesource.com/444283
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
4a92cebc
|
2017-02-19T17:51:24
|
|
Clarify code around setting uniform locations
Use the name "uniformLocationBindings" for location information set by
the API instead of "uniformBindings", which can be easily confused
with binding layout qualifiers that can be set for some types of
uniforms. Also use more straightforward names throughout the
indexUniforms function.
BUG=angleproject:1442
Change-Id: I47d504479b36def696305f060e9c9bd3de3ade48
Reviewed-on: https://chromium-review.googlesource.com/445236
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
f5bb220f
|
2017-02-17T23:25:17
|
|
Restore Default Platform logging to stderr
Was lost in https://chromium-review.googlesource.com/434188
Also, don't reset pre-set Platform to Default,
otherwise Chrome's platform gets reset.
BUG=angleproject:1660, angleproject:1892
Change-Id: I052c86c513c8d89d2420a4724a8bd0dc7446c7c2
Reviewed-on: https://chromium-review.googlesource.com/444928
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
cde4f024
|
2017-02-21T14:06:02
|
|
Remove unused parameters of StoreStaticAttrib
The parameters count and instances in VertexDataManager::StoreStaticAttrib
are never used in the function body. So this patch will remove them.
BUG=none
Change-Id: Ic3fe21ae50e5016145bfd0c78542540c8ec76fd2
Reviewed-on: https://chromium-review.googlesource.com/445337
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
308d745d
|
2017-02-15T22:51:21
|
|
Don't use GL_FRAMEBUFFER_SRGB unless available.
Don't try to enable or disable GL_FRAMEBUFFER_SRGB unless
extensions.sRGBWriteControl is true. For example if you
try it with Mesa GLES2 you get a GL error.
BUG=angleproject:1896
Change-Id: I5f5b4e8ea4f5a7c6913f27761a6e2dc88aacc78c
Reviewed-on: https://chromium-review.googlesource.com/443824
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4e0e6f8a
|
2017-02-17T11:06:03
|
|
WebGL Compat: Add DEPTH_STENCIL renderbuffers.
This special internal format was defined in the WebGL 1 spec as a
special unsized format with at least 16 bits of depth and at least
8 bits of stencil. Intenally ANGLE will translate this to packed
24/8 depth/stencil.
The new test is adapted from the WebGL test:
conformance/renderbuffers/framebuffer-object-attachment
BUG=angleproject:1708
Change-Id: I44b03e41889eed02481f603b8d52c530dcfed5ce
Reviewed-on: https://chromium-review.googlesource.com/442094
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2597fb64
|
2016-12-09T16:38:02
|
|
ES31: Refactor VertexArray for Vertex Attrib Binding
OpenGL ES3.1 feature Vertex Attrib Binding requires vertex arrays should
be split into two arrays:
1. an array of vertex buffer binding points, each of which specifies:
- a bound buffer object,
- a starting offset for vertex attribute data in that buffer object,
- a stride used by all attributes using that binding point,
- a frequency divisor used by all attributes using that binding point.
2. an array of generic vertex attribute format information records, each
of which specifies:
- a reference to one of the new buffer binding points above,
- a component count and format, and a normalization flag for the
attribute data,
- the offset of the attribute data relative to the base offset of each
vertex found at the associated binding point.
Current ANGLE implementation simply uses a struct to represent a vertex
attribute object, which does not meet the requirements above.
This patch aims to be the the basis of the implementation of all ES3.1
Vertex Attrib Binding APIs by refactoring the struct VertexAttribute and
the class VertexArray to fit the new data layout and ensuring all current
functionality is retained.
BUG=angleproject:1593
TEST=angle_unittests, angle_end2end_tests, gpu_unittests
Change-Id: Ieb41f1bf503f815fd0476d2ea045dcb863465254
Reviewed-on: https://chromium-review.googlesource.com/418880
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5a53d54e
|
2017-02-16T21:24:10
|
|
Remove unneeded ContextImpl::syncState parameter.
The 'state' parameter passed to ContextImpl::syncState() is already
available in ContextImpl as mState.getState().
BUG=none
Change-Id: I13283664579fa04ae67b1d1bbc0cb4426a950b97
Reviewed-on: https://chromium-review.googlesource.com/444099
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e6091987
|
2017-02-15T22:03:36
|
|
Set formats in Ozone configs.
The fields renderTargetFormat and depthStencilFormat are now required.
BUG=none
Change-Id: I8dff771fc8c28b297bc7d47f9aef7f78ba0f3f86
Reviewed-on: https://chromium-review.googlesource.com/443804
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
5deea723
|
2017-02-16T10:44:46
|
|
Vulkan: Don't store device handles in wrapped objects.
BUG=angleproject:1684
Change-Id: I0ec11ec79f2e9893600a8ffd8cdbfc6040fb6f70
Reviewed-on: https://chromium-review.googlesource.com/426402
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
abe89c7d
|
2017-02-16T10:24:06
|
|
Tweak platform method signatures.
This works around a limitation in UBSAN which can't handle decltype.
Instead use void * and typedef where appropriate.
BUG=chromium:692274
Change-Id: I4eab796db3aa2e51c0fc558170eb2af61f07223d
Reviewed-on: https://chromium-review.googlesource.com/443885
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f7bbc8a3
|
2016-11-16T09:57:22
|
|
ES3.1: Implement framebuffer parameters api for opengl part.
Add new framebuffer parameters that can be set with glFramebufferParameteri
and queried with glGetFramebufferParameteriv.
GL_FRAMEBUFFER DEFAULT WIDTH
GL_FRAMEBUFFER_DEFAULT_HEIGHT
GL_FRAMEBUFFER_DEFAULT_SAMPLES
GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS
BUG=angleproject:1594
TEST=angle_unittests
TEST=angle_end2end_tests
TEST=dEQP-GLES31.functional.state_query.framebuffer_default.framebuffer_default*
Change-Id: I425e73a6b798fc7c73841ab98d7c8aabc381133d
Reviewed-on: https://chromium-review.googlesource.com/412126
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
38a24a94
|
2017-02-15T13:53:06
|
|
Fix incorrect indices being used when divisor is non-zero.
When streaming client data in the OpenGL backend, incorrect vertex data was
uploaded. The 'first' parameter should be ignored when drawing with a
non-zero divisor, even when doing non-instanced draw calls.
BUG=angleproject:1894
Change-Id: If5a9ed4683f5c64eea1436eff28b2b2f86befcf4
Reviewed-on: https://chromium-review.googlesource.com/443067
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
294a5608
|
2017-02-15T10:41:32
|
|
Vulkan: Make CommandPool a wrapped type.
This faciliatates an upcoming change to treat all handle types
uniformly with respect to releasing.
BUG=angleproject:1684
Change-Id: I632262a57b3a447cf4999c28ab359fe931549576
Reviewed-on: https://chromium-review.googlesource.com/442674
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
feb8c686
|
2017-02-13T16:07:35
|
|
Add extensions to disable client arrays.
Chrome doesn't allow any client data in its command buffer. Add an ANGLE
extension to request a context that disallows client data.
BUG=602737
Change-Id: If9d5144daea3c629a73562396000df59a671aad3
Reviewed-on: https://chromium-review.googlesource.com/441986
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
21534776
|
2017-02-13T15:21:02
|
|
DisplayGL: remove getDriverVersion
It was unused and going forward angle_gpu_info_util will be used
instead.
BUG=angleproject:1874
Change-Id: I262cc36066aa28805d50f3fc4442b08477f9e24d
Reviewed-on: https://chromium-review.googlesource.com/442024
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
f4f8db85
|
2017-02-15T09:31:39
|
|
Fix a couple forward declares in angletypes.h.
These were vestigal from previous code.
BUG=angleproject:1593
Change-Id: I1d9a8e6f60d1dadf8a8a598bdbddd98457eb559c
Reviewed-on: https://chromium-review.googlesource.com/442651
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
34fefb7e
|
2017-02-14T15:05:47
|
|
Fix initialization of Caps members.
sRGB was never initialized and maxTextureAnisotropy was initialized with
a bool instead of a float.
BUG=602737
Change-Id: Ied7c27d1dbdbec96f8aead618132b4f59892bd99
Reviewed-on: https://chromium-review.googlesource.com/442668
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
6c1f671b
|
2017-02-14T19:08:04
|
|
Add destroy hooks for several GL objects.
These hooks allow the back-end renderer to free object resources
without having to store pointers to shared device handles for
each and every object. This will allow us to save memory on
back-ends that really care about memory overhead.
There is a downside in that there is more boilerplate in passing
gl::Context handles around everywhere.
BUG=angleproject:1684
Change-Id: I89463bba8d23f92920e8956650cb73c7fc6d66b7
Reviewed-on: https://chromium-review.googlesource.com/426401
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
abf38572
|
2017-02-14T16:47:59
|
|
Remove old C++ ANGLE platform.
Now that the new platform is in place, we can remove the old methods.
Must be landed after https://codereview.chromium.org/2697463003/
BUG=angleproject:1892
BUG=chromium:678870
Change-Id: Ia29a3b120cf3521fc0409019c2e64e4dbc6f460d
Reviewed-on: https://chromium-review.googlesource.com/441274
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
e8fb640d
|
2017-02-14T17:56:40
|
|
Update RenderbufferStorage EPs to new style.
This will facilitate changes for WebGL compatibility.
BUG=angleproject:747
BUG=angleproject:1708
Change-Id: I62e5d684ca10a843b5e958afe9954c1065bfeb19
Reviewed-on: https://chromium-review.googlesource.com/442093
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6137ddc5
|
2017-02-10T18:55:07
|
|
WebGL validation for depthRange.
Generate INVALID_OPERATION for depthRange(zNear, zFar) if zNear > zFar.
Add corresponding test.
BUG=angleproject:1816
Change-Id: I28b5876a74c9765c0eef1e0f6e5e96d0380586d0
Reviewed-on: https://chromium-review.googlesource.com/441207
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
40dc8c10
|
2017-02-14T10:41:32
|
|
Release the global texture manager with the last referencing context.
This ensures that when the global texture manager is released, there is a valid
context.
BUG=angleproject:1639
Change-Id: I1b75885e9dc02b607bb1a386de394f6087429f5d
Reviewed-on: https://chromium-review.googlesource.com/442074
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
b5c3d27a
|
2017-02-14T09:40:41
|
|
D3D11: Disable the RGB10A2 backbuffer format.
Chrome was using this format by accident for video decode surfaces, resulting
in a power usage regression.
BUG=angleproject:1662
BUG=691106
Change-Id: I3b9ac814f06c07490fceb88e8b087b235e5b25bf
Reviewed-on: https://chromium-review.googlesource.com/441950
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
ceb1048f
|
2017-02-13T12:31:03
|
|
Add classification of image type enums
Implement classifying image enums in utilities and plumb the image
type check to Uniform objects as well. This functionality will be used
to add API support for images.
BUG=angleproject:1442
Change-Id: Idd2ee5ebacd38290aeeace1177165c740bc42c7e
Reviewed-on: https://chromium-review.googlesource.com/441585
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
dbffdfbd
|
2017-02-13T18:52:38
|
|
Fix counting of the new platform methods.
The context pointer was throwing off the count by one.
Also change the type to void * for ease of use.
BUG=angleproject:1892
BUG=chromium:678870
Change-Id: Iffac667f0aa896d9247e9ffddfeb3bc447a9692f
Reviewed-on: https://chromium-review.googlesource.com/441931
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b1eeba1f
|
2017-02-13T16:36:40
|
|
Use a C API for the ANGLE platform.
The main purpose of this change is to fix a fuzzer bug where we would
trigger undefined behaviour calling between Chrome and ANGLE. It's
not specced how virtual function calls work if the shared objects are
not directly linked together, and ANGLE and Chrome are not linked.
Replace the old class-style API with a C dispatch table.
Follow-up work will make the Platform owned by the Display instead of
using global variables, but fixing this is a bit tricky.
BUG=angleproject:1892
BUG=chromium:678870
Change-Id: Iad188bc2e50f2b5e4a03ce0de233d686f569c705
Reviewed-on: https://chromium-review.googlesource.com/441273
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
7b4e00d2
|
2017-02-08T10:43:47
|
|
gpu_info_util: Implement GetSystemInfo on Linux
BUG=angleproject:1874
Change-Id: Id39c26b806e6a7937517235afe0ca60f5087df5b
Reviewed-on: https://chromium-review.googlesource.com/438940
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
1b60d8d2
|
2017-02-10T14:56:55
|
|
Add artificial limits to the total memory allocated by the NULL backend.
Fuzzer tests were capable of allocating very large chunks of memory by
calling glBufferData with a null pointer. This sets a limit before the
NULL backend starts returning out of memory GL errors.
BUG=602737
Change-Id: Ic53ebcf999f951b96c1df82e4db57e949d03c908
Reviewed-on: https://chromium-review.googlesource.com/441184
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1e031b27
|
2017-02-10T15:01:28
|
|
Expose the CHROMIUM copy texture extensions on the NULL backend.
These extensions are required by the passthrough command decoder.
BUG=602737
Change-Id: Ifd04fca27ae35b30e4c8ab458904530e3dd44377
Reviewed-on: https://chromium-review.googlesource.com/441204
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
44ec2f59
|
2017-02-10T10:08:54
|
|
Fix GL_MAX_SAMPLES query for ES3 when the extension is missing.
This query was added in both ES3 and ANGLE_framebuffer_multisample but
the code was never updated to accept it for an ES3 context without the
extension present.
Caught by the angle passthrough command decoder fuzzer.
BUG=602737
Change-Id: Ic9a8c67747777ef48e1dd227110482998fee75ce
Reviewed-on: https://chromium-review.googlesource.com/440651
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
c5508d6e
|
2017-02-10T14:58:38
|
|
Validate that the format is compressed before calculating data size.
glCompressedTexImage3D was missing a check that the format was valid
before trying to compute the expected data size. This lead to an
assertion failure in the size computation code.
BUG=602737
Change-Id: I74e6ced082e78396a0af92317fb1c0098299a026
Reviewed-on: https://chromium-review.googlesource.com/441185
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
5f45e7c3
|
2017-02-10T15:23:28
|
|
Refactor ResourceManagers.
This makes ResourceManagers use more common code. It uses static
polymorphism to implement the various typed resource managers,
and unifies the FramebufferManager into a TypedResourceManager.
The lack of virtual calls and inlining in the header should keep
performance high.
This will make the upcoming refactor to add a destroy hook
for Vulkan objects simpler to implement.
TEST=manual performance testing of BindingPerf.
BUG=angleproject:1684
BUG=angleproject:1639
Change-Id: Ic2f102196020d1005e63a1b2cf0867577fc7c885
Reviewed-on: https://chromium-review.googlesource.com/439488
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
875bbba0
|
2017-02-08T16:38:17
|
|
Zero gl_Position in WebGL mode.
Set the SH_INIT_GL_POSITION bit in WebGL compatibility mode so gl_Position
gets zeroed out. Add corresponding test.
BUG=angleproject:1825
Change-Id: I47107804abaa83d6aee5cd46e6b69b532c08e6e8
Reviewed-on: https://chromium-review.googlesource.com/439784
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
ce02f086
|
2017-02-06T16:46:21
|
|
Add an extension to share textures at the display level.
BUG=angleproject:1639
Change-Id: If9140142ebce89f33921c13d9d212c17d1894162
Reviewed-on: https://chromium-review.googlesource.com/437618
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
85334dcb
|
2017-02-06T16:03:07
|
|
Refactor shader state setting in the GL backend
This is needed in preparation of implementing DispatchCompute, which
will need to set some of the same state as draw calls, but not
everything.
Also move setTextureCubemapSeamlessEnabled to onMakeCurrent, this way
it doesn't need to be called on every draw call. Overall this patch
doesn't have a measurable performance impact.
BUG=angleproject:1442
TEST=angle_perftests, angle_end2end_tests
Change-Id: I9958bfe7bf895b3cd805e3146a8f74d28ff2835e
Reviewed-on: https://chromium-review.googlesource.com/438349
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
fd3dd436
|
2017-02-02T19:59:59
|
|
WebGL: Add 3D tex copying feedback loop detection.
When copying to and from the same texture, we need to reject only
the feedback loops formed with the same levels of the texture -
copying between different unrelated layers and levels is fine.
This change also fixes a couple bugs in our D3D11 CopyTexSubImage3D
implementation. We were missing some "!" operators, and we actually
would hit an ASSERT when trying to blit from a level of a 3D texture.
BUG=angleproject:1685
Change-Id: Id715bebafe8336cf8bb95d0d06275a8b95e522e1
Reviewed-on: https://chromium-review.googlesource.com/425494
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
c8a08f40
|
2017-02-07T12:33:57
|
|
Make failure to create Debug D3D11 device a warning instead of error
Tests started failing after directing ERR to Platform
BUG=angleproject:1660, angleproject:1878
Change-Id: I3e6d99bee266c0e7fa541c6e19be7253dcc01cdf
Reviewed-on: https://chromium-review.googlesource.com/438819
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
8897afa1
|
2017-02-06T17:17:23
|
|
Pass Context around to Texture::copyImage.
Passing this through the chain will allow us to have access to the
platform methods, as well as be useful in the future for Vulkan.
BUG=angleproject:1660
Change-Id: I819984fceeb5a2a299aa54e59ef3b428f5f9c91f
Reviewed-on: https://chromium-review.googlesource.com/438684
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1d37bc50
|
2017-02-02T19:59:58
|
|
WebGL: Validate depth/stencil feedback loops.
BUG=angleproject:1685
Change-Id: I6019555af69800f07862a0038fd0c25a9bb5aab8
Reviewed-on: https://chromium-review.googlesource.com/425493
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
baa25fd7
|
2017-02-06T17:11:30
|
|
Framebuffer: Remove ext check for depth/stencil textures.
The absence of the extension should not prevent depth/stencil textures
in FBOs in ES3, since they are core. In fact it shouldn't be possible
to make depth/stencil attachments at all without support, so the check
shouldn't be necessary.
BUG=angleproject:1828
Change-Id: Ibec1e95c78b79cec9654f06ba11beec447017f1c
Reviewed-on: https://chromium-review.googlesource.com/438604
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
5f56ddb9
|
2017-01-13T17:29:55
|
|
Buffer: Pass Context to all impl methods.
This allows us to retrieve Device handles for Vulkan, and could allow
us to avoid storing some pointers for other back-ends.
BUG=angleproject:1684
Change-Id: Iccd5b97cf1c3a332d62a38ad0fcf21c352270439
Reviewed-on: https://chromium-review.googlesource.com/426400
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
70ee0f61
|
2017-02-06T16:04:20
|
|
Add destroy handler to SurfaceImpl.
This allows the Vulkan back-end to avoid storing a reference to
the VkDevice. This will extend to all the Vulkan object handle wrapper
types.
BUG=angleproject:1684
Change-Id: I3a98e94bc171ca27f225ce57996c3fdf9581e6e1
Reviewed-on: https://chromium-review.googlesource.com/424229
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
44ff5a76
|
2017-02-03T15:15:43
|
|
Validate xoffset and yoffset are multiples of blocksize.
Affects glCompressedTexSubImage and glCopyCompressedTexSubImage calls.
BUG=668223
Change-Id: Ie71faa1fa7dac12cec51a2e29e0ce212ac54e411
Reviewed-on: https://chromium-review.googlesource.com/437605
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
c295e516
|
2017-01-27T17:47:50
|
|
Implement EGL_KHR_surfaceless_context
BUG=angleproject:1651
Change-Id: I710df14c2bfa55db2fb9b9715001756d1c1a8f1b
Reviewed-on: https://chromium-review.googlesource.com/434763
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
bcb3f9ba
|
2017-01-27T22:45:18
|
|
Direct logging to Platform when available
All logging should be done via ERR() and WARN(),
which call angle::Platform's logError and logWarning,
if there is current Platform which supports logging.
Otherwise, ERR() is directed to std::cerr.
Misc fixes to keep tests passing.
BUG=angleproject:1660, angleproject:1644
Change-Id: I2bca33a021537185d0c236a3083789af3236b5f3
Reviewed-on: https://chromium-review.googlesource.com/434188
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a2936aaf
|
2017-02-06T11:22:24
|
|
D3D11: Don't yeild after a successful call to GetData during glFinish.
ScheduleYield was always called after GetData regardless of it's result. This
meant that we would successfully get the data but still sleep the thread
BUG=667979
Change-Id: Iecba0ae5cacef64a1080bbd89ce352bc4f281359
Reviewed-on: https://chromium-review.googlesource.com/437636
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
df68a6f0
|
2017-01-13T17:29:53
|
|
Vulkan: Implement a simple graphics pipeline.
BUG=angleproject:1580
Change-Id: Iceaed896db22dc9eefa3f1bee7d6142fcfb20368
Reviewed-on: https://chromium-review.googlesource.com/412267
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
b3280707
|
2017-02-03T15:59:18
|
|
Change ERR to WARN in RendererD3D::skipDraw
For undefined behavior when point rendering without writing to gl_PointSize.
Even the comment used to say "This is stictly speaking not an error".
BUG=angleproject:1660
Change-Id: Ic8b33689151c9812592dd6b22c83a3355b7d6756
Reviewed-on: https://chromium-review.googlesource.com/437746
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
72e27b02
|
2017-02-03T15:43:24
|
|
Fix error logging in ValidateBlitFramebufferANGLE
Bundle an error message about whole buffer copies inside gl::Error
instead of delivering it to the Platform.
BUG=angleproject:1660
Change-Id: I13205b74529fbe40af05e7c1896c6315486e90e0
Reviewed-on: https://chromium-review.googlesource.com/437628
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
66a0819c
|
2017-02-03T15:24:25
|
|
D3D9: Write dummy output for depth/stencil only draw.
This prevents a spurious D3D runtime warning, which was clogging up
some of our test output.
BUG=angleproject:1660
Change-Id: I1a747ba7532323b989dbed1ee7c78b3b457768a6
Reviewed-on: https://chromium-review.googlesource.com/437724
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
999b0fd2
|
2017-02-02T21:45:55
|
|
Validate uniform sampler values.
Generate GL_INVALID_VALUE when setting a sampler uniform with a value
outside the range [0, GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS).
Add a test for the new behavior.
Remove TextureLimitsTest.DrawWithTexturePastMaximum, which is made
obsolete by the new test.
BUG=angleproject:1711
Change-Id: I9a4ea13b8cb47742816476689bd3932ce267fd0a
Reviewed-on: https://chromium-review.googlesource.com/430196
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
7bb425c6
|
2017-02-03T18:10:05
|
|
Revert "D3D11: Clean up blendState code."
This reverts commit 786ad3876730c72311c64cf2f297e671ced847a5.
Reason for revert:
Seems to have a bug with binding the BlendStates, causing a crash on
Intel.
https://luci-milo.appspot.com/buildbot/chromium.gpu.fyi/Win10%20Release%20%28Intel%20HD%20530%29/141
Failing WebGL 2 tests
WebglConformance_conformance2_reading_read_pixels_from_fbo_test
WebglConformance_deqp_functional_gles3_readpixel
Also generates D3D11 runtime warnings:
D3D11 ERROR: ID3D11DeviceContext::Draw: The renderTarget bound to slot 0 has a format (R8_UINT) that does not support blending. The Pixel Shader output signature indicates this output could be written, and the Blend State indicates blending is enabled for this slot. [ EXECUTION ERROR #376: DEVICE_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING]
BUG=angleproject:1632
BUG=chromium:688419
Original change's description:
> D3D11: Clean up blendState code.
>
> Masked Clear Draw Changes:
> - Use universal blendstate object
> - Eliminate blendState cache for masked clears
> - Use rasterState and scissor rect for scissoring instead of adjusting vertex positions
> - VB contains only static position data (per vertex color removed)
> - Clear color(s) and depth clear values now passed in using a constant buffer
> - MultiColorclear shader used for float clears to workaround alpha rounding issues
> - Update shader compile script and shader source and bytecode headers
> - Remove unused shaders (source and bytecode headers)
> - Use com pointers where possible for D3D11 objects
>
> BUG=angleproject:1632
>
> Change-Id: I98e38451bd453f53b772fe93ec9dcceb4196ea58
> Reviewed-on: https://chromium-review.googlesource.com/413736
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Shahmeer Esmail <shahmeer.esmail@intel.com>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
>
TBR=geofflang@chromium.org,jmadill@chromium.org,shahmeer.esmail@intel.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=angleproject:1632
Change-Id: Iea537505d8cce7241edaba1f1d9f404abb1d9a10
Reviewed-on: https://chromium-review.googlesource.com/437306
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
604359b9
|
2017-02-03T10:44:49
|
|
D3D11/ES31: Fix unimplemented multitexture errors.
Although the functionality for these textures is unimplemented, we
still create zero textures for multisample in D3D11. Thus the
constructor and destructor should be marked as implemented.
BUG=angleproject:1590
BUG=angleproject:1660
Change-Id: I44b51dd4e89d492f98c134b8f7dfd62dffc97015
Reviewed-on: https://chromium-review.googlesource.com/437304
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a98a647e
|
2017-02-02T21:38:32
|
|
Add uniform1iv validation functions.
Add two new validation functions: ValidateUniform1iv() and
ValidateProgramUniform1iv().
No functional change, just hooks for additional sampler uniform validation
that will come later.
This also lets us skip the sampler test in the more generic
ValidateUniformValue() function.
BUG=angleproject:1711
Change-Id: Ia6b7b45c22c2cf4b49a55fac62410ca4c91d09f4
Reviewed-on: https://chromium-review.googlesource.com/436884
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
f5f74ae0
|
2017-02-02T21:14:23
|
|
Refactor and clean up uniform validation.
Move uniform value checking to two new functions:
ValidateUniformValue() and ValidateUniformMatrixValue().
This reduces code duplication slightly and paves the way for further
validation of sampler uniforms in a later change.
The checking also becomes slightly more efficient by virtue of
reording the tests to put cheap/common cases first.
ValidateUniformCommonBase() moves to the anonymous namespace and
loses an unused parameter.
BUG=angleproject:1711
Change-Id: I6c4deeea27c54027f542500644636064167d5714
Reviewed-on: https://chromium-review.googlesource.com/431677
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
08c24e6e
|
2017-02-02T18:52:43
|
|
ES: Don't expose EXT_draw_buffers if extension not present.
Emulation of this extension would potentially require rewriting ESSL
1.00 shaders as 3.00 when the extension is missing, and we're on a
GLES 3.0 context. For now, it's easier to disable the extension when
native support is lacking.
BUG=angleproject:1828
Change-Id: I8eabb8efccc2ddd5fafd3521657ea68cc9e1d1e0
Reviewed-on: https://chromium-review.googlesource.com/436144
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
786ad387
|
2016-11-22T14:56:27
|
|
D3D11: Clean up blendState code.
Masked Clear Draw Changes:
- Use universal blendstate object
- Eliminate blendState cache for masked clears
- Use rasterState and scissor rect for scissoring instead of adjusting vertex positions
- VB contains only static position data (per vertex color removed)
- Clear color(s) and depth clear values now passed in using a constant buffer
- MultiColorclear shader used for float clears to workaround alpha rounding issues
- Update shader compile script and shader source and bytecode headers
- Remove unused shaders (source and bytecode headers)
- Use com pointers where possible for D3D11 objects
BUG=angleproject:1632
Change-Id: I98e38451bd453f53b772fe93ec9dcceb4196ea58
Reviewed-on: https://chromium-review.googlesource.com/413736
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahmeer Esmail <shahmeer.esmail@intel.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3bf8e3a2
|
2016-12-01T17:28:52
|
|
Refactor Framebuffer management into a FramebufferManager class.
BUG=angleproject:1639
Change-Id: I03a0950f26557983c8dc816a27cb4038c60e5755
Reviewed-on: https://chromium-review.googlesource.com/415611
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
8ecf7f9b
|
2017-01-13T17:29:52
|
|
Vulkan: Implement shader compilation.
This hooks up the Vulkan GLSL, decorated with locations, to glslang,
and then pipes the SPIRV back to the Program implementation for later
use when making pipelines to run draw calls.
The program compilation tests work now, but don't really test
anything other than not generating Vulkan validation layer errors
during compilation and shader object generation.
BUG=angleproject:1576
Change-Id: I625e42219f4b4d1433dd3109b94e1a2f666ba4bd
Reviewed-on: https://chromium-review.googlesource.com/408519
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0844f2db
|
2017-01-31T17:02:59
|
|
WebGLCompatibility: add tests for OOB in DrawElements' index buffer
Also add a small fix for a WebGL test where DrawElements with a count
of 0 should skip OOB checks.
BUG=angleproject:1523
BUG=chromium:668223
Change-Id: I67fbe939f6c8b925551b658b6178dbbae982df89
Reviewed-on: https://chromium-review.googlesource.com/435279
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
1aa728e3
|
2017-01-30T15:09:40
|
|
D3D11: Faster multisample depth resolve.
We can use a faster path to write out depth values. Previous attempts
were foiled by a D3D quirk: we need to clear a new DSV before we
write to it the first time.
Multisampled stencil resolve still requires a CPU readback.
BUG=angleproject:1710
Change-Id: I7a7d2f929644f61854d51dd096a8aa599ad648bd
Reviewed-on: https://chromium-review.googlesource.com/435571
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5714a202
|
2016-12-13T14:08:44
|
|
D3D11: Add RGB10_A2 as a supported EGL pbuffer config format.
Update EGLWindow to select configs that exactly match the requested
config. Too many tests make assumptions about the default framebuffer's
format.
BUG=angleproject:1662
Change-Id: I4cf8aedf51013ca0f3f40f6bbd40f24a4a90561f
Reviewed-on: https://chromium-review.googlesource.com/419681
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
8ef9a968
|
2017-01-31T17:34:37
|
|
D3D11: Fix memory leak on multisample stencil resolve.
This would happen when checking the current resource vs the prior one.
Calling GetResource would increment the reference count, but we would
not properly call Release.
BUG=angleproject:1710
Change-Id: Iefa9ee60929b9808985649c83f6322c1043fa5ed
Reviewed-on: https://chromium-review.googlesource.com/434801
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ccab69d6
|
2017-01-27T16:57:15
|
|
Implement GL_OES_surfaceless_context
BUG=angleproject:1651
Change-Id: I733ccedad7c7424cdb70e21ef8d48b2a15ccdfd7
Reviewed-on: https://chromium-review.googlesource.com/434762
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
3f6d4dff
|
2017-01-30T18:04:36
|
|
WebGLCompatibility implement and add tests for section 6.4
The checks for VertexAttribPointer were already implemented in a
previous patch, so we only add the checks for DrawElements.
BUG=angleproject:1523
BUG=chromium:668223
Change-Id: I5da55f9a7e7479627099c7f77618353a63b75a8e
Reviewed-on: https://chromium-review.googlesource.com/434958
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
5c32a6ef
|
2017-01-30T18:22:38
|
|
Fix comment introduced in 02f075c85b5e16b6ca1bfc157f1d619ed255f75a
BUG=angleproject:1553
BUG=chromium:630498
Change-Id: I4c341e57f2e0439ffd7bdcf74e15ca0de4152c5d
Reviewed-on: https://chromium-review.googlesource.com/435106
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
58806567
|
2017-01-05T13:09:31
|
|
Apply max draw buffer limit for WebGL shaders.
For WebGL, using native caps incorrectly sets gl_MaxDrawBuffers.
This change always applys the limit for compatible shaders.
BUG=angleproject:1523
Change-Id: Ie956f4b9fdd10bdf9276ae08eaeb49e65690185b
Reviewed-on: https://chromium-review.googlesource.com/425477
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c5a2a172
|
2017-01-13T15:55:07
|
|
Add EGL_EXT_pixel_format_float support, enables float EGL surfaces.
Add floating point EGL configs for the D3D11 backend.
BUG=angleproject:1707
Change-Id: Ic84cd3a0d41e78cc39d0275d83e7695f55673ddf
Reviewed-on: https://chromium-review.googlesource.com/428294
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|