src/tests


Log

Author Commit Date CI Message
Shahbaz Youssefi adde4265 2022-10-19T23:33:48 Vulkan: Separate pipeline cache query and insertion In preparation for VK_EXT_graphics_pipeline_library usage, the query and insertion functions of the graphics pipeline cache are separated. This will allow the implementation using VK_EXT_graphics_pipeline_library to query the monolithic pipeline cache, and if a pipeline is not found, create it through the pipeline library caches. Bug: angleproject:7369 Change-Id: Iebf7669ae3ea95e180646198c4861cc59d67e580 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963854 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Shahbaz Youssefi 5c0b329e 2022-10-19T16:59:58 Vulkan: Clean up rotation spec const update Update during makeCurrent was done by invalidating the program, and then at pipeline creation time the spec const was updated. This is changed so that makeCurrent updates the spec const directly, and avoid invalidating the pipeline. Also removes spec const usage calculation, as it's unused. Bug: angleproject:7369 Change-Id: I79444ce4173c4db9c6800fb02afd9e8447a25f82 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963853 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Jamie Madill 873650f4 2022-10-19T16:51:53 run_perf_tests.py: Fix test list unexpected error. The tests were failing because of a failure to pull the test json output from the device after --list-tests. This failure was benign because the test lists still came through to the test runner and it was able to proceed, but it was causing an error message. Also changes the runner to fail early if there's any error during --list-tests. Bug: angleproject:7755 Change-Id: I67bceec6b69fd2856136313d5e456e3c1f1caccf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3964753 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Auto-Submit: Jamie Madill <jmadill@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com>
Jamie Madill 4bfb749f 2022-10-10T20:59:48 Capture/Replay: Move shared trace code into src/common. This will let them be accessible to the test harnesses. The trace tests interpreter will need direct access to the classes that we move in this CL. This CL also moves the GLenum utils into the common folder, where they were already used by some other tests. Bug: angleproject:7752 Change-Id: I97ad607938ef29bc316f6d40098478e002ea8128 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963362 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 8403e4c5 2022-10-10T20:59:29 EGL: Resource IDs for Surface, Context and EGL Image. This will make these classes play nicely with resource maps. As these objects are used in a lot of places, and simplified C can't handle unordered_map, it's necessary to index the maps by simple packed IDs in capture/replay code. This indirection will also have increased safety as we validate EGL resource ID handle values before accessing the memory directly. Also hides some of the other EGL capture methods behind helper methods to simplify the C code and hide assignments and other complex maps. Bug: angleproject:7758 Change-Id: Ibc7bb56430d3068bd38877c9dfb011979d4ea234 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3957164 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi 7b4b56f0 2022-10-19T00:05:22 Vulkan: Missing output mask in GraphicsPipelineDesc Currently, there's some program state used in creating pipelines alongside what's in GraphicsPipelineDesc. This works because the pipeline cache lives in the program executable. With VK_EXT_graphics_pipeline_library however, we could create vertex input and fragment output partial pipelines that are independent from and are shared between multiple programs. To support this, any program state that's necessary for pipeline creation should be part of the GraphicsPipelineDesc structure. This change places the state affecting fragment output in GraphicsPipelineDesc. Bug: angleproject:7369 Change-Id: I2e48fc9da220475e1b2ed376fc947ce13489610e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963652 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Shahbaz Youssefi f0e3d8f9 2022-10-18T13:51:31 Vulkan: Shader component type in GraphicsPipelineDesc Currently, there's some program state used in creating pipelines alongside what's in GraphicsPipelineDesc. This works because the pipeline cache lives in the program executable. With VK_EXT_graphics_pipeline_library however, we could create vertex input and fragment output partial pipelines that are independent from and are shared between multiple programs. To support this, any program state that's necessary for pipeline creation should be part of the GraphicsPipelineDesc structure. This change places the state affecting vertex input in GraphicsPipelineDesc. A follow up change will do the same for state affecting fragment output. Bug: angleproject:7369 Change-Id: Iccf691a1597d786efa1625f7b1c22f906201f2e5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3964751 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Alexey Knyazev d8fe28dd 2022-10-19T00:00:00 Suppress clip distance tests on iOS Bug: angleproject:4452 Bug: angleproject:7768 Change-Id: Iabea037ded6ee3cfa0c325c59099772ac6adbbc6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963134 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Shahbaz Youssefi 025504b9 2022-10-17T17:03:03 Pass worker pools to image load functions In preparation for the ASTC decoder using threaded decoding. Bug: b/250688943 Change-Id: I70d669bcb57b900dbb633304182e174aec362203 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3961339 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Greg Schlomoff <gregschlom@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi fbd7d5fa 2022-10-17T17:20:09 Move thread pool classes to common/ In preparation for access by image_util files. Bug: b/250688943 Change-Id: I24777269a5071eae9a60f939635d01ed7246461f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3961454 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill e495e7fd 2022-10-14T13:52:47 Redo perf and trace test parameters. - Moves common argument parsing code into test_util. - Changes the perf test arg parsing to use the common functions. - Adds new --use-angle and --use-gl parameters to the trace tests. - Also adds new --offscreen and --vsync parameters to the traces. - Removes the now unneeded --enable-all-trace-tests argument. - Both --arg=value and --arg value work in test suites now. Now, instead of using --enable-all-trace-tests you can specify the backend with --use-angle=swiftshader, --offscreen, or combinations of those parameters. The test names are the same as they were before, but only the configured tests will run in a session. We could opt to simplify the test names in later CLs if we want to simplify the test running. Ideally we'd keep the perf reporting the same because then we'd keep the time series the same on the test infra. This also allows us to split up the trace tests into separate targets on the bots, which will better allow us to control the workloads and sampling of the tests. For example: - angle_perftests becomes - angle_perftests (microbenchmarks) - angle_trace_perf_vulkan_tests (traces with vulkan back-end) - angle_trace_perf_native_tests (traces with system GL) Bug: angleproject:7755 Change-Id: I537168f3a6de96425dfda05ed98220eff9b19b76 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3956937 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop 03eccad2 2022-10-18T10:39:53 Tests: Add reduced crashing shader test Reduced case of a shader that crashes an app during SPIR-V compile. Test: GLSLTest_ES3.NestedPowFromUniform Bug: b/217922015 Change-Id: I8d0ccd8b2c4f4e8e51ac39c9dbfaafbf48423157 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3965051 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill d6ca85bd 2022-10-18T17:10:41 run_perf_tests.py: Remove unneeded Android args. These only apply to the Chromium Android test runner, which we no longer use for this script. Bug: angleproject:7755 Change-Id: I311ac204e1999a77872a76f6d0b9d149f7ac409e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963651 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Roman Lavrov <romanl@google.com> Auto-Submit: Jamie Madill <jmadill@chromium.org>
Alexey Knyazev fec93f40 2022-10-14T00:00:00 GL: Support clip and cull distance extensions Use EXT_clip_cull_distance on OpenGL ES to expose APPLE_clip_distance; use ARB_cull_distance on OpenGL to expose EXT_clip_cull_distance. Added disableClipCullDistance OpenGL workaround. Bug: angleproject:4452 Change-Id: I458cad29c10b9d9193c5233e24bac53361ba104e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3956075 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 11f8f537 2022-10-17T16:59:50 Capture/Replay: Improvements to self-test. - print errors in the replay test - catch missing serialization - clean stale json output files before each replay - add flag to show replay stdout - fix help message Bug: angleproject:7731 Change-Id: Ibeb780f417bdbed4b249038920963dd1bd68f4aa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3962248 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill e0d2c7f2 2022-10-18T15:07:25 retrace script: Update trace test suite name. Bug: angleproject:7755 Change-Id: I1322543b199aacb4f083b67f0bc4f8bf93ea65b3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963359 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Roman Lavrov d22edf57 2022-10-18T14:57:55 Perf Tests: fail test on GL_CONTEXT_LOST after glFinish(). Interrupts the test in the case I ran into: ../../src/tests/perf_tests/ANGLEPerfTest.cpp:383: Failure Failed Context lost Warm-up trial took 1.11 seconds. [ FAILED ] TracePerfTest.Run/vulkan_dr_driving, where GetParam() = vulkan_dr_driving (1476 ms) [----------] 1 test from TracePerfTest (1476 ms total) Bug: angleproject:7762 Change-Id: Iaf416dbdaa0eb846b744bdb4d1eb596f0c2bb1a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963360 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Jamie Madill 0d203aef 2022-10-16T10:08:01 EGL: Add ID types for egl::Surface and egl::Image. This is in preparation for using resource maps for Context, Surface and EGLImage. The map change will make it much easier to work with the trace fixture. It will also have a small benefit in safety as we will longer be casting raw pointers for these types. As these objects are used in a lot of places, and simplified C can't handle unordered_map, it's necessary to index the maps by simple packed IDs in capture/replay code. Bug: angleproject:7758 Change-Id: Ib1d19622a4f2a6f0458cc28f5bbe30bb9f349b98 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3957163 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tiago Vignatti 4be8294c 2022-10-06T09:50:28 Tests: Enable EGL_ANGLE_iosurface_client_buffer tests on iOS This enables EGL_ANGLE_iosurface_client_buffer extension tests on iOS platform. A few OpenGLES related tests had to be suppressed though. I'm getting the following: [==========] 96 tests from 1 test suite ran. (960 ms total) [ PASSED ] 66 tests. [ SKIPPED ] 30 tests, listed below: [ SKIPPED ] IOSurfaceClientBufferTest.RenderToBGRX8888IOSurface/ES2_OpenGL [ SKIPPED ] IOSurfaceClientBufferTest.RenderToBGRX8888IOSurface/ES3_OpenGL [ SKIPPED ] IOSurfaceClientBufferTest.RenderToRG88IOSurface/ES2_OpenGL [ SKIPPED ] IOSurfaceClientBufferTest.RenderToRG88IOSurface/ES3_OpenGL [ SKIPPED ] IOSurfaceClientBufferTest.RenderToR8IOSurface/ES2_OpenGL [ SKIPPED ] IOSurfaceClientBufferTest.RenderToR8IOSurface/ES3_OpenGL [ SKIPPED ] IOSurfaceClientBufferTest.RenderToR16IOSurface/ES2_OpenGL [ SKIPPED ] IOSurfaceClientBufferTest.RenderToR16IOSurface/ES3_OpenGL [ SKIPPED ] IOSurfaceClientBufferTest.RenderToR16IOSurface/ES2_Metal [ SKIPPED ] IOSurfaceClientBufferTest.RenderToR16IOSurface/ES3_Metal [ SKIPPED ] IOSurfaceClientBufferTest.RenderToBGRA1010102IOSurface/ES2_OpenGL [ SKIPPED ] IOSurfaceClientBufferTest.RenderToBGRA1010102IOSurface/ES3_OpenGL [ SKIPPED ] IOSurfaceClientBufferTest.ReadFromBGRA1010102IOSurface/ES2_OpenGL [ SKIPPED ] IOSurfaceClientBufferTest.ReadFromBGRA1010102IOSurface/ES3_OpenGL [ SKIPPED ] IOSurfaceClientBufferTest.RenderToRGBA16FIOSurface/ES2_OpenGL [ SKIPPED ] IOSurfaceClientBufferTest.RenderToRGBA16FIOSurface/ES3_OpenGL [ SKIPPED ] IOSurfaceClientBufferTest.ReadFromToRGBA16FIOSurface/ES2_OpenGL [ SKIPPED ] IOSurfaceClientBufferTest.ReadFromToRGBA16FIOSurface/ES3_OpenGL [ SKIPPED ] IOSurfaceClientBufferTest.RenderToYUV420IOSurface/ES2_OpenGL [ SKIPPED ] IOSurfaceClientBufferTest.RenderToYUV420IOSurface/ES3_OpenGL [ SKIPPED ] IOSurfaceClientBufferTest.ReadFromToYUV420IOSurface/ES2_OpenGL [ SKIPPED ] IOSurfaceClientBufferTest.ReadFromToYUV420IOSurface/ES3_OpenGL [ SKIPPED ] IOSurfaceClientBufferTest.RenderToP010IOSurface/ES2_OpenGL [ SKIPPED ] IOSurfaceClientBufferTest.RenderToP010IOSurface/ES3_OpenGL [ SKIPPED ] IOSurfaceClientBufferTest.ReadFromToP010IOSurface/ES2_OpenGL [ SKIPPED ] IOSurfaceClientBufferTest.ReadFromToP010IOSurface/ES3_OpenGL [ SKIPPED ] IOSurfaceClientBufferTest.MakeCurrent/ES2_OpenGL [ SKIPPED ] IOSurfaceClientBufferTest.MakeCurrent/ES3_OpenGL [ SKIPPED ] IOSurfaceClientBufferTest.ReadFromBGRX8888IOSurfaceWithTexBaseMaxLevelSetToZero/ES2_OpenGL [ SKIPPED ] IOSurfaceClientBufferTest.ReadFromBGRX8888IOSurfaceWithTexBaseMaxLevelSetToZero/ES2_Metal Test: iPhone 13 and ./iossim -d 'iPhone 13' -c \ '--gtest_filter=\*IOSurfaceClientBufferTest\*' angle_end2end_tests.app Bug: angleproject:5491 Change-Id: Id7c489ae41b11442a2dd06174b2c279894e83401 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3957539 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Gregg Tavares 968041b5 2022-08-19T12:11:23 Metal: Optimized BufferSubData per device Adds a staging buffer path which means there are 4 paths for bufferSubData. 1. direct copy * get a pointer to the buffer * copy the new data to the buffer * if the buffer is managed, tell metal which part was updated 2. use a shadow copy * copy the data to a shadow copy * copy the entire shadow to a new buffer * start using the new buffer 3. use a new buffer * get a new buffer (or unused) * put the new data in the new buffer * blit any unchanged data from the old buffer to the new buffer * start using the new buffer 4. use a staging buffer * get a staging buffer * put the new data in the staging buffer * blit from the staging buffer to the existing buffer. Further, there are 3 types of memory storage modes. Managed, Staged, Private. Based on the GPU type different storage modes and different paths in different sitatutions are more performant. So, add feature flags to select paths by GPU. Bug: angleproject:7544 Change-Id: I741dd1874201043416374194bd2001ded8dbd9b4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3842641 Reviewed-by: Kyle Piddington <kpiddington@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Quyen Le <lehoangquyen@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Jamie Madill 0e0ea026 2022-10-13T18:29:33 Split trace tests out into angle_trace_tests. This makes angle_perftests strictly for microbenchmarks. The trace tests are a better separated target because they are for both gold correctness tests and performance. You can now use the GN arg "build_angle_trace_tests" to control building the trace tests. "build_angle_trace_perf_tests" is still supported for compatibility. Updates the infra scripts to use this new trace tests target. Also updates the build so by default we'll build the trace tests if you check them out, without needing a custom arg. Also updates docs. Bug: angleproject:7755 Change-Id: I2b1ae67799234cc1aefe7cda5f3af945c3f867fd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3953340 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi 09b079bb 2022-10-14T14:28:10 Vulkan: Move pipeline subset out of pipeline desc This way, the same pipeline desc can be used to query multiple caches with different subsets. This design requires the pipeline cache to be templated, while the previous design required the desc to be copied (so the subset bits would be different). Bug: angleproject:7369 Change-Id: Id3fd92e6f9b059069952ff092a5c867e79287604 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3956940 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Yuly Novikov b354aa4d 2022-10-17T13:18:17 Skip some end2end tests failing on iOS Bug: angleproject:7756 Change-Id: Ia9a7d9260feb97d094b2e58104d7cdb4a866e5b2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3960968 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Shahbaz Youssefi eaa71709 2022-10-14T11:47:07 Vulkan: s/ContextVk/Context in pipeline creation With VK_EXT_graphics_pipeline_library, pipeline creation may happen on a thread. This change prepares the interface such that only a vk::Context is needed, instead of ContextVk. Bug: angleproject:7369 Change-Id: Ib7e9e7e140e27a4af71bffee069c88e3d7f47dfa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3956935 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 19fb11b6 2022-10-14T11:12:20 Vulkan: Merge warmed up compute cache into renderer It was done for graphics, but was accidentally missing for compute. Bug: angleproject:5881 Bug: angleproject:7629 Change-Id: I28a4c2e38b07b08e1636b443f2c0963130965ebb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3956496 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Jamie Madill 09a1aec4 2022-10-14T08:59:07 Expand suppression for async timer tests. Flaking on SwiftShader as well. Bug: angleproject:7548 Change-Id: I419c602184c03141c75b21bf3a0b66d8b2a34303 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3956494 Commit-Queue: Jamie Madill <jmadill@chromium.org> Auto-Submit: Jamie Madill <jmadill@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Shahbaz Youssefi 94b45181 2022-10-12T14:54:14 Vulkan: Rearrange graphics pipeline desc bits In preparation for use of VK_EXT_graphics_pipeline_library, the pipeline state is split in three contiguous regions: - Vertex input - Pre-rasterization and fragment stages ("Shaders" for short) - Fragment output There is some state that affects both Shaders and Fragment output, which is split and placed in between the two. This will allow the hash and compare functions to eventually access each of those pipeline subsets as a contiguous piece of memory. Bug: angleproject:7369 Change-Id: Iedc4cf15ed6c7fed6ba93039889fbf5dd191e041 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3949914 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 0b7f3f5e 2022-10-12T17:47:06 More robustness tests Similar test to what was introduced in https://chromium-review.googlesource.com/c/angle/angle/+/3943534, but for vertex and compute shaders. Bug: angleproject:7629 Change-Id: I743233136125358edb6a15760b1ece63c36d3f85 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3949915 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Yuxin Hu c22f091d 2022-09-29T18:58:33 Replace Hard-Coded egl image attribs This change is adapted from https://crrev.com/c/3838866 Added two hash maps to track below information: EGLImage* --> EGLint* attrib TextureID --> EGLImage* During the CaptureShareGroupMidExecutionSetup, when we iterate through all the textures the app created, if the texture is bound to External target, we will refer to the hash map TextureID --> EGLImage* to find the EGLImage* pointer, and then use the result as the key to refer to the other hash map EGLImage* --> EGLint* attrib to find the attributes used to create that EGLImage object. We can then use the attributes to populate eglCreateImage or eglCreateImageKHR calls in the trace calls. Bug: angleproject:7570 Change-Id: I729de4ddea59242ccbe6243e036451f290545185 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3928212 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Shahbaz Youssefi 135022e4 2022-10-11T00:03:11 Vulkan: Create robust pipelines based on context state Previously, pipelines were made robust based on whether any context in the share group has so far been made robust. This means that pipelines created on non-robust contexts would still be compiled as robust. Inefficiency aside, this was buggy because robustness was not part of the pipeline cache key, so if a pipeline was created as non-robust first, then recreated in a robust context, it would reuse the non-robust variant. With VK_EXT_pipeline_protected_access, a similar situation arises for context protected-ness. However, it is incorrect in that case to create pipelines as protected unnecessarily. This change makes pipeline robustness a part of the pipeline cache key, in preparation for protectedness to be added similarly. Compute programs may now generate multiple pipelines as a result too. Bug: angleproject:7629 Change-Id: Ie95f10eff878f8c8b221c1018da44385c7aad15e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3943534 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi 9b5fff82 2022-10-05T21:56:00 Vulkan: Emulate shader stencil export for MSRTT The MSRTT emulation code had one corner case issue that could lead to performance and memory inefficiencies. That is when stencil needs to be unresolved and VK_EXT_shader_stencil_export is not supported. This change adds a path to emulate VK_EXT_shader_stencil_export and removes this inefficiency. This should help Chromium on older Android devices that lack both this and the recent VK_EXT_multisampled_render_to_single_sampled extensions. Chromium frequently breaks the render pass (crbug.com/1336981), which easily leads to this situation. Bug: angleproject:4836 Change-Id: Ifceec43f7f3807b7e32f4b379edcd4351ae76414 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3935892 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Charlie Lao 76f377c5 2022-06-17T16:05:16 Vulkan: Break renderpass when switch from query to non-query getQueryResult will wait for query result to be available, which means a potential CPU bubble if the result is not yet available. On tiler GPUs it will at least wait for renderpass to complete. Usually query enabled draws are very tiny (usually just draw a point to see if it is occluded or not), and query disabled draws are expensive. Some apps do issue a glFlush when switch from query draw to non-query draw, but app like dead_by_daylight does not issue such flush. In order to reduce the bubble, this CL ends renderpass and issue a flush when we switch from query enabled draws to non-query enabled draw so that the result will be available much earlier, this reduce the CPU bubble. This result in dead_by_daylight frame time improves from 5.45ms to 3.5ms (35% improvement). Bug: b/250706693 Change-Id: Ia3a32a9fb336e6f256809b3cad83f61a45415fb1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3931739 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Charlie Lao <cclao@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Lubosz Sarnecki a217dd56 2022-10-06T11:25:31 Tests: Add The Witcher: Monster Slayer trace. Test: angle_perftests --gtest_filter="*the_witcher_monster_slayer*" Bug: angleproject:7747 Change-Id: I1851fc00cb665485b6111b4e01b0075d2440e62a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3942649 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Roman Lavrov 6eff905c 2022-10-11T10:08:12 Make Android gold tests populate os and os_version correctly. os = Android os_version = {ro.build.fingerprint} These show up in Skia gold. Currently set to Linux info. Bug: None Change-Id: If2ffe5e8a6620fde9bd0a983f9c0d11ffe6a75c4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3946179 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill d0a024f9 2022-10-09T16:47:33 Lower perf tests resource usage further. This reduces the warmup trials from 2->1 and the trial time from 5s -> 4s. Old: (2 warmup + 3 trials) * 5s / trial ~= 25s per sample New: (1 warmup + 3 trials) * 4s / trial ~= 16s per sample The tests should run in about 2/3 the time as it took prior. A future change will likely have to split up the tests so we can run shorter shards in sequential groupings between tests. Bug: angleproject:7738 Change-Id: Ic6c744be838174b61f4eb832189ccad14f89103d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3939917 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Lubosz Sarnecki 85631d24 2022-10-06T10:13:31 Tests: Add 3D Pool Ball trace. Test: angle_perftests --gtest_filter="*3d_pool_ball*" Bug: angleproject:7742 Change-Id: I92870b928ee66af3eae903d91512b6943b893599 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3932171 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 1b5cf9f0 2022-10-07T19:02:16 run_perf_tests: Reduce warmup trials from 3 to 2. This is an attempt to reduce utilization on the bots, which are now taking too long and causing errors. Bug: angleproject:7738 Change-Id: I1c576b2d0989240482d332712f7d93841e933902 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3937051 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill f8d393da 2022-10-05T10:09:34 Capture/Replay: Make retrace restore touch output files. This should force a recompile of modified files. Bug: angleproject:7731 Change-Id: I52c607fdda97c09e557a9ac3144fa67de3a17ee7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3937048 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill b6cc672c 2022-10-06T11:10:42 Perf Tests: Divide test samples between shards. Instead of a single test shard running all samples for a test, we run a single sample on different shards to produce a combined measurement that can account for variance between test machines. Bug: angleproject:7671 Change-Id: I04bbd51de257f2f299783ce3bd65da3d9348c8dc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3937044 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Solti 496b3532 2022-10-07T15:49:08 fix typo Bug: None Change-Id: Ieca7fcd5b8172ad16cc73f453f6e2e2f29ae6016 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3939221 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi c19ec948 2022-08-23T10:43:59 Vulkan: Implement imageless framebuffers * Added the attachment image and create info objects to be used for imageless framebuffers created in getFramebuffer(). * New helper class for framebuffers in RenderPassCommandBufferHelper: MaybeImagelessFramebuffer, which includes a framebuffer object, if the framebuffer is imageless, and the image views. This is to make sure that the args for render pass begin info will be correctly set up according to the status of the used framebuffer. * Refactored the collection of attachments in getFramebuffer() into a new function, getAttachmentsAndImagesFromRenderTargets(). It also returns their corresponding ImageHelper* objects used to create the framebuffer (from their image properties). * New struct: RenderTargetInfo; which keeps track of render targets and whether resolve image should be used for the render pass in the form of the enum class RenderTargetImage. * Added a new arg to getFramebuffer(): resolveRenderTargetIn; to use when there is a valid resolveImageViewIn. * Without using the framebuffer cache, we would require to handle the framebuffer destruction by adding it to the garbage instead of releasing it. For example, FramebufferVk::destroy() now adds mCurrentFramebuffer to the garbage. * Added new framebuffer unit tests. * Added tests where two textures with different attributes are bound to the same framebuffer before drawing, one after another. * Added test where a blit occurs from a multisample texture into a non-zero level of a resolve texture, each bound to a separate FBO. * Added a new perf test to compare performance for enabled imageless framebuffers vs disabled. (Credit: cclao) Bug: angleproject:7553 Change-Id: Iacdbd73aaa01cbb0e37abf01ae4892bdfdd4b12f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827644 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Jamie Madill 4ebdac79 2022-08-29T16:25:46 Vulkan: Ensure we sync the draw FB before beingQuery. Bug: chromium:1354271 Change-Id: I5fe3649d9d39de37d0a59c80a4f31a17d1a72838 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3863145 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Chris Dalton 2d31fe98 2022-09-22T21:04:22 Implement PLS on Apple Silicon Implements a subset of EXT_shader_framebuffer_fetch in the Metal translator that is sufficient to support pixel local storage. Metal's "programmable blending" feature is available on all Apple family GPUs beginning with version 2. Support for non-Apple GPUs will come later via readWrite textures, which can also be coherent by annotating them with [[raster_order_goup(0)]]. Bug: angleproject:7279 Change-Id: Ic74f6c0d21e87eb919e1f487163388d08d126857 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3916794 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app> Reviewed-by: Gregg Tavares <gman@chromium.org>
Jamie Madill 04f3ed80 2022-10-04T08:24:16 Perf Tests: Use specified trial time for warmup. When the user specifies a trial time, use this for the warmup time instead of using the calibration time. This will give a longer warmup time on our test infra and should help stabilize perf testing scores on our bots. Bug: angleproject:7671 Change-Id: I65fb8a7ae1f684d3f7834613d8341d17bd2df00f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3933315 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 13195f8a 2022-10-05T11:17:35 Vulkan: Fix missing input attachment usage on MSRTT When combined with advanced blend (or framebuffer fetch for that matter), MSRTT attachments could be used as input attachments. This change fixes the missing usage bit. Bug: angleproject:7739 Change-Id: I2190e4a6e534e120357dd68189fb9de07b6c54fa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3936444 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Chris Dalton b5514bb2 2022-09-21T20:47:00 Support pixel local storage on ES 3.0 Now that the application-facing API is implemented, we don't have to rely on ES 3.1 anymore. Expose and test the extension on ES 3.0. Bug: angleproject:7279 Change-Id: I5635620b9088201c20bafd283813092a329225d6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3915327 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Chris Dalton <chris@rive.app> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app>
Cody Northrop c09d1475 2022-10-05T14:52:40 restricted_trace_perf: Switch to --warmup-trials Restore functionality after updates in: https://chromium-review.googlesource.com/c/angle/angle/+/3906144 Test: restricted_trace_perf.py Bug: angleproject:6970 Change-Id: I0632907b6dab0c0ad91536d42cac8eaf433f4da7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3936966 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Cody Northrop e577353d 2022-09-29T17:20:22 restricted_trace_perf: Sleep between tests option In order to get the most "real world" numbers possible, we're going to start running with clocks unlocks on Pixel devices. To avoid thermal throttling, allow for a pause between each test. Test: restricted_trace_perf.py Bug: angleproject:6970 Change-Id: If3f813cf1eadab6ea56122a3945f694eed79ed9a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3936965 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Shahbaz Youssefi a3b3d948 2022-10-05T14:15:32 Revert "Suppress DrawBuffersTest.MidRenderPassClearWithGapsRGB" This reverts commit 668184941e8d107d585743c91359963f3410d434. Reason for revert: VVL bug fixed Original change's description: > Suppress DrawBuffersTest.MidRenderPassClearWithGapsRGB > > To get vulkan-deps Autoroller working again > > Bug: angleproject:7736 > Change-Id: Iff6bb5bfc04fb22cb2cd7126d5ecbd932a5e9af5 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3934478 > Commit-Queue: Ian Elliott <ianelliott@google.com> > Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Auto-Submit: Ian Elliott <ianelliott@google.com> > Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bug: angleproject:7736 Change-Id: I2727447907f2e25cf9b854ffcc9ccfc04db2fb95 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3936442 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com>
Cody Northrop 503b250a 2022-08-31T20:06:57 restricted_trace_perf: Use Android platform loader With persistent shader caching enabled, we now need to run the trace tests exclusively in "native" mode, with ANGLE as the driver. The cache is provided via the EGL_ANDROID_blob_cache extension, and it is only enabled using Android's EGL loader. Test: restricted_trace_perf.py Bug: angleproject:6970 Change-Id: If791bfe199217dcc80105b55d8769fe43ffd9739 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3868310 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill d8489db5 2022-10-05T12:57:06 Perf Tests: Reduce resource usage. This halves the amount of time spent running the tests on desktop platforms. It also reduces the number of shards used on desktop platforms, to reduce resource utilization. It also bumps up the test timeout to keep from getting infra errors. Bug: angleproject:7738 Change-Id: Ie487c06452a39bb9ad1fe29b0d682e9c1bf297d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3936448 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Cody Northrop 637209c9 2022-10-02T22:05:12 Tests: Add Survivor.io trace Test: angle_perftests --gtest_filter="*survivor_io*" Bug: angleproject:7728 Bug: angleproject:7733 Bug: angleproject:7737 Change-Id: Ic337af781a209c3302bee748c5aed47f367993a8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3932009 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Ian Elliott 66818494 2022-10-04T12:21:02 Suppress DrawBuffersTest.MidRenderPassClearWithGapsRGB To get vulkan-deps Autoroller working again Bug: angleproject:7736 Change-Id: Iff6bb5bfc04fb22cb2cd7126d5ecbd932a5e9af5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3934478 Commit-Queue: Ian Elliott <ianelliott@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Auto-Submit: Ian Elliott <ianelliott@google.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Jamie Madill 5b3781ec 2022-10-03T16:09:35 Remove namespacing from all ANGLE loaders. This will make it easier to work with pure C files. Bug: angleproject:7731 Change-Id: I2fe9af486af5f339d973c9149f082eb1f2efa8c4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3925426 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop be8aa9e9 2022-10-01T21:53:14 Test: Add The Gardens Between trace Test: angle_perftests --gtest_filter="*the_gardens_between*" Bug: angleproject:7725 Change-Id: I3160155018d843f57ec6e2cd6455fd2f6e1af580 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3931398 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 5d7c4eca 2022-10-02T02:27:27 Vulkan: Don't flush depth/stencil on color blit When syncing the read framebuffer for blit, deferred clears are picked up for the attachments that are not being synced. They are then redeferred so a future command would pick them hopefully as loadOp. This change improves the frame time of Pretty Derby on Pixel 6 by ~23%. Bug: angleproject:7727 Change-Id: Ie7d84c58315cd09204e5229f1ec73605d5a7f639 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3931973 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 1d73bad5 2022-10-01T22:50:48 Vulkan: Fix reclear of rendered-to depth/stencil An optimization drops re-clears of images to the same value. When a render pass does: - clear - render - store the "cleared" status of the image was removed because at the end of the render pass, the image no longer has the cleared value. However, this was mistakenly only done for color, but should have been done for depth and stencil as well. Bug: b/239430388 Change-Id: Ib99e0df460eaa82ce87b593276abd9b07f0a8375 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3931972 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Chris Dalton a7dc51f2 2022-10-01T08:49:11 Add a framebuffer fetch implementation of PLS The framebuffer fetch implementation works by attaching PLS backing textures to the framebuffer, and then rewriting PLS uniforms as "inout" fragment variables. The compiler's existing machinery takes it from there and makes it work on GL and Vulkan, and soon Metal. EXT_shader_framebuffer_fetch is now the preferred backend for pixel local storage, but we also use EXT_shader_framebuffer_fetch_non_coherent if shader images can't be coherent. This is especially interesting for Vulkan, since noncoherent framebuffer fetch is possible without any extensions. Bug: angleproject:7279 Bug: angleproject:7683 Bug: angleproject:7684 Bug: angleproject:7724 Change-Id: I33f3b2c6df9a5709969d9165c448ea71b096c9e1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3900142 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app>
Cody Northrop 9905dabe 2022-09-30T00:47:17 Tests: Add Darkness Rises trace Test: angle_perftests --gtest_filter="*darkness_rises*" Bug: angleproject:7719 Change-Id: I0b99678003662c5e0bb89a5b78490276224a8eaa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3929333 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Hailin Zhang 836cc5e2 2022-09-09T22:06:22 Vulkan: add etc to bc compute transcoding. use compute shader to transcode etc format to bc format. Bug: b/243398683 Change-Id: Idbd0820a2df8d92fe690055dae2933bc559e9bfd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3888501 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Hailin Zhang <hailinzhang@google.com>
Cody Northrop f7a5cce1 2022-09-29T10:42:26 Tests: Add Life is Strange trace Test: angle_perftests --gtest_filter="*life_is_strange*" Bug: angleproject:7711 Bug: angleproject:7723 Change-Id: I83d9d58270a80435dba8991875b20a215372334f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3928205 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Chris Dalton a81679bc 2022-09-26T23:56:34 Support EXT_shader_framebuffer_fetch on GLES All the frontend functionality for EXT_shader_framebuffer_fetch is already present, but only supported on Vulkan. This change wires it up for the native GLES backend as well. Bug: angleproject:7279 Bug: angleproject:7703 Change-Id: Ie1fce79e08a78662c8af65d33f3d8417c96cf58e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3920577 Commit-Queue: Chris Dalton <chris@rive.app> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 583fd03e 2022-09-29T16:28:05 Translator: Fix ClampIndirectIndices vs. unsized arrays A deepCopy() was missing from this code path, which led to an AST validation error. However, clamping indices for unsized arrays is not strictly correct. For example, an out of bounds write with robustness is expected to be dropped, not overwrite the last element. Since robustness already covers storage blocks, this clamping is no longer done. Bug: angleproject:7712 Change-Id: I96dd18ef47cd453f19391bdccbd4372c24854ade Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3924863 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Jamie Madill 67af8d89 2022-09-19T15:19:57 Perf Tests: Make dynamic step count calibration optional. This uses a fixed test time for the tests, instead of using an extra step to calibrate a number of steps to run in an approximate maximum time. Before: 1. run a test for <test time>, return the number of steps 2. for <num samples> x <num trials> times, run the tests for that number of steps After: 1. for <num samples> x <num trials> times, run the tests for <test time> This saves some total time since we don't need to run the tests in a pre-process to calibrate the number of steps, and it also makes this test script more like the restricted trace perf script. Bug: angleproject:7671 Change-Id: I413cbf8d65f9f2f87781d8607f799d2450a71ea7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3906144 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gert Wollny 943d71e1 2022-08-11T10:17:06 gl_test: add a test to capture/replay MEC with EGL images Bug: angleproject:7564 Change-Id: I1cb84c5bccd20b5614ddd400797f112138f8c200 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3826162 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Constantine Shablya ff7aa214 2022-09-29T19:56:28 GL_PALETTE* sampling Implement GL_PALETTE* formats by decoding them into a R8G8B8A8_UNORM image at load time. Test: angle_end2end_tests --gtest_filter="PalettedTextureTest.*" Bug: angleproject:7599 Bug: angleproject:7688 Bug: angleproject:7710 Change-Id: I94d51e2c480fcdd39f1a0ad241b311d3b4de1579 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3863251 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Constantine Shablya <constantine.shablya@collabora.com>
Yuxin Hu 053c6a06 2022-09-20T15:17:28 Vulkan: Add more tests for attachmentless framebuffer This CL adds below test scenarios for attachmentless framebuffer: 1. Create first attachmentless framebuffer with larger size, and create second attachmentless framebuffer with smaller size. 2. Create an attachmentless framebuffer with smaller size, and grow its default width and height. 3. Create an attachmentless framebuffer with larger size, and shrink its default width and height. 4. Create an attachmentless framebuffer with larger size, given it an attachment with a medium size, and shrink its default width and height. This CL also splits the test failure bugs on different vendor and renderer to different bug tickets. This CL addresses a bug on vulkan backend: only skip onFramebufferChange() if the framebuffer has at least one attachment, and mCurrentFramebufferDesc equals to priorFramebufferDesc. Otherwise in test scenario 2 and 3 above, we will use the wrong scissor size, because the FramebufferDesc remains the same before and after changing the default width and height, and we will wrongly skip onFramebufferChange() where we update scissor area to match with the new default width and height. Bug: angleproject:7666 Bug: angleproject:7697 Bug: angleproject:7699 Bug: angleproject:7700 Bug: angleproject:7705 Change-Id: Ieb143b27f8c1a229dab8f43d0a16e3e871185941 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3908332 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 055d4c2f 2022-09-28T17:31:37 Tests: Add Star Wars: Galaxy of Heroes trace Test: angle_perftests --gtest_filter="*star_wars_galaxy_of_heroes*" Bug: angleproject:7709 Change-Id: I00937ea7e637d618999ec57af6e1b5efed56ebe3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3927947 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Roman Lavrov 6f037273 2022-09-28T18:46:13 Make last lines of batch stdout more visible in logs. So that it looks like this: https://gist.github.com/romanl-g/dd0d2f7e0eddf16fd802bed97789024c Bug: angleproject:7708 Change-Id: Ic92a9de6cba24637119ae9041e9126364d414948 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3923459 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Auto-Submit: Roman Lavrov <romanl@google.com>
Jamie Madill b681e939 2022-09-19T13:20:23 Turn on trace data hash checking automatically. This should save time uploading trace data already present on the device. Bug: angleproject:7671 Change-Id: Ie655cba284b6b3aec2e264cd4d64e4d18ebff8a7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3905902 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com>
Jamie Madill 65d3d0f6 2022-09-19T10:42:43 run_perf_tests: Add option to find test binary in out dir. This allows us to run the perf test runner script from any directory and use that as a basis to find the most recently modified test suite binary. This saves us from chdir()ing into test directory every time we want to run a test suite. Ideally this should move into the test utils folder to be used by the gold tests script as well. Bug: angleproject:7671 Change-Id: Iead98670bb5f7627ae32f7ac41b4ebcee2726841 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3904427 Reviewed-by: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi c1dc9de5 2022-09-27T12:49:21 GLES1: Enable SpotExpDir Likely fixed by the lighting fixes. Bug: angleproject:6201 Change-Id: Idc74d4e169dd3c1b2176b6db0a2559c25197ebd7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3922777 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 74c2f2d3 2022-09-27T11:40:51 GLES1: Enable UserClip tests Passing now. Bug: angleproject:3408 Change-Id: I4306f5eb8ae85d52dca8956cc22eac49ce957a14 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3922775 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 380ae37b 2022-09-26T21:34:22 Tests: Add Sky Force Reloaded trace Test: angle_perftests --gtest_filter="*sky_force_reloaded*" Bug: angleproject:7701 Change-Id: I6d86c760d007807a14cc88e869e8fc3c5e8f6a2f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3920575 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 7d0c5cc0 2022-09-26T20:47:48 Tests: Add Gacha Club trace Test: angle_perftests --gtest_filter="*gacha_club*" Bug: angleproject:7698 Change-Id: I84d055115235fb5506b8d14b5777b3070ed2728a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3920574 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Lubosz Sarnecki 97bdac9b 2022-09-13T11:09:51 Tests: Add Zenonia 4 trace. Test: angle_perftests --gtest_filter="*zenonia_4*" Bug: angleproject:7652 Change-Id: I7a3ff361085ba64f389be8ed487af635400fa2e8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3913504 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Shahbaz Youssefi dd0fc335 2022-09-26T22:56:29 GLES1: Make CTS verbose The `machine` parameters were uninitialized (set to 0 as globals). As a result, the test failure messages were not emitted, making it harder to understand what is failing. Bug: angleproject:3408 Change-Id: Ib8351755af24e01736314d1832160edf10a8e767 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3920894 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 163e56e4 2022-09-20T00:40:55 Allow feature overrides to end in * (wildcard) Makes it easier to apply overrides to features with long names. Also works around Android's limit of 92 characters for debug properties. Bug: b/238024366 Change-Id: I8f417287f92b2439de1a7b7d6abbaf9e61b405e8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3906222 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Roman Lavrov 1fc6c49c 2022-09-23T16:39:26 Log additional info when "failed to record some samples" Check each sample instead of total in the end to make it more clear. Bug: angleproject:7117 Change-Id: I7d6137c535266e4cf47e772b816cfb8bfa4575d3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3916516 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi f4389797 2022-09-23T15:36:13 GLES1/Vulkan: Enable GL_EXT_multisample_compatibility ... with a non-conformant implementation. This unblocks some tests that unnecessary call glDisable(GL_MULTISAMPLE) and trip up on it generating validation error. Bug: angleproject:7676 Bug: angleproject:7657 Bug: angleproject:3863 Bug: angleproject:3864 Change-Id: Iaebbea66da81fc9a30bf7a87deed7cf88ff38476 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3891546 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi bc447ca4 2022-09-20T22:38:16 GLES1: Move lighting to vertex shader In the spec, lighting is done as part of vertex processing, and results in a new vertex color. Texturing is applied later. ANGLE however did lighting in the fragment shader. With this change, lighting is moved to the vertex shader. This fixes rendering of lit objects, as interpolation is done linearly or flat between the vertices per spec, instead of done precisely per fragment. While typically this is inferior to per-fragment lighting, it's what the spec mandates. On the dr_driving trace, this reduces the render pass time by ~20% on Pixel 6. Bug: angleproject:6201 Bug: angleproject:6644 Change-Id: I10e37df8c56c22d520a738af8f8630bc6a01ca7f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3906394 Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Dan Glastonbury d2a58f00 2022-09-08T14:19:21 EGL: Implement eglCopyMetalSharedEventANGLE Add eglCopyMetalSharedEventANGLE function to the ANGLE_metal_shared_event_sync extension. This brings the extension on par with the EGL_ANDROID_native_fence_sync extension. eglCopyMetalSharedEventANGLE allows for copying the Metal event object from EGLSync objects implemented by the ANGLE Metal renderer. This function follows Objective-C convention for "copy" methods and increases the retain count of the Metal event object. The EGL API user is thus responsible for ensuring to release the returned object to avoid memory leaks. Test: angle_end2end_tests --gtest_filter=EGLSyncTestMetalSharedEvent.* Bug: angleproject:7561 Change-Id: I8c35b559014b85cb8c6a0e76ac2ab7891eed5da0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3881423 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Cody Northrop 5e3bf6d8 2022-09-22T15:53:39 Tests: Add Eve Echoes trace Test: angle_perftests --gtest_filter="*eve_echoes*" Bug: angleproject:7215 Bug: angleproject:7690 Change-Id: Ib636ab57831cddac5fe793ec5cf7d05764e90766 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3914041 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 2debd07d 2022-09-21T11:40:18 Automatically query status of features for tests Now tests can skip based on what features exist, compared to what features are explicitly asked for. For example, a test suite may override-enable a (normally disabled) feature that depends on a hardware capability. With this change, it can be skipped if said hardware capability doesn't exist. As a bonus, tests now correctly skip if the feature is overriden through an environment variable. This change also cleans up VulkanPerformanceCounterTest tests which did the same for a number of specific features. Bug: b/243398683 Change-Id: I84f026e3394eab56fd123e02bee72720c7ed94c6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3909789 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Gregg Tavares 7d712c47 2022-09-08T09:42:10 Metal: ProvokingVertexHelper stop using a separate cmdbuffer This simplifies the code. Without this you always need to be aware that the provoking vertex helper's command buffer might have commands in it that need to be committed before starting other operations. Bug: angleproject:7643 Change-Id: I1c73d451c12c268ecbdb6a1cd63a77c291949ef9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3884275 Commit-Queue: Gregg Tavares <gman@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Jamie Madill 094b49db 2022-09-19T10:13:28 Android Test Runner: Skip APK install if hash matches. Bug: angleproject:7670 Change-Id: I984fe9377728e5a575fd04be2f5cb3ed1cdbafb5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3904425 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Gregg Tavares 3700a059 2022-09-22T00:04:52 Revert "Add ReadPixels Perf Test" This reverts commit ea7eff37c18d9728f7ca0796fb29cff9bb80662c. Reason for revert: It takes too long on the bots Original change's description: > Add ReadPixels Perf Test > > Trying to compare the Metal backend to the OpenGL > backend and it's useful to have a perf test. > > Bug: angleproject:7117 > Change-Id: I5a7518fdd749841c3dffb1b53a9c4bfb88813c3c > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3906338 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Commit-Queue: Gregg Tavares <gman@chromium.org> Bug: angleproject:7117 Change-Id: Ia5e3138abe6686b2f7929a5367782c47f0f7af2d No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3911543 Commit-Queue: Kenneth Russell <kbr@chromium.org> Auto-Submit: Gregg Tavares <gman@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Chris Dalton 8b2aff28 2022-09-12T10:27:28 Implement the ANGLE_shader_pixel_local_storage API Implements the OpenGL ES API for ANGLE_shader_pixel_local_storage and adds thorough validation and testing as outlined in the spec. This feature is still implemented entirely in the frontend, but the extension now works end-to-end with a passing test suite, and can be used externally. Over time we can start gradually moving the implementation into backends as appropriate. Bug: angleproject:7279 Bug: angleproject:7647 Change-Id: I1c861a0fca96423be02e17bbe1fb7f57b99ea63f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3886462 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app>
Shahbaz Youssefi d78f7d20 2022-09-14T16:25:52 GLES1: Enable PointAntiAlias and RescaleNormal tests These tests are passing. Bug: angleproject:3408 Change-Id: I9cc680235a31b93e455499e83d128b8122328726 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3896213 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi 2f1f9500 2022-09-14T15:52:11 GLES1: Fix behavior with incomplete mipmap textures GLES1 requires texturing to be disabled when a mipmap-enabled texture is incomplete. Bug: angleproject:3408 Change-Id: I2c3b0206282a71f9a54d77ecdf2c7e42c7175fe5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3896212 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Gregg Tavares ea7eff37 2022-09-19T17:32:59 Add ReadPixels Perf Test Trying to compare the Metal backend to the OpenGL backend and it's useful to have a perf test. Bug: angleproject:7117 Change-Id: I5a7518fdd749841c3dffb1b53a9c4bfb88813c3c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3906338 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Shahbaz Youssefi 69714184 2022-09-16T00:38:03 GLES1: Implement logic op through framebuffer fetch Bug: angleproject:7654 Change-Id: Id5ee7aee8d38eb295b2fd9ff484f4755962c279a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3900513 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop 9393fd54 2022-09-13T20:06:57 FrameCapture: Ignore GetActiveAttrib Similar to how we skip glGetActiveUniform, we also need to skip glGetActiveAttrib. Attribute active status varies based on the underlying shader compiler. More aggresive stacks can find ways to eliminate them. If the application asks about attributes above GL_ACTIVE_ATTRIBUTES, a GL error is thrown, causing a trace to be non-portable. Tested with Eve Echoes and Monster Hunter Stories. Also added an end2end test that showcases a way apps ask about attributes, verified we can capture and replay it across multiple vendors now. Test: VertexAttributeTestES3.UnusedAttribsMEC Bug: angleproject:7215 Bug: angleproject:7557 Bug: angleproject:7402 Change-Id: I3c655bcead0ddb1677f8e1d49cb7d3f3c6b4feba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3866041 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 8581e5fa 2022-08-05T14:52:22 FrameCapture: Improve renderbuffer reset Add support for recording calls to regenerate renderbuffers, and track when renderbuffers are deleted. Test: Monster Hunter Stories MEC Bug: angleproject:7557 Bug: angleproject:4599 Change-Id: Ib32abaaf4b5f4767c5c9ede312a29e7f108bd93d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3815224 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Constantine Shablya 79c30913 2022-09-08T03:34:25 Add GLES 1.x lighting tests These tests check pixel values produced by fixed function lighting. Test: angle_end2end_tests --gtest_filter="LightsTest.*" Bug: angleproject:6201 Change-Id: I54ff5fd34089f71e7438167607de6f150aeb56bd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3881463 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Constantine Shablya <constantine.shablya@collabora.com>
Dan Glastonbury a89f678f 2022-06-16T13:59:16 EGL: Implement ANGLE_metal_shared_event_sync on metal Implement creation of fence sync object taking an external MTLSharedEvent and optional value to use when signaling completion of prior commands. Extended end2end test suite with metal shared event test cases. Test: angle_end2end_tests --gtest_filter=EGLSyncTestMetalSharedEvent.* Bug: angleproject:7561 Change-Id: I0e72b5417275a20a24e535670ceb995ecc87abcb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3865060 Reviewed-by: Quyen Le <lehoangquyen@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Shahbaz Youssefi f6a171d5 2022-09-20T16:05:20 GLES1: Fix Fog rendering The spec requires that: - The fog factor is clamped to [0, 1] - The fog only affects RGB, and not alpha Bug: angleproject:7598 Change-Id: Iaea2933b5ccfa79b7db0a3e74193b1c5c10f11e6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3907881 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 2796cbfd 2022-09-15T16:18:47 GLES1: Implement logic op through ANGLE_logic_op Bug: angleproject:7654 Change-Id: I88c784d87c1cb7cb7e5ccf8f020203553513bbb3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3899381 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi c51ca1b7 2022-09-15T14:00:21 Infra: Run GLES1 conformance tests on Pixel 4 bots Bug: angleproject:3408 Bug: angleproject:7676 Change-Id: I46ebfbef69a4eb300e6cdc964f1b3716a56df320 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3899379 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi ba3b4515 2022-09-15T01:06:51 Vulkan: Implement GL_ANGLE_logic_op Enabled if the logicOp device feature is available. According to gpuinfo, it's pretty much universal except for ARM. Bug: angleproject:7654 Change-Id: I4808b519fdd6273b2f8c1bb17f59517eb65bfe8d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3898317 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>