|
b3ab67d3
|
2024-03-14T15:06:02
|
|
tests: Remove unnecessary .get() from RAII objects
Bug: chromium:40942995
Change-Id: I82509869bce3ad8f51811188fe04267f2de04786
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5370904
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7b0bb0f6
|
2023-09-01T13:52:28
|
|
Properly "install" program executables
According to GL:
- The program has an executable
- The executable is overwritten during link.
- After a failed link, queries of the executable may return
half-linked information
- On glUseProgram, the executable is installed in the context
- On glUseProgramStages, the executable is installed in the program
pipeline
- After a successful link, the executable is updated wherever the
previous executable of the program was installed.
This change implements exactly the above:
- The program's and the program pipeline's executables are now
shared_ptr. References to an executable in the context and PPO are
also through a shared_ptr. Installing an executable thus translates
to sharing the executable.
- The context and PPOs are made to not reference the program directly,
but work solely through the executable. As a result, the program is
free to create a new executable for link.
With this change, the link job will be free to modify the executable as
necessary because that will not be accessed until the link is done.
Note that previous changes made the backend executable accessed through
the frontend one, and moved all link results to the frontend and backend
executables as appropriate.
Bug: angleproject:6358
Bug: angleproject:8297
Change-Id: Ie636b23ff7420ad284d18b525ec4f5fb559dd9d1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4823089
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
e21b95ed
|
2023-01-11T12:56:29
|
|
Fix bad ANGLE GL tests.
These tests were calling GLES functions in the destructor,
which would lead to nullptr deferences. This was only caught
in TSAN for some reason.
Bug: angleproject:7947
Change-Id: I47dd0edba19d029757c8ddb282ca06a7e1baab45
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4157174
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d375547c
|
2022-08-12T15:54:39
|
|
Do not link program pipeline in glUseProgramStages
1. The commit 3a9f18f135fe82 caused a link to occur everytime
glUseProgramStages is called. This is redundant since the program
pipeline can be linked just before usage, thus allowing for multiple
stages to be bound before linking the executable.
2. Mark PPO as a dirty object and link the PPO in dirty object handler
3. Early return if the same program is being bound to the same stage
of the pipeline.
4. Added ProgramPipelineObjectBenchmark perf test that switches programs
before a draw and observed following data -
1. vulkan profile -
1. wall_time before patch - 102000 ns
2. wall_time after patch - 38000 ns
2. vulkan_null profile -
1. wall_time before patch - 125000 ns
2. wall_time after patch - 52000 ns
Bug: angleproject:5102
Bug: angleproject:6566
Test: ContextNoErrorPPOTest31.*Vulkan
Test: ProgramPipelineTest31.*Vulkan
Test: ProgramPipelineObjectBenchmark*
Change-Id: Idbc2fcb4875bbd040e9ec847eb2a8f96f287173c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3830170
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
89e38b57
|
2022-06-22T15:04:08
|
|
Refactor to use ANGLETest vs ANGLETestWithParam
Bug: angleproject:6747
Change-Id: I72ad52d0268eae0e1a401f12f3e94cc5efa402f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3719002
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
670a6e47
|
2022-02-09T09:18:33
|
|
Ignore invalid texture type error
When EGL_KHR_create_context_no_error is enabled, silent return when an
invalid texture type is passed in to glBindTexture and glTexParameteri.
Bug: angleproject:6995
Test: ContextNoErrorTest.InvalidTextureType*
Change-Id: I80034b18e7cb757bfa0e835f3aa15df7cd96775d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3447274
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
7f1c0c3b
|
2021-03-09T08:09:55
|
|
Call resolveLink in Program::attachShader and Program::detachShader
Previously glAttachShader and glDetachShader would only call
resolveLink during validation.
Adding the resolveLink in attachShader/detachShader handles the case
where glAttachShader and glDetachShader is called with
EGL_CONTEXT_OPENGL_NO_ERROR_KHR to skip validation.
Tests: angle_end2end_tests --gtest_filter=ContextNoErrorTest.DetachAfterLink*
Bug: angleproject:2868
Change-Id: I1e01cf8e6f8a382333226bdef037c46f4c62a119
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2745654
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
ac382039
|
2021-03-08T16:02:18
|
|
Allow graceful no-error failure in CastStateValues.
Bug: angleproject:5738
Change-Id: Iecc498b35281b8fd676f1168c3a4ed6b407d18a1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2743668
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a6b16d29
|
2021-03-02T19:04:57
|
|
Suppress UNINSTANTIATED_PARAMETERIZED_TEST failures on Ozone
We only support ES2 on Ozone, so tests that depend on ES3 or ES31
support are not instantiated there.
Bug: chromium:1183147
Change-Id: Id58bcd9b44a5b9a70b5ae8115e27c44f5dc81226
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2726550
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
001c7e8c
|
2020-09-21T13:25:46
|
|
Vulkan: Link PPO during draw validation
From the OpenGL ES 3.1 spec:
11.1.3.11 Validation
It is not always possible to determine at link time if a program object
can execute successfully, given that LinkProgram can not know the state
of the remainder of the pipeline. Therefore validation is done when the
first rendering command which triggers shader invocations is issued, to
determine if the set of active program objects can be executed.
For draws, this CL moves the PPO link operation to ValidateDrawStates()
to generate PPO link failures within ANGLE's validation layer, so we
fail any rendering commands during command validation.
For dispatch, PPOs are linked during Context::prepareForDispatch(),
where the PPO is converted from draw to compute, since that conversion
requires a re-link. This re-link shouldn't fail due to errors that would
have been caught during validation, since the compute shader must have
successfully linked before it can be included in the PPO in the first
place. We don't re-link when converting back to draw, since it's
possible there are validation errors (which we want to catch during
validation of the next rendering command).
Bug: angleproject:5064
Test: dEQP.GLES31/functional_separate_shader_validation_es31_*
Test: ContextNoErrorTest31.DrawWithPPO
Test: ProgramPipelineTest31.VerifyPpoLinkErrorSignalledCorrectly
Change-Id: Ibb249e893c007a83cc6b813f848a660bfa34ecb0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2422375
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
a8c947c7
|
2020-02-06T08:53:16
|
|
Enabled GL_KHR_no_error
Enabled GL_KHR_no_error added end2end tests for it
Note that GL_KHR_no_error can only be enabled by setting the EGL
attribute currently. Context flags are not currently supported.
Bug: angleproject:1280
Test: angle_end2end_tests --gtest_filter=ContextNoErrorTest.*
Change-Id: Ib5c73b8e284e3e4e5f800750ad6fcbef77be4285
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2068899
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|