src/tests/compiler_tests/EXT_clip_cull_distance_test.cpp


Log

Author Commit Date CI Message
Alexey Knyazev 7fefd230 2022-10-20T00:00:00 GL: Adjust APPLE_clip_distance exposure Partial revert of I458cad29c10b9d9193c5233e24bac53361ba104e APPLE_clip_distance cannot be implemented on top of EXT_clip_cull_distance because the former is defined both for ES 2.0 and ES 3.0 while the latter is defined only for ES 3.0. Although some ES 3.0+ drivers allow gl_ClipDistance built-in in ESSL 1.00 shaders, this behavior is not specified so ANGLE should not allow it. Added independent ESSL 3.00 gl_ClipDistance and gl_MaxClipDistances definitions. Adjusted translator unit tests. Bug: angleproject:4452 Change-Id: Ib582ce0ac7ccb65f0200ef1d17eaab0c83b228cf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963745 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 6f80f0f0 2022-08-06T02:29:19 Translator: Clean up the compile flag passing interface Historically, compile flags were sent to the translator as a bitmask. Recently, we were getting close to running out of bits. Additionally, direct-to-metal work had started to introduce constants to be passed to the translator, which were misplaced in ShBuiltInResources and Caps. Recent work on Pixel Local Storage adds even more constants, aggravating the situation. In this change, the interface to passing compile flags is reworked. A struct is passed (instead of a bitmask) that has one bit for each flag. This can be indefinitely extended. Additionally, the constants needed by metal and PLS are also placed in this struct. In turn, the backends can set these options directly, and don't have to hack them into Caps to further get hacked into ShBuiltInResources. Bug: angleproject:7559 Change-Id: If93f1e1b8818ad3a0ac708ab04ab93b4b397d114 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3812562 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 776c6015 2021-02-26T00:00:57 Vulkan: Call glslang at compile time With this change, the ANGLE translator immediately compiles the generated GLSL into SPIR-V with glslang and discards the source. This is in preparation for generating SPIR-V directly, by making the frontend and backend already able to digest it. This change also allows the expensive glslang calls to be parallelized, improving the following perf test by about 20%: LinkProgramBenchmark.Run/vulkan_compile_and_link_multi_thread Previously, the test was run as such in the Vulkan backend: Main Thread 1 Thread 2 Compile1 ---> Compile2 ---------------------> Translator Translator <--- <--------------------- Link glslang for shader1 glslang for shader2 Done With this change, it is run as such: Main Thread 1 Thread 2 Compile1 ---> Compile2 ---------------------> Translator Translator glslang glslang <--- <--------------------- Link Done glslang_wrapper_utils no longer interacts with glslang! A rename will follow. Bug: angleproject:4889 Change-Id: If4303e8ba0ba43b1a2f47f8c0a9133d0bee1a19a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2721195 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 2f737c25 2021-02-25T16:55:14 Translator: Rename GLSL to SPIR-V in Vulkan and Metal output Preparation for actual SPIR-V output instead of GLSL. Bug: angleproject:4889 Change-Id: Ic279b23d3a817bd5dca66a844905378207afdbac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2721194 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Austin Sullivan bae53d96 2021-02-10T16:28:14 Only define test suites when TEST_Ps defined The EXTClipCullDistanceForVertexShaderCompileFailureTest and EXTClipCullDistanceForFragmentShaderCompileFailureTest test suites each contain only one test, which is defined iff ANGLE_ENABLE_VULKAN is defined. This results in UNINSTANTIATED_PARAMETERIZED_TEST errors. This problem was discovered by attempting to roll googletest past CL 315255779, which causes test binaries to fail when they include test suites / parametrized tests that are not instantiated, and when they include empty test suites. Bug: chromium:1163396 Change-Id: Ie1837bc2879c14ad9f51a4a757ee1edc7e603c61 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2686377 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Mohan Maiya cea86910 2021-01-14T08:13:00 Vulkan: Support EXT_clip_cull_distance extension EXT_clip_cull_distance extension is supported except for some features related to EXT_tessellation_shader and EXT_geometry_shader. Also added a few compiler tests to validate the transformation from ESSL to GLSL for Vulkan backend. Bug: angleproject:5458 Tests: angle_end2end_tests --gtest_filter=Clip*DistanceTest* angle_unittests --gtest_filter=*Clip*Distance* Change-Id: Ie74e6b2b55112ad92ad111191d629b63506032ab Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2585987 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Mohan Maiya 9229b805 2020-12-14T14:10:28 Vulkan: Add the tests for EXT_clip_cull_distance Before supporting EXT_clip_cull_distance extension, some tests are added to validate the implementation of EXT_clip_cull_distance extension. These tests are implemented based on the tests for APPLE_clip_distance Bug: angleproject:5458 Tests: angle_end2end_tests --gtest_filter=Clip*DistanceTest* angle_unittests --gtest_filter=*Clip*Distance* Change-Id: I018c72ae8f0aff616c9d2600e63246e9609cf3de Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2585986 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>