src


Log

Author Commit Date CI Message
Gert Wollny 27561f04 2022-10-30T09:38:00 Capture/Replay: Emit always gContextMap2 when capturing traces Bug: angleproject:7800 Change-Id: I12fc39d709527865a9b248a00c95d281c4e4d743 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3993317 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Alexey Knyazev adcda453 2022-11-01T00:00:00 Suppress new clip distance tests on iOS Bug: angleproject:7768 Change-Id: Ib61efbb97dd9d6b238d4a59fc50983515f9d89fa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3996442 Auto-Submit: Alexey Knyazev <lexa.knyazev@gmail.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Shahbaz Youssefi 67ee4976 2022-10-31T15:34:19 Vulkan: Skip BestPractices-ImageBarrierAccessLayout Bug: angleproject:7795 Change-Id: I98f6840f9cd2956f7e73d0496a26f504516c48e2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3993364 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Alexey Knyazev 805e00b8 2022-10-27T00:00:00 D3D11: Add clip and cull distance support Added gl_ClipDistance and gl_CullDistance support to HLSL translator. Added enabled clip distance GL state emulation. Added limitSimultaneousClipAndCullDistanceUsage limitation. Expanded and optimized related end2end tests. Bug: angleproject:4452 Change-Id: Id66312505254ceff43d5258d486ddcdb0462db47 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3990944 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Shahbaz Youssefi 7b102c18 2022-10-31T10:29:45 Vulkan: Disable logicOp dynamic state on Intel/Mesa Hits a stack overflow inside the driver. Bug: chromium:1379201 Change-Id: I52e5254b37688a027cbcf5ee5752de36b9b2a3aa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3993360 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Cody Northrop 9d9b8b07 2022-10-24T15:56:42 Docs: Fix up trace replay options The restricted_traces README was missed in prior update. Bug: angleproject:7755 Change-Id: I65380ef902d3b8a39cec16829c3e0e8170e2667b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3975599 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Chia-I Wu 32fb3be6 2022-10-27T16:05:30 Vulkan: disable rasterization order feature if isQualcomm It is simpler to just disable it for Qualcomm. Bug: b/255837430 Change-Id: I884a9635ed2c6049fa4f79e10613f87f3f40f199 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3989644 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Chia-I Wu <olv@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Chia-I Wu 5fc46a22 2022-10-27T16:02:31 Vulkan: Specify rasterization order only when there is fb fetch The original change had a performance impact on Qualcomm open source driver on some traces trex_200 22ms -> 39ms car_chase 80ms -> 190ms because it is expensive to make fb fetch coherent on Qualcomm hardware. This fixes the regression by making sure we specify the rasterization order only when there are indeed fb fetches. But we believe other workloads can still be hit by the issue even after this fix. We will disable rasterization order for Qualcomm driver in the next commit. Bug: b/255837430 Change-Id: If240dcbfd73112a72dc1e537821636ca16290eaf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3989166 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Chia-I Wu <olv@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Chris Dalton <chris@rive.app>
Yuxin Hu ce62d52f 2022-10-27T18:41:11 Fix Mid Execution Capture for External Texture How we capture eglCreateImage and eglCreateImageKHR have changed recently. Fix the code that recreate eglCreateImageKHR calls for external texture type in Mid Execution Capture. Bug: angleproject:7758 Change-Id: I2bd35ec3349f1d4f1aef1bf7f76ac50d4abca53d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3989645 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Tiago Vignatti 4abae6f9 2022-10-28T11:09:15 Metal: Fix 8-bit type name This fixes a probable typo for the 8-bit unsigned integer value type. Test: build ANGLE with Metal renderer enabled on iOS. Bug: None Change-Id: I2a332d996633fd81d01eece75817efb5683a5b31 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3989426 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Alexey Knyazev ac5a9c53 2022-10-26T00:00:00 Metal: Optimize ReplaceClipCullDistanceVariable The intermediate ANGLEClipDistance variable is not needed when generating MSL output directly. Bug: angleproject:6291 Change-Id: Ie3d32a903645be002f21c44a6233f9cd0155605a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3981716 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Jamie Madill a9868110 2022-09-15T17:29:04 Add support for testing with Mesa + Zink. To run a trace test with zink, use --use-gl=zink. Bug: angleproject:7689 Change-Id: I70073756f903db1c224fe6175d55be4cad637aca Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3899382 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 2bc9f1f4 2022-10-26T10:38:02 Lazily create threads in the thread pool The Vulkan backend doesn't use thread pools normally, so creating threads is a waste of CPU time. Additionally, creating threads early causes issues with some sandboxing strategies. Bug: b/250688943 Change-Id: I33f1b73bdc62f6a0c0b2277ce99ba78a87464486 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3982174 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Sean Risser 9b9d8032 2022-10-19T14:57:03 Avoid mExtensions for initializing mExtensions tracks the currently enabled extensions, while nativeExtensions tracks which extensions are available on a platform. This makes nativeExtensions more suitable for initializing data, as extensions may be disabled at initialization and enabled later. Bug: angleproject:7769 Change-Id: I9ee821a931045fc89091473f35e2b306ee653613 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3965610 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Sean Risser <srisser@google.com>
Roman Lavrov a77a80a1 2022-10-25T13:54:33 Wait for DestroyNotify and ConfigureNotify events. There appears to be a race condition where XDestroyWindow+XCreateWindow ignores the new size (the same window normally gets reused but this only happens sometimes on some X11 versions). Wait until we get the destroy notification which should avoid races between termination and initialization. However, it turns out just doing that breaks things because tests get to termination before even giving the window a chance to set up fully (e.g. ConfigureNotify) which only happens after making the window visible.. so additionally block in setVisible until we get ConfigureNotify. aaand turns out RobustBufferAccessBehaviorTest requires setVisible(true) - tests fail when running on my local Linux and pass now that I added setWindowVisible! Bug: angleproject:7620 Change-Id: I93f2f05cb9d1c62776636bec976d94ead4cf0fd1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3979168 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Mohan Maiya 53abcf15 2022-10-25T15:26:44 Vulkan: Bug fix in supportsTimestampSurfaceAttribute Move the initialization of "vkGetPastPresentationTimingGOOGLE" and the assert check to after vkDevice creation. Bug: angleproject:7489 Change-Id: I1ef50d64af3bea44a182be95dd182532b2c60d36 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3979994 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Greg Schlomoff 81a244de 2022-10-10T15:32:25 Adding a class to perform ASTC texture decompression on the CPU This significantly improves performance by caching and re-using the ASTC decoder context, and using multi-threaded decompression. This code was originally written for gfxstream. Bug: b/250688943 Change-Id: I1727447907f2e25cf9b854ffcc9ccfc04db2fb91 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3929008 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu 1c197e06 2022-10-24T16:53:01 Remove dEQP suppression for tests that already passed Bug: b/224537784 Bug: angleproject:6898 Bug: angleproject:6910 Bug: angleproject:6918 Change-Id: I25f1d0d6fb3147d11cdf352290a683beed5082f6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3976789 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Constantine Shablya ef8350a6 2022-10-21T06:30:51 GLES1Renderer: Handle GL_BGRA the same way we handle GL_RGBA Fixes minetest Bug: angleproject:7774 Change-Id: Iacbe8cb9aa434ec624bfaf056092b77bda468b3f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3970417 Commit-Queue: Constantine Shablya <constantine.shablya@collabora.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Constantine Shablya <constantine.shablya@collabora.com>
Alexey Knyazev c97edf51 2022-10-24T00:00:00 Metal: Enable APPLE_clip_distance Adjusted direct-to-Metal shader translator to support gl_ClipDistance built-in. Bug: angleproject:6291 Change-Id: Ice4cc3e4d7c131cbaac9726e845a5c1e59787e69 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3976428 Reviewed-by: Kyle Piddington <kpiddington@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Roman Lavrov 30439960 2022-10-24T17:30:18 Unbreak run_angle_android_test. Broken by ListTests removed in https://crrev.com/c/3963651 Move helper to angle_test_util. Bug: angleproject:7755 Change-Id: I1eec442cf3e2bf6c24335d4c294a68e7e868b814 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3975353 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Cody Northrop 11a3e06b 2022-10-24T11:26:05 Android: Fix restricted_trace_perf.py Test: restricted_trace_perf.py --fixedtime 10 --power --loop-count 5 Bug: angleproject:7755 Change-Id: Idbd2ccc73bd7409e2538346897b254403c1fd5d6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3975592 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Geoff Lang 6c53a562 2022-10-24T10:24:10 Add missing cstring include in gl_enum_utils. Bug: angleproject:7752 Change-Id: I44ac0996673065b9633b35e4b07c5150a1ae3dcd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3970767 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jamie Madill dc62b3ee 2022-10-10T21:00:16 Capture/Replay: Add trace interpreter. Also adds a self-test using the retrace script. Bug: angleproject:7752 Change-Id: I1985b47250bef99726d2ca2d90bef859208e357e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3965128 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Jamie Madill bc2e9eea 2022-10-15T14:38:15 Refine sampling of trace perf tests. - The warmup algorithm now computes an accurate steps estimate. - Bump up the trials, samples, and trial time in the runner. Bug: angleproject:7671 Change-Id: I89a73472fd72af73f695c9107119cbc559d2d6e1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3956946 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com>
Solti 97beb2f7 2022-10-21T18:21:16 disable pixel6 for VertexAttributeTestES31 tests Bug: angleproject:7770 Change-Id: Icc5d750ab222d2757e9551cbe3c2e7816b77a040 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3971009 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Solti Ho <solti@google.com>
Solti f9c58274 2022-10-21T18:00:06 Disable test: FramebufferTest_ES3.DrawWithDifferentPreRotations Bug: angleproject:7778 Change-Id: I02d71e031bb0c8455599014bcae975a1e5f5200f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3971006 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Solti Ho <solti@google.com>
Jamie Madill a41c6173 2022-10-16T08:28:53 Simplify trace test names. Originally we had a lot of conditionally enabled test configs in angle_perftests, that we enabled behind a flag because the total runtime would be too large if we left everything enabled. This CL switches to using a single test set, one for each trace, and using a the same command-line API we use in dEQP and the ANGLE samples to pick a single configuration. This makes it easier to pick exactly what configurations you want from the command line. Because we only run one configuration each time, we don't need to specialize the test name to include the configuration info. We can also simplify TracePerfTest -> TraceTest since these tests are run for both perf and correctness. Old name: TracePerfTest.Run/vulkan_trex_200 New name: TraceTest.trex_200 Example for tests that don't use default arguments: Old args: --enable-all-trace-tests Old name: TracePerfTest.Run/native_offscreen_trex_200 New args: --use-gl=native --offscreen New name: TraceTest.trex_200 Bug: angleproject:7755 Change-Id: Id93cf5725eff2e2c6b3b14804bc2902f38306e7e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3966535 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com>
Jamie Madill 0c3b4fe8 2022-10-21T10:17:31 Reduce --use-angle spam in TracePerfTest. Instead of recalculating the back-end for every trace, we can do it once in the test instantiation and pass the results around. Bug: angleproject:7755 Change-Id: I492c639d91ee6ad6a325cff090813aaeb900b2d8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3971080 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill 0d635faf 2022-10-21T09:43:13 Enable capture by default on release non-Android bots. This will enable running the trace interpreter tests with ANGLE. Also this cleans up a case where we now default turning off the trace tests when we're building with non-clang. Bug: angleproject:7752 Change-Id: I7019bb969d859e06fafc7621e8620b8a2375261e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3971079 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com> Auto-Submit: Jamie Madill <jmadill@chromium.org>
Roman Lavrov cc35022f 2022-10-21T08:42:31 Only allow missing output file when listing tests. Avoids potentially swallowing an error in non-list-test mode Bug: angleproject:7755 Change-Id: I4e7fba6a5d110d568d71c31585fffdb189ec12a1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3971078 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Jamie Madill 06ecc918 2022-10-10T20:59:38 Capture/Replay: Optionally emit C sources. This adds an option that controls if we can write out simplified C replays. Once the work is finished we can remove the option and only allow emitting C instead of both C and CPP. Required emitting multi-line strings differently, as well as conditionalizing a few other language differences. Bug: angleproject:7713 Change-Id: I3303134316ed3fc1b4286bcd32961e8f7ecfbb06 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3953339 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill bba47588 2022-10-19T11:59:10 Update ANGLE API loaders to avoid C++ syntax. This replaces "using" with "typedef" in the various loaders. This will allow C traces to use the loaders, which in turn will allow us to implement a C interpreter. Bug: angleproject:7731 Change-Id: I37838bcafc290502fca0038d1b50554b6a301e65 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3966533 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop 596c2acf 2022-10-20T18:59:04 FrameCapture: Fix FenceSync for MEC Follow up to: https://chromium-review.googlesource.com/c/angle/angle/+/3957164 Test: MEC for Grimvalor Bug: angleproject:7758 Change-Id: Ia0895e923d9bee41bcfbff48d15bf9aa86e29d17 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3969519 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
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 6193274a 2022-10-10T21:00:12 Capture/Replay: Redesign in-memory call capture replay. This will allow the replay to use the call captures returned by the interpreter's parser. Bug: angleproject:7752 Change-Id: If1b281d9ce7ccfbdc23bea615e1e2258c8a029f9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963367 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Jamie Madill cd10b6d2 2022-10-10T21:00:07 Enum Utils: Add method to return enum value from string. We'll use this in the trace interpreter to parse enum values. Bug: angleproject:7752 Change-Id: I232a00baac2f74c9618029929bbb3e5822654046 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963366 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill fd45cec3 2022-10-10T20:59:58 Entry Points: Move enum helper to registry_xml. This will make it accessible to other generators. Bug: angleproject:7752 Change-Id: I91bc9a4d6c919266ea329f66d271bf881d99d17a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963364 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
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>
Chris Dalton 01e6be3c 2022-10-19T20:42:30 Actually use EXT_shader_framebuffer_fetch_non_coherent for PLS Bug: angleproject:7279 Change-Id: I37099a917303ab41d86dbe1203183ac55229942f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3966074 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill d25911de 2022-10-10T20:59:53 Capture/Replay: Move trace fixture into util/ This will allow us to cleanly import the fixture headers outside of libANGLE. We'll need to call into the trace fixture in the trace interpreter, which will be in util/. Bug: angleproject:7752 Change-Id: I3438989db8482924272c69e78d7ac5702e510648 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963363 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Robert Mader 5b7113b6 2022-09-21T10:05:42 EGL: Implement EGL_EXT_device_drm and EXT_device_drm_render_node These extensions are needed by Exo for zwp_linux_dmabuf v4 support. Add the needed infrastructure to the EGL backend to support device queries and expose the extensions there. In the future we will want to support the extensions on Vulkan as well, however unfortunately this is not trivial, so leave it out for now. Bug: angleproject:7686 Change-Id: I0a54bf58dbaa9e87c8baac760cb9ac9027fea4c2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3964272 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@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 5ec6f8dd 2022-10-10T20:59:42 Capture/Replay: Only inline strings. This will simplify the trace code and the parsing logic. Previously we wrote some integer data in the cpp file, e.g.: const GLenum glDiscardFramebufferEXT_attachments_0[] = {...}; glDiscardFramebufferEXT(..., glDiscardFramebufferEXT_attachments_0); Bug: angleproject:7731 Change-Id: If7924b1bf231f584f4677a438232bedc7ea9bd69 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3953338 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuxin Hu <yuxinhu@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>
Sungyong Choi c6390143 2022-10-12T09:57:55 Vulkan: Make compatible with GCC Resolves below warnings occurred with GCC build. 1) deperecated-copy Overriding an assignment operator without a copy constructor caused the deprecated-copy warnings. 2) unused-function 3) parenthesis Warnings occurred due to missing parenthesis around some logical expressions, add them to quiet the warnings. 4) unused variable 5) 'maybe-unused' attribute ignored Introduces 'ANGLE_MAYBE_UNUSED_PRIVATE_FIELD' macro to avoid 'attribute ignored' warning which is only occurred with GCC because GCC doesn't warn about 'unused non static data member' whereas Clang has Wno-unused-private-field. Signed-off-by: Sungyong Choi <sywow.choi@samsung.com> Bug: angleproject:7764 Change-Id: I8e7410a5ed8cb9b8f8b3202073d779fea63d6b75 Reviewed-by: Jeff Vigil <j.vigil@samsung.com> Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963830 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 315b07b2 2022-10-19T22:06:44 FrameCapture: Fix UniformBlockBinding Follow up to: https://chromium-review.googlesource.com/c/angle/angle/+/3953334 Test: MEC for Grimvalor and Wild Arena Survivors Bug: angleproject:7731 Change-Id: I2a246c5701aaf42d77fd45487804f0f21562342e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3967870 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
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 b5929ac6 2022-10-17T18:06:32 Move worker pools to Display It doesn't make sense for each context to have its own set of CPU-count workers. This change also facilitates access to the thread pools where gl::Context is not available (but egl::Display is). Bug: b/250688943 Change-Id: I240353abba26c15338d59631b4179a58dfd662f5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3961334 Reviewed-by: Jamie Madill <jmadill@chromium.org> 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>
Greg Schlomoff 60592f3c 2022-10-13T17:58:18 Reland "Make ANGLE's Worker Pool actually pool the threads." This is a reland of commit 0a4a7ea77661703e467293bc0f6d79c95061fa76 Original change's description: > Make ANGLE's Worker Pool actually pool the threads. > > When starting a lot of short-lived tasks, this increases performance by > over 70 times on my machine. > > Old code, decoding a 16x16 ASTC texture with 8 threads: > *RESULT AstcDecoderPerfTest.cpu_time: run= 2,847,708 ns > *RESULT AstcDecoderPerfTest.wall_time: run= 1,841,014 ns > > New code: > *RESULT AstcDecoderPerfTest.cpu_time: run= 81,602 ns > *RESULT AstcDecoderPerfTest.wall_time: run= 27,088 ns > > Bug: angleproject:7757 > Change-Id: Ib643405675c50b2ed8ccd24d6caa7e57335130e1 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3953905 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Greg Schlomoff <gregschlom@google.com> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:7757 Change-Id: Ib06b37c8776dac5a2b1ea67921a9cd8687485ee2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963370 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@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>
Robert Mader 67915fb4 2022-09-19T15:08:54 Reland "Reland "EGL: Implement EGL_EXT_image_dma_buf_import_modifiers"" This is a reland of commit f53eac299fb2e0083fa386af1f04038b32faebe4 New changes: - Disable the extension on old proprietary Mali drivers Original change's description: > Reland "EGL: Implement EGL_EXT_image_dma_buf_import_modifiers" > > This is a reland of commit 1d8dce2587a23b59f911c801856372996bdb2f64 > > New changes: > - fail softly on buggy drivers (which are part of the CI) > > Original change's description: > > EGL: Implement EGL_EXT_image_dma_buf_import_modifiers > > > > This reverts Ifbb0a182171646df8161f6f42eafe2a476fea6b2 and implements > > the previously missing bits. Inspired by the corresponding Vulkan > > implementation. > > > > The extension is used by an upcoming Exo feature which was successfully > > tested with this patch, see > > https://chromium-review.googlesource.com/c/chromium/src/+/3857556 > > > > Bug: angleproject:7664 > > Change-Id: I951d1a787e1db3a77b19fcea6186b7aa0a29872f > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3904345 > > Reviewed-by: Geoff Lang <geofflang@chromium.org> > > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > > Bug: angleproject:7664 > Change-Id: I732fc9dad54366553987104fa035bde2afe08ecd > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3924350 > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:7664 Change-Id: I1f4cf04eb725d789d3dadb35fb6e59b0d3e470a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3949029 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Jamie Madill bb420af7 2022-10-10T20:59:24 Capture/Replay: Rewrite map buffer calls. This wraps the map calls into simple helper functions that hide the return value assignment, which in turn will simplify C parsing. Allows us to remove storing the mapped buffer ID in the params. Bug: angleproject:7731 Change-Id: I756574cc0fa3d63cce4e0103b8f2861d093de186 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3953335 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Christian Dullweber fba70715 2022-10-18T12:53:53 Revert "Make ANGLE's Worker Pool actually pool the threads." This reverts commit 0a4a7ea77661703e467293bc0f6d79c95061fa76. Reason for revert: Suspected to cause flakiness in angle_unittests on https://ci.chromium.org/p/chromium/builders/ci/Linux%20CFI?limit=200 Original change's description: > Make ANGLE's Worker Pool actually pool the threads. > > When starting a lot of short-lived tasks, this increases performance by > over 70 times on my machine. > > Old code, decoding a 16x16 ASTC texture with 8 threads: > *RESULT AstcDecoderPerfTest.cpu_time: run= 2,847,708 ns > *RESULT AstcDecoderPerfTest.wall_time: run= 1,841,014 ns > > New code: > *RESULT AstcDecoderPerfTest.cpu_time: run= 81,602 ns > *RESULT AstcDecoderPerfTest.wall_time: run= 27,088 ns > > Bug: angleproject:7757 > Change-Id: Ib643405675c50b2ed8ccd24d6caa7e57335130e1 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3953905 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Greg Schlomoff <gregschlom@google.com> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:7757 Change-Id: I35c721ca770b4a62aa135fd2f80ae597d7ea14fa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963528 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Christian Dullweber <dullweber@chromium.org>
Jamie Madill 4f85f862 2022-10-10T20:59:19 Capture/Replay: Remove references to uniform block indexes. This removes the references in captured traces to the uniform block index map. Because uniform block indexes use a double indirection, we store them in an unordered map. Moving to plain C precludes all uses for templated types, so we need to funnel the calls through a custom function. Bug: angleproject:7731 Change-Id: I35ae010b880ee669df09d750d5fb26d3baf907cd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3953334 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi b521be4c 2022-10-14T23:09:26 Vulkan: Decouple shader-set from pipeline caches In preparation for VK_EXT_graphics_pipeline_library, where different pipeline caches (for the complete pipelines and the shaders subset partial pipelines) may create pipelines from the same shader set, the pipeline caches are pulled out of ShaderProgramHelper. In an upcoming change, ProgramExecutableVk will have more than one GraphicsPipelineCache instance, both creating pipelines through the same ShaderProgramHelper. The pipeline creation methods in ShaderProgramHelper are now const. This means a thread would be able to create pipelines using an object of this class while the main thread creates other pipelines using the same object, but in a different pipeline cache. Bug: angleproject:7369 Change-Id: Ib8a76dedf1105ba9dfcad9e972157c92ba18e349 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3956944 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jiawei Shao e1da4916 2022-10-18T15:29:53 Remove unused enum CacheResult Bug: angleproject:2516 Change-Id: Ib2f4f66279ebb54e05b26559cf5759ca78020f03 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3960887 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
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>
Jamie Madill 2265e37b 2022-10-12T09:27:16 Capture/Replay: Auto-generate EGL capture code. Replaces the custom code in the EGL stubs. Skips a few "Get" entry points because this CL doesn't implement pointer capture like we do for all the GL entry points. Includes a new state in the AttributeMap that indicates which type of attribute values we used when initializing the map. Bug: angleproject:4035 Change-Id: I272eac5e4068602ce710ef66c9a1dce5387943a5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3949911 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 7c4dc253 2022-10-12T08:38:46 Capture/Replay: Clean up EGL capture. This switches the EGL capture types to ANGLE-casted pointers since that's what we receive in the capture layer. Note that even if the capture layer were used as a pure layer, not an EGL implementation, we'd still have these types for state tracking. This also prefixes each EGL class in the entry points with the egl namespace for consistency and for simplifying the ParamType code. Required changing to non-const gl::Context * in a few places. Also changes the gSurfaceMap to be indexed by the raw pointer value, which cleans up the code somewhat. Bug: angleproject:4035 Change-Id: Id800c1ba25e5819ac7ea1df8aab806bc393fe192 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3949910 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Greg Schlomoff 0a4a7ea7 2022-10-13T17:58:18 Make ANGLE's Worker Pool actually pool the threads. When starting a lot of short-lived tasks, this increases performance by over 70 times on my machine. Old code, decoding a 16x16 ASTC texture with 8 threads: *RESULT AstcDecoderPerfTest.cpu_time: run= 2,847,708 ns *RESULT AstcDecoderPerfTest.wall_time: run= 1,841,014 ns New code: *RESULT AstcDecoderPerfTest.cpu_time: run= 81,602 ns *RESULT AstcDecoderPerfTest.wall_time: run= 27,088 ns Bug: angleproject:7757 Change-Id: Ib643405675c50b2ed8ccd24d6caa7e57335130e1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3953905 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Greg Schlomoff <gregschlom@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao e8f9355c 2022-10-13T16:51:32 Vulkan: Add forceWaitForSubmissionToCompleteForQueryResult flag Add forceWaitForSubmissionToCompleteForQueryResult feature flag and enable it for ARM. Also force host wait if async submission is enabled. Bug: b/253522366 Change-Id: Ie2d7373930f1a2b3fc761d2f8d2df8fa84983c54 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3954044 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@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 8e644365 2022-10-11T11:47:55 Vulkan: Rearrange state specification for pipeline libraries This change splits pipeline state setup based on whether the complete pipeline is being created or only a subset of it. However, no partial pipelines are yet created, that will be done in a following CL. Bug: angleproject:7369 Change-Id: Ife34c4bc39641ab8f06e7c78502f95a6bc16d15d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3949917 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.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>
Charlie Lao 1119dfbd 2022-10-03T16:47:29 Vulkan: disable supportsHostQueryReset feature if func is null This is try to clean up a old fix for chromium security bug chromium:1273344 that in some bots we are seeing supportsHostQueryReset feature enabled but vkResetQueryPoolEXT pointer is null. We fixed that in crrev.com/c/3313382 that added a check of vkResetQueryPoolEXT AND supportsHostQueryReset feature flag. This CL disables the feature flag if vkResetQueryPoolEXT pointer is null so that other places we only need to check feature flag. Bug: b/250706693 Change-Id: I2d9f9726f081e21a37bbb0bb205003c390f2d32c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3929236 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@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 b1d699da 2022-10-04T15:27:51 Vulkan: Don't wait QueueSerial if supportsHostQueryReset enabled In QueryVk::getResult() we are waiting for query's queueSerial to complete, even though QueryHelper::getUint64Result() we are also using VK_QUERY_RESULT_WAIT_BIT to ask vulkan driver to wait for result. Based on the comment, the reason for that queueSerial wait is because "its reset command may not have been performed by the GPU yet.". But if mFeatures.supportsHostQueryReset is enabled, we use vkResetQueryPoolEXT to reset the query, and this host reset is immediate, so there is no need to wait for queueSerial in this case. This CL disables the wait when host reset is enabled and relies on vkGetQueryPoolResults(VK_QUERY_RESULT_WAIT_BIT) to do actual wait. This should help performance on immediate renderer where the query result might be available before renderpass completion. Bug: angleproject:3965 Change-Id: Ibe61c289f1f3d1312e79ac80a2b5de23b90ef87c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3935444 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Ian Elliott <ianelliott@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>
Brian Sheedy 219af5de 2022-10-11T18:05:47 Revert "Reland "EGL: Implement EGL_EXT_image_dma_buf_import_modifiers"" This reverts commit f53eac299fb2e0083fa386af1f04038b32faebe4. Reason for revert: Suspected of causing problems on kevin devices again. Original change's description: > Reland "EGL: Implement EGL_EXT_image_dma_buf_import_modifiers" > > This is a reland of commit 1d8dce2587a23b59f911c801856372996bdb2f64 > > New changes: > - fail softly on buggy drivers (which are part of the CI) > > Original change's description: > > EGL: Implement EGL_EXT_image_dma_buf_import_modifiers > > > > This reverts Ifbb0a182171646df8161f6f42eafe2a476fea6b2 and implements > > the previously missing bits. Inspired by the corresponding Vulkan > > implementation. > > > > The extension is used by an upcoming Exo feature which was successfully > > tested with this patch, see > > https://chromium-review.googlesource.com/c/chromium/src/+/3857556 > > > > Bug: angleproject:7664 > > Change-Id: I951d1a787e1db3a77b19fcea6186b7aa0a29872f > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3904345 > > Reviewed-by: Geoff Lang <geofflang@chromium.org> > > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > > Bug: angleproject:7664 > Change-Id: I732fc9dad54366553987104fa035bde2afe08ecd > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3924350 > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:7664 Change-Id: I2ffc508ea4cc9e95055084fed4f63a52d9afdbd2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3946903 Auto-Submit: Brian Sheedy <bsheedy@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
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>
Gert Wollny f2785e41 2022-10-10T08:21:36 capture/replay: validate after resetting unpack alignment Otherwise validation will fail, because we try to validate the temporary set alignment against the alignment that would be active without MEC. Bug: angleproject:7564 Bug: angleproject:7180 Change-Id: I40cac84be122c779b9beba39f155567f9edbee75 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3936631 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Cody Northrop 5bafe449 2022-10-05T20:09:23 FrameCapture: Create default context reset calls Add support for emitting default reset calls for some entrypoints when recording a capture from the beginning. Test: Lineage 2 Revolution MEC Bug: angleproject:7741 Change-Id: I8e4e1184f3e3b68527a65283c459a43d135e95b4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3938442 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: 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>
George Burgess IV 54d094fe 2022-05-23T13:05:46 angle: fix potential nullptr dereference `checkIsScalarBool` immediately deref's `typedCond`, which may be NULL. Prevent that. Caught by the static analyzer: > device/generic/vulkan-cereal/third-party/angle/src/compiler/translator/ParseContext.cpp:893:9: warning: Called C++ object pointer is null [clang-analyzer-core.CallAndMessage] Bug: b/206470603 Test: None Change-Id: I2c055d637fb3ef254c0cebfae32bfbe17bf850ea Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3935460 Auto-Submit: Greg Schlomoff <gregschlom@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@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>