src


Log

Author Commit Date CI Message
jchen10 3a8be140 2018-08-08T15:44:09 Enable some tests on Intel Windows Vulkan The tests IndexBufferOffsetTest.UInt16Index and StateChangeTest. VertexBufferUpdatedAfterDraw can pass 26.20.100.8141 now. Bug: angleproject:2663 Bug: angleproject:2664 Change-Id: I0324767f5c538879d865cf12304da4625d49bd81 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1166598 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Paul Thomson 463e0b19 2020-11-30T17:25:14 Tests: add WhatsApp trace Test: angle_perftests --gtest_filter="*whatsapp*" Bug: b/174256233 Change-Id: Ie6abb3beae8e184633005a325c5dce51f0afff40 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2574837 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Paul Thomson <paulthomson@google.com>
Jamie Madill 4accbe92 2020-12-04T12:27:01 Fix separable Geometry shaders. Geometry shaders weren't being processed in some of the separable shader logic. This CL fixes two cases: one in Program and one in ProgramPipeline. Bug: angleproject:5409 Change-Id: I19adc5c11a54814d28dd20574a5e038ca9dbd021 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2574827 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 2c90a90a 2020-12-04T12:39:50 Geometry Shaders: Don't require 'flat' for integer varyings. The 3.2 spec and the dEQP tests are quite clear in only requiring the 'flat' on fragment shader inputs. This restriction remains on older shader versions. Bug: angleproject:5409 Change-Id: Icc4b113b404280c2867a3e0bf6f77256a4316bff Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2574826 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
jchen10 a10d694e 2020-03-10T15:12:42 Remove StateChangeRenderTest suppression The failed DepthRangeUpdates case can pass on 26.20.100.8141 now. Bug: angleproject:2844 Change-Id: I1398ab6c4676c1a6bc8f9514b1559ac1e37ed086 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2096337 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 251ba5cb 2020-12-03T15:55:47 Vulkan: Fix transform feedback with in-render-pass clears An in-render-pass clear now pauses transform feedback so it wouldn't contribute to it. Since it's not possible to resume the transform feedback in the same render pass (as it needs a memory barrier for its counter buffer), the render pass is broken after the clear. Bug: angleproject:5426 Change-Id: I1eaf8c153d076bd912a4a08c65960c12f00341ef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2573579 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Zentaro Kavanagh d49e7e30 2020-12-05T00:29:21 Mark classes with final dtors as final - -Wfinal-dtor-non-final-class warns on classes with final dtors but not final classes. - Error messages are better when the class is marked final. - Fix existing issues in code base Bug: chromium:999886 Test: no errors building Change-Id: I62301f2f0b9108b08e0a749fbe261beb36b1996f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2575923 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 7354c67b 2020-12-04T12:21:10 Vulkan: Support for geometry shader with max_vertices=0 This is simply done by specifying max_vertices=1. Bug: angleproject:5411 Change-Id: I50318128cca0e96a8b7c7e5d01165b9ef46b4db8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2574823 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Tim Van Patten c859c0ac 2020-11-24T17:21:38 Batch replace std::unordered_map with angle::HashMap in src/ There are a few places that will remain std::unordered_map due to build or run-time errors, which will need to be evaluated more closely to determine if they should remain std::unordered_map or if there is another Abseil data structure that would be more efficient while still working correctly. Bug: angleproject:4873 Change-Id: Ib04253e3ad6398e63f4cc2bfe12c0f9e57cb112b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2558873 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi b22b1502 2020-12-03T16:25:14 Vulkan: Fix transform feedback spanning multiple render passes When the render pass breaks while transform feedback is active, the subsequent render passes didn't restart transform feedback because of a missing dirty bit. Bug: angleproject:5426 Change-Id: Icee79cbdabbceab96973cea124240ac7ced82d55 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2572878 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi b35a468a 2020-12-04T12:14:37 Vulkan: Support geometry/tessellation primitive topologies Bug: angleproject:5406 Change-Id: Ifb7553e87164c204353e1ed94b8d64f5fb4b7206 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2574822 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexis Hetu f2a15485 2020-12-04T14:07:24 Suppress memory leaks detected by LSAN In order to be able to land SwANGLE in Chromium, this cl adds suppressions for memory leaks detected by LSAN. Some of these should be fixed and some are intentional leaks of global variables. This cl should allow the linux_chromium_asan_rel_ng bot to pass while using SwANGLE and shouldn't break the win-libfuzzer-asan-rel bot. Bug: chromium:972686 Bug: angleproject:5377 Change-Id: I7e2336aba43fcfeb95716d6c0aa05caf855134aa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2575200 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Paul Thomson abee60f6 2020-11-30T17:22:59 Capture: Disable GL_CHROMIUM_bind_uniform_location Some apps (possibly those that use Skia) use the extension GL_CHROMIUM_bind_uniform_location, which is implemented by ANGLE. This leads to traces that contain calls to functions from this extension, such as: glBindUniformLocationCHROMIUM. Such traces do not replay on native GLES drivers, as the extension is not available. The fix is to disable the GL_CHROMIUM_bind_uniform_location extension when capturing, so that apps do not use this extension. Bug: b/174256233 Change-Id: I8c6de9dc958147bcad053cbf89d8727b40f45fbe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2574836 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill f42409e6 2020-12-03T17:11:50 Program: Allow non-fragment program input variables. Allows shaders that use GS/TS to have input varying variables. Bug: angleproject:5409 Change-Id: Idfbb725a4eef9e55fdde51d804a891b05dd1daee Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2572879 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Courtney Goeltzenleuchter 72b68950 2020-12-02T16:22:21 Ignore redundant Texture state changes Dirtying the state unnecessarily was causing Vulkan backend to create new framebuffer objects when it didn't need to. Bug: b/174700581 Change-Id: I74e0ed51a2c6598ab3dca9a955c247ec97b6856f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2570201 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 173f1c94 2020-12-03T13:53:16 Translator: Collect gl_in as a varying. This unifies the variable handling for IO blocks. Previously the gl_in block we treated as an "in block" similar to an interface block. Bug: angleproject:5423 Change-Id: Idf2db4c209055fa9ffca567dab39c89464eba156 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2571966 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Ian Elliott 51a0e95d 2020-12-04T16:34:53 Revert "Suppress memory leaks detected by LSAN" This reverts commit 2ded93db0a0d0767e6101dfaf738167ee406b2e6. Reason for revert: Appears to be breaking the ANGLE roll Original change's description: > Suppress memory leaks detected by LSAN > > In order to be able to land SwANGLE in Chromium, this cl adds > suppressions for memory leaks detected by LSAN. Some of these > should be fixed and some are intentional leaks of global > variables. > > This cl should allow the linux_chromium_asan_rel_ng bot to pass > while using SwANGLE. > > Bug: chromium:972686 > Bug: angleproject:5377 > Change-Id: I50a30e74a7d7c799c9dfa4d307792a56cb9d2017 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2562748 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Alexis Hétu <sugoi@chromium.org> TBR=sugoi@chromium.org,syoussefi@chromium.org,jmadill@chromium.org,sugoi@google.com Change-Id: I2ab53f3ab89143ea639424f108c404f884c3aaf9 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:972686 Bug: angleproject:5377 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2574796 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Alexis Hetu 2ded93db 2020-11-27T11:15:55 Suppress memory leaks detected by LSAN In order to be able to land SwANGLE in Chromium, this cl adds suppressions for memory leaks detected by LSAN. Some of these should be fixed and some are intentional leaks of global variables. This cl should allow the linux_chromium_asan_rel_ng bot to pass while using SwANGLE. Bug: chromium:972686 Bug: angleproject:5377 Change-Id: I50a30e74a7d7c799c9dfa4d307792a56cb9d2017 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2562748 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Ian Elliott 1ad5791d 2020-12-03T22:05:51 Revert "Vulkan: Use specialization constant for halfRenderAreaWidth" This reverts commit ff38106d62fca2e36ec2db1cd580b546fd53ae43. Reason for revert: Suspect that this CL may be causing win-angle-rel-32 bot failures Original change's description: > Vulkan: Use specialization constant for halfRenderAreaWidth > > halfRenderArea is used by fragment shader to adjust gl_FragCoord for > rotation and yflip compensation. This CL bakes halfRenderAreaWidth into > shader via specialization constant, thus allow compiler to consolidate > the calculation into one MAD instruction. > > Bug: b/173800146 > Change-Id: Id66301278e3389e2582369b695825e632bccecee > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2551541 > Commit-Queue: Charlie Lao <cclao@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Tim Van Patten <timvp@google.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> TBR=timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: b/173800146 Change-Id: I7bc9966ebbe949f3999d7927afa629dd2e3a4187 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2572801 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
Shahbaz Youssefi 0d2de6f0 2020-12-03T04:29:02 Vulkan: Fix precision issue in blit math Bug: chromium:1154759 Change-Id: If31ef7ebecdfa2a0cba91e917870ea0bdfd9b9db Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2570464 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 8670d618 2020-12-02T14:18:27 Add support for GL_EXT_debug_label Add support for labeling of GL objects for debug purposes. Tests: DebugTest.ObjectLabelsEXT* Bug: angleproject:5337 Change-Id: I792a27c69395ed62da70c3f619bef71776fba432 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2568711 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Ian Elliott 968fccb2 2020-12-02T13:28:30 Vulkan: Use VK_EXT_device_memory_report extension This CL can enable and use the VK_EXT_device_memory_report extension. This is disabled by default. To enable, link with the required extension, enable one or both of two features, AND build with the following GN arg: angle_enable_trace = true The two added features are: - logMemoryReportStats provides per-swap statistics - logMemoryReportCallbacks provides per-callback logging If either or both of the features are enabled, if the VK_EXT_device_memory_report extension is available, it is enabled. Bug: b/173636655 Change-Id: Ic5cf6c06efdb34f2313ef143853b3cc90f55faa5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2543506 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Shahbaz Youssefi abe96578 2020-11-30T14:09:11 Vulkan: I/O blocks: Support unsized arrays Geometry shader inputs have an extra array dimension, which can be unsized as it can be derived from the primitive type. This change fixes the grammar to support such arrays. Additionally, it enables EXT_shader_io_blocks automatically with EXT_geometry_shader and EXT_tessellation_shader per spec. Bug: angleproject:3580 Change-Id: Ia7eb3e8be28c2eef2072dbe2a546fa34973104ab Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2568242 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jonah Ryan-Davis ec0acf64 2020-11-25T09:58:31 Reland "Reinitialize GL_VENDOR string when GPU switches" This is a reland of 0f083ab02635f48dfa3393df0d229287f466f480 Original change's description: > Reinitialize GL_VENDOR string when GPU switches > > We already update the GL_RENDERER string. We should do the same for > GL_VENDOR so this information is passed along correctly. > > Bug: chromium:1152212 > Change-Id: I639700bfebdc9e77ec3c6b41fcd6516e8c32139d > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2560824 > Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Bug: chromium:1152212 Change-Id: I044313366ce6ce7040e5c203a979b148dcb564dd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2569364 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Shahbaz Youssefi 2c8bc1b7 2020-11-26T16:06:24 Vulkan: Clean up render pass query code In preparation for support of primitives generated queries. Bug: angleproject:5404 Change-Id: Ic123aaff33f8903994ff8fcc9158954ac023ec13 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2562126 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi dfdf90a7 2020-12-01T16:09:41 Create helper for identifying builtin names Bug: angleproject:5405 Change-Id: I652f2d6d3af4468b9662cdea5d2706d36e118239 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2568550 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 8797714c 2020-12-01T11:39:25 Vulkan: Support OES_shader_io_blocks Enables OES/EXT_shader_io_blocks extensions in Vulkan backends. With shader I/O blocks, the varyings can now be an array of struct (the block itself) of struct (nested in the block). This change is missing a number of features. In particular, if the shader I/O block has a location decoration in the middle of the block, that is not handled yet. Based on changes from m.maiya@samsung.com and jmadill@chromium.org. Bug: angleproject:3580 Tests: dEQP-GLES31.functional.shaders.linkage.es31.io_block.* dEQP-GLES31.functional.separate_shader.validation.es31.io_blocks.* dEQP-GLES31.functional.program_interface_query.program_input.* dEQP-GLES31.functional.program_interface_query.program_output.* Change-Id: I593840475d2365ff6c9ce7b2290f5ee462a30dfb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2567645 Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott 5b9fac78 2020-12-02T17:54:09 Revert "Reinitialize GL_VENDOR string when GPU switches" This reverts commit 0f083ab02635f48dfa3393df0d229287f466f480. Reason for revert: Seems to be blocking the ANGLE auto-roller (see: http://anglebug.com/5422) Original change's description: > Reinitialize GL_VENDOR string when GPU switches > > We already update the GL_RENDERER string. We should do the same for > GL_VENDOR so this information is passed along correctly. > > Bug: chromium:1152212 > Change-Id: I639700bfebdc9e77ec3c6b41fcd6516e8c32139d > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2560824 > Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> TBR=geofflang@chromium.org,syoussefi@chromium.org,jonahr@google.com Change-Id: I01bbb08946d16cf821f4fb1bfd8b1cade1ab70f1 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1152212 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2567460 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Xinghua Cao 9daef386 2020-11-26T16:20:22 Add a doc for translating uniform block to StructuredBuffer This document shows when and how shader code would hit the optimization that translates the uniform block into StructuredBuffer to resolve the slow fxc compiling performace with dynamic uniform indexing. Bug: angleproject:3682 Change-Id: I89d94a7e9d812318b9a6cbc470d39ed5ce3e47a0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2561426 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jiajia Qin <jiajia.qin@intel.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 06c39376 2020-11-27T12:45:33 Vulkan: Minimize gl_PerVertex members As ANGLE doesn't redeclare gl_PerVertex, glslang always defines it with: gl_Position gl_PointSize gl_ClipDistance gl_CullDistance The unused members here contribute to varying component limits. The last two are unlikely to be used, and the second member is rarely used as well. This change keeps it simple and strips the trailing inactive members, which for all intents and purposes accurately minimizes this struct. Bug: angleproject:5405 Change-Id: I59c22af4988a3da7b1e428913d0ea13be9031cea Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2562754 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis 0f083ab0 2020-11-25T09:58:31 Reinitialize GL_VENDOR string when GPU switches We already update the GL_RENDERER string. We should do the same for GL_VENDOR so this information is passed along correctly. Bug: chromium:1152212 Change-Id: I639700bfebdc9e77ec3c6b41fcd6516e8c32139d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2560824 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Jamie Madill 720b85e6 2020-12-01T20:45:29 Reland "Vulkan: Use specialization constant for halfRenderAreaWidth" This reverts commit b1917fe1a314709cd9f7f53b2923d6be0e8bbf6c. Reason for revert: Not the root cause. See bug. Original change's description: > Revert "Vulkan: Use specialization constant for halfRenderAreaWidth" > > This reverts commit ff38106d62fca2e36ec2db1cd580b546fd53ae43. > > Reason for revert: Speculative revert to clear up AMD. See bug. > > Bug: chromium:1154356 > > Original change's description: > > Vulkan: Use specialization constant for halfRenderAreaWidth > > > > halfRenderArea is used by fragment shader to adjust gl_FragCoord for > > rotation and yflip compensation. This CL bakes halfRenderAreaWidth into > > shader via specialization constant, thus allow compiler to consolidate > > the calculation into one MAD instruction. > > > > Bug: b/173800146 > > Change-Id: Id66301278e3389e2582369b695825e632bccecee > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2551541 > > Commit-Queue: Charlie Lao <cclao@google.com> > > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > > Reviewed-by: Tim Van Patten <timvp@google.com> > > Reviewed-by: Jamie Madill <jmadill@chromium.org> > > TBR=timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com > > Change-Id: Idab612bcad4f179857c41ffc4bf8fa2355fae946 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: b/173800146 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2568244 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Jamie Madill <jmadill@chromium.org> TBR=timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com # Not skipping CQ checks because this is a reland. Bug: chromium:1154356 Bug: b/173800146 Change-Id: I5b86bbee8600c6597620f31d8d7b08ca8b3d2d57 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2568246 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 4301429b 2020-12-01T16:49:14 Skip MultithreadingTestES3 tests on Linux Intel Vulkan MultithreadingTestES3.MultithreadFenceDraw MultithreadingTestES3.MultithreadFenceTexImage Fail with Mesa 20.0.8 Bug: angleproject:5418 Change-Id: Ie4254fe4a9c3f8b95fde30181065ddb31190fb99 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2568551 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Mohan Maiya e674625d 2020-11-20T13:05:49 Reland "Vulkan: Fix incorrect exposure of sRGB extensions" This is a reland of abcabb474bf1c25eea48d7dca14bcafde737eba7 only we continue to suppress the validation error Original change's description: > Vulkan: Fix incorrect exposure of sRGB extensions > > When we check to see what formats we can reinterpret for sRGB > extensions, we need to make sure we can match the image usage > flags as well. If the original format supports framebuffer > attachment usage, we need to make sure that the reinterpreted > format can support it as well. > > Bug: angleproject:5309 > Change-Id: I7e84d01004504f854a3e22227e99b1740ed1a2b2 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2549156 > Commit-Queue: Mohan Maiya <m.maiya@samsung.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> Bug: angleproject:5309 Change-Id: I0efb6180b7be4e14d24b4bb339de01a2b9177e7e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2556571 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill b1917fe1 2020-12-01T20:42:36 Revert "Vulkan: Use specialization constant for halfRenderAreaWidth" This reverts commit ff38106d62fca2e36ec2db1cd580b546fd53ae43. Reason for revert: Speculative revert to clear up AMD. See bug. Bug: chromium:1154356 Original change's description: > Vulkan: Use specialization constant for halfRenderAreaWidth > > halfRenderArea is used by fragment shader to adjust gl_FragCoord for > rotation and yflip compensation. This CL bakes halfRenderAreaWidth into > shader via specialization constant, thus allow compiler to consolidate > the calculation into one MAD instruction. > > Bug: b/173800146 > Change-Id: Id66301278e3389e2582369b695825e632bccecee > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2551541 > Commit-Queue: Charlie Lao <cclao@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Tim Van Patten <timvp@google.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> TBR=timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com Change-Id: Idab612bcad4f179857c41ffc4bf8fa2355fae946 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: b/173800146 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2568244 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 234fccfb 2020-12-01T10:59:16 Entry Points: Add egl:: namespace to Display. This will prevent symbol collision with X11. This fixes the build integration with Skia. Bug: angleproject:2621 Bug: angleproject:5416 Change-Id: I6949a375cf9fcdd790b4c40ffb82c7c25bc15315 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2567644 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 9fe2d211 2020-12-01T13:24:33 Test Runner: Handle flaky failures. When a test mark as flaky fails consistently we need to avoid marking the test as flaky. We treat is as a deterministic failure. This means we output "PASS" as the expected result instead of "PASS FAIL". That change will produce the correct behaviour with the test scripts. Also adds missing test runner output when we retry a flaky test. Bug: chromium:1152515 Change-Id: I9e3cbaf04ea57a198717ee81505b5d63a9183410 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2568231 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill e56fd224 2020-12-01T09:44:38 Vulkan: Fix BufferHelper leaks in DynamicBuffer. We were leaking BufferHelper pointers in a couple cases. Fix these systematically by using a unique_ptr template. This leak was detected running ANGLE with LSAN enabled. Bug: angleproject:5377 Change-Id: I30ab235105cf74fae2cfc62a22dde534e2d07e81 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2567641 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Alexis Hétu <sugoi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 0be3f296 2020-11-30T17:27:39 Entry Points: Combine desktop GL minor versions. This reduces the proliferation of small entry point files. Bug: angleproject:2621 Change-Id: Ib882fd9e32e165279439d5d6cab7205eae0732ac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2566592 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Mohan Maiya ccd0b7e1 2020-11-30T08:37:04 Add support for OES_framebuffer_object extension Expose OES_framebuffer_object extension for GLES1 contexts. Bug: angleproject:5401 Test: FramebufferObjectTest* Change-Id: I63b504f580cdab4655b4bfbd3438bcd807b422ea Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2561795 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Charlie Lao ff38106d 2020-11-19T16:47:25 Vulkan: Use specialization constant for halfRenderAreaWidth halfRenderArea is used by fragment shader to adjust gl_FragCoord for rotation and yflip compensation. This CL bakes halfRenderAreaWidth into shader via specialization constant, thus allow compiler to consolidate the calculation into one MAD instruction. Bug: b/173800146 Change-Id: Id66301278e3389e2582369b695825e632bccecee Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2551541 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 3f564fc7 2020-11-23T13:59:17 EGL: Generate entry points. This adds two final auto-generated files for the EGL and EXT extension entry points. It adds a new data file that stores a mapping between object types and entry points for associating labeled objects with certain methods. When we generate errors we record the associated object in the debug message output. This places the remainder of the hand-written code in "stub" files. Going forward the work for implementing new extension entry points for EGL will be to update the registry XML files and then implement the corresponding stub methods. Event logging, parameter packing, and validation are all handled by the auto-generated code. Bug: angleproject:2621 Change-Id: I28153432802c37b929ff2ea1e1a3e3ce9de91605 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2562680 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Paul Thomson db679caf 2020-11-25T21:08:46 Capture/Replay: track swapWithDamage Frames were captured in Surface::swap, but not in Surface::swapWithDamage. Adds the same callback in Surface::swapWithDamage and Surface::swapWithFrameToken. Bug: b/174256233 Change-Id: I3425fa2b9ae388f62f616dd2c9444797358ba148 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2560726 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 1a8eec63 2020-11-26T16:33:59 Rename FromGL to PackParam. This will allow us to use the same method with EGL without complications. Bug: angleproject:2621 Change-Id: I03dea2291adc13025723fe02eb47b76a74cef911 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2562679 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 9528641b 2020-11-23T15:47:09 EGL: Generalize the entry point enum. This both generalizes the GL entry point enum to include other APIs like EGL and inserts the EGL and WGL entry points into the enum. This will faciliate EGL entry point auto-generation and also frame capture for EGL entry points. Bug: angleproject:2621 Change-Id: Iaf4310e03b3d55839dd1328362fb29dcef918fab Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2555861 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill bccaaffd 2020-11-27T16:33:09 Vulkan: Use XFB queries with the XFB extension. This will enable accurate XFB primitive counts when using tessellation and geometry shaders. Adds new vk::QueryResult and gl::QueryTypeMap helper classes. Based on contributions by Mohan Maiya (m.maiya@samsung.com). Bug: angleproject:3572 Change-Id: Ie3f496deda887c13bb4ad7ab430e31d615849bfd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2564002 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Shahbaz Youssefi 01e8b675 2020-11-27T17:24:11 Fix ordering of stages in gl::ShaderType When iterating over a bitset of stages, they are now processed in the same order as the rendering pipeline. Bug: angleproject:5405 Change-Id: If9e0f24be047b060f759e0e1db622a91e24e9646 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2564008 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov 59aa1ef1 2020-11-27T15:08:26 Suppress TextureSampleShadingTest.Basic on Vulkan AMD Fails on Windows and Linux. Bug: angleproject:5412 Change-Id: I0a8a0d194c63a92ede0f10cd89eb3db703b93ea2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2562756 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi a5da17cd 2020-11-26T17:09:37 Vulkan: Remove vk:: inside namespace vk Bug: angleproject:5404 Change-Id: I51df1ad69a65b17621a3cbe4e5d55621cc9ae6ec Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2562683 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi fcb6b5a5 2020-11-25T22:16:15 Vulkan: Fix precision transformation for geometry shaders When a varying precision mismatch is present between two stages, the SPIR-V transformer transforms the following: in precision1 type1 inVar; out precision2 type2 outVar; void main() { f(inVar); outVar = g(); } to: in precision3 type1 inVarModified; out precision4 type2 outVarModified; precision1 type1 inVarTurnedPrivate; precision2 type2 outVarTurnedPrivate; void main() { // Input preamble inVarTurnedPrivate = inVarModified; f(inVarTurnedPrivate); outVarTurnedPrivate = g(); // Output preamble outVarModified = outVarTurnedPrivate; } This doesn't work for geometry shaders as they take the varying outputs on EmitVertex() as opposed to return from main. This change simply places the output preamble before every EmitVertex() instead of at the end of the shader, if it's a geometry shader. Bug: angleproject:5403 Change-Id: Ie395a3270c6903c54b49f64a26bc5297044cbaeb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2561939 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi ab9aae05 2020-11-26T12:00:11 Vulkan: Implement multisampled incomplete textures Bug: angleproject:3588 Change-Id: I5b7d3151b34a77998b25dd4fa5761c92d74d8c81 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2562120 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 2114fcf2 2020-11-23T13:38:09 More cleanups to run_code_generation. Moves some include definition blocks into constants. Also fixes a small case error in the capture headers. Bug: angleproject:2621 Change-Id: I0e5eadcfd8e16969f3502339f58dbf13eb53f43c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2555860 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi f60823d3 2020-11-25T17:03:50 Vulkan: Experimentally enable geometry shaders Partial support for GS was added by jaedon1.lee@samsung.com already. This change enables the extension and adds suppressions for GLES3.1 dEQP tests. Suppressions for KHR GLES3.2 will be updated separately as currently GS shaders in "version 320" fail validation. Bug: angleproject:3571 Change-Id: Ic6ed65554937fd0cce2d0f6ea0ac2eb7e6ed9f10 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2561445 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Anders Leino 4e913d34 2020-11-02T10:44:51 Vulkan: Work around Nvidia depth clamping bug In GL ES, depth is always clamped to [0,1]. The same is true in Vulkan, but not for implementations affected by Nvidia bug 3171019. This patch implements a workaround. The workaround introduced test failures on Linux with Nvidia Quadro P400 and driver version 418.56, so it's only applied conditionally, and as a result the test failure expectations are not removed completely. Bug: angleproject:3970 Change-Id: I0d9f855d7f3df72fea4af9f9b134ae3177cf820d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2514377 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 9c6f7385 2020-11-25T22:01:33 Vulkan: Move SPIR-V generators to base transformer class Moves the generators from SpirvVertexAttributeAliasingTransformer to the base class, and makes SpirvTransformer use the same functions. Bug: angleproject:4889 Change-Id: I1f105e2ac764fc7b36c8c75d2cf5f30dec841f97 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2561938 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 5850c748 2020-11-20T22:14:27 Vulkan: Emulated RGB copies in compute The copy between emulated RGB formats can take a number of paths: - Sample from src (reinterpreted as UINT), output to dst - Sample from src, output to temp buffer, copy to dst - Copy src to temp buffer, output to dst - Copy src to temp buffer, convert to another temp buffer, copy to dst While directly sampling from src and outputting to dst is more efficient, these are not always possible. The former may not have SAMPLED_IMAGE usage bit for the reinterpreted UINT format, and the latter may not have STORAGE_IMAGE usage at all. This change takes the universal approach of using two temp buffers. The ConvertVertex shader is used to transform between RGB and RGBA when copying from the first temp buffer to the second. Bug: angleproject:5278 Change-Id: I63d916cfdb4c389f5b817d89cd7348fdea703ce5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2556467 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Schade <b.schade@samsung.com>
Shahbaz Youssefi 113b7e63 2020-11-24T17:16:25 Add a sample shading test to verify FS invocation per sample A test is added that uses the RedGreenGradient shader, which doesn't include gl_SampleID, gl_SamplePosition or the sample qualifier, but uses GL_SAMPLE_SHADING to perform per-sample shading. The samples from the resulting image are copied to a buffer in compute and verified. Bug: angleproject:5395 Change-Id: I3567329e4d567d149e4548eb12222b8dd5255bba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2559266 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Shahbaz Youssefi 939fcd1a 2020-11-23T21:47:58 Vulkan: Pass in emulated alpha value to ConvertVertex In prepration for EXT_copy_image taking advantage of ConvertVertex. Also a small optimization to this ALU heavy shader. Bug: angleproject:5278 Change-Id: I6520391fe1af608db66f8c362f1038786b2c65e7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2556466 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 4dba2767 2020-11-24T16:01:51 Vulkan: Enable OES_shader_multisample_interpolation Bug: angleproject:5395 Change-Id: I5cebb30fa71ad3c6f04a185ee992f77a900e6b26 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2558931 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi bc82325e 2020-11-24T21:58:30 Fix RedGreenGradient to not output 0 for half the image The shader directly used v_position.xy as output color, but for half of the image x and y are negative and the respective channel became zero. This change makes the shader use v_position.xy*0.5+0.5. Additionally, the tests that use this shader are changed to mathematically derive the pixel colors instead of using magic numbers. Bug: angleproject:5395 Change-Id: Ic11c362c22ca725aa173faa5fd6033a02a4303fd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2559265 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang 23db7360 2020-11-17T12:22:01 Add test coverage of sampling YUV AHBs without API 29. We can't initialize the data of a YUV AHB without Android API 29 but we can still add test coverage of sampling one without verifying the results. This exposes some Vulkan validation errors. Bug: angleproject:4852 Change-Id: I978cab84f325cededa2ac08f7c7cc083dbbb69b4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2543298 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang feafc888 2020-11-24T14:06:09 GL: Treat RGBA+HALF_FLOAT IOSurfaces as sized formats. ANGLE_iosurface_client_buffer imports IOSufraces with GL_RGBA + GL_HALF_FLOAT which isn't a valid GLES internalFormat + type combination so sampling from this format fails. We cannot easily update the spec on this format because it is also implemented by SwiftShader so manually adjust the format to sized RGBA16F. Bug: chromium:1148599 Change-Id: I3f24bbdcd08003eaae26e8391e5edca7a51f6888 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2558950 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jamie Madill 23d4b64a 2020-11-22T13:01:36 EGL: Auto-generate Windows .def file. Several entry points were missing from the .def file. The auto- generation ensures we remain consistent. Bug: angleproject:2621 Change-Id: Icb4089c4235f43e76ebd588216d4b988e3a2f0f3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2552775 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 0a5bc0ce 2020-11-22T12:31:45 EGL: Auto-generate "libEGL" export cpp file. This steps towards full auto-generation of EGL entry point files. Bug: angleproject:2621 Change-Id: I629447bb6754ee1e87bef020de21b28e37e20eaf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2552774 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 105b43f9 2020-11-25T10:22:18 Skip Occlusion query tests on Metal. Flaky on the bots. Bug: angleproject:5400 Change-Id: Ibb6ef6e16f14ee45138b99f0f549d01017c84a4f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2560559 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 732dc295 2020-11-22T12:46:51 Fix auto-generated export file comment. The comment incorrectly was missing the _autogen suffix. Bug: angleproject:2621 Change-Id: Iaeb1bc5b8a1b7174e6c3699162720e0e77eff667 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2552773 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 11c81534 2020-11-22T09:39:51 EGL: Auto-generate entry point headers. This steps towards the goal of auto-generating EGL entry points. Also cleans up some EP definition inconsistencies. Bug: angleproject:2621 Change-Id: I94dcf3d080b6864bca3f9db6c4c01429f4f8b91f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2553968 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Xinghua Cao da1e4122 2020-11-24T14:36:49 D3D: Fix wrong visit mode UniformBlockTranslatedToStructuredBufferTraverser needs InVisit step when calling visitBinary. Bug: angleproject:3682 Change-Id: I5c6cec1df52f94de24e1ea0ed13e4fe1e5674faf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2557557 Commit-Queue: Xinghua Cao <xinghua.cao@intel.com> Reviewed-by: Jiajia Qin <jiajia.qin@intel.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Charlie Lao 130597e1 2020-11-23T18:59:02 Vulkan: Use PackedScissor struct to reduce GraphicsPipelineDesc size We are running out of space in GraphicsPipelineDesc. According to gpuinfo, the max reported viewport size is 32768. This CL changes scissor's x/y/w/h from uint32_t to uint16_t, which saves two uint32_t for other usages. Bug: b/173800146 Change-Id: Icf2d8ba8ea8a8c412ecef2059401a8d831c410e4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2557218 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 3efa290d 2020-11-19T14:36:16 EGL: Auto-generate validation header. This is a first step towards auto-generating more EGL code. It includes format handling for all the EGL parameter types, type reinterpretation for EGL types using the "packed enum" handling, and code refactoring to support the new consistent validation entry point pattern. Bug: angleproject:2621 Change-Id: I2740e82928db311aa934825cbe74bd75bf49c33c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2552976 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Yuly Novikov 10b22c11 2020-11-24T15:28:05 Skip failing tests on Win AMD RX 5500 XT BlitFramebufferANGLETest.BlitStencil ClearTestES3.ClearMaxAttachments RobustResourceInitTest.MaskedDepthClear RobustResourceInitTestES3.InitializeMultisampledDepthRenderbufferAfterCopyTextureCHROMIUM RobustResourceInitTestES3.MaskedDepthClearBuffer RobustResourceInitTestES3.MultisampledDepthInitializedCorrectly RobustResourceInitTestES3.TextureInit_IntRGB8 RobustResourceInitTestES3.TextureInit_UIntRGB8 VertexAttributeTest.DrawArraysWithShortBufferOffsetNotMultipleOf4 Bug: chromium:1004356, angleproject:5396, angleproject:5397 Bug: angleproject:5398, angleproject:5399 Change-Id: I5a6f16b38696b7cf3bb007363160d2ecbb06ac9a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2558932 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi acf004a1 2020-11-19T16:58:30 Vulkan: Use transfer more opportunistically with copyTextureCHROMIUM If the difference between formats is sRGB vs not or normalized vs integer, still allow the transfer path to be taken. Bug: b/159211070 Change-Id: I53334812ed29baec6ad434de1fcd6dde35049c12 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2551534 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi cf336839 2020-11-20T00:27:59 Vulkan: Initial expectations for GLES32 KHR tests Bug: angleproject:3647 Change-Id: I8eca26b01a0e2ec7b34ab39c448956f43b9f4511 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2551840 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao aa8b10ae 2020-11-19T11:06:50 Vulkan: Avoid driver call when yflip changed but shader not using it If shader is not using yflip, don't get into driver to ask for a new pipeline program just because yflip has changed. Instead try to use the non-yflipped program. Bug: b/173461931 Change-Id: If938f5dc0632529c4f5e477fcb0c67bf58a1f3d0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2549538 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Shahbaz Youssefi 9041ca0c 2020-11-20T16:27:48 Limit testing of in-progress work to ANGLE's build of dEQP A new feature is added, exposeNonConformantExtensionsAndVersions, which is set by ANGLE's build of dEQP to allow exposing ES3.2 or extensions that are not yet entirely conformant. This would allow ANGLE to expose WIP extensions for regression testing without affecting partners that test ANGLE with dEQP's standalone build. Bug: angleproject:3647 Change-Id: Id1e6219f26b41d3f8cdc9763131b8052227761c5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2552926 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Sunny Sun <sunny.sun@arm.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 5fac02c8 2020-11-24T14:20:36 Revert "Vulkan: Fix incorrect exposure of sRGB extensions" This reverts commit abcabb474bf1c25eea48d7dca14bcafde737eba7. Reason for revert: Failed on CQ and build passed, see bug. Bug: angleproject:5394 Original change's description: > Vulkan: Fix incorrect exposure of sRGB extensions > > When we check to see what formats we can reinterpret for sRGB > extensions, we need to make sure we can match the image usage > flags as well. If the original format supports framebuffer > attachment usage, we need to make sure that the reinterpreted > format can support it as well. > > Bug: angleproject:5309 > Change-Id: I7e84d01004504f854a3e22227e99b1740ed1a2b2 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2549156 > Commit-Queue: Mohan Maiya <m.maiya@samsung.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> TBR=syoussefi@chromium.org,jmadill@chromium.org,m.maiya@samsung.com Change-Id: I211802eb17deff3399ec680eeae4c4ff33e52d9d No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:5309 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2557567 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 35df41da 2020-11-23T21:34:13 Skip more tests on Linux AMD RX 5500 XT Remove EGLFeatureControlTest suppression, which crashed due to calling IsVulkan() without an initialized context. angle_perftests: MultisampledRenderToTextureBenchmark.Run/vulkan_multipass_ds angle_white_box_tests: VulkanPerformanceCounterTest.RenderToTextureDepthStencilRenderbufferShouldNotLoad Bug: chromium:1004356, angleproject:5380, chromium:1097750 Change-Id: I38819374242b71fb57c54a9d0fb47b1547dda895 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2556445 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill fb82b119 2020-11-22T09:05:06 EGL: Add const to several methods. This is in preparatino for auto-generating the EGL validation header. The auto-generation script will force multiple parameters to const. Bug: angleproject:2621 Change-Id: I04e442c6ff118fd7c296341f12f442901f6fb8c0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2552979 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill cfe14e28 2020-11-19T18:11:42 EGL: Remove egl::Error from validation code. Instead of using an egl::Error return value, errors are recorded on the egl::Thread immediately at the call site. This makes the code work the same way as in the GL entry points. Updates the EGL "try" macros to include a special handler for the EGL validation entry points. Uses a special ValidationContext helper class to preserve the existing info. Bug: angleproject:5378 Change-Id: I897f221a41fe406676950600e4ac559081b9f541 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2551790 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 56663dbf 2020-11-19T21:21:19 EGL: Expose device query as a client extension. This matches the extension spec. Previously we were exposing the ext as a normal display extension. The extension should work without needing a display. Because the extension requires a non-null device for every display we also add a MockDevice class to handle back-ends which don't implement any attribute query extensions. By default the device query ext does not expose any way to use devices so this works fine. Bug: angleproject:5372 Change-Id: I474310a86aff6a83bd6f9a6b21c8a07c649f306d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2551543 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Charlie Lao c2a74cbb 2020-11-23T11:48:14 Vulkan: Re-enable the tests that was disabled due to specConst The specialization constant crrev.com:/c/2514773 was hitting test failures on pixel2 devices but not able to reproduce on pixel4. Now I think the problem is likely attribute to QC driver bug http://b/173636783. And we have disabled specialization constant code path on older driver. This CL is to re-enable those tests that we skipped in that CL so that they gets tested. Bug: b/173636783 Change-Id: I3452abee26ebc6b8e81e68831fb2c698e464cf07 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2555858 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 03ace87e 2020-11-23T08:32:39 Vulkan: Enable floating point end2end tests. The upstream issue was marked fix so these tests should be passing. Bug: angleproject:2898 Change-Id: Ib5db7d3e06d2925730dcf691cf02d92b10983b99 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2553790 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Mohan Maiya abcabb47 2020-11-20T13:05:49 Vulkan: Fix incorrect exposure of sRGB extensions When we check to see what formats we can reinterpret for sRGB extensions, we need to make sure we can match the image usage flags as well. If the original format supports framebuffer attachment usage, we need to make sure that the reinterpreted format can support it as well. Bug: angleproject:5309 Change-Id: I7e84d01004504f854a3e22227e99b1740ed1a2b2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2549156 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 6f6504c9 2020-11-23T08:31:56 Suppress WebGL Mac end2end failures. WebGLCompatibilityTest.R16FTextures/ES3_OpenGL WebGLCompatibilityTest.RG16FTextures/ES3_OpenGL WebGLCompatibilityTest.RGB16FTextures/ES3_OpenGL WebGLCompatibilityTest.RGBA16FTextures/ES3_OpenGL WebGLCompatibilityTest.RGBA32FTextures/ES3_OpenGL Bug: angleproject:5357 Change-Id: I63a98fc1dc7316db0a5203e3bc814d8751c1bf58 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2553789 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuly Novikov a304f111 2020-11-22T18:47:39 Skip tests failing on Linux AMD RX 5500 XT Crashes: OpenGL: MemoryObjectTest.MemoryObjectQueries MemoryObjectTest.MemoryObjectShouldBeMemoryObject MemoryObjectTest.ShouldFailValidationOnImportFdUnsupportedHandleType UniformBufferTest.SizeOverMaxBlockSize VulkanExternalImageTest.ShouldClearOpaqueFdWithSemaphores VulkanExternalImageTest.ShouldDrawOpaqueFdWithSemaphores VulkanExternalImageTest.WaitSemaphoresRetainsContentOpaqueFd Vulkan: MultisampledRenderToTextureTest.2DColorDepthMultisampleDrawTest MultisampledRenderToTextureTest.DepthReadWriteToggleWithStartedRenderPass MultisampledRenderToTextureES3Test.RenderbufferClearDrawCopyThenBlendWithDepthStencilSameProgram MultisampledRenderToTextureES3Test.RenderbufferDepthStencilClearDrawCopyThenBlend MultisampledRenderToTextureES3Test.RenderbufferDepthStencilDrawCopyClearThenBlend MultisampledRenderToTextureES3Test.RenderbufferUnresolveColorAndDepthStencilThenTwoColors MultisampledRenderToTextureES3Test.RenderbufferUnresolveColorAndDepthThenTwoColors MultisampledRenderToTextureES3Test.RenderbufferUnresolveColorAndStencilThenTwoColors SimpleStateChangeTest.RebindTranslatedAttribute Failures: OpenGL: GLSLTest_ES31.MixedRowAndColumnMajorMatrices_WriteArrayOfArray GLSLTest_ES31.MixedRowAndColumnMajorMatrices_WriteSideEffect PixmapTest.BindTexImage ReadPixelsPBONVTest.Basic SimpleStateChangeTestES31.InvalidateThenStorageWriteThenBlend StateChangeTestES3.DrawPausedXfbThenNonXfbLines Bug: angleproject:5379, angleproject:5380, angleproject:5381 Bug: angleproject:5382, angleproject:5383, angleproject:5384 Bug: angleproject:5385, angleproject:5386, angleproject:5387 Bug: angleproject:5388, chromium:1004356 Change-Id: I73c6ba193ef230f576c804e8880f326ac5eabe0d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2552940 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Cody Northrop e51c9068 2020-11-10T20:57:07 Tests: Add Google Maps trace TBR: jmadill@chromium.org,courtneygo@google.com Test: angle_perftests --gtest_filter="*google_maps*" Bug: b/172977194 Change-Id: I1e2a2ed7af95069d30fd4d0fede036555688e98b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2530456 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Charlie Lao 24f64249 2020-11-16T17:55:02 Vulkan: Track specialization constant usage bit and feedback to ctx Right now context does not know which specialization constant is used by the shader. Whenever a specialization constant changes, we assume shader program is using it, we always reach into vulkan driver to ask for a new program. Instead we can track shader's usage of specialization constant so that context can utilize this information to avoid recompile pipeline program if an unused specialization constant has changed. This CL implements the plumbing the usage bits form compiler to program object, it does not actually utilize the usage bits to avoid unnecessary compilation yet. Bug: b/173461931 Change-Id: Iebc9d0638c17b1a282c8b6093ce6bae154246e57 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2542866 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Cody Northrop 565f1b16 2020-11-18T14:49:52 Tests: Add LEGO Legacy trace Requires GL_EXT_shadow_samplers which is not exposed by Qualcomm's native driver on Pixel 4 XL. Test: angle_perftests --gtest_filter="*lego_legacy*" Bug: b/161716126 Bug: angleproject:5373 Bug: angleproject:5374 Change-Id: Ifff9c5e878b7fe9a3ade684ae5f8e57167f01a25 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2477441 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
James Darpinian f845a387 2020-11-19T16:16:01 Misc. iOS fixes These fixes are necessary for ANGLE to work on iOS. I made these while updating ANGLE in WebKit. Unless we make an iOS bot, there will likely be small fixes like this every time we roll ANGLE in WebKit. Bug: angleproject:4613 Change-Id: Ia0ed432c82d0a43b9514c26ddb65c168c393d50d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2551537 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Courtney Goeltzenleuchter 040de921 2020-11-20T09:26:35 Vulkan: Move FenceRecyler to CommandQueue. SharedFences are now only used by CommandQueue so move fence recycler to live there instead of RendererVk. Bug: b/170312581 Change-Id: Ib055ec50fbebe675a0064e1059089720e63b96b3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2551792 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop 9407404e 2020-11-20T12:52:36 Capture/Replay: Limit GL_MAX_IMAGE_UNITS further From testing on the bots, the limit of 8 is required. Also happens to be the most common limit per gpuinfo.org. Test: LEGO MEC Bug: b/161716126 Change-Id: I76447a02c5546bda9085a179b123640d2a93474d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2552557 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill ae5a2047 2020-11-20T16:31:32 Trace Tests: Screenshot within the render loop. Previously we were using a separate mechanism to capture screen shots. This would cause very long traces to replay the entire trace before normal execution. The Maps trace used hundreds of frames and this was timing out the test step. Instead we can capture a screenshot after the first time we run a trace. This will normally not interfere with performance work because we don't usually capture screenshots and do performance work at the same time. Bug: b/172977194 Change-Id: I12cfe2d051d41f1e000a98ac8aef16eb153879c0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2552925 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Mohan Maiya c4ca12e3 2020-11-20T09:02:54 Vulkan: Support the single-sampled targets Add support for gl_SampleMask for single-sampled targets. When dealing with a single-sampled target, gl_SampleMask is always be set to 0xFFFFFFFF. And when the target is single-sampled, sample shading is disabled to enable Bresenham line rasterization. Bug: angleproject:3588 Tests: dEQP-GLES31.functional.shaders.sample_variables. sample_mask.discard_half_per_pixel.* sample_mask.discard_half_per_sample.* sample_pos.correctness.* sample_mask_in.bit*_per_two_samples.* sample_mask.discard_half_per_two_samples.* sample_mask.inverse_per_* Change-Id: Ibb471261b8451ff01fab3dc43f2e965ae2999610 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2477909 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Shahbaz Youssefi 4e5a50b6 2020-11-13T22:56:59 Vulkan: Drop dependency to VK_EXT_shader_atomic_float This VK extension exposes features that are not necessary for GL_OES_shader_image_atomic. Instead, support for necessary features for VK_FORMAT_R32_SFLOAT is used to determine support for this GL extension. Bug: angleproject:5342 Change-Id: Ia504cba69ffe51cfd7da69df28f58563cb1f0744 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2536908 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Brandon Schade 777749aa 2020-11-13T09:43:31 Vulkan: Fix image copies with renderbuffers When doing an EXT_copy_image copy, renderbuffers were being recreated due to a mismatch in sample count values. Bug: angleproject:3593 Test: dEQP-GLES31.functional.copy_image.*renderbuffer* Change-Id: Ic6b85ea098ab6382b56520b1ca6b76ac25801b54 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2538076 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop e3c0469c 2020-11-19T16:44:40 Capture/Replay: Limit GL_MAX_IMAGE_UNITS during capture Test: LEGO MEC Bug: b/161716126 Change-Id: I15e34bbeafe79c921ee01e99425555badad36fe4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2551538 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Charlie Lao 8930f182 2020-11-18T13:12:03 Vulkan: Add feature flag to fallback rotation to use driver uniform It appears that older Qualcomm driver has some serious performance issue with specialization constant. This does not happen with latest development driver. This adds a feature flag to pick driver uniform path for older driver. Bug: b/173636783 Change-Id: Ia494fedbb1e0e69fbd8c44f8457c1bc30bc9fa4b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2547809 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Shahbaz Youssefi 46107d3e 2020-11-18T22:03:22 Vulkan: Delay defining D/S content to endRenderPass Take the following situation: 1. Start RP with D/S undefined: loadOp = DONT_CARE, storeOp = STORE * At this point, onDepthStencilWrite calls image->onWrite, setting depth/stencil contents defined. 2. At endRP, observe depth/stencil is not used: storeOp = DONT_CARE 3. Start another RP with D/S: loadOp = LOAD, storeOp = STORE Because the call to image->onWrite was done at startRP, the contents of the depth/stencil image is marked as defined, and the next render pass is loading these data. This change moves image->onWrite to endRenderPass, and only calls it if storeOp = STORE, taking advantage of all the opportunistic optimizations that try to set storeOp to another value. Bug: angleproject:4836 Change-Id: I9858e5caa6b1f67f841a5c6356e66927356ef469 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2548319 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang e0619360 2020-11-18T11:13:11 Skip tracking non-preprocessor tokens in disabled if-blocks ESSL1 states that it is an error to have a non-preprocessor token before an extension pragma but ANGLE would mark a non-preprocessor token as seen even if it was in a disabled if-block. Bug: b/161716126 Change-Id: I782224bee211bc7214a2d1d98d4829b4c94101bd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2547205 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
James Darpinian b47f6868 2020-11-18T16:50:09 Don't use CGL in Mac Catalyst on Apple Silicon This change was made downstream in WebKit: https://bugs.webkit.org/show_bug.cgi?id=218303 It turns out we must use EAGL in macCatalyst on Apple Silicon in all cases, not just in-process in iOS apps (the problem is not just about coexistence of the two GLs, but actually about our ability to load the accelerated renderer /at all/ in macCatalyst processes). I left the runtime switching in place, because there is a future in which we /can/ use CGL in non-iOS-app processes, but that future is not now. Bug: angleproject:5369 Change-Id: I9a523d038eeeeef81efa3b97771443db857e97c8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2548316 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: James Darpinian <jdarpinian@chromium.org>