src


Log

Author Commit Date CI Message
Gert Wollny dba2e136 2021-05-13T20:33:46 Capture/Replay: Emit InitializeReplay() late Only emit InitializeReplay() after all captured frames have been run, so that the readBufferSize and the maxClientArraySize are really sufficiently large for all frames. To achieve this a layer of indirection is added, that is because InitializeReplay() has to be called from SetupFrame() which is still emitted with the first frame, a new function InitReplay() is added. The call to this function is emitted with the first frame, buts its body is emitted after the last frame has been captured. Bug: angleproject:5965 Change-Id: Ic38791b4c02989594ec87d1ba3f031fd81471314 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2940841 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi d6202fce 2021-06-28T16:53:45 Vulkan: Disable GL_KHR_texture_compression_astc_sliced_3d 3D ASTC formats are not supported in Vulkan, sliced or not. The non-sliced extension is already disabled, and this change disables the sliced version. Bug: angleproject:6038 Change-Id: I055838345ccb8ad77fe4c05e65dd8b10a8a4d36b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2993459 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop a8959a9b 2021-06-29T21:23:21 Tests: Add Toon Blast trace Test: angle_project --gtest_filter="*toon_blast*" Tbr: jmadill@google.com, timvp@google.com Bug: b/192408760 Bug: angleproject:6121 Change-Id: Id301c48921a24164d4dccd7d53c1a4e51a0795ce Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2993753 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi dc59772e 2021-06-22T22:37:26 Vulkan: SPIR-V Gen: Support switch With the infrastructure to support this in place, switch is simply implemented as a conditional with multiple blocks. Each block either ends with a branch to the merge block or the next block, implementing fallthrough. Bug: angleproject:4889 Change-Id: I5831531d918ac06648cced7707d1d48ffeb6b1b0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2983559 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi a8c9cecf 2021-06-12T00:12:34 Vulkan: SPIR-V Gen: Support break and continue This is simply done by issuing a branch to the merge or continue blocks respectively. Bug: angleproject:4889 Change-Id: I3e96a3b0f1a0533aa4eac519ab64a87600c0983b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2957810 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop e45682b4 2021-06-29T17:55:36 Tests: Add Township trace Test: angle_perftests --gtest_filter="*township*" Tbr: jmadill@google.com, timvp@google.com Bug: b/192402770 Bug: angleproject:6120 Change-Id: I3ef0bb6e896a081c17a07f18037805be5494af2e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2993882 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 1c39335a 2021-06-29T16:40:43 Tests: Add Farm Heroes Saga trace Test: angle_perftests --gtest_filter="*farm_heroes_saga*" Tbr: jmadill@google.com, timvp@google.com Bug: b/192395241 Bug: angleproject:6119 Change-Id: Iebec311e37e5f84ad85e5a77aa36b3cffb55d2e4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2995383 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill 69c2d820 2021-06-29T11:58:41 Perf Tests: Register trace tests programatically. Using testing::RegisterTests lets us filter out the disabled configs. This helps sharding the tests because some shards were getting a very uneven distribution of real tests vs skipped tests. A couple shards were running 20 minutes, while most were about 6 minutes. More work might be needed to even that out. Bug: angleproject:6090 Change-Id: Ibdf35677cfea86dfc374a2b18bb57cd9f289ddee Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2994726 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Lubosz Sarnecki dcfde515 2021-06-24T15:59:04 gl.xml: Add GL_FRAMEBUFFER_SRGB_EXT to EnableCap group. Add GL_EXT_sRGB_write_control in registry_xml.py. This makes FrameCapture write a GL_FRAMEBUFFER_SRGB_EXT enum instead of it's hex value in glEnable/Disable calls. Bug: angleproject:5857 Change-Id: Ifa01118c2958275c7623c6bfe29f015fa8875fce Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988356 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Peter Kasting d2816b4e 2021-06-25T14:52:02 Fix a -Wdeprecated-copy warning. Bug: chromium:1221591 Change-Id: Idbbb4aa16e58a9f4e7e25590667cf15706233de4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2989632 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Gert Wollny c14e6b5f 2021-06-28T15:22:44 Capture/Replay: enable some more passing tests Test: PixmapTest.Clearing/* StateChangeRenderTest.GenerateMipmap/ SyncQueriesTest.Basic/ES2_Vulkan SyncQueriesTest.Validation/ES2_Vulkan TextureLimitsTest.MaxCombinedTextures/ Bug: None Change-Id: I3d3f36551b42ae24332d441c49f8a66f4df7d9a9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2993091 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny 130d1987 2021-06-28T14:24:15 Capture/Replay: enable passing WebGLCompatibilityTest tests Bug: None Change-Id: I9b894e49766c8b840fc58470bd42f466bc138796 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988688 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny 65a94128 2021-05-21T15:18:39 Capture/Replay: enable IndexBufferOffsetTest.* tests With robustResourceInit in place we can enable the the tests. Bug: angleproject:5974 Change-Id: I53911ebf9aed1ef537ebf4c539eca7b284a17e98 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2912676 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Gert Wollny e793a027 2021-06-28T11:17:01 Capture/Replay: Capture TexSubImage2DRobustAngle, enable tests The tests RobustClientMemoryTest.* now all pass. Bug: angleproject:6108 Change-Id: I980c1fd9e065cb5c4ed575770f86e09faeb19d4c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988685 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Gert Wollny 433e3921 2021-06-28T10:39:41 Capture/Replay: enable passing UniformTest.Sampler/* Bug: None Change-Id: Ib32e27ea7c767e1251f18f6e8e7fb80289110e9f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988683 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop e70c21f4 2021-06-28T09:27:36 Tests: Add Beach Buggy Racing trace Test: angle_perftests --gtest_filter="*beach_buggy_racing*" Tbr: timvp@google.com, jmadill@google.com Bug: b/192237726 Bug: angleproject:6113 Change-Id: I16fa42bd1af632daf90f857c453e70218225b4f0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2992574 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill a25f0f2c 2021-06-28T14:56:26 Suppress flaky TSAN TLS false positive. Introduces "ANGLE_NO_SANITIZE_THREAD" which works the same way as "ANGLE_NO_SANITIZE_MEMORY". Bug: chromium:1223970 Change-Id: I9409771f7c4748bbc186da3fc38031d3b1d1e4d8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2987875 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Gert Wollny 8513e538 2021-06-28T10:38:03 Capture/Replay: enable passing DrawBuffersTest.* Bug: None Change-Id: Ib857194d701372322ebf458bf00ac9aa681c079a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988682 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop 3fa51867 2021-06-28T07:44:45 Capture/Replay: Disable GL_OES_depth32 during capture Depth32 is not a renderable format on native mobile GLES drivers. Disabling GL_OES_depth32 during capture provides a more portable trace. Apps fall back to Depth24, i.e.: glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT32, 760, 360); Becomes: glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT24, 760, 360); Test: Beach Buggy Racing MEC Bug: b/192237726 Bug: angleproject:6113 Change-Id: Id188ca0186c67d2584f8ad7070cdc8c9baaf2aaa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2992573 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Peng Huang 5a2bd6fd 2021-05-03T14:43:35 Disable shader cache for PowerVR Rogue GPUs. We disable shader cache for Validating decoder in chrome, so port this workaround into ANGLE to see if it can fix crbug.com/1203652. Bug: chromium:1203652,chromium:480992 Change-Id: I08611c148217abc9c32d11fefe8a7d15873f3b30 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2867269 Commit-Queue: Peng Huang <penghuang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Mohan Maiya e2881e25 2021-06-27T10:45:41 Vulkan: Handle incompatible pipeline layouts It is necessary that a pipeline layout be compatible with active textures. Make sure to recreate the pipeline layout otherwise. Bug: b/155487768 Bug: angleproject:5033 Bug: angleproject:5773 Test: ImageTest.SourceAHBTarget2DExternalCycleThroughRgbAndYuvTargets*Vulkan Change-Id: Iab371a9035b6cd143585e5000e2e68c7302ef447 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2992056 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 5f869b74 2021-06-28T18:02:42 Revert "Vulkan: Load custom Vk Loader." This reverts commit e6e99c5472d2fe9beaa12840fa4a71191667b9a4. Reason for revert: Seems to be flaking on linux-clang-rel: https://ci.chromium.org/ui/p/angle/builders/try/linux-clang-rel/22602/overview Original change's description: > Vulkan: Load custom Vk Loader. > > Uses a GN copy rule to duplicate the loader. Also updates volk to > load using the new custom loader. Once both are in place we can > go back and remove the copy. > > Bug: chromium:1219969 > Change-Id: I8c48d168a842539f7cdba1ebfdaf3b08c3e1990d > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2982499 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Bug: chromium:1219969 Change-Id: Ib29014e728c1ce63c5e5bf7136ce19de7692964d No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2987874 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gert Wollny 3d8d1b77 2021-06-28T10:35:42 Capture/Replay: enable passing OcclusionQueriesTest.* Bug: None Change-Id: I445ff7a25a7e91663a61e1cd4d32861497140055 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988681 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop aec47ff6 2021-06-22T15:47:43 Capture/Replay: Update CopyImageSubData params The parameters to glCopyImageSubData are flexible and can take a TextureID or a RenderbufferID as a GLuint. Our replay needs to remap those values, so we'll convert the GLuint based on the target. This leads to a change like the following. Before: glCopyImageSubData(138, 0x0DE1, 0, 0, 0, 0, 642, 0x0DE1, 1, 0, 0, 0, 256, 256, 1); After: glCopyImageSubData(gTextureMap[138], 0x0DE1, 0, 0, 0, 0, gTextureMap[642], 0x0DE1, 1, 0, 0, 0, 256, 256, 1); Test: PUBG Mobile MEC Bug: angleproject:6087 Bug: angleproject:6104 Change-Id: I5cd422e41ffbb4f08c8909e520bdce63e3008c5a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2981464 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Gert Wollny 5fb6baef 2021-06-28T10:33:28 Capture/Replay: enable passing IndexedPointsTest* tests Bug: None Change-Id: Ie4f5c50985c5c3e403e0be8e806e461572b04e42 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988680 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny dbc7cb5a 2021-06-11T14:38:42 Capture/Replay: capture GetMaterialfv parameters Enable according tests Bug: angleproject:6052 Change-Id: I67bc4d74c997afecf9ed16c7af217de273557587 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2954265 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Shahbaz Youssefi 153240b2 2021-06-11T16:36:32 Vulkan: SPIR-V Gen: Support loops Loops are similar to if-else in that they generate a number of blocks where the first block specifies divergence (OpLoopMerge) and the merge block. Differently from if-else, there is a block where the condition is evaluated and a block which `continue;` leads to (this last block is the only one allowed to back-jump to the beginning of the loop). Bug: angleproject:4889 Change-Id: Ic59f4bf3e05fbf93cb5af85acd3bc4b0da8412af Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2957809 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Gert Wollny 8cf6d8cc 2021-06-28T10:00:54 Capture/Replay: Handle Gen/Delete Semaphores and fix map emit Add capturing of the handles used in GenSemaphores and DeleteSemaphore, fix the emission of the gSemaphoreMap. and enable capture/replay tests. Change-Id: Iabb88bd1d6c22c08271d0883607efb72de9d3d0c Bug: angleproject:6107 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988679 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Jamie Madill e6e99c54 2021-06-23T08:25:58 Vulkan: Load custom Vk Loader. Uses a GN copy rule to duplicate the loader. Also updates volk to load using the new custom loader. Once both are in place we can go back and remove the copy. Bug: chromium:1219969 Change-Id: I8c48d168a842539f7cdba1ebfdaf3b08c3e1990d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2982499 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Jamie Madill 18e99f4a 2021-06-25T09:10:42 Add SearchType to OpenSharedLibraryWithExtension. This fixes a bug in SystemInfo_vulkan where we were using the System search path for the Vulkan loader when we prefer using the custom ANGLE loader. Bug: chromium:1219969 Change-Id: Iedf0fd11fe9ed8cc020b445ea9e12a7936937361 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988791 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 971ba359 2021-06-23T16:45:33 Add angle::BitMask for creating bit masks angle::BitMask(n) implements the common pattern of angle::Bit(n)-1. Bug: angleproject:6048 Change-Id: Icd56ef1504804add59d0804a7249b3035c96f9c2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2984099 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny 27e9883b 2021-06-22T12:20:08 Capture/Replay: Limit number of compile processes based on load When replaying, for each batch a limited number of compile processes is launched, but no all-over limit is set, so that on computers with a low processor count and/or limited working memory the machine may become un-responsive. Therefore, tell ninja to not spawn new processes when the load is larger than the number of available processors. Bug: angleproject:6078 Change-Id: I9982a139ef2346d0cf25fbd510c7aff038e48071 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2976658 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Jamie Madill da523f6b 2021-06-25T17:25:24 Trace Tests: Use hermetic depot_tools. We no longer need to use the depot_tools in the system path. Bug: angleproject:6102 Change-Id: I6772ceeb4c61e686d15b2638fb4348e93179e321 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2989671 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gert Wollny f8d2c429 2021-06-24T11:22:59 Capture/Replay: Add test to capture an uninitialized buffer Handle the serialization in case the buffer is not yet set up. Bug: angleproject:6093 Change-Id: I06a8e15d181c4ec514a334f952ce29a4026970a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2982549 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Gert Wollny e833128d 2021-06-24T11:20:53 Capture/Replay: Enable BufferDataTests.* With the robustResourceInit in place these tests now pass. Bug: angleproject:5973 Change-Id: I7b5fd991b86ede8cf85cc298d61a60d86ef07bc9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2982548 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Gert Wollny 52c47e94 2021-06-24T11:02:59 Capture/Replay: SimpleOperationTest.* pass now With robustResourceInit and the hadling of the serialization of uninitialized attachments these tests pass now. Bug: None Change-Id: I86af69f7e928d32570fde90b106e34d21617f0f8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2982547 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Cody Northrop 8767ec15 2021-06-27T19:28:28 Tests: Add Bricks Breaker Quest trace Test: angle_perftests --gtest_filter="*bricks_breaker_quest*" Tbr: jmadill@google.com, timvp@google.com Bug: b/192195614 Bug: angleproject:6106 Change-Id: I5301256c34d2552f1107e5718acb2faa09576fc2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2991680 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop a84ec2cf 2021-06-25T16:06:13 Tests: Add Mario Kart Tour trace Test: angle_perftests --gtest_filter="*mario_kart_tour*" Tbr: jmadill@google.com, timvp@google.com Bug: b/192102888 Bug: angleproject:6103 Change-Id: I7b96d96144391873c6fa5a7b4b795030d9daeefd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988362 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi c3c934a3 2021-06-25T01:40:54 Translator: Better group ES100 texture builtins The ES100 texture built-ins are now (similarly to ES300 ones) grouped based on whether they include a Bias, or Lod. Bug: angleproject:4889 Change-Id: I495af48644c68286b1b0cc2a5580566fdd22cfc9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2987859 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Peter Kasting 5fc3fa9a 2021-06-25T10:18:06 Fix -Wimplicit-int-float-conversions. Bug: chromium:989932 Change-Id: Id7a49a4bd925508ea0362d1e6b9d853bf860ddb9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2987733 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill da17d561 2021-06-23T13:50:15 Trace Tests: Use xvfb consistently on Linux. Previously there were two places where we missed the xvfb script. This was causing the replay to fail. Bug: angleproject:6085 Change-Id: I833916fa0cdacc163ec2bdd08831249807f319c5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2979353 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill bd797f75 2021-06-14T11:27:27 D3D11: Fix OOB write in Blit11. This could happen for specific values of the 'dest' target. Bug: chromium:1219082 Change-Id: Ic19a5dc4a95531f9513403ad9c97a4b4c5dc5a6f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2961070 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi c75a1d6f 2021-06-11T23:27:33 Vulkan: SPIR-V Gen: Support the ternary operator Bug: angleproject:4889 Change-Id: I3ac193e08fc74cc784b688cc049fb786ab68657d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2957808 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi 7d023dac 2021-06-10T00:13:41 Vulkan: SPIR-V Gen: Basic support for fragment shaders Fragment shader built-ins are implemented in this change and direct SPIR-V generation for fragment shaders is enabled. Bug: angleproject:4889 Change-Id: I6f92a5585f242122a81c97a9b1aa2763009161a0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2951625 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny c2449441 2021-06-24T13:06:08 Capture/Replay: Make sure EGLImageKHR is a parsable number For some reason on win-trace-rel the pointer value us written as a hex number but without the leading "0x", so the number gets interpreted as octal, and compilation fails. Fixes: cb4f8a79a4def3dd8fd9f941d6674939e1731860 Capture: Add a specialization for TGLeglImageOES Bug: angleproject:6036 Change-Id: I949ace542a0ad257b47fbe539893a56c1c32b0b3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2982551 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Gert Wollny e5276ca3 2021-06-12T17:25:12 Capture: Add capturing of framebuffer and renderbuffer IDs Also enable the FramebufferObjectTest/* tests Bug: angleproject:6058 Change-Id: Ia82c935e614ccc4ad2c69ccc08544ce2d302fbca Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2957954 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny c8677c73 2021-06-12T17:23:42 Capture: Add a specialization for const GLuint * Bug: angleproject:6058 Change-Id: I31cad1dd23d313aae625874e140c406747e0f4c4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2957953 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny 78437770 2021-06-12T15:48:26 Capture: read four values for GL_TEXTURE_CROP_RECT_OES This texture parameter describes a cropping region x,y, width, height. Bug: angleproject:6057 Change-Id: I2c71f6aec1e536f42e06c19cb025889094b57a35 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2956510 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny 79d3a5a1 2021-06-12T15:27:42 Capture/Replay: Capture (Get)TexParameterxv Bug: angleproject:6056 Change-Id: I094d80e5d6a981c01f572e0fba9b578269200bde Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2957952 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny f20d2b95 2021-06-12T15:19:42 Capture/Replay: Capture params of (Get)TexEnv calls Bug: angleproject:6055 Change-Id: I44a7bd4b339d7834f9306a0de7baa400c640dda4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2957951 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny 11489df0 2021-06-12T15:07:25 Capture/Replay: implement CapturePointParameterfv_params Enable tests that are now passing Bug: angleproject:6064 Change-Id: I22d7a41b3e11556c929e4701e0c6c339e3aa7b6b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2957950 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny 228af3ec 2021-06-12T14:56:45 Capture/Replay: Enable MatrixModeTest.InitialState It simply passes Bug: None Change-Id: Id2388c99993aeb48d36ed96817b501c3d7bb1f36 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2957949 Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny fb42cbab 2021-06-11T14:30:49 Capture/Replay: Capture glGetLightfv parameter Enable the according capture/replay tests. Bug: angleproject:6051 Change-Id: I916e6d10756bc24bb3e0644c2b290f55b2066fd0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2954264 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Gert Wollny b82da851 2021-06-11T13:57:47 Capture/Replay: Add capture for Fogfv parameters Enable FogTest* tests for capture/replay. Bug: angleproject:6050 Change-Id: Ic183ef550f57a790a3d113f20f67946487006166 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2954263 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Gert Wollny d42df5c7 2021-06-08T11:42:50 Capture: Only capture texels of initialized textures If a texture is not yet initialized then it may contain random pixels, and since it doesn't make sense to capture this random data, skip its serialization and only mark the data as not initialized in the capture. This also avoid the texture syncronization that would lead to a crash for incomplete cube maps. Bug: angleproject:6034 Change-Id: I0cb30a03a29aecd605f3c61b6df4cd897e1f9093 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2944954 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Gert Wollny e543ad94 2021-06-08T10:42:01 Capture/Relplay: Enable most of ImageTest.* Keep *External/* disabled, because capturing of external textures is not supported. Bug: angleproject:6034 Bug: angleproject:6035 Bug: angleproject:6036 Bug: angleproject:6041 Change-Id: Id5eb9dc7c651240d0ba094be964d8bd141d08ff9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2944957 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny 22716d31 2021-06-11T13:51:41 Capture: Add specialization for ParamType::TGLubyte Also enable "CurrentColorTest.Set/*" tests. Bug: angleproject:6049 Change-Id: I65e62b6c0805687ad6744a12217e0c08bc97ca1a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2954262 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Gert Wollny 90f9ddd9 2021-06-10T14:35:13 Capture: Add support for capturing (Get)ClipPlanef equation In addition, correctly handle "const GLfloat *" when replaying, and enable the according capture/replay tests Bug: angleproject:6047 Change-Id: I5dd7510d1b621d4c941490c9d0261559a96dd681 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2951133 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 4375d6c7 2021-06-18T23:51:23 Vulkan: Support multiview queries When using queries with multiview, Vulkan specifies that N queries are actually produced (N being the number of views) which must be summed by the application. Bug: angleproject:6048 Change-Id: I5ea615536f1a357806b7ea8093280b9122f1d66a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2971562 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi 977a28f3 2021-06-22T12:30:07 No-op glGenerateMipmap on zero-sized textures The spec says: > Otherwise, ... if any dimension is zero, all mipmap levels are left > unchanged. This is not an error. Bug: chromium:1220250 Change-Id: I45e007c1f8e9b80f405d3d096eb896a7246f7c8e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2979853 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi 5b314268 2021-06-15T17:37:45 Vulkan: Support OVR_multiview and OVR_multiview2 Multiview is supported in Vulkan simply by specifying the number of views in the render pass, and creating the appropriate image views. A number of changes to the way image views and render targets are stored are made to support those that don't cover the entire range of layers. One particular detail that is not implemented in this change is the use of queries in combination with multiview. Vulkan specifies that N queries are actually produced (N being the number of views) which must be summed by the application, but this is not currently done. Bug: angleproject:6048 Change-Id: I1d4a9894c232d3a93d7a97c9fa0eedc334e57469 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2967625 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi 9bad7a19 2021-06-15T23:39:52 Vulkan: Unpack RenderPassDesc Upcoming multiview support needs to add 2~3 more bits to this struct, but this struct is already fully packed. As the combination with emulated multisampled render to texture is not planned, some bits used for MSRTT can be aliased with multiview. However, that makes the packing of this struct even more unwieldy. Since only tens of render passes are expected per frame, increasing the size of the render pass cache key should not have a dramatic effect. Bug: angleproject:6048 Change-Id: I5c9a0d155f23a37e2787b38525d3ce721b54ec1e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2966218 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny b6009f64 2021-06-17T14:53:03 Capture/Replay: Add feature for robust resource init Query the feature when creating the display and the context, and pass the flag to the created context and also to durfaces. With that we create surfaces that will be marked "MayNeedInit" and are initialized if the resource is cleared or invalidated. Bug: angleproject:6041 Change-Id: I292f2e3f931736a18db93695441407e17d2265b6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2976656 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Gert Wollny 13ac4dfb 2021-06-23T12:19:40 gl_tests:DrawArraysThenDrawElements: glFinish instead of swap Later in the test we read from the backbuffer to confirm that the triangles were drawn correctly, but without EGL_BUFFER_PRESERVED the content of the backbuffer is undefined. Since glReadBuffer is not supported in GLES2 don't swap, instead to a glFinish to force the drawing in each iteration. Bug: angleproject:6088 Change-Id: Iac485cc6ec92626a74a4428bcdb32cc535a2691f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2982112 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Jamie Madill 15623ada 2021-06-23T08:46:21 Test Runner: Omit results files when too many failures. This will cause the test shards to be re-tried due to an invalid result. The goal is to retry flaky configs where whole shards fail. Bug: angleproject:6075 Change-Id: I76d0f08da29ffc4bcad7f282f7be38618c384bce Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2982500 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gert Wollny 41f86f35 2021-06-22T11:02:08 Capture: Serialize only the content of initialized attachments If a resource is marked MayNeedInit, then we don't serialize it but mark the data as not initialized. Bug: angleproject:6041 Change-Id: If3d3431a58848f7835692fe10b30fab68c901d8a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2976657 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Jamie Madill ac795859 2021-06-23T11:17:36 Disable warning on invalid feature name. Because we don't have a centralized feature list, we would fire this warning every time we use a feature override. Disable it until we have a centralized list we can check. Bug: angleproject:6085 Change-Id: Ia5c3f2ae8337141e963e67e1d71243a3d0a01c9a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2982505 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 1b104dd9 2021-05-26T14:29:01 Finish switch to angle_version.h. Bug: b/168736059 Change-Id: I1232c8284f37aadb374840aca8f40e4569382c7b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2920490 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi b6adeb2f 2021-06-21T11:11:30 Vulkan: Use pipeline statistics query to emulate primitives generated The VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT query produces the same result as the GL primitives generated query. One caveat is that in combination with rasterizer discard this query may not work. This is emulated by disabling rasterizer discard when this query is active and applying an empty scissor instead. When VK_EXT_primitives_generated_query is released and supported, a similar issue with rasterizer discard persists so this change will facilitate using that extension as well. Bug: angleproject:5430 Change-Id: Id45b6f058c5cb6837e04aa64b1efde28c104e4cf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2976181 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi 09bd5578 2021-06-21T23:47:15 Test runner: Capture test stderr With this change, stderr is also output when a test fails, including logs such as those originating from UNIMPLEMENTED(). Bug: angleproject:6077 Change-Id: Ice1e1f9aff26acfb630aef99865503643f0a9658 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2976184 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 72d2bd0c 2021-06-21T09:59:21 Allow capturing process stdout and stderr interleaved The test utils are enhanced to allow redirecting stderr to stdout. This is in preparation for a change that makes the test runner capture stderr together with stdout. Currently, on failure logs originating from UNIMPLEMENTED() and other such macros are not captured. Bug: angleproject:6077 Change-Id: I7a3c6c4732a59dac3ff0cc20a7835d5ed6f0f22e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2976183 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev dbfc119a 2021-06-22T08:56:33 Fix overflow in gl::ValidateES2TexImageParametersBase Bug: chromium:1222516 Change-Id: I532dc6e1c80c442af2c35d1facc262c48222def3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2978251 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Shahbaz Youssefi 64ce506d 2021-06-18T14:48:29 Vulkan: SPIR-V Gen: Support most non-texture/image built-ins Most GLSL built-ins map directly to some SPIR-V operation. texture*() and image*() built-ins are not implemented as well as a handful of other built-ins that require special-handling. Bug: angleproject:4889 Change-Id: I72abfb4692c3d66a3c8be43ce44ba6808efe6255 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2971646 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill b80f1377 2021-06-22T14:42:00 Trace Tests: Print serialization diff on failure. Instead of only printing this with the "verbose" flag, print the diff of the serialization as an "info" message. This will make the diff show up on the bots. Bug: angleproject:5715 Change-Id: Ic9684b43cdf2d6ae248b5beab4317b0e939567c1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2979854 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 4194d400 2021-06-21T13:08:56 Test Runner: Add maximum failure count. This will make the test runner early exit after a certain count of failures. This will prevent the bots from running tens of thousands of tests when the whole test run is corrupt. Bug: angleproject:6075 Change-Id: I8f5c19ea694a5ad3a5d5df1429d2ba4b1fe868e3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2976179 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Shahbaz Youssefi 3d37a374 2021-06-22T00:37:22 Add regression test for GL bug w.r.t cached programs Bug: angleproject:6073 Change-Id: I22ffabea8a686e2ae615e99607cb557324c23c78 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2976185 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Xiaoxuan Liu 96dd515a 2021-03-31T14:21:16 Update glColorspace(EGL_KHR_gl_colorspace) enable logic 1. Enable glColorspace if VK_EXT_swapchain_colorspace is supported, remove dependency on VK_KHR_image_format_list. 2. Enable VK_KHR_image_format_list support on Mali GPU. 3. Fix PbufferTest.ClearAndBindTexImageSrgbSkipDecode test tolerance issue. Bug: angleproject:2514 Bug: angleproject:5281 Change-Id: I2ed54a14afc7c3aee5a5980bd300ab052ebab3d1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2793852 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 7df7fc7f 2021-06-20T00:05:28 Tests: Add support for --renderdoc This change adds support for a new flag namely `--renderdoc` to end2end and deqp tests. With this flag, each test automatically starts and ends a frame capture in renderdoc, working around an issue where renderdoc refuses to capture a test frame that doesn't start or end with a swap. With end2end tests, the capture starts before test set up, and ends after test tear down. With deqp tests, it starts before init, ends and restarts after each test iteration and ends after deinit. Bug: angleproject:6072 Change-Id: Ib41b816aff121bf922d9147044cc363c33a62181 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2971835 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
John Plate 44a5c913 2021-06-17T09:29:29 CL: Make CL front end and back end thread-safe Add locking to all mutable variables of the CL objects in the front end and pass-through back end to make them thread-safe. This fixes a crash in a multi-threaded CTS test. Bug: angleproject:6015 Change-Id: I1d6471c851217639411c434c82acd32d14035291 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2967468 Commit-Queue: John Plate <jplate@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
John Plate 1891af05 2021-06-16T10:20:32 CL: Refactor TRY macro and fix more conformance bugs Bug: angleproject:6015 Change-Id: Id54be19822fec2ac5584ffe1d1cf5bb8f00c9094 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2967467 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: John Plate <jplate@google.com>
Ian Elliott 3706f9eb 2021-06-10T18:45:15 Vulkan: Fix AGI hierarchy crash for noop'd clears/queries The ASSERT in ContextVk::endEventLogForClearOrQuery() was wrong. Certain glClear*, glBeginQuery*, and glEndQuery* commands may exit early (e.g. noop). When this happens, mQueryEventType will be set to NotInQueryCmd. In such cases, return without trying to finish a non-started debug-util-marker hierarchy. Bug: b/191489405 Change-Id: If40ed00fdc6e420ae6a11c2aeaced19e5aa45a5f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2973342 Reviewed-by: Trevor David Black <vantablack@google.com> Reviewed-by: Mark Lobodzinski <mark@lunarg.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Shahbaz Youssefi c51c59c7 2021-06-15T13:43:50 Test for missing index dirty bit bug Bug fixed in https://chromium-review.googlesource.com/c/angle/angle/+/2961690 triggers only in the following situation: - Context 1: draw indexed -> clears index dirty bit - Context 1: change state in such a way that closing the render pass is deferred to dirty bit handling (for example, change FBO) - Context 1: issue a non-indexed draw call. This closes the render pass and starts a new one -> bug was that the index dirty bit was not set - Context 2: flush the command buffer, which submits the previous render pass of context 1 (which contained vkCmdBindIndexBuffer). The primary command buffer is now reset. - Context 1: issue an indexed draw call. Since the index dirty bit was not set, this was missing the vkCmdBindIndexBuffer call. This change implements a regression test based on the above scenario. Bug: chromium:1183068 Bug: chromium:1190493 Change-Id: I729bd48cd6df2621ca763f6231023a52ac08b0fb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2963836 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 851fbedb 2021-06-10T21:27:01 Vulkan: Switch viewport and scissor to dynamic state Heavily based on http://crrev/c/1316888 Some apps are creating a large number of viewport combinations and are running out of graphics memory. This CL drops their graphics pipeline use from tens of thousands to tens. Performance testing shows little impact to application traces. Bug: b/190026813 Bug: angleproject:3143 Change-Id: Ib7415be1128f8fedae4a7ca72e067b2815201223 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2954925 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Doug Horn 4e1fd371 2021-06-17T10:26:26 Ensure GLES1 state is cleared on context switch. GLES1 support in multi-context D3D mode is broken prior to this change as state in the GLES1Renderer is not being properly dirtied on context switch. The immediate result is a crash on draw commands due to a null program. Introduce a new dirty bit to specify that the program is dirty and should be re-initialized. Test: GLES1 applications work with the D3D11 backend in multi-context mode. Bug: b/191158936 Change-Id: Ib53c1471514ff2cf36ef9fc0d6bfb99a8bb7cf66 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2969789 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Doug Horn <doughorn@google.com>
Shahbaz Youssefi 24155b13 2021-06-17T18:09:29 Vulkan: Free DynamicBuffer buffers after dip in allocation size In a pattern like this: - allocate 100 bytes - allocate 200 bytes - allocate 50 bytes - allocate 100000000 bytes - allocate 100 bytes - allocate 200 bytes - allocate 50 bytes The DynamicBuffer class switches to making 100MB allocations even if that allocation was a one-off. A small future allocation would then tie up 100MB in memory for future allocations. Another 100MB is also left tied up in the free list. With this change, if an allocation is made that's less than a quarter of the DynamicBuffer's current allocation size, it's taken as a sign that the previous large allocation was a one-off and the size is moved back to the DynamicBuffer's original initial size. Bug: b/187757166 Change-Id: I0c6f00eec7c81298f9dc41a41cc308510ce76623 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2971004 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
John Plate 69562546 2021-06-11T19:12:11 CL: Refactor info structs and fix conformance bug - Remove variable name prefix from Info structs to be more consistent with other ANGLE structs. - Fix CL object validation check with magics, since the Mesa solution doesn't work without RTTI. - Add support for some extensions required by OpenCL 1.1 and for some optional extensions. - Fix more conformance bugs. Bug: angleproject:6015 Change-Id: I41b1c45d95059a9994f5dc78bf9b74476cc6f2d4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2956349 Commit-Queue: John Plate <jplate@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Ian Elliott ecf27c71 2021-06-16T13:13:31 GL: Fix bug with: Skip redundant flushes. The ANGLE-into-Skia autoroller is blocked because of the following CL: https://chromium-review.googlesource.com/c/angle/angle/+/2956453 Michael Ludwig, a Skia engineer, found that this change fixes the problem and will unblock the auto-roller. Bug: chromium:1181068 Change-Id: I514b2762f6643e25b36aab0290a57af4abf3c660 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2965615 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
Mohan Maiya b77a6c25 2021-06-16T11:01:14 Vulkan: Avoid using VK_WHOLE_SIZE when using dynamic offsets Binding descriptor sets that use VK_WHOLE_SIZE with a dynamic offset results in the VUID-vkCmdBindDescriptorSets-pDescriptorSets-01979 validation error. Updated the updateDefaultUniformsDescriptorSet function to use the uniform's size instead of using VK_WHOLE_SIZE. Bug: angleproject:5924 Tests: dEQP-GLES31.functional.shaders.multisample_interpolation.* SimpleStateChangeTest.UniformUpdateTest*Vulkan UniformTestES3.MatrixUniformUpload*Vulkan Change-Id: Ie4633af61d59a9401f599d336a5b9040cdf18004 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2950309 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 99a98963 2021-06-10T16:11:13 Vulkan: SPIR-V Gen: Support discard This is simply done with OpKill. If-else blocks now check if the block is already terminated (through return, discard, continue or break) before adding the branch to merge block. Bug: angleproject:4889 Change-Id: I713286cf38e40f9048486d2914a4355ddbc686ac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2953369 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi 9c500951 2021-06-10T15:48:57 Vulkan: SPIR-V Gen: Fix user-defined blocks The _u prefix was missing from blocks and their fields. Bug: angleproject:4889 Change-Id: I31f3b393bc81352c8cf7a433dd652692833fc3f7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2953368 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi 5a737833 2021-06-10T15:19:59 Vulkan: SPIR-V Gen: Fix row-major matrices Prior to this change, row-major and column-major matrices generated different types. That is not correct. With this change, the same type is generated for both. Row-major only comes into account when calculating the alignment and offset of fields in a block. Bug: angleproject:4889 Change-Id: Ifa03e1799a2510b90323d9d4fc2f681a3184069b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2953367 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi e48f2210 2021-06-10T13:23:34 Vulkan: SPIR-V Gen: Support short-circuiting && and || When short-circuiting is necessary (because the right-hand side has side effects), the following code is generated in SPIR-V: // For left && right: result = left if (left) result = right // For left || right: result = left if (!left) result = right Bug: angleproject:4889 Change-Id: Id87b56dc4a1463ed781852a23d2ba6eb2015d700 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2953366 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi a76f224f 2021-06-16T00:43:55 Fix build Two CLs went in at the same time, causing a build breakage. Bug: angleproject:4889 Change-Id: I0dacda7263959014fb4ad9bd83733f58a5e98fe6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2965319 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: John Plate <jplate@google.com>
Shahbaz Youssefi 8b869a95 2021-06-13T01:09:27 Translator: Generate Ops for all built-in functions EOpCallBuiltInFunction is removed in this change, as well as the "op": "auto" property in builtin_function_declarations.txt. Instead, gen_builtin_symbols.py automatically generates Ops for every built-in function and generates the TOperator enum accordingly. This simplifies SPIR-V code generation by allowing switches to be used on operators instead of string comparisons. Bug: angleproject:4589 Bug: angleproject:4889 Change-Id: Ia351524400b0e12a10a5572e27e9b88c6ec2e61c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2958869 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi 64ca25f1 2021-06-08T17:15:49 Vulkan: SPIR-V Gen: Unary operators The line raster emulation coded uses round() which was previously not translated. This change implements all operations supported by TIntermUnary nodes. Bresenham line emulation is now allowed. Bug: angleproject:4889 Change-Id: I1ffbe3f9bf0299f7efa2c6d1e8f011fefdbb2ddb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2951624 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi 0297779c 2021-06-08T01:06:21 Vulkan: SPIR-V Gen: Handle invariant variables The Invariant decoration is applied to variable declarations and block members as necessary. When invariant is applied to a gl_PerVertex built-in, it's applied to the appropriate member in DeclarePerVertexBlocks. Bug: angleproject:4889 Change-Id: Idaa8d4ab92f975381a0237d372f0a4044ff983e0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2946116 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Peter Kasting f33a41be 2021-06-15T16:59:57 Another fix for -Wc++11-narrowing. Bug: chromium:1216696 Change-Id: I65955fe818917a1909c3d1af391718aaa82652bb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2965535 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 3f9dcb00 2021-06-12T01:37:32 Translator: Prune trivial dead code Code after discard, return, break and continue is discarded with this change. This simplifies SPIR-V generation as no code is allowed after a branch instruction and no special handling is necessary after this change. Bug: angleproject:4889 Change-Id: Ife9c8de8a6d0db9d682561daf44366aad9b1cf61 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2957811 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi a1d43971 2021-06-12T23:11:48 Translator: Pack TSymbol and TFunction fields Shaves ~45KB off of binary size in an ANGLE build on Linux, coming from the built-in TVariable and TFunction variables. Bug: angleproject:4889 Change-Id: I5466c9e26b069a07bf52d00fc2a9c5d49f3c0feb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2958868 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 18ddd131 2021-06-07T14:59:43 Vulkan: SPIR-V Gen: Support mediump/lowp The mediump and lowp precisions translate to a RelaxedPrecision decoration in SPIR-V. This change implements this decoration and enables SPIR-V generation when emulating Bresenham lines. Prior to this change, Bresenham line emulation resulted in a validation error due to the vertex shader output being without RelaxedPrecision but the fragment shader input (translated by glslang) with it. The function that produces a new id is given a list of decorations to apply, which itself is automatically deriven from the TType where applicable, to minimize the risk of any id missing this decoration. Bug: angleproject:4889 Change-Id: I30cc5a278634c5d83d63cd65b057336f9f573baa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2946113 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>