|
88dd868f
|
2022-07-25T06:44:38
|
|
FrameCapture: Fix and optimize multi-context reset
Follow on to fd89020c
This CL:
- Fixes missing eglMakeCurrent calls when switching contexts to
reset container state
- Optimizes when those calls are made, so we only call
eglMakeCurrent in Reset when we absolutely have to
- Moves MaybeResetContextState to the end, after any per-context
reset work has been done
Test: Asphalt 9 MEC
Bug: angleproject:4599
Bug: angleproject:7507
Change-Id: I52912aa13e3a11735ed3ec93080a21e9cbff113a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3784728
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
fd89020c
|
2022-07-18T20:26:38
|
|
FrameCapture: Reset VertexArray state
This change includes three things:
- Tracking resources by context
- Resetting VertexArray state
- Splitting ResetReplay into per-context
All three are needed to properly Reset Vertex Array objects.
Vertex Arrays are considered container objects, which means
they are not shared with other contexts. We've had a hole
in Reset where we did not take multiple contexts into account.
To address this, we now also track which contextID was used
to modify a resource. For objects that need to know which
context they are bound to, we track them in a map and
return the correct index when getTrackedResource is called.
To generate the calls to reset Vertex Array state, we are able
to mirror what has been done for other ResourceTypeIDs.
In order to properly Reset resources in multiple contexts,
we have to bind the correct context before emitting the
Reset calls. This has been done for Setup already, so we
have a template to follow. With this CL, we now emit
multiple functions to Reset state, similar to the following:
void ResetReplayContextShared()
{
// Reset shared objects
...
}
void ResetReplayContext5()
{
// Bind the right context
eglMakeCurrent(EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_SURFACE, context5);
// Reset container objects for context5
...
}
void ResetReplayContext6()
{
// Bind the right context
eglMakeCurrent(EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_SURFACE, context6);
// Reset container objects for context6
...
}
void ResetReplay()
{
EGLContext context = eglGetCurrentContext();
ResetReplayContextShared();
ResetReplayContext5();
ResetReplayContext6();
eglMakeCurrent(EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_SURFACE, context);
}
Test: Ni no Kuni MEC
Bug: angleproject:4599
Bug: angleproject:7507
Change-Id: Ic585534f07172474aab0ce1d0396b0b064379f88
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3761874
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
a3899c53
|
2022-07-15T08:39:32
|
|
Capture/Replay: drop context capture call in EGL capture templ
Using the context provided by the thread variable is not correct, it
worked only by accident. The only call that uses a context is
eglCreateImage and here we have to use the context passed into the
call.
Bug: angleproject:4964
Change-Id: I78250050cc8f7271be8c91c2d09d99210aaead21
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3762458
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Faye Zhang <ffz@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
eb88a2ac
|
2022-07-11T17:16:49
|
|
Capture/Replay: Handle the case when there is no context
in eglCreateImageKHR, when target is EGL_NATIVE_BUFFER_ANDROID
then the context must be EGL_NO_CONTEXT, so handle this case.
Bug: angleproject:4964
Change-Id: I945d2af546f3f3a14be966e5cac795b58aa3c89f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3755785
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Faye Zhang <ffz@google.com>
|
|
785353fd
|
2022-05-24T12:40:16
|
|
Support Desktop OpenGL context creation in end2end tests
Validation of Desktop GL versions and profile masks is unimplemented.
Bug: angleproject:7360
Change-Id: Ifae94215b6aada895c2b02318a1d05c9515e9b96
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3664916
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
4298a54e
|
2022-06-23T23:17:12
|
|
Clean up OWNERS files
Bug: None
Change-Id: I93726b8e5226d4c3b40c7d3dc865cb7dbe7c17fe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3721567
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
fd9301c1
|
2022-06-17T12:25:10
|
|
Capture/Replay: Capture egl surface related calls
Creation from a pbuffer and generalized destruction are
implemented, as well as binding and releasing a TexImage
and making the context current with explicit draw and
read surfaces given.
Bug: angleproject:4964
Bug: angleproject:6180
Bug: angleproject:6512
Change-Id: Id8be6486125d45341905f3aabdbae4366cd568b7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3711741
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
91976352
|
2022-06-21T15:41:02
|
|
Use C++17 attributes instead of custom macros
Bug: angleproject:6747
Change-Id: Iad6c7cd8a18d028e01da49b647c5d01af11e0522
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3718999
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
714f680f
|
2022-06-08T16:19:20
|
|
Implement GL_EXT_base_instance
* Added the validation functions for
DrawElementsInstancedBaseVertexBaseInstance(),
DrawElementsInstancedBaseInstance(), and
DrawArraysInstancedBaseInstance() according to the specs.
* Added generic implementation for
glDrawElementsInstancedBaseInstance() that can
be called by back-ends.
* Added flags for back-ends so they can enable the extension.
* Added tests for DrawElementsInstancedBaseVertexBaseInstance(),
glDrawElementsInstancedBaseInstance(), and
DrawArraysInstancedBaseInstance().
* Disabled ES3_D3D11__DynamicDraw tests due to
angleproject:7441 bug.
Bug: angleproject:6983
Bug: angleproject:7441
Change-Id: Ia664b01c87bc64c05e29adec23a8f80792eaa037
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3697206
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Faye Zhang <ffz@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
6ca9c55e
|
2022-06-13T10:32:39
|
|
Capture/Replay: Allow capturing of external textures
With the support for EGL textures enabled we can actually capture
the texture content.
Bug: angleproject:5822
Change-Id: I386827456d146a54d9790fdd9eadb39b2a6b87e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3702350
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
ea3bd30a
|
2022-06-13T11:44:45
|
|
Capture/Replay: Don't capture tex levels that are out-of-range
Bug: angleproject:6334
Change-Id: I01cb1920154b5fba9554180d2edf5be9dea2b7a2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3702351
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
b257d62c
|
2022-06-15T03:15:56
|
|
Add GL_NV_read_depth_stencil
Bug: angleproject:4688
Change-Id: I44d5846f1ae5382b8c046e59643da4c0bf38e135
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3702356
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Constantine Shablya <constantine.shablya@collabora.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fd1317a7
|
2022-03-22T18:57:30
|
|
Capture/Replay: capture GetProgramBinaryOES parameters
Bug: angleproject:6631
Change-Id: I0582c585bb2f3d14b10f99fe1b88805b9e629b78
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3543805
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ce78f5f8
|
2022-05-10T09:10:30
|
|
Capture/Replay: Reset default uniforms
Extend resource tracking to include default uniforms.
They are tracked per location, per program.
Setup for defaulft uniforms is unchanged, but Reset now
includes a section like this:
glUseProgram(gShaderProgramMap[6]);
UpdateCurrentProgram(6);
glUniform1uiv(gUniformLocations[gCurrentProgram][0], 1,
reinterpret_cast<const GLuint *>(&gBinaryData[30518768]));
glUniform1uiv(gUniformLocations[gCurrentProgram][1], 1,
reinterpret_cast<const GLuint *>(&gBinaryData[30518784]));
glUseProgram(gShaderProgramMap[9]);
UpdateCurrentProgram(9);
glUniform4fv(gUniformLocations[gCurrentProgram][1], 15,
reinterpret_cast<const GLfloat *>(&gBinaryData[30518960]));
glUniform4fv(gUniformLocations[gCurrentProgram][16], 3,
reinterpret_cast<const GLfloat *>(&gBinaryData[30519200]));
glUniformMatrix4fv(gUniformLocations[gCurrentProgram][20], 2, GL_FALSE,
reinterpret_cast<const GLfloat *>(&gBinaryData[30519248]));
...
Test: Animal Crossing MEC, Star Wars KOTOR MEC
Bug: angleproject:7307
Bug: angleproject:7353
Change-Id: Ic344767f5dd4ffc38c15ed6bf81a7d1daf274a7b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3657474
Reviewed-by: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a894cb94
|
2022-05-10T21:15:59
|
|
Bootstrap pixel local storage
This CL creates a very simple prototype that implements pixel local
storage in a thin layer on top of ES 3.1 shader images, and adds a
single test.
Assuming all goes well on the various devices and backends, the next
steps will be:
* Write many more tests.
* Compiler support, switch to API-specific shader images.
* Move the thin layer into ANGLE.
* Thorough validation and error handling.
* Add an implementation that uses render target attachments
(e.g., EXT_shader_framebuffer_fetch).
* Incremental, backend-specific optimizations as needed.
Bug: angleproject:7279
Change-Id: I7f9f0a1fe2d61f570b4105a7380687038ae45f5d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645786
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
06ff0e3c
|
2022-06-06T15:29:16
|
|
Implement GL_EXT_base_instance
Added new extension GL_EXT_base_instance to registry_xml.py
and auto-generated the entry point function calls for the
following functions introduced by the extension:
* GL_DrawElementsInstancedBaseVertexBaseInstanceEXT
* GL_DrawElementsInstancedBaseInstanceEXT
* GL_DrawArraysInstancedBaseInstanceEXT
Bug: angleproject:6983
Change-Id: I36167faf3ca98e42acf787dbf09ee7052e15e358
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3691952
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Faye Zhang <ffz@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
aac68adc
|
2022-05-21T22:27:22
|
|
Capture/Replay: Track dirty state per EntryPoint for Reset
This CL introduces a new concept of tracking whether an entry
point has been called. If so, emit Reset calls designed specifically
for that entrypoint.
This will likely only be useful for one dimensional state binding
calls that can easily be tracked and set back.
Only support for EntryPoint::GLUseProgram is added at the moment, but
any entry point can be added.
Reset will now set the active program back to what it was in Setup.
For example:
void ResetReplay()
{
...
glUseProgram(gShaderProgramMap[2]);
UpdateCurrentProgram(2);
}
Test: Animal Crossing MEC, Star Wars KOTOR MEC
Bug: angleproject:7307
Bug: angleproject:7353
Change-Id: I19d238ca13bbfb619e1cf8ed86f15ed6c4255a61
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3656827
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
4b911686
|
2022-06-06T22:25:37
|
|
Converts from sprintf() to snprintf().
sprintf() is deprecated in Xcode 14, so update to safer equivalents in
order to keep the compiler happy on iOS and macOS.
Bug: chromium:1331345
Change-Id: Id5348088bf69cbd360d9251e6323596cb710666d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3690747
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
bbf67e2e
|
2022-05-16T12:04:34
|
|
Capture/Replay: support capturing eglCreateImage/eglDestroyImage
Because we support only a few functions the supporting code is not
autogenerated. We don't capture the actual value of the display
variable, because we assume that there is only one display, and
the actual pointer to it is provided by the EGLWindow. The rest
of the capturing works just like with the GLES calls.
Bug: angleproject:4964
Bug: angleproject:5822
Bug: angleproject:6180
Bug: angleproject:6286
Bug: angleproject:6578
Bug: angleproject:7111
Change-Id: I385aa9648f93bf74706e9860e2aee5775eeba220
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3636062
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
fea19567
|
2022-05-17T17:44:06
|
|
Vulkan: Remove removeEarlyFragmentTestsOpt flag
* Removed removeEarlyFragmentTestsOptimization and the related
SPIRV transformation and variables.
* Removed mUsesEarlyFragmentTestsOptimization.
* Removed SH_EARLY_FRAGMENT_TESTS_OPTIMIZATION.
* Merged updateUsesEarlyFragmentTestsOptimization() into
updateFragmentInoutRange().
Bug: angleproject:7347
Change-Id: I7299bd4e8ab5363e5cf06eb48419d4f469106e12
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3648217
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
7a243dbe
|
2022-05-22T19:48:34
|
|
Capture/Replay: Allow repeated Gen-on-Bind for resources
We aren't clearing items from the map of resource IDs used
to track Gen-on-Bind.
Before this CL, an app could Gen-on-Bind, delete the resource
it genned, then Gen-on-Bind again to trigger this error.
The options are to add tracking to remove items from the map
when they are deleted, or just remove the error and allow it
to happen.
Since this happens so rarely, going with the simple approach
of removing the error.
Test: Star Wars: KOTOR MEC
Bug: angleproject:7353
Change-Id: I320771692e1c01e254fc977f5eef99284cc95f67
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3659505
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
|
|
ea9a2dbe
|
2022-05-01T17:30:55
|
|
Capture/Replay: handle glGetVertexAttrib parameter value
Bug: angleproject:7153
Change-Id: I56cbe833268a6d1f6d184c90b7fbe1a345e5f012
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3614518
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
e55990e3
|
2021-10-20T19:32:59
|
|
Capture/Replay: Handle arrays with uniform block indices
When we update the uniform block indices we have to take into accountg
that there may be arrays and that the indices of array elements can be
retrived by querying with an index. Consider a layout
layout(std140) uniform Data {
vec4 plainData;
vec4 arrayData[3];
} buffers;
Then the loop for updating the uniform block indices will see
[ "plainData", "arrayData", "arrayData", "arrayData" ]
and we have to take care to add the array indices if they are
greaten than zero, otherwise we would always query the index
of the first array element.
Bug: angleproject:6180
Change-Id: I21f96ab49c1c33bc4024711b72df961377afea4e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3198881
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
ea76cb0f
|
2022-04-21T15:52:39
|
|
Vulkan: Add entry points for GL_QCOM_shading_rate
Bug: angleproject:7172
Change-Id: I837d2697d95c44f47a2fab7411cfd87a4ec65e90
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3599873
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
62ca6449
|
2022-04-13T09:36:40
|
|
Reland "Fix BlendStateExt::mMaxColorMask initialization"
This is a reland of commit 50d008a7efcab80f34eb742148d05389b2ed247e
Besides fixing the BlendStateExt color mask initialization bug,
the following changes were made:
* All fields were made private with accessor functions.
* A new assertion was added that ensures 64-bit storage for factors
and equations. This allowed dropping one redundant mask.
* Two new helper functions were added.
* BlendStateExt::mMaxDrawBuffers was renamed to mDrawBufferCount.
* The BlendStateExt class is now aligned to 8 bytes with an assertion.
* Expanded test coverage.
Also fixed incorrect usage of BlendStateExt fields in:
* StateManagerGL::syncBlendFromNativeContext
* StateManagerGL::restoreBlendNativeContext
Original change's description:
> Fix BlendStateExt::mMaxColorMask initialization
>
> This variable should not have its unused bits set.
>
> To avoid confusion with other masks of the same class,
> the variable was renamed to mAllColorMask.
>
> Bug: angleproject:7200
> Change-Id: I72542d49ff8da3dbb8d61c5034ce37c1e8fcc6e1
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3581990
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Bug: angleproject:7200
Change-Id: I87a5fe0f9dfbbf5e525b9120f772aa9adb39ce5f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3593234
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
2dd13ebb
|
2022-04-21T11:25:00
|
|
Track Surface color & depth/stencil init separately.
This clears up some trace testing confusion due when robust
resource init is enabled, and the app clears color but not
depth on the default surface.
Bug: angleproject:7221
Change-Id: Id97871aec32ad831b663aaa9116e04b582ab5a36
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3600375
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c5271e8e
|
2022-04-04T23:28:35
|
|
Vulkan: Emulate GL_KHR_blend_equation_advanced
Based on a change by Brandon Schade <b.schade@samsung.com>
In the translator, when advanced blend is enabled, an input attachment
is added. Based on the listed advanced blend equations, emulation code
is added that performs those equations' functions. The blend equation
itself is passed through a driver uniform.
Note that the advanced blend extension only allows a single output to
use advanced blend, and that should be at location 0.
In the Vulkan backend, when advanced blend is used, the driver uniform
to select the equation is updated and normal blending is disabled.
Bug: angleproject:3586
Change-Id: Icc42e8be238d34fca149087eb9cfe616a7643a6b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3575738
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
445bf9bd
|
2022-04-09T08:42:12
|
|
Use the real max vertex attrib index instead of MAX_VERTEX_ATTRIBS
Bug: chromium:1258869
Change-Id: I7de23353fc6922be9b3201c87d33e0cfdc427569
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3580578
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
fb91e27c
|
2022-04-03T17:18:44
|
|
add GL_ANGLE_robust_resource_initialization extension to xml
Bug: angleproject:7165
Change-Id: I17a566714bc3e1a0e19dee4bdea10c7360050172
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3567539
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
808f754c
|
2022-04-04T17:53:48
|
|
Capture/Replay: Use glFramebufferTexture2D for cubes
In GLES 3.2, you can use glFramebufferTexture2D or
glFramebufferTextureLayer to bind a cube face as an attachment. Not
all drivers support glFramebufferTextureLayer because the wording of
the spec is confusing. Instead use the more portable
glFramebufferTexture2D.
Test: Aztec Ruins High MEC
Bug: angleproject:7168
Bug: angleproject:7169
Change-Id: Ie1a7d06f817750ddf8e6e707814380e306f5ee29
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3570242
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
f8ddca00
|
2022-03-03T15:34:15
|
|
FrameCapture: Use getCompressedTextImage.
Replace retrieveCachedTextureLevel with getCompressedTexImage.
Remove compressed texture shadow copy code.
Treat GLCopyImageSubData calls as texture updates by handling them in
trackTextureUpdate.
Bug: angleproject:5592
Bug: angleproject:5604
Bug: angleproject:6104
Bug: angleproject:6177
Bug: b/181797364
Change-Id: Ic6b2a41ce536e3e4b66497048954efdafa556d1e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3516377
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
04680183
|
2022-03-24T11:09:39
|
|
Capture/Replay: Fixes for Car Chase
This CL contains two fixes:
* Add GL_PATCHES to list of PrimitiveMode names
* Use FramebufferTextureLayer for 3D and Cube textures
Bug: angleproject:3662
Bug: angleproject:7125
Bug: b/218314686
Change-Id: Ia97d8221cb78ef6e895156b5a474483d570d6ab5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3551096
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
3ddb21fd
|
2022-02-23T14:15:48
|
|
Front-end support for KHR_blend_equation_advanced
Bug: angleproject:3586
Change-Id: I27086295e7455ce8848db1c6004917fea40202e8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3484785
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ed590dc8
|
2022-03-11T12:54:44
|
|
FrameCapture: Add override for Glsizei* types.
Fix capturing glGetSynciv with null lengths on Linux.
When calling the default WriteParamValueReplay handler with a
nullptr, ostream on Linux will write `(nil)`.
This fixes retracing all traces containing glGetSynciv calls with null
lengths.
Add a NullLength test to FenceSyncTests that used to fail in the
capture_replay_tests.
Test: capture_replay_tests.py --gtest_filter=FenceSyncTest.NullLength/*
Bug: angleproject:7071
Bug: angleproject:6808
Change-Id: I0a2bd4db744ce2a026cd932ba0f2f4747672fcc8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3526653
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
70af5ff0
|
2022-02-18T14:35:59
|
|
FrameCapture: Skip invalid VertexAttribPointer calls in MEC.
In CaptureVertexArrayState when a non-default VAO is bound and no
GL_ARRAY_BUFFER is bound, VertexAttribPointer calls with a non-null
offset are invalid and will produce:
"Client data cannot be used with a non-default vertex array object."
Add a test that leaves a vertex array with an invalid vertex
attribute pointer and used to produce an invalid trace with MEC.
Test: angle_end2end_tests --gtest_filter="VertexAttributeTestES3.InvalidAttribPointer/*"
Bug: angleproject:7042
Bug: angleproject:7098
Change-Id: Iaf91fe7f191c44df79db47bb5455e5df922f2ed5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3475353
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
b9b64b15
|
2022-03-15T06:31:32
|
|
Fix typo in DrawElementsInstancedBaseVertexBaseInstanceANGLE
Bug: angleproject:3402
Change-Id: I490695e45b4bec31ea9226c6a7df4d426759c53f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3524341
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
a956162c
|
2022-03-01T13:05:29
|
|
Vulkan: Expose performance counters via extension.
This CL rewrites the Vulkan perf counters test to work in the
angle_end2end_test suite using the newly exposed AMD extension.
Note that we implement only a subset of the extension. Instead
of generating monitors and starting/stopping them we simply
read back all performance counter data at once using the special
montior value "0".
The CL also enables these tests on SwiftShader.
Bug: angleproject:4918
Change-Id: I5d8f6eecb1ccff448657cbdb65b51a225dfb90c0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3497538
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
af2e0c01
|
2021-12-13T20:47:25
|
|
Capture/Replay: Override GL_HALF_FLOAT type for legacy formats
Because GL_HALF_FLOAT and GL_HALF_FLOAT_OES have different values,
and the format table created by BuildInternalFormatInfoMap() and
queried to obtain the readback format uses GL_HALF_FLOAT_OES for
legacy formats, we have to override the type in this case.
Bug: angleproject:6333
Change-Id: Ibfdcf2ad80ccfb15872ab441c0f22f0851ffe3f0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3332721
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
24c641dc
|
2022-03-01T11:12:38
|
|
Add stubs for AMD_performance_monitor.
We can piggy-back on this extension to report internal ANGLE
performance counters to the ANGLE tests.
Includes a minor variable de-duplication in the EP generator.
Bug: angleproject:4918
Change-Id: I4a76aea957b423a36a90349643bd50a4e1905849
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3497537
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
7b202392
|
2022-03-02T17:32:45
|
|
Capture/Replay: Fix capture on Linux
Need to add support for printing "const GLint *" types.
We've been falling into the default handler and getting lucky with
how other platforms handle ostream with a null value. We use this
extensively with glShaderSource().
Test: MEC of an existing trace on Linux
Bug: angleproject:7071
Change-Id: I7e4f1fbf2876dddac49ea6583918dbc534070d75
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3501201
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b92ebdb7
|
2022-02-24T12:23:09
|
|
EGL: Add code-gen for dmabuf extensions
Add code-gen for EGL_EXT_image_dma_buf_import and
EGL_EXT_image_dma_buf_import_modifiers.
Bug: angleproject:7065
Change-Id: Ib1bd2a881f11e96b1e7e5128975bdba3bdc41e0f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3495122
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5118002e
|
2021-11-29T21:01:03
|
|
Capture/Replay: test and handle texture gen-on-bind
Bug: angleproject:6425
Change-Id: Ieb4c0a7a6ffdbf0690c07c10e001835a0dcbb6e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3295620
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
bc20e55b
|
2021-11-29T21:00:45
|
|
Capture/Replay: test and handle renderbuffer gen-on-bind
Bug: angleproject:6425
Change-Id: I591bf0fdfe2e7f83d7e02f63c8265234f7b85df6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3295618
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
efb951e8
|
2021-11-29T21:00:02
|
|
Capture/Replay: test and handle buffer gen-on-bind
Bug: angleproject:6425
Change-Id: If8b573d0d77192befe6db82498158c535bd3b104
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3295619
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
c80c7ae3
|
2022-02-24T10:43:15
|
|
Capture/Replay: Merge Deletes in Reset
Before this CL, when regenning resources, we would iterate through
each resource ID and issue a delete followed by a gen. The delete
is required to get resources back to their original state, often
caused by applications recreating them during the run.
This ran into problems when our resource maps had stale data in them,
i.e. a texture that had been deleted by the app but remained in our
gTextureMap. We could inadvertently delete a resource we had just
genned.
For example, in ResetReplay(), say we have two textures to delete:
// gTextureMap[1] start with 5
const GLuint glDeleteTextures_texturesPacked_1[] =
{ gTextureMap[1] };
glDeleteTextures(1, glDeleteTextures_texturesPacked_1);
// We just deleted texture 5, now create a new one
glGenTextures(1, reinterpret_cast<GLuint *>(gReadBuffer));
// The driver returned 15, which was unused at this time
UpdateTextureID(1, 0);
// gTextureMap[1] now contains 15
...
// gTextureMap[2] happens to start with 15, which was in use in
// the trace, but was deleted and is no longer in use. The
// deleted value is not cleared from gTextureMap (which is
// another possible way to solve this).
const GLuint glDeleteTextures_texturesPacked_2[] =
{ gTextureMap[2] };
glDeleteTextures(1, glDeleteTextures_texturesPacked_2);
// Whoops! We just deleted our brand new texture 15, even though
// it no longer maps to the original texture.
glGenTextures(1, reinterpret_cast<GLuint *>(gReadBuffer));
UpdateTextureID(2, 0);
// Now gTextureMap[2] contains whatever came back from the driver
...
// The first use of gTextureMap[1] will fail on loop because
// texture 15 no longer exists!
To avoid this problem we delete all resources up front before
genning any new ones.
const GLuint deleteTextures[] = {gTextureMap[1], gTextureMap[2]};
glDeleteTextures(2, deleteTextures);
// Now we no longer have any deletes in the create sequence
glGenTextures(1, reinterpret_cast<GLuint *>(gReadBuffer));
UpdateTextureID(1, 0);
glGenTextures(1, reinterpret_cast<GLuint *>(gReadBuffer));
UpdateTextureID(2, 0);
This is applied to all the resources we regen right now.
This CL:
* Merges the deletion of new resources (that didn't exist when the
trace starts) with resources that are being regenned. That means
there is just one big delete.
* Removes Delete from the call sequences we track for each resource
since we no longer need to keep them around.
* Adds a formatting helper to avoid code duplication.
Test: Blade&Soul Revolution MEC (UE4)
Bug: angleproject:4599
Bug: angleproject:7053
Change-Id: Ida3b7e1ad5d94c5e9860447d5cf959278f37ad47
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3492849
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
19704a89
|
2022-02-15T13:21:12
|
|
Capture/Replay: Capture GetTexLevelParameterfvANGLE params
Bug: angleproject:3565
Change-Id: I940154a4e3ace9a3b8683eebdcd7bbb14402a641
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3461564
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
223a25f0
|
2022-01-25T11:15:16
|
|
Capture/Replay: Allow capturing of multisample texture content
It just works.
Bug: angleproject:6611
Change-Id: Ia3da2ee0ea3e09889a65910fd101a7daaa99ea56
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3413157
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
d98f4812
|
2022-02-17T15:22:22
|
|
FrameCapture: Capture empty buffer generation.
This avoids emitting VertexAttribPointer with non-null offsets when
the array buffer is empty and a vertex array is bound in MEC.
When no buffer is bound, which was also the case if the buffer was
empty, non-null offsets are not allowed in VertexAttribPointer and
will result in:
"Client data cannot be used with a non-default vertex array object."
Add EmptyArrayBuffer test to VertexAttributeTestES3.
Test: angle_end2end_tests --gtest_filter="VertexAttributeTestES3.EmptyArrayBuffer/*"
Bug: angleproject:7026
Change-Id: I0cb02a5588f5d2bbc85f58b75fd14493b644d52b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3468524
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
00169174
|
2022-02-17T14:11:01
|
|
gl.xml: Remove GL_BLEND_EQUATION_EXT from GetPName.
When retrieving the GL_BLEND_EQUATION enum using glGet, FrameCapture
incorrectly emitted GL_BLEND_EQUATION_EXT, which is not part of core
GL4, GLES 2+3.
Add BlendEquationGetInteger test to SimpleOperationTest which failed to
compile in the capture/replay tests before this change.
Bug: angleproject:7026
Test: angle_end2end_tests --gtest_filter="SimpleOperationTest.BlendEquationGetInteger/*"
Change-Id: I886e64ca316754f05ada8e45604bd3aef58a5ba5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3468522
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
bdedf146
|
2022-01-14T13:35:30
|
|
TextureVk: Implement getCompressedTexImage.
Extend ImageHelper::readPixels to support compressed formats.
Implement readPixelsForCompressedGetImage.
Add compression tests to GetImageTest.
Implement CaptureGetCompressedTexImageANGLE_pixels in
capture_gles_ext_params.
Test: angle_end2end_tests --gtest_filter="GetImageTest*.CompressedTexImage*"
Bug: angleproject:6177
Change-Id: I6e5b6d746b9c6cc9b885fa44f75a985660d8fb58
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3452110
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
9e323299
|
2022-02-02T18:09:36
|
|
FrameCapture: Regen framebuffers on Reset
Regenerate framebuffers that have been deleted and recreated during the
run. This required changing the order of how resources are updated
during Reset. Textures need to come before framebuffers so they can
be regenerated before being bound.
Test: MEC of genshin_impact trace frames 2-100
Bug: angleproject:6893
Change-Id: I0d14e09a5e378e7553dec54f4608eefe1bf397dd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3435112
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
38fada35
|
2022-01-27T18:16:18
|
|
Vulkan: Add support for OES_primitive_bounding_box
Add OES version of the primitive bound box extension
Bug: angleproject:3576
Test: dEQP-GLES31.functional.primitive_bounding_box.*
Change-Id: Ie44d952992a68dfffd5c124dda8dd11069f0c1e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3425086
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Brandon Schade <b.schade@samsung.com>
|
|
287057b3
|
2022-01-25T17:01:43
|
|
FrameCapture: Don't track coherent buffers before capture starts.
Even though coherent buffer storages were only captured after capture
was activated, the buffer tracker was incorrectly initialized with the
first call to glMapBufferRange, even though capture was not active.
This fixes corrupted rendering in War Planet Online due to all coherent
buffer storages being tracked at initialization of the app, when
FrameCapture was enabled but not active.
Introduce mMidExecutionCaptureActive, which exposes if MEC is currently
executed.
Bug: angleproject:5857
Bug: angleproject:6774
Change-Id: I4849d6497e8e08aefc60e68bae027915e9b2912f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3416227
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
c5498b95
|
2022-01-21T13:33:49
|
|
FrameCapture: Reset immutable buffers correctly.
Restore immutable buffers using UpdateClientBufferData.
Regenerate immutable buffers using CaptureBufferStorageEXT.
Bug: angleproject:4599
Bug: angleproject:5857
Bug: angleproject:6774
Change-Id: I8e80e9e32633b1303855e5a6ba7ac62941929645
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3406755
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
8474c8e1
|
2022-01-21T12:30:15
|
|
FrameCapture: Add Renderbuffers to mStartingResources.
This prevents Renderbuffers being deleted in Reset when they were
captured with MEC and added to the Setup function.
Bug: angleproject:5857
Bug: angleproject:4599
Change-Id: Ie61f75f69e3a3846877b1e8f5d9c98d5d0cecb2a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3406754
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
526c93dd
|
2022-01-05T17:21:34
|
|
FrameCapture: Detect GL_MAP_COHERENT_BIT_EXT correctly.
In MEC, look for GL_MAP_COHERENT_BIT_EXT in getStorageExtUsageFlags as
it will never occur in getAccessFlags.
GL_MAP_COHERENT_BIT_EXT will also never occur in glMapBuffer access
flags, so just pass false.
Bug: angleproject:5857
Change-Id: I9bc2a5d334d3b90653d33439d4055965593de5b8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3406753
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
d7585c22
|
2021-12-15T13:35:51
|
|
Capture/Replay: don't capture MS depth renderbuffer pixels
Vulkan can't resolve depth textures and no emulation has been
implemented todo so when required, therefore we hit an assertion
in ImageHelper::readPixels if we try to read back the MS depth
renderbuffer pixels. To work around this problem don't read back
the data.
Reorder the renderbuffer readback code a bit to make the code
easier to follow.
Bug: angleproject:6324
Change-Id: I6fb4d0f993b061393b249706efe4b2c9d44a6f96
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3340940
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
515f60bd
|
2022-01-20T17:39:48
|
|
FrameCapture: Keep MEC Setup resources in Reset.
This fixes a regression in Reset when using MEC introduced by
462cdb08e395edbf5bace1408715e35239a0b1fa.
Don't call MaybeCaptureUpdateResourceIDs in maybeCapturePostCallUpdates
before capture starts, since it's adding resource IDs to mNewResources.
Don't add resources to mNewResources if they are already in
mStartingResources in CaptureUpdateResourceIDs.
Add FrameBuffers to mStartingResources before
MaybeCaptureUpdateResourceIDs is called.
Add Buffers to mStartingResources before calling
MaybeCaptureUpdateResourceIDs.
Add VertexArrays to mStartingResources in CaptureMidExecutionSetup.
Bug: angleproject:4599
Bug: angleproject:6870
Change-Id: If428cbbdbcfa17c221b9e110a990cf6ebc9107c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3404087
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
3064920a
|
2022-01-19T11:48:57
|
|
Capture/Replay: Serialize ActiveTexturesCache.
Also add group scope to samplers.
Bug: angleproject:3570
Change-Id: I616a54d95544af1e3c4eeff196806e5bfb20292e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3402100
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
7dda50fc
|
2022-01-13T12:09:20
|
|
Add frontend for ANDROID_extension_pack_es31a
- Add entry to registry_xml file
- Add handling in the DirectiveHandler
Bug: angleproject:3608
Change-Id: I1cc32a4a97fd9974f65786a9a972b4b541abf658
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3388405
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Brandon Schade <b.schade@samsung.com>
|
|
ae1a56b6
|
2022-01-06T17:04:41
|
|
Vulkan: Turn on GL_EXT_shader_framebuffer_fetch for ARM
On ARM, coherent is the default behavior of framebuffer fetch, so
we can expose the GL extension.
Tests: Dead By Daylight app and trace
Bug: b/201764768
Bug: angleproject:6870
Bug: angleproject:6872
Change-Id: I0f98c57e20619d73d1507c4655e7f9bb8c10a53a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3371244
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
462cdb08
|
2022-01-06T18:46:21
|
|
Capture/Replay: Reset FBOs, RBOs, VAOs
Add resetting framebuffers, renderbuffers, and vertex arrays to
MaybeResetResources().
This is required to prevent leaks in app launch traces, such as Angry
Birds 2 (com.rovio.baba).
Bug: angleproject:4599
Change-Id: I34b45ecb1a1b5144f1e23b6bc56315f7713fed94
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3371881
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
beda2459
|
2021-12-09T14:24:08
|
|
Add support for GL_MESA_framebuffer_flip_y 2/*
This is a second CL that adds actual implementation
for GL_MESA_framebuffer_flip_y extension.
Also, some tests are added to verify the functionality.
Please note that bots do not support this extension yet,
and the tests were verified by running them locally.
Bug: chromium:1231934
Change-Id: Iea483aa13a298df6b5cf0b7b5ffb795a4666e3bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3329603
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Maksim Sisov <msisov@igalia.com>
|
|
c984dad5
|
2021-12-03T16:02:49
|
|
FrameCapture: Don't remove protection from shared pages.
Don't remove protection from pages that are shared when a
persistent coherent buffer storage is unmapped.
The shared page can still be relevant when the the other buffer is kept
and written to.
Add a PageSharingBuffers test that produces this behaviour.
Test: angle_end2end_tests --gtest_filter="BufferStorageTestES3.PageSharingBuffers/*"
Bug: angleproject:5857
Change-Id: I6927f25229d2dfe9f68ba9a993e9d3e994bc7ce0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3306623
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
0a28c6c6
|
2021-12-15T15:49:33
|
|
Capture/Replay: Capture some MultiDrawIndirect parameters
It seems some new tests were added that fail Capture/Replay.
Bug: angleproject:6180
Change-Id: I26ccc1e9defc7b7d66c7e26538df286230b47def
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3340945
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
5f53268c
|
2021-11-04T17:56:48
|
|
Capture/Replay: Gather Program sources directly from call
With CreateShaderProgramv the sources were collected from the
attached shaders, wich gave complications, because normally the
the shaders were detached right after program linking and a
different handling was needed when capture was enabled, handling
that let the replay tests fail.
To overcome this gather the shader source directly from the call
parameters instead of pulling it from the attached shaders.
Bug: angleproject:6180
Bug: angleproject:6659
Change-Id: I248c1aa0f58b61519b938fce1a77fb25dc0a7cfc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3262133
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
2ebd583e
|
2021-12-22T11:24:43
|
|
Android: Remove setenv from common path
In Android production stress testing, the setenv call was causing a
race condition. To fix, only use setenv in the paths that need it
as a performance optimization. Specifically, FrameCapture makes
use of it every frame.
Bug: angleproject:6822
Change-Id: I452f1ef8607ca9baf15d69246932c47454a3ce46
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3353893
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
ab288fea
|
2021-07-09T13:02:08
|
|
Upgrade restricted traces. (Re-land)
Includes removing capture to temporary ResourceMaps,
and including all source files in the JSON.
Bug: angleproject:5133
Change-Id: I0508dd46a9f613a96ca3635f82b6904c0f2523a7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3345222
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c1f478fe
|
2021-12-20T12:37:33
|
|
Frame Capture: Allow for no FBO when running MEC.
Multi-context captures use the surfaceless context extension. That
was crashing MEC because we were assuming the context would have a
Framebuffer.
Bug: angleproject:5133
Change-Id: I6be12d332f4754f80c088d88973219327eca251a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3352084
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
eba2e620
|
2021-12-15T12:29:12
|
|
Capture/Replay: Fix uniform program indexing.
We were using the "native" version of the program ID in the update
call, which could overflow the bounds of our fixed-size program
maps. Instead use the captured (and upper-bounded) version of the
ID and only get the mapped ID when calling GetUniformLocation.
Bug: angleproject:6431
Bug: angleproject:6816
Change-Id: I807bd07c9dcff6ba5a50991e28b0a58d16f7bc63
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3345220
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c7446ac4
|
2021-12-16T16:00:08
|
|
Add support for GL_MESA_framebuffer_flip_y 1/*
LaCrOS, which is same as ChromeOS, relies on this
extension and uses that with WebGL content.
However, when LaCrOS uses ANGLE, the extension is
not exposed and the WebGL content is y-inverted as
direct scanout is always used.
There are two bugs - 1) ANGLE should expose the
extension so that direct scanout is possible
(this CL fixes the issue. 2) LaCrOS shouldn't rely
on the extension if it's not available (a bug to
be fixed in Chromium).
This particular CL consists of autogen files with
framebufferParameteriMESA &&
getFramebufferParameterivMESA in Context
marked as UNIMPLEMENTED. And also unimplemented
validation.
Bug: chromium:1231934
Change-Id: Id617846b0412f579df5b4ace6cb33c1ec6d403df
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3343492
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Maksim Sisov <msisov@igalia.com>
|
|
7fc6c07c
|
2021-09-29T14:02:29
|
|
Capture/Replay: Update process for trace upgrading.
Includes changes to the retracing script.
Also includes documentation on how the process works.
Bug: angleproject:5133
Change-Id: I1acfe338f3fe0282a0461c314274c761ed04bd2f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3193418
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d4b8cd5e
|
2021-09-14T16:34:31
|
|
FrameCapture: Implement capture of coherent bufferstorages.
Track buffers with the GL_MAP_COHERENT_BIT_EXT access flag in a
CoherentBufferTracker on a per page basis using the
PageFaultHandler and protection functions from system_utils.
Check for dirty memory and capture it on draw calls.
Bug: angleproject:5857
Change-Id: Ib098f96952db7583d3e6517570c179e7754f54b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3168629
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
f60b152c
|
2021-12-06T10:19:53
|
|
Frame Capture: Merge small frames into single sources.
By buffering up the replay functions before writing them out into
sources, we can reduce the number of replay files by a large
margin.
Bug: angleproject:5133
Change-Id: I0a556fd1a3a5f2dcc8a26b761e885c9b7e464cf5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3316200
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e8b186c9
|
2021-12-09T09:45:20
|
|
Frame Capture: Don't unmap regenned buffers in reset.
These buffers are deleted and recreated, so unmapping them gives
a "resource not mapped" error during replay.
Found when working on the "world_war_doh" trace.
Bug: angleproject:5133
Change-Id: Id1e6318c44a2a09fa643ef0a72f1d03d8396e5fb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3327862
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a24919e7
|
2021-12-09T10:04:25
|
|
Frame Capture: Clear array buffer binding in MEC.
This should allow us to properly reset buffer state when capturing
vertex attribute pointer state in the per-context (not shared)
setup function.
Also adds a missing replay state buffer binding update.
Fixes a state serialization difference in "badland".
Bug: angleproject:5133
Change-Id: I8509dbf7211726ff47f4e7e5ff86a0eb8726d75c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3327861
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4d0de3d2
|
2021-12-03T17:09:06
|
|
Update the arg types for glMultiDraw*IndirectEXT()
* Updated the auto-generated types for arguments "mode"
and "type" for glMultiDraw*Indirect and glMultiDrawIndirectEXT
functions to PrimitiveMode and DrawElementsType, similar to
the other glMultiDraw* functions.
Bug: angleproject:6770
Change-Id: If02a66b6fb2f81848ab6e43a6cd406d5956bf331
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3321792
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
9b23be91
|
2021-12-08T13:55:22
|
|
Frame Capture: Fix client buffers in MEC.
In some cases we would neglect to reset the currently bound array
buffer to "null" before capturing a client array buffer in MEC.
Noticed in the "badland" trace context setup.
Bug: angleproject:5133
Change-Id: I693edce763b449720a7f2123dcaf460854142e91
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3323683
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d02d6a40
|
2021-12-06T09:26:14
|
|
Frame Capture: Track written files in ReplayWriter.
This means we don't need to recreate the list of written files in
the JSON where we list the trace files. It will allow for more
flexibility when we change what trace files we output.
Bug: angleproject:5133
Change-Id: I651b6a281c50040d32361a5a020ba3eaa4241bf0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3316199
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0f09d378
|
2021-12-07T13:32:39
|
|
Frame Capture: Track return value in max resource IDs.
This adds handling for return value processing when it comes to
maximum resource IDs. Specifically for glCreateShader and
glCreateProgram.
Fixes MEC with re-capture with the blockman_go and probably other
traces that call CreateShader as the final operations during setup.
Bug: angleproject:5133
Change-Id: I799dfec776ca8c80a0b89c7f0c7c23423ef3896a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3320887
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
333e61d3
|
2021-10-19T16:06:14
|
|
trace_fixture: Add UpdateClientBufferData2WithOffset.
Adds a function to update buffers with an offset.
Bug: angleproject:5857
Change-Id: Iddc0dbcdd123866f31c1382e1eb6fc7e7cb922b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3236997
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
dcadfa87
|
2021-12-07T10:34:56
|
|
Frame Capture: Fix missing header include in shared setup.
This could produce undefined string errors in some traces.
Bug: angleproject:5133
Bug: angleproject:6772
Change-Id: I336369a035e30fc7d73530084b5e192d60afee1b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3320865
Reviewed-by: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
8313ffe2
|
2021-11-29T15:46:25
|
|
FrameCapture: Add ReplayWriter helper class.
This centralizes all of the replay file I/O into a single point.
Each function is stored separately in this class. Right now there's
some small file format changes:
- the namespaces for the capture label are gone. these had no
functional impact now that each trace was a separate module.
- the header is cleaned up into private and public functions. this
cleans up a few things like defining non-existent functions.
- inline variables are tracked through the replay. they are now
global instead of anonymous, and string sets get reused instead
of duplicated between frames.
There should be no functional changes with the naming of the trace
files or the trace behaviour.
This change sets the stage for the ReplayWriter buffering multiple
frames into a single cpp file on disk, which can potentially reduce
the number of object files in the compilation by a great deal. It
could also be extended to work with buffered I/O so we don't block
and hitch when we're writing large trace files.
Bug: angleproject:5133
Change-Id: Ib96685e1202ac8101a4b828fa79642236af2120a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3311940
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6f96a189
|
2021-12-01T11:14:33
|
|
FrameCapture: Clean up 'WriteCppReplayFunctionWithParts'.
This function was using two extra temporary streams that it didn't
need. Clean this up and remove the extra streams and repeated code.
Bug: angleproject:5133
Change-Id: I8065a189211ba9030fee523dc7145dc5daf71d92
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3311577
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3b6f80b7
|
2021-11-23T10:07:43
|
|
Capture/Replay: eliminate redundant parameters in GenOnBind
The template parameter already defines the parameter value name and
the parameter value type, so add some traits to simplify the call
interface of the function.
Bug: angleproject:6425
Change-Id: I037bed8e5cc2e7367d8faa3af5d4fba2bfbb52c3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3295617
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
ce854632
|
2021-11-29T10:48:48
|
|
FrameCapture: Fix Gen on Bind for MEC
The logic for detecting whether a resource has been generated
was not accounting for starting resources, which would only
be populated if using MEC. We also weren't tracking framebuffer
creation correctly in CaptureMidExecutionSetup.
Test: Asphalt 9 MEC
Bug: angleproject:5883
Bug: angleproject:6425
Change-Id: I8a7dfa4736c4d735dec8cd26ffa329f051927de6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3307778
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
440e5458
|
2021-11-27T19:55:06
|
|
FrameCapture: Integer attribs in MEC
If the component type of a vertex attribute is integer, we need to
use the appropriate VertexAttribI* functions to set it up.
Test: Asphalt 9 MEC
Bug: angleproject:5883
Change-Id: I2ab2248e5a36cc6636b081acf6474b5dbe2484db
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3305057
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
a5e391d7
|
2021-11-19T17:35:06
|
|
Add GL_ANGLE_vulkan_image extension
glAcquireTextures & glReleaseTextures are added for sharing
texture ownership with an external API.
Bug: chromium:1264439
Change-Id: If46d8d230b4f611768b5ff1187674509e42f01e0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3293921
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
1d555687
|
2021-11-09T11:16:24
|
|
Capture/Replay: Set FBO ID when generated on bind
GLES allows FBO ID's to be reserved on bind, so if a FBO is bound with
and ID that was not yet reserved by a glGenFramebuffers call, update the
resource tracking and the resource map to account for this resources
that was created on bind.
Bug: angleproject:6425
Change-Id: I343fc17bfbbfd9c8c47d6fe207a4f3817acb835d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3190970
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
8d51bd4b
|
2021-11-19T00:34:22
|
|
Capture/Replay: Add default return path for AccessParamValue
Some versions of MSVC have a bug that it will not detect when
all values of an enum are exhausted in a switch statement, which
leads to a warning that not all code path return a value, and
since the warning is treated as an error, compilation fails.
Bug: angleproject:6721
Change-Id: I4d62191ce83a04ba554dd804f13e7d428afd86a4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3291649
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
71bffb8a
|
2021-11-09T11:16:07
|
|
Capture/Replay: Handle newly generated FBOs in tracker
Bug: angleproject:6425
Change-Id: I39d22a6770290a0c407ac358b1c059c6a2ddeefa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3269886
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
30c03b56
|
2021-10-28T12:54:39
|
|
Capture/Replay: Capture GetTexLevelParameter return param
Bug: angleproject:6180
Change-Id: Ia063d297bab85d6cb559642b9be213cc6f10a9bb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3250884
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
fc5fe46d
|
2021-10-28T12:47:15
|
|
Capture/Replay: Capture GetProgramResourceLocation name param
Bug: angleproject:6180
Change-Id: I5f27c695c31a32989c579b54e31cccc5b337bd58
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3250882
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
95e1d244
|
2021-10-28T12:24:59
|
|
Capture/Replay: Capture GetProgramResource params correctly
If a non-nullpointer is passed for length then the the number
of param entries that is written is returned in *length.
Otherwise, just capture the full buffer size as specified by
bufSize.
Bug: angleproject:6180
Change-Id: If7c3084e56c990477ddb6e93b8682e27004ba1e3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3250881
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ae3f67ab
|
2021-11-11T20:32:32
|
|
Implement GL_EXT_multi_draw_indirect
* Auto-generated the code to lay the foundation for
the following functions:
* multiDrawArraysIndirect()
* multiDrawElementsIndirect()
Bug: angleproject:6439
Change-Id: I7ab5111692376229515e0d6d9e6148909ce9a8a1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276042
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6fe13477
|
2021-11-11T00:47:14
|
|
Vulkan: Add external's pNext to ANGLE_external_objects_flags
ANGLE was chaining VkImageFormatListCreateInfoKHR to
VkImageCreateInfo::pNext to support sRGB extensions. For external
images, it was unknown whether that was valid because there was no way
to know if external used an identical chain of pNexts. This was causing
a discrepancy between images created by Chrome and those created by
ANGLE as part of an import.
This change updates ANGLE_external_objects_flags to take in the pNext
chain external has used to create the image so ANGLE could create the
image identically.
Bug: chromium:1266094
Change-Id: I479b9e7ff39d437425dc91c79834880749766f99
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3274177
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Peng Huang <penghuang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d3e67716
|
2021-09-21T15:03:15
|
|
EGL: EGL_KHR_lock_surface3
Add new extension KHR__lock_surface3
Add new interfaces for locking and unlocking a surface.
Test: angle_end2end_test --gtest_filter=EGLLockSurface3Test
Bug: angleproject:6062
Change-Id: Ic40708db4db552107025635540a0c62f956d741e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3161447
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c4921cd8
|
2021-10-28T12:06:42
|
|
Capture/Replay: Capture name in GetProgramResourceIndex
Bug: angleproject:6180
Change-Id: I1ee7e49dcfa5df23ff5d81d8ca43dd1843c9b2e6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3250880
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
a514df08
|
2021-10-27T01:25:11
|
|
Add detachShader capture calls in MEC
This change adds a capture call to detach shader
object before deleting the shader object in function
GenerateLinkedProgram(), if that is also what the app does.
GenerateLinkedProgram() is part of the Mid Execution Capture
(MEC), and the purpose of the MEC is to setup a program that
more closely mirrors the original app.
The game World Cricket Championship2 detaches the shader object
before deleting the shader object. With this change, we can follow
the same behavior in GenerateLinkedProgram(). This ensures that
the Shader Object refcount is decremented to 0 before the
CaptureDeleteShader call is applied, and the ShaderProgramID
handle assigned to the Shader Object will be released and
can be reused for subsequent glCreateShader calls. The total number
of ShaderProgramID we need will be consistent between
SetupReplayContextShared() and the game uses.
We are allocating memory slots for gUniformLocations2 array
based on the total number of ShaderProgramID the game uses.
Keeping the ShaderProgramID counts the same between
trace replay and the game ensures we allocate the right amount
of memory for the trace replay.
Bug: angleproject:6621
Bug: b/194508692
Change-Id: Ib2810b486a6e9108db2a32f084d650a25f14bebd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3246533
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
694c5012
|
2021-10-14T11:16:29
|
|
capture_gles_3_2: Skip capturing debug calls
This is analogous to capture_gles_ext.
Bug: angleproject:6613
Change-Id: I8917a4cfa060f71ad616ece56038d02bfa12a952
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3237002
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|